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) =)
Related
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 6 years ago.
Improve this question
It is really simple question.
However, really wondering.
I think even we don't software testing,
Program will work.
So, What happens if we don't software testing?
When you are so sure about the your software, why not just wait and see what happens? The simple fact you are asking the question means that you suspect you overlook something, and yes, you are. Testing software is not only about working or not, but concerns the quality of the software, including usability, performance, security, compatibility and so on and what can be improved. Are you sure color-blind people can use your software and your application is free from security vulnerabilities?
The software might work, but you won't know1 it works.
However, history has shown that all software has bugs. Your software will be tested. The question is, do you want your customers to find the bugs, or do you want to find them before the customers do?
1 of course, even with testing you won't know with 100% certainty, but you will certainly know with more than 0% certainty. If you are writing a tic-tac-toe game, a low level of certainty is quite acceptable. If you are writing software for medical equipment, nuclear reactors, or airplanes, your level of certainty needs to be much higher.
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 9 years ago.
Improve this question
I often heard about CryEngine, Unreal Engine, etc., but it is hard to imagine what it is about and why some are more powerful than others.
Can I say it is a high level library?
Can I say it is a high level library ?
I would say no, because game engines are typically more like operating systems than they are libraries.
Fabien Sanglard's code reviews of some famous older games are exceptional, and give some great insight into modern game engines. I especially recommend the Quake source code review; in many ways Carmack's Quake engine is the precursor to almost every current-gen 3D engine:
http://fabiensanglard.net/quakeSource/index.php
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
I'm looking for some guidelines on writing a technical spec. This spec will be given to contract programmers for writing the business logic in an application. There is no user interaction in these applications, only application to application interaction. So far I've only been able to find information on writing specifications based on user input. I was thinking that maybe UML would be useful for this, but I'm not sure.
If anyone could point me in the right direction I would appreciate it. Thanks!
My suggestion is; if you doesn't have a lot of time to spend on this make some input/output sketches of the functions combined with UML flow diagrams. If you have time and some money to spend I can recomend "Object-oriented Modelling and Design with UML" by Michael Blaha and James Rumbaugh. read it and apply it on your requirements but instead of going to implementation leave it to the contract programmers. It is more time upfront but less questions later. Hope it helps.
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.
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.