Software engineering is the art and science associated with developing, acquiring, and deploying software.
When an organization identifies a need for an information system, a basic decision they must make is whether to develop the software themselves or buy the software from a software manufacturer. Regardless of this decision, the organization will use software engineering practices to help them develop/acquire the software, and then deploy (i.e., install) the software.
Developing software involves the use of a software development process (SDP), also known as a software development life cycle (SDLC). While there are hundreds of SDLCs that an organization may choose to use, most of these combine characteristics associated with the following categorization. (This categorization is based on here, here, and here.)
SDP (aka SDLC) | Description |
Waterfall | This is a sequential process where software is developed by following the phases, which flow steadily downward toward the completion of the software. The ten phases shown below illustrate this downward flow. While the diagram above shows ten phases, a waterfall process may have any number of phases. See Wikipedia for more details. |
Iterative | This is cyclical process where software is developed in small chunks, where each chunk is added to the software thereby increasing its size. At some point, enough functionality has been added to the software to deem the software complete. There are many types of iterative software development processes, including: |
Prototyping | This can be a sequential or iterative process where software is quickly developed into a working model (i.e., prototype) in order to illustrate ideas and/or features and gather early feedback from users. The diagram on the right describes an evolutionary prototyping approach, where the software prototype evolves into the final product. |
Formal | This approach utilizes mathematical notation to describe the requirements, specifications, and design artifacts produced during software development. See Wikipedia for more details on this approach. |
Last updated on Monday, July 30, 2007