Computer ScienceChapter 1: Computer Systems
1.4 Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC) is the process of creating a new software or system.
Explanation level
Software Development Life Cycle (SDLC) is the process of creating a new software or system. It provides a structured framework for planning, building, testing, and maintaining software.
Definition
Software Development Life Cycle (SDLC) is the process of creating a new software or system. In other words, these are the models and methodologies that experts use to develop the system. The software development life cycle (SDLC) is the process of planning, writing, modifying, and maintaining software.
Main Idea
In software engineering, the SDLC concept reinforces many kinds of software development techniques. These techniques provide the framework for planning and controlling the creation of software. Developers use the methodology as they design and write modern software for computers, cloud deployment, mobile phones, video games, etc. In IT, the term "life cycle" was first used in the 1950s to describe the stages involved in developing a new computer system. It is now commonly used to refer to all the stages in the production of any type of software.
Core Concept
Different Phases of SDLC The book lists the following phases/steps in SDLC: Defining the Problem Phase1. Planning Phase2. Feasibility Study Phase3. Analysis Phase4. Requirement Engineering Phase5. Design Phase6. Development/Coding Phase7. Testing/Verification Phase8. Deployment/Implementation Phase9. Documentation Phase10. Maintenance/Support Phase11.
Detailed Explanation
1. Defining the Problem Phase In this phase, the problem to be solved or system to be developed is clearly defined. All the requirements are documented and approved from the customer or the company.
This consists of all the product requirements to be designed and developed during the development life cycle. Example (Students' Examination System Development): A Students' Examination System is needed to be developed that covers all the aspects from examination taking to the students' results generation. 2. Planning Phase In the project planning phase, the project's goal is identified. The necessary requirements for product development are assessed. A thorough evaluation of resources, including personnel and costs, is conducted. The gathered information undergoes analysis to explore potential alternative solutions. If no feasible alternatives are found, the data is organized into a comprehensive project plan. The plan is then presented to management for approval. Example: In the Students' Examination System Development project, planning will be made to set the ultimate goals, and an estimate of resources such as personnel and costs is prepared. 3. Feasibility Study Phase Feasibility study is an essential aspect of project planning and decision-making in the SDLC. It involves evaluating various dimensions to determine the viability and practicality of developing a proposed system. Feasibility study is the analysis and evaluation of a proposed system to determine whether it is technically, financially/ economically, legally and operationally feasible within the estimated cost and time. Different feasibility studies: Technical Feasibility: Assesses the practicality of implementing a proposed project from a technological standpoint. Involves evaluating whether the necessary technology (hardware, software), tools and resources are available or can be
developed to support the system. Economic Feasibility: Evaluates the financial viability of a proposed system by comparing its costs and benefits. Operational Feasibility: Assesses the extent to which a proposed system aligns with the organization's operational processes and goals. Legal Feasibility: Evaluates whether a proposed system complies with applicable laws, regulations, and standards. Schedule Feasibility: Assesses whether a system can be completed within a specified timeframe. 4. Analysis Phase During the analysis phase, the project team determines the end-user requirements. Often this is done with the assistance of client focus groups, which provide an explanation of their needs and what their expectations are for the new system and how it will perform. The in-charge of the project team must decide whether the project should go ahead with the available resources or not. Analysis also involves looking at the existing system to see what and how it is doing its job. Questions asked during analysis: Can the proposed software system be developed with the available resources and budget? Will this system significantly improve the organization? Does the existing system even need to be replaced? Example: The Students' Examination System Development project is analyzed for development. The project team will visit the College to study
the existing system and will suggest the possible improvements. 5. Requirement Engineering Phase Requirement Engineering is a crucial phase in the SDLC that focuses on gathering, analyzing, documenting, and managing requirements for the development of the proposed system. This phase lays the foundation for the subsequent stages of development. It ensures that the software meets the needs and expectations of stakeholders (e.g., end users). Requirement engineering consists of the following steps: a. Requirement Gathering: A pivotal stage in the SDLC, aiming to identify and document the needs and expectations of stakeholders. Various techniques are employed for this purpose. Types of requirement gathering: i. Interviews: Involves direct conversations with stakeholders to gather information about their needs, expectations, and preferences. ii. Surveys and Questionnaires: Involves distributing surveys or questionnaires to collect information from a large number of stakeholders. iii. Observation: Involves observing users in their natural work environment to understand how they currently perform tasks and identify areas for improvement. iv. Document Analysis: Includes reviewing existing documentation, reports, and manuals to extract relevant information about the current system
or processes. b. Requirements Validation: Focuses on scrutinizing the gathered requirements to ensure they align with the stakeholders' intentions. This process distinguishes itself from verification, which takes place after requirements have been accepted. During requirements validation, a thorough review is conducted to verify the completeness and accuracy of the elicited requirements. c. Requirements Management: A continual process aimed at guaranteeing that the software consistently fulfills the expectations of both the acquirer and users. It involves the collection of new requirements that may emerge due to evolving expectations, changing regulations, or other sources of modification. 6. Design Phase The design phase in the SDLC is a crucial step where the system architecture is planned and detailed specifications are created based on the requirements gathered during the analysis phase. Unified Modeling Language (UML) and various Design patterns play significant roles in this phase. UML is a standardized visual modeling language widely used in software engineering and system design. It plays a crucial role in the SDLC by providing a common notation that allows developers, analysts, and stakeholders to communicate and visualize the different aspects of a system. Design patterns play a pivotal role in the SDLC by offering reusable solutions, promoting best practices, enhancing communication among team members, and contributing to the creation of maintainable and scalable software systems. The design phase normally consists of two simple structures: Algorithms1. Flowcharts2. a. Algorithms:
Algorithms are precise and systematic procedures designed to guide the step-by-step solution of a problem. They provide a structured and detailed set of instructions for solving a particular problem or performing a specific task. Example (Students' Examination System Development): The following algorithms will find the result of a student using percentage marks. Algorithm to find the Percentage Marks: Start1. Read Total Marks, TM2. Read Obtained Marks, OM3. Percentage Marks (PM) = OM / TM × 1004. Print "Percentage Marks", PM5. End6. Algorithm to find the Student's Result: Start1. Read Percentage Marks, PM2. If PM >= 40 Then Print "Pass" Else Print "Fail"3. End4. b. Flowcharts: A flowchart is a diagrammatic representation used to illustrate an algorithm or a process. It visually presents the sequence of steps in the algorithm through special shapes (symbols) and connects them with arrows to depict their sequence. This graphical representation offers a systematic, step-by-step solution to a specified problem. Some most commonly used flowchart symbols:
Symbol Name Function Oval Terminal Indicates the starting or ending of the program, process, or interrupt program Parallelogram Input/ output Used for any Input/Output (IO) operation. Indicates that the computer is to obtain data or output results Diamond Decision Used to ask a question that can be answered in a binary format (Yes/No, True/False) Rectangle Process Used for Arithmetic operations and data manipulations Arrows Flow Lines Shows direction of flow Circle Connector Used to connect one part of the flowchart to the other 7. Development/Coding Phase In the development/coding phase, developers translate the plans formulated in the design phase into actions. They develop the database structures, design codes for the data flow processes, and design the tangible user interface screens. This stage involves the preparation and iterative processing of test data to enhance the precision and efficiency of the written code. The actual coding is carried out using programming languages, a process commonly referred to as computer programming. Example: In the Students' Examination System development project, developers create the database structure, specifying how the system will store and retrieve exam-related data. They write code for the flow of information within the system, ensuring seamless processes from
question generation to result compilation. Additionally, user interface screens are precisely designed to provide a user-friendly environment for students, faculty, and administrators interacting with the examination system. Throughout this phase, rigorous testing using prepared test data is performed to identify and rectify any issues, contributing to the creation of a robust and efficient examination system. 8. Testing/Verification Phase In the testing/verification phase, all aspects of the system are tested for functionality and performance. Testing involves the execution of programming modules to detect errors, commonly known as bugs. The primary goal of testing is to assess specific attributes or capabilities of a program or system, ensuring that they are aligned with the required specifications. It involves checking items for consistency by comparing results against predetermined requirements. Software testers employ various techniques, including black box and white box testing, to identify and eliminate all identified bugs or errors before the final product is released. The process of error identification and removal is referred to as debugging. Black Box Testing: A software testing method where the internal workings or logic of a system are not known to the tester . The focus is on evaluating the system's outputs based on specified inputs without considering its internal code structure. White Box Testing: A testing approach where the tester has knowledge of the internal code, logic, and architecture of the system being tested. It involves evaluating the system's internal structures, code paths, and overall code quality. 9. Deployment/Implementation Phase The Deployment/Implementation Phase involves a series of activities aimed at making the software/system accessible for use. During this phase, the finalized software is handed over to users, making the transition from development to utilization. Main activities involved during deployment/implementation phase:
Installation and activation of the hardware and software. In some cases, the users and the computer operation personals are trained on the developed software system. Conversion: The process of changing from the old system to the new one is called conversion. Deployment/Implementation Methods: i. Direct: In this method, the old system is entirely replaced by the new system simultaneously. The transition is abrupt, and once implemented, the old system becomes obsolete. ii. Parallel: The parallel method involves running both the old and new systems concurrently for a certain period. This approach allows for the identification and rectification of major issues with the new system without risking data loss. iii. Phased: The phased implementation method facilitates a gradual transition from the old system to the new one. It involves the incremental introduction of the new system while progressively phasing out the old system. iv. Pilot: In the Pilot method, the new system is initially deployed for a small user group. These users engage with, assess, and provide feedback on the new system. Once the system is deemed satisfactory, it is then rolled out for use by all users. 10. Documentation Phase In SDLC, developing good user documentation is an important part of the implementation process. Documentation serves as a method of communication among the people responsible for developing, implementing, and maintaining the newly developed system. Installing and operating a newly designed system or modifying an established application requires a detailed record of that
system's design. Documentation is extremely important in diagnosing errors and making changes, especially if the systems analysts who developed a system are no longer with the organization. 11. Maintenance/Support Phase In SDLC, the system maintenance is an ongoing process. The system is monitored continually for performance in accordance with user requirements and needed system modifications are incorporated. When modifications are identified, the system may re-enter the planning phase. This process continues until a complete solution is provided to the customer . Maintenance can either be repairing or modification or some enhancement in the existing system.
Important Points
- SDLC is the process of creating a new software or system.
- It is the process of planning, writing, modifying, and maintaining software.
- The term "life cycle" was first used in the 1950s in IT.
- The 11 phases of SDLC are: Defining the Problem, Planning, Feasibility Study, Analysis, Requirement Engineering, Design,
- Development/Coding, Testing/Verification, Deployment/Implementation, Documentation, and Maintenance/Support.
- Feasibility study includes technical, economic, operational, legal, and schedule feasibility.
- Requirement engineering consists of requirement gathering, requirements validation, and requirements management.
- Requirement gathering techniques include interviews, surveys and questionnaires, observation, and document analysis.
- The design phase consists of two structures: algorithms and flowcharts.
- Testing involves black box testing and white box testing.
- The process of error identification and removal is called debugging.
- Deployment/implementation methods are: Direct, Parallel, Phased, and Pilot.
- Maintenance can be repairing, modification, or enhancement.
Remember
- SDLC = process of creating new software or system.
- 11 phases in order: Defining the Problem Planning Feasibility Study Analysis Requirement Engineering Design
- Development/Coding Testing/Verification Deployment/Implementation Documentation Maintenance/Support.
- Feasibility types: Technical, Economic, Operational, Legal, Schedule.
- Requirement engineering steps: Gathering, Validation, Management.
- Requirement gathering techniques: Interviews, Surveys/Questionnaires, Observation, Document Analysis.
- Design structures: Algorithms, Flowcharts.
- Testing types: Black box, White box.
- Debugging = error identification and removal.
- Deployment methods: Direct, Parallel, Phased, Pilot.
- Maintenance types: Repairing, Modification, Enhancement.
Common Mistakes
- Confusing black box testing (no knowledge of internal code) with white box testing (tester has knowledge of internal code).
- Mixing up the order of SDLC phases. The order is: Defining the Problem Planning Feasibility Study Analysis
- Requirement Engineering Design Development/Coding Testing/Verification Deployment/Implementation
- Documentation Maintenance/Support.
- Forgetting that the feasibility study includes five types: technical, economic, operational, legal, and schedule.
- Confusing requirements validation with verification. Validation checks alignment with stakeholder intentions; verification
- takes place after requirements have been accepted.
- Thinking maintenance is only about fixing errors. It also includes modification and enhancement.
- Confusing the four deployment methods: Direct (abrupt replacement), Parallel (both systems run together), Phased (gradual
- transition), Pilot (small user group first).
- Forgetting that the design phase includes both algorithms and flowcharts.
- Mixing up UML (Unified Modeling Language) with design patterns. UML is a visual modeling language; design patterns are
- reusable solutions.
- Thinking documentation is optional. It is extremely important for diagnosing errors and making changes.
Quick Revision
Software Development Life Cycle (SDLC) is the process of creating a new software or system. It is the process of planning, writing, modifying, and maintaining software. In IT, the term "life cycle" was first used in the 1950s. The book lists eleven phases in SDLC: Defining the Problem, Planning, Feasibility Study, Analysis, Requirement Engineering, Design, Development/Coding, Testing/ Verification, Deployment/Implementation, Documentation, and Maintenance/Support. The feasibility study evaluates technical, economic, operational, legal, and schedule feasibility. Requirement engineering consists of requirement gathering, requirements validation, and requirements management. Requirement gathering techniques include interviews, surveys and questionnaires, observation, and document analysis. The design phase consists of algorithms and flowcharts. Testing involves black box and white box testing, and the process of error identification and removal is called debugging. Deployment/implementation methods are Direct, Parallel, Phased, and Pilot. Maintenance can be repairing, modification, or enhancement.
60-Second Revision
SDLC = process of creating new software or system; planning, writing, modifying, maintaining. 11 phases: Problem Planning Feasibility Analysis Requirements Design Development Testing Deployment Documentation Maintenance. Feasibility: Technical, Economic, Operational, Legal, Schedule. Requirements: Gathering, Validation, Management.
Design: Algorithms, Flowcharts. Testing: Black Box, White Box; Debugging = error removal. Deployment: Direct, Parallel, Phased, Pilot. Warning: do not confuse black box with white box testing.
Did you understand this topic?
Your answer is saved with your learning record. It does not mark the topic as mastered.
Quick revision
Revision Zone
Review the key facts, formulas and checks before you move on.1.4 Software Development Life Cycle (SDLC)
Sticky Notes · Quick Revision
Key Point 1
- SDLC = planning, writing, modifying, maintaining software.
Key Point 2
- 11 phases: Problem Planning Feasibility Analysis Requirements Design Development Testing Deployment
Key Point 3
- Documentation Maintenance.
Key Point 4
- Feasibility = Technical + Economic + Operational + Legal + Schedule.
Key Point 5
- Requirement Engineering = Gathering + Validation + Management.
Key Point 6
- Gathering techniques = Interviews + Surveys + Observation + Document Analysis.
Key Point 7
- Design = Algorithms + Flowcharts.
Key Point 8
- Testing = Black Box + White Box. Debugging = error removal.
Key Point 9
- Deployment = Direct + Parallel + Phased + Pilot.
Key Point 10
- Maintenance = Repairing + Modification + Enhancement.
Key Point 11
- "Life cycle" first used in 1950s.
Same supplied content as this Notes page (shared canonical source).