Systems Development Life Cycle
in BUS 110
System development is the process of planning, creating, testing, deploying and maintaining a business information system. The idea of a system applies to any range of hardware (a physical device used in or with your system; e.g., the hard drive of your computer) or software (any intangible device; e.g., computer programs or procedures that perform some task on a computer system).
Systems Development Life Cycle
A systems development life cycle (SDLC) is composed of a series of distinct and concise work phases that are used by engineers, developers, designers, and other business professionals in order to best plan for, design, build, test, and deliver business information systems. Computer systems can be complex and your business needs often vary widely by circumstance. To manage this level of complexity and diversity, several SDLC methodologies have been created, such as the waterfall method, rapid prototyping, and Agile software development.
To clarify, SDLC is not itself a methodology but rather a high-level description of that would need to be considered in development methodologies. In Scrum, a type of Agile methodology, one could say a single user story (i.e., a specific feature of the system) goes through all the phases of the SDLC within a single two-week sprint. In contrast, the waterfall methodology first collects every business requirement, then translate each requirement into feature/functional requirements which are then all built into one business requirement document (BRD). The requirement is built out in one go as a collection of solution features usually over a period of 6-12 months.
Although these methodologies are quite different approaches to systems development, they both contain common SDLC phases: a requirement is born, then travels through the life cycle phases, ending in the final stage of maintenance, after-which the whole life cycle begins again for later versions of the system or application.
Phases
The SDLC framework is an outline of activities system engineers and developers should follow to ensure the accuracy and validity of a system to the business needs. In all, the SDLC consists of a set of steps or phases in which each phase uses the results of the previous one.
As previously mentioned, a number of SDLC models have been created, including waterfall, fountain, spiral, build and fix, incremental, and rapid prototyping. However, the oldest and best know of these is the waterfall model, a sequence of stages in which the output of each stage becomes input for the next.
Summary:
- Initiation
- Analysis
- Design
- Development
- Integration & Testing
- Acceptance, Installation, & Deployment
- Maintenance
Initiation
When a project is initiated, it is because a business member identified a need or opportunity for the business at large. Before moving ahead with the project, a preliminary analysis is performed:
- Discover the organization’s objectives and the nature and scope of the problem identified.
- Propose alternative solutions: after discovery, several solutions may have been unveiled. However, it is important that alternate proposals are encouraged and come from employees, clients, stakeholders, suppliers, and consultants. You may even gain insight by researching what competitor are doing when facing a similar problem.
- Cost benefit analysis: Analyze and describe the costs and benefits of implementing the proposed changes.
At the end of this phase, your ultimate decision is one whether to leave the current business system as is, improve it, or develop a new system.
Analysis
The systems analysis phase involves defining project goals as functions and operations of the end system. Particularly:
- Collect the facts, that is, obtain the requirements of your customers (i.e., the end users of your system), perform client interviews, observation, and/or questionnaires.
- Scrutinize the existing system. What are its pros and cons?
- Analyze the proposed system by pointing out its shortcomings and finding solutions for those shortcomings.
Design
At this step, describe in detail the desired features and operations. Include screen layouts, sketches, business rules, process diagrams, pseudocode, and other documentation that would help the systems developer in the next phase.
Below is a process diagram (aka a flow chart) for a video game.
An example of pseudocode for a coin-flip simulation game:
Development
This is when real code (i.e., code that is executable or understood by a computer) is written.
Below is a sample of Python code written for a coin-flip simulation game.
Integration & Testing
Here, all the pieces are brought together into a testing environment (such as a private website) where the system is checked for errors, bugs, and interoperability (which asks, “is this new/improved system able to work or fit in well with the other systems?”).
Acceptance, Installation, & Deployment
This is the final stage of initial development. Software is now put into production and performs in actual business transactions.
Maintenance
The system is continuously assessed and evaluated to ensure it does not become obsolete. From here, the business can decide to move the most final stage of development: disposal, the step at which the purpose is now to properly move, archive, discard, or destroy any hardware, software, and sensitive information because the system is no longer needed. Else, the system is maintained for further use.