Subscribe by Email

Wednesday, August 11, 2010

Principles of Software Development - an explanation

Software development is the development of a software product in a planned and structured process. This software can serve numerous purposes such being used to meet the specific needs of a client/business, to meet a perceived need of some set of potential users or for personal use. The term software development is often used to refer the activity of writing the computer code whereas in a broad sense it includes all that is involved between the conceptions of the desired software through the final manifestation of the software.
The first and foremost part of a software system is the reason for its existence. It has to be kept in mind that the reason for the existence of a software product is that it provides value to the user. Before even conceptualizing the product it has to be ensured that it should add value to the system.
Software design is not a haphazard process but a simple and systematic approach towards the final product. All design should be as simple as possible but no simpler. Simple designs do not necessarily mean quick and dirty. The designs are developed in a step by step process which takes a lot of thought work and numerous iterations for simplification. An important aspect of a successful software project is presence of clear vision. Without conceptual integrity the software would end up with two or three heads none of them having the virtue to capture client’s satisfaction. Empowering the System Architect lets him uphold the vision and enforce compliance. It has to be kept in mind that whatever you are producing will be used, maintained or documented by others. People will depend on being able to understand your system, so always specify, design and implement keeping in mind that someone else will have to understand what has been done by you. Someone else might have to debug your code and that makes their job easier in turn adding value to your system.
The typical shelf life of a software product has been on a declining trend in recent past. In today’s conditions where specifications change in less than a month’s notice and hardware platforms are outdated in just a few months, software lifetimes are measured in months instead of years. Software products have to be designed to meet these challenges from the start. Always be prepared for the worst case scenario. Reusability saves a lot of time and effort. Attaining high level of reusability is probably the hardest goal to accomplish in developing a software system. Reusability of codes and designs is considered to be major a major benefit of using object-oriented technologies. However it is necessary to convey the opportunities of reusing to others in the organization. Planning ahead for reuse reduces the cost and increases the value of both the reusable components and the systems into which they are incorporated.
The last but definitely not the least principle for software development is applying thought process before taking any action. It sometimes might not help you get the right result but it will help you in doing it the right way the next time around. Applying all the above stated principles require intense thought for which rewards are monstrous.

1 comment:

john said...

As a software development life cycle explained,testing is the one of the main part of coding and analysis and we can not ignore it while making any software.
-online testing

Facebook activity