Table of Contents |
The process of developing good software is usually not as simple as sitting down and writing some code. True, sometimes a programmer can quickly write a short program to solve a need. But most of the time, the creation of software is a resource-intensive process that often times involves several different groups of people in an organization. For this reason, various software development methodologies exist. The term software development life cycle (SDLC) is used to describe the process steps employed by each methodology to develop and deploy software. The table below lists several of the most utilized methodologies. The methodologies will be covered in detail in a later tutorial.
SDLC Methodology | Description | Pros | Cons |
---|---|---|---|
Rapid Application Development | Process that focuses on quickly building a working model of the software, getting feedback from users |
|
|
Agile | Process that utilizes incremental changes with a focus on quality and attention to detail |
|
|
Lean | Process that focuses on taking an initial idea and developing a multiple minimum viable product (MVP) |
|
|
Cascade | Linear method in which development occurs sequentially through phases |
|
|
Prototyping | Process that seeks to develop multiple prototypes of the software program being developed |
|
|
Regardless of the specific development methodology to be used, the software development life cycle (SLDC) provides the general process steps, or phases, for software developers to follow in the development of software. Each phase is characterized by a specific deliverable that should be developed by the end of the phase. The table below lists the general phases of the software development life cycle.
Software Development Life Cycle Phase | Description |
---|---|
Requirement Analysis |
--In this phase, a review is done of the request. Is creating a solution possible? What alternatives exist? What is currently being done about it? Is this project a good fit for our organization? --A key part of this step is a feasibility analysis, which includes an analysis of the technical feasibility (is it possible to create this?), the economic feasibility (can we afford to do this?), and the legal feasibility (are we allowed to do this?). --This step is important in determining if the project should even get started. --In this phase, one or more system analysts work with different stakeholder groups to determine the specific requirements for the new system. --No programming is done in this step. Instead, procedures are documented, key players are interviewed, and data requirements are developed in order to get an overall picture of exactly what the system is supposed to do. --The result of this phase is a system-requirements document. |
System Design |
--In this phase, a designer takes the system-requirements document created in the previous phase, and develops the specific technical details required for the system. --It is in this phase that the business requirements are translated into specific technical requirements. --This document will have everything a programmer will need to actually create the system. |
Programming |
--The code finally gets written in the programming phase. Using the system-design document as a guide, a programmer (or team of programmers) develops the program. --The result of this phase is an initial working program that meets the requirements laid out in the system-analysis phase and the design developed in the system-design phase. |
Testing |
--In the testing phase, the software program developed in the previous phase is put through a series of structured tests. --The first is a unit test, which tests individual parts of the code for errors or bugs. --Next is a system test, where the different components of the system are tested to ensure that they work together properly. --Finally, the user-acceptance test allows those that will be using the software to test the system to ensure that it meets their standards. --Any bugs, errors, or problems found during testing are addressed and then tested again. |
Deployment |
--Once the new system is developed and tested, it has to be implemented in the organization. --This phase includes training the users, providing documentation, and conversion from any previous system to the new system. --This is typically the final stage of initial development, in which the system in put into production for the organization/user to use. |
Maintenance |
--This phase takes place after deployment. --In this phase, the system has a structured support process in place: reported bugs are fixed and requests for new features are evaluated and implemented; system updates and backups are performed on a regular basis. --This typically involves a continuous evaluation of the software's performance. |
Regardless of which methodology is utilized, the software development life cycle is an incredibly complex process. Various management tools exist to aid in the overall management of the software development process. Listed below are several software development management tools.
Management Tool | Description |
---|---|
MS Project | Project management tool that aids in overall planning of software project, disseminating project resources, and managing budgets and employee workloads. Can also be used to create project budget. |
Visio | Software tool that allows for the creation of charts, diagrams, flowcharts, and network diagrams. Can be used to map out a process. |
Visual Studio | Integrated development environment used for writing computer programs, developing websites, and web applications. Supports a wide array of programming languages such as C, C++, C#, Visual basic.net, etc. |
Zoho Project | Free online project management tool that allows users to plan, collaborate, and track the progress of large projects by breaking them down into smaller tasks. |
Primavera | Software development project management tool that provides users with the ability to collaborate on a development project while also offering control over each defined phase of the project. For example, a project manager can control who has access to certain aspects of a project. Furthermore, Primavera can be easily integrated into a business’s enterprise software/information system, such as Oracle's and SAP's enterprise resource planning system. |
Source: Derived from Chapter 10 of “Information Systems for Business and Beyond” by David T. Bourgeois. Some sections removed for brevity. https://www.saylor.org/site/textbooks/Information%20Systems%20for%20Business%20and%20Beyond/Textbook.html