Pages

Software Engineering

    Now a person who has done IA, Ba can also do much efficient coding with a
training of few month. When why do organizations need Engineers for their project ? This is a very important questions which deservs a time to think. Well the answer is quiet simple. Because coding does not make a software project. Coding can only make a program. Any kind of work or any kind of real world project are combinations of may be thousands of such programs. When the scope is beyond a single human mind preception, that is where Engineers are required. So beside coding, an engineer has to know a lot more stuffs like breaking down the giant project into chunks of modules (work breakdown structure), clearly define each chunks and design the combination to rebuild the project, etc. When a project grew very large, may be tens of thousands of lines of code, and with time even the customer requirements and users requirements keep changing. So the project should be modular so that with time if needed, one module can be
replaced with another easily. The Project should be upgradable with the new technologies. And while the upgrading process, it should not disturb the current transactions or customers one bit(example integration of latest version of oracle in NTC which took more than two years). These all things needs to be thought in advanced way while designing a software project or there would be a failure and even the whole company might collapse. There are lots of cases where lots of companies have fallen down due to software failure. Implementing a software costs large sum of money even millions of dollars. But if the usability is not properly considered , the entire project and investment may become of no use. There are also different softwares for the same task where one costs in range of few lakhs while other costs crores of rupees(example hotel software of INFOSYS and some local software). Why is this difference in software cost even if they do the same work.??
Because there is engineering approach involved, lots of parameters like usability, productivity, maintainability and time, upgradability , failure handeling, and lots of parameters are taken into account while designing such software. While the other one might be lacking these things.

Requirement engineering is also a vast topic. it basically  deals with what kind of software is needed. The technology is changing rapidly, and with rapic change of it, customer requirement and aspectations may be changing rapidly and with rapid change of it, customer requirement  and aspections may be changing. So an engineer should have upto date updates of the present technologies and the proper knowledge of similar type of systems being used in different parts of the world. If it takes too much time to integrate a new feature in the software, or the software performance goes down, that project is  a failure. Project should be designed with features like Balanced Core Card, DashBoard etc.


Software Quality Assurance.........
Tn the real project, a software is not randomly released. Quality is a mojor concern in sofrware. Series of inspection, reviws , tests are done to check the quality of software. Each and every case needs to be properly defined and it should have no bugs. All chances of failures and misperformance are properly analysed. Quality control is a separate department in most of the software companies where lots of techniques and cycles of tests are performed  and a report is generated.






References

Mit open sourseware site,
Software Engineering Institute, Carne-gie Mellon University

No comments:

Post a Comment

If you like to say anything (good/bad), Please do not hesitate...