is it necessary to use Microsoft approach in every class for finding software maintainability? [closed] - testing

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
For finding software maintainability by using Microsoft approach, where normally we have to use following method
MI = MAX(0, (171 — 5.2 * ln(HV) — 0.23 * CC — 16.2 * ln(LoC)) * 100 / 171),
Where,
HV – Halstead Volume,
CC – Cyclomatic Complexity;
LoC – lines of code.
In my program i have few different type of classes .as example
For "finding area "__problem
i have ----"circle", "triangle","quadrilateral", "abstract","choice" classes .
do i have to use the approach for every individual class for finding software maintainability ?

The simples answer is no. This is only a heuristic formula created to assess code and drive code refactoring in order to achieving good maintainability. You can find many other interesting heuristics if you look for code smells (aka anti-patterns).
In the real world, you face challenges, like resource constraints (e.g. time, legacy, design options), which usually leads to decisions that create technical debt. So, do not worry so much about strictly following these formulas. They are guidelines to help in making good decisions while designing your software architecture.

Related

Which documentation package more actively maintained: NaturalDocs or RoboDoc? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this question
I am documenting a small itcl project. Due to shortcomings in itcl support in doxygen, and the fact that Ruff! does not support itcl, I am left with NaturalDocs and RoboDoc as the leading candidates. However, I don't want to pick an unsupported system, and was wondering which is going to be there in the long term?
What will be there in the long term? Who knows! It depends on how much people use it, really, as with all open source code systems. It should be noted that both the tools you refer to are really slow developing at this point: they do what they do and need little significant change to keep on doing it.
As far as I can see, ROBODoc requires that you do pretty much all the annotation work yourself, whereas NaturalDocs will derive a bit more for you. Not very much though; in particular, you will have to write plenty of annotations on things whichever route you use. (I've no particular experience with either though; I tend to prefer to maintain documentation in a separate file with something like doctools but that's a very different approach. I've also done nasty custom things in the past; you really don't want to use them.)

Terms "Systematic", "disciplined", "quantifieable" in the IEEE software engineering definition [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
The IEEE defines software engineering in the following way:
(1) The application of a systematic, disciplined, quantifiable
approach to the development, operation, and maintenance of
software; that is, the application of engineering to
software.
Source: http://www.idi.ntnu.no/grupper/su/publ/ese/ieee-se-glossary-610.12-1990.pdf
But what does systematic, disciplined and quantifiable mean in this context? Is there any further explanation from the IEEE?
You can rely on a dictionary:
http://dictionary.reference.com/browse/systematic:
having, showing, or involving a system, method, or plan
http://dictionary.reference.com/browse/disciplined:
having or exhibiting discipline; rigorous
http://dictionary.reference.com/browse/quantifiable:
to determine, indicate, or express the quantity of.
So, applying software engineering requires the exact execution of method that is precise with quantified steps and exact procedures regarding development, operation and maintenance of software.
or as it is state at the end:
http://dictionary.reference.com/browse/engineering:
the art or science of making practical application of the knowledge of sciences, as computer science, as in the construction of software. (I changed a little bit this definition) =)

Selecting a software development project [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 2 years ago.
Improve this question
I am currently my software engineering degree and as I am in my second year I need to select a topic for my project. I am totally confused on how to pick a good project topic, which I could use in my final year as well.
I have specialization in the following areas, java, vb.net, sql server 2005 as well as artificial intelligence.
I can also manage with designing interfaces for vb.net in flash.
Any help on a good topic which I should select would be greatly appreciated.
The best projects are the ones that you actually want to build. I struggle with this kind of thing myself in my "outside-of-work" projects.
Gauge the amount of time you have to work on it, that will probably limit your possibilities.
Pick something you're passionate about, even if it means learning a few (small) things -- this isn't a good time to learn C# or Ruby, but using learning how to use encryption in VB.NET is probably small enough.
If you can, build something you can use or that someone close to you can use.
An example:
I built a small P2P messaging client for my 3rd year security course which used Public Key encryption to send messages between clients. It wasn't fancy, but it worked and I managed to build it in about 3 weeks. A few of us used the client in class for the remainder of the term.

what is the current use and future of icon programming language [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
While studying different programming languages, I recently hit upon Icon programming language. It seems to have quite cool syntax and functions for string scanning, goal directed execution, generators etc. and it was developed quite a few decades back (1977).
There doesn't seem to be much information available on it regarding the places it is used currently. It doesn't seem to be actively developed or supported also. I was wondering if people really use this language in certain niche areas even today or is the language now primarily of historical interest? Will it have much relevance in future also?
The TIOBE programming language index http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html places it somewhere between 50th and 100th in terms of
the number of skilled engineers world-wide, courses and third party vendors.
If it hasn't gotten any further than that since 1977, I doubt it ever will.
If you're into "cool," complex languages with sophisticated capabilities, Scala may scratch your itch.

Procedural Design documentation strategies [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 5 years ago.
Improve this question
After reading the definition of procedural design (http://en.wikipedia.org/wiki/Design_document) and searching for a few example diagrams, I have been having trouble on finding out more on what procedural design means other than finding this diagram (http://www.kelso.scotborders.sch.uk/departments/computing/resources/mindmaps/Procedural%20program%20design.gif). Typically, when is this type of documentation necessary? Is it when there's a specific algorithm used in the application?
This is most often used when you have a few very similar constructs that are used really often. In a way SQL is a "procedural design" since it limits you to tables and column and a handful of operations which can be applied to the "data model" (= the database).
Code generators thrive in this area since they have a large but simple input and generate a lot of code that would be extremely tedious and error prone to write by hand. In a similar way, you can generate "documentation" for this which is usually a big waste of time since it will be enormous in volume and contain very little information about how the system works.
[EDIT] In computer science the amount of information in a message is the amount of "surprise" you get per bit. So one page of "1'000 feet view" which is tight packed with information, which gives you a compressed introduction how the system is designed and how you can find your way around, is worth more than 1'000 pages of documentation generated from a data model.