Software development is the set of activities that results in software products. A computer programmer for a dozen years, Joel has experience with developing very high tech software in a diverse array of computer languages and design patterns.Software development may include research, new development, modification, reuse, re-engineering, maintenance, or any other activities that result in software products. Any activities relating to computers, including hardware, software and communication with or between computers. Determining the requirements for a new computer-based function, and creating, obtaining and/or modifying one or more programs that performs that function.
The important task in creating a software product is extracting the requirements or requirements analysis. Customers typically have an abstract idea of what they want as an end result, but not what software should do. The problems of the software development planet are responsible for most of the project failures that force managements worldwide to put more rigid processes in place to ensure compliance. Incomplete, ambiguous, or even contradictory requirements are recognized by skilled and experienced software engineers at this point. Frequently demonstrating live code may help reduce the risk that the requirements are incorrect. More stringent processes at each stage are making the whole process a “Concrete-Life jacket”.
Domain Analysis is often the first step in attempting to design a new piece of software, whether it be an addition to an existing software, a new application, a new subsystem or a whole new system. Specification is the task of precisely describing the software to be written, possibly in a rigorous way. There are several different approaches to software development, much like the various views of political parties toward governing a country. Assuming that the developers are not sufficiently knowledgeable in the subject area of the new software, the first task is to investigate the so-called domain of the software.
The more knowledgeable they are about the domain already, the less work required. Some take a more structured, engineering-based approach to developing business solutions, whereas others may take a more incremental approach, where software evolves as it is developed piece-by-piece. Another objective of this work is to make the analysts, who will later try to elicit and gather the requirements from the area experts, speak with them in the domain’s own terminology, facilitating a better understanding of what is being said by these experts.
In practice, most successful specifications are written to understand and fine-tune applications that were already well-developed, although safety-critical software systems are often carefully specified prior to application development. These stages are often referred to collectively as the software development lifecycle, or SDLC. Different approaches to software development may carry out these stages in different orders, or devote more or less time to different stages. Specifications are most important for external interfaces that must remain stable. A good way to determine whether the specifications are sufficiently precise is to have a third party review the documents making sure that the requirements and Use Cases are logically sound. The level of detail of the documentation produced at each stage of software development may also vary.
Add your comment below, or trackback from your own site.
Subscribe to these comments.
Be nice. Keep it clean. Stay on topic. No spam.
You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>