Chapter 2: System Development Life Cycle (SDLC) PDF
Document Details
Uploaded by InvincibleCthulhu5253
Helwan University
Aya Mohamed Ahmed Mostafa
Tags
Summary
This document details the System Development Life Cycle (SDLC) and its four phases: planning, analysis, design, and implementation. It also covers various systems development methodologies relevant to implementing SDLC. The document is presented in two parts. More information is provided regarding different methodologies like Structured Design, Rapid Application Development (RAD), and Agile Development.
Full Transcript
# Chapter (2) System Development Life Cycle (SDLC) ## Part 1 **Presented By** Aya Mohamed Ahmed Mostafa ## Introduction - **System Development Life Cycle (SDLC)** - Planning - Analysis - Design - Implementation - **Selecting the Appropriate Development Methodology** - **...
# Chapter (2) System Development Life Cycle (SDLC) ## Part 1 **Presented By** Aya Mohamed Ahmed Mostafa ## Introduction - **System Development Life Cycle (SDLC)** - Planning - Analysis - Design - Implementation - **Selecting the Appropriate Development Methodology** - **Systems Development Methodologies** - Structured Design - Rapid Application Development (RAD) - Agile Development ## System Development Life Cycle (SDLC) - Basic Framework = IS Development Process - **The process of determining ...How (IS)** - Support business needs - Design the system - Build the system - Deliver the system to users. ## System Development Life Cycle (SDLC) - The fundamental four-stage **System Development Life Cycle (Planning, Analysis, Design, and Implementation)** - The **System Development Life Cycle** is the **Basic Framework** for the **IS development process**. - The **System Development Life Cycle (SDLC)** is the process of determining how an information system (IS) can support business needs, designing the system, building it, and delivering it to users. ## System Development Life Cycle (SDLC) - **PLANNING** - Fundamental Process - **Understanding Why?** - (IS) should be Built - **Determining how?** - Project Team ... Building - Members / Task / Time ## System Development Life Cycle (SDLC) - **1. Planning** - The **Planning** phase is the **Fundamental Process** of understanding why an information system (IS) should be built and determining how the project team will go about building it. - It has two steps: ## System Development Life Cycle (SDLC) - **Places** - **Persons** - **Time** - **Process** - **Project Team** - **Who will use the system?** - **What the system will do?** - **Where and when it will be used?** - **Investigates any current system(s)** - **Identifies improvement opportunities** - **Develops a concept for the new system.** ## Analysis - **2. Analysis** - The **Analysis** phase answers the questions of who will use the system, what the system will do, and where and when it will be used. - During this phase, the project team investigates any current system(s), identifies improvement opportunities, and develops a concept for the new system. - This phase has three steps: ## System Development Life Cycle (SDLC) - **DESIGN** - **How the System will Operate?** - **Hardware** - **Software (OS +Applications)** - Java - P - W - Gmail - Windows 7 - McAfee - **Mobile app User Interface Design** - **UI - Forms** - **Network** - **Database - Files** - **Reports** ## System Development Life Cycle (SDLC) - **DESIGN** - **How the System will Operate?** - **Strategic Decisions** - Development of the system concept - Analysis Phase - **Notes** ## System Development Life Cycle (SDLC) - **3. Design** - The design phase decides **How the System will Operate** in terms of the **Hardware, Software**, and **Network** infrastructure that will be in place; the **User Interface, Forms**, and **Reports** that will be used; and the specific **Programs, Databases, and Files** that will be needed. - Although most of the **Strategic Decisions** about the system are made in the development of the system concept during the analysis phase, the steps in the design phase determine exactly **How the System will Operate**. - The design phase has four steps: ## System Development Life Cycle (SDLC) - **4. Implementation** - The **Final Phase** - **Built / Purchased** - The **Most Attention** - The **Longest** - The **Most Expensive**  ## System Development Life Cycle (SDLC) - **4. Implementation** -The **Final** phase in the SDLC is the **Implementation** phase, during which the system is actually **built** (or **purchased**, in the case of a packaged software design and installed). - This is the phase that usually gets the **Most Attention**, because for most systems it is the **Longest** and **Most Expensive** single part of the development process. - This phase has three steps: ## Systems Development Methodologies - **Methodology Concept** - **Formalized Approach** - **Helped** ...Implementing the SDLC - **List** (Steps - Deliverables) - **Many Methodologies Based On** - **Order** - **Focus** - Each SDLC Phase - **Some Methodologies** - **Formal Standards** - **Developed by Consulting Companies to sell to clients.** ## Systems Development Methodologies - **Many Organization** - **Internal Methodology** - **How each Phase of the SDLC is to be Performed** - **Many Methodologies Categorize** - **Focus on Business Processes** - **Data that support the business.** - **Process-Centered Methodology** - A emphasizes **Process Models.** ## Systems Development Methodologies - **Methodology** is a **formalized approach to implementing the SDLC** (i.e., it is a **list of steps and deliverables**) - There are **Many** different systems development **Methodologies**, and each one is unique, based on the **Order** and **Focus** it places on **Each SDLC phase**. - **Some Methodologies** are **Formal Standards** used by government agencies, whereas others have been **developed by Consulting Firms to sell to clients.** ## Systems Development Methodologies - Many organizations have **internal Methodologies** that have been honed over the years, and they explain exactly **how** each phase of the SDLC is to be performed in that company. - There are **many ways to categorize Methodologies**. - One way is by looking at whether they **focus** on **Business Processes or the Data** that **support the business**. - A process-centered **Methodology emphasizes Process Models as the core of the system concept**. ## Chapter (2) System Development Life Cycle (SDLC) ## Part 2 **Presented By** Aya Mohamed Ahmed Mostafa ## Introduction - **System Development Life Cycle (SDLC)** - Planning - Analysis - Design - Implementation - **Selecting the Appropriate Development Methodology** - **Systems Development Methodologies** - Structured Design - Rapid Application Development (RAD) - Agile Development ## System Development Life Cycle (SDLC) - Idea - **Planning** - Planning - Analysis - Design - Implementation - **System Success** - Basic Framework = IS Development Process - **The process of determining ...How (IS)** - Support business needs - Design the system - Build the system - Deliver the system to users. ## System Development Life Cycle (SDLC) - The fundamental four-stage **System Development Life Cycle (Planning, Analysis, Design, and Implementation)** ## System Development Life Cycle (SDLC) - **The System Development Life Cycle** is the **Basic Framework** for the **IS development process**. - The **System Development Life Cycle (SDLC)** is the process of determining how an information system (IS) can support business needs, designing the system, building it, and delivering it to users. ## System Development Life Cycle (SDLC) - **PLANNING** - Fundamental Process - **Understanding Why?** - (IS) should be Built - **Determining how?** - Project Team ... Building - Members / Task / Time ## System Development Life Cycle (SDLC) - **Places** - **Persons** - **Time** - **Process** - **Project Team** - **Who will use the system?** - **What the system will do?** - **Where and when it will be used?** - **Investigates any current system(s)** - **Identifies improvement opportunities** - **Develops a concept for the new system.** ## System Development Life Cycle (SDLC) - **1. Planning** - The **Planning** phase is the **Fundamental Process** of understanding why an information system (IS) should be built and determining how the project team will go about building it. - It has two steps: ## System Development Life Cycle (SDLC) - **2. Analysis** - The **Analysis** phase answers the questions of who will use the system, what the system will do, and where and when it will be used. - During this phase, the project team investigates any current system(s), identifies improvement opportunities, and develops a concept for the new system. - This phase has three steps: ## System Development Life Cycle (SDLC) - **DESIGN** - **How the System will Operate?** - **Hardware** - **Software (OS +Applications)** - Java - P - W - Gmail - Windows 7 - McAfee - **Mobile app User Interface Design** - **UI - Forms** - **Network** - **Database - Files** - **Reports** ## System Development Life Cycle (SDLC) - **DESIGN** - **How the System will Operate?** - **Strategic Decisions** - Development of the system concept - Analysis Phase - **Notes** ## System Development Life Cycle (SDLC) - **3. Design** - The design phase decides **How the System will Operate** in terms of the **Hardware, Software**, and **Network** infrastructure that will be in place; the **User Interface, Forms**, and **Reports** that will be used; and the specific **Programs, Databases, and Files** that will be needed. - Although most of the **Strategic Decisions** about the system are made in the development of the system concept during the analysis phase, the steps in the design phase determine exactly **How the System will Operate**. - The design phase has four steps: ## System Development Life Cycle (SDLC) - **4. Implementation** - The **Final Phase** - **Built / Purchased** - The **Most Attention** - The **Longest** - The **Most Expensive** ## System Development Life Cycle (SDLC) - **4. Implementation** -The **Final** phase in the SDLC is the **Implementation** phase, during which the system is actually **built** (or **purchased**, in the case of a packaged software design and installed). - This is the phase that usually gets the **Most Attention**, because for most systems it is the **Longest** and **Most Expensive** single part of the development process. - This phase has three steps: ## Systems Development Methodologies - **Methodology Concept** - **Formalized Approach** - **Helped** ...Implementing the SDLC - **List** (Steps - Deliverables) - **Many Methodologies Based On** - **Order** - **Focus** - Each SDLC Phase - **Some Methodologies** - **Formal Standards** - **Developed by Consulting Companies to sell to clients.** ## Systems Development Methodologies - **Many Organization** - **Internal Methodology** - **How each Phase of the SDLC is to be Performed** - **Many Methodologies Categorize** - **Focus on Business Processes** - **Data that support the business.** - **Process-Centered Methodology** - A emphasizes **Process Models.** ## Systems Development Methodologies - **Methodology** is a **formalized approach to implementing the SDLC** (i.e., it is a **list of steps and deliverables**) - There are **Many** different systems development **Methodologies**, and each one is unique, based on the **Order** and **Focus** it places on **Each SDLC phase**. - **Some Methodologies** are **Formal Standards** used by government agencies, whereas others have been **developed by Consulting Firms to sell to clients.** ## Systems Development Methodologies - Many organizations have **internal Methodologies** that have been honed over the years, and they explain exactly **how** each phase of the SDLC is to be performed in that company. - There are **many ways to categorize Methodologies**. - One way is by looking at whether they **focus** on **Business Processes or the Data** that **support the business**. - A process-centered **Methodology emphasizes Process Models as the core of the system concept**. ## Part 3 **Presented By** Aya Mohamed Ahmed Mostafa ## Introduction - **System Development Life Cycle (SDLC)** - Planning - Analysis - Design - Implementation - **Selecting the Appropriate Development Methodology** - **Systems Development Methodologies** - Agile - Extreme Programming (XP) - Waterfall - Parallel - Rapid Application Development (RAD) - Phased - Prototype ## Agile Development - **Programming-Centric** - Have Few Rules - Have Few Practices - Easy to Follow. - **Streamlining (SDLC)** - Eliminating Modeling Overhead - Eliminating Documentation Overhead - Eliminating Time Spent On Those Tasks. ## Agile Development - **Examples of Agile Development** - Extreme Programming (XP) - Scrum - Dynamic Systems Development Method (DSDM) - **Agile Development** - is used in conjunction with object-oriented methodologies. ## Waterfall Development - **Advantages** - **Requirements** - Minimize changes - Identify long before programming begins - **Disadvantages** - **Very Long Time** - **Poor Communication** - **Documentation (hundreds of pages)** - important requirements can be overlooked ## Waterfall Development - **Advantages** - It identifies system requirements long before programming begins. - It minimizes changes to the requirements as the project proceeds. - **Disadvantages** - Lengthy deliverables often result in Poor Communication. - The result is that important requirements can be overlooked in the voluminous documentation. - **Each phase is typically very long Time can be hundreds of pages.** ## Parallel Development - **Perform a General Design for the Whole System** - **Divide the Project into a Series of Distinct Subprojects that can be Designed and Implemented in Parallel** ## Parallel Development - **Reduce the scheduled time**   - **The Delivery** - **Address the problem of long Time** ## Parallel Development - **Disadvantages** - **Paper Documents** - Subprojects may not be completely independent. - Design Decisions made in one subproject may affect another. - Project End may require significant integration efforts. ## Parallel Development - **Parallel Development** methodology attempts to **address the** **problem of long delays** between the **analysis phase and the delivery of the system**. - The primary advantage of **Parallel Development** methodology is that it can **reduce the scheduled time to deliver a system.** - Instead of doing design and implementation in sequence, **Parallel Development** performs a general design for the whole system and then divides the project into a series of distinct subprojects that can be designed and implemented in parallel. - Once all subprojects are complete, there is a final integration of the separate pieces, and the system is delivered. ## Parallel Development - The approach still **suffers** from problems caused by **paper documents**. - The **subprojects** are **not completely independent**: design decisions made in one subproject may affect another, and the **end of the project may require** significant integration efforts. ## Rapid Application Development (RAD) - **Analysts** - **Special Techniques** - **Computer Tools** - **Joint Application Design (JAD) sessions** ## Rapid Application Development (RAD) - **Diagram/Programs** - **Start** - **Turn on kettle** - **Wait for kettle to boil** - **Water boiled?** - Yes: **Pour water on teabag in cup** - No: **Wait** - **Wait 2-3 min** - **Add milk and sugar** - **Stop** ## Rapid Application Development (RAD) - **Disadvantages** - **Manage User Expectations** - User Expectations of what is possible may dramatically change ## Rapid Application Development (RAD) - **Most Rapid Application Development (RAD)** -based methodologies **recommend** that **Analysts use Special Techniques and Computer Tools** to speed up the **Analysis, Design**, and **Implementation** phases - **such as CASE tools**, and **joint application design (JAD) sessions**. - The combination of the changed SDLC phases and the use of these tools and techniques **improves the speed and quality of systems development.** - There is one possible subtle **problem** with RAD-based methodologies: **managing user expectations.** - Due to the use of tools and techniques that can improve the speed and quality of systems development, **user expectations of what is possible may dramatically change** ## Phased Development ## Phased Development - **Phased Development**-based methodology **breaks an Overall System into a Series of Versions**, which are developed **Sequentially**. - The **Analysis** phase **identifies** the overall system concept, and the project team, users, and system sponsor then **categorize** the requirements into a **Series of Versions**. - The **most important and fundamental requirements** are bundled into the **first version** of the system. ## Prototyping ## Selecting The Appropriate Development Methodology - **Clarity of User Requirements** - **Interact With Technology** - **Familiarity with Technology** - **Lack Familiarity with Technology** - **System Complexity** - **System Reliability** - **Short Time Schedules** - **Schedule Visibility** ## Selecting The Appropriate Development Methodology - **System Complexity** Complex systems require careful and detailed analysis and design. Throwaway prototyping-based methodologies are particularly well suited to such detailed analysis and design, as opposed to prototyping-based methodologies, which are not. The traditional structured design-based methodologies can handle complex systems, but with- out the ability to get the system or prototypes into the users' hands early on, some key issues may be overlooked. Although phased development-based methodologies enable users to interact with the system early in the process, we have observed that project teams who follow these tend to devote less attention to the analysis of the complete problem domain than they might using other methodologies. ## Selecting The Appropriate Development Methodology - **Short Time Schedules** Projects that have short time schedules are well suited for RAD- based methodologies. This is due to them being designed to increase the speed of development. Prototyping and phased development-based methodologies are excellent choices when timelines are short because they best enable the project team to adjust the functionality in the system based on a specific delivery date, and if the project schedule starts to slip, it can be readjusted by removing functionality from the version or prototype under development. Waterfall-based methodologies are the worst choice when time is at a premium because they do not allow for easy schedule changes. - **Schedule Visibility** One of the greatest challenges in systems development is determining whether a project is on schedule. This is particularly true of the structured design methodologies because design and implementation occur at the end of the project. The RAD-based methodologies move many of the critical design decisions earlier in the project to help project managers recognize and address risk factors and keep expectations in check. ## Part 4 **Presented By** Aya Mohamed Ahmed Mostafa ## Introduction - **System Development Life Cycle (SDLC)** - Planning - Analysis - Design - Implementation - **Selecting the Appropriate Development Methodology** - **Systems Development Methodologies** - Agile - Extreme Programming (XP) - Waterfall - Parallel - Rapid Application Development (RAD) - Phased - Prototype ## Selecting The Appropriate Development Methodology - **Clarity of User Requirements** - **Interact With Technology** - **Familiarity with Technology** - **Lack Familiarity with Technology** - **System Complexity** - **System Reliability** - **Short Time Schedules** - **Schedule Visibility** ## Selecting The Appropriate Development Methodology - **Short Time Schedules** - **Excellent Choices** - RAD-based methodologies. - Increase the speed of development - **Excellent Choices** - Prototyping and Phased development-based methodologies - **Worst Choice** - Waterfall-based methodologies. - When time is at a premium because they do not allow for easy schedule changes. ## Selecting The Appropriate Development Methodology - **Complex Systems** - **Prototyping-based methodologies** - Are well suited - **The Traditional structured design-based methodologies** - Can handle complex systems - But without the ability to get the prototypes into the users' hands early on - Some key issues may be overlooked. - **Phased development-based methodologies enable users to interact with the system early in the process** ## Selecting The Appropriate Development Methodology - **Schedule Visibility** - **Structured methodologies** - True - **The RAD-based methodologies move many of the Critical Design Decisions earlier in the project** - Help project managers recognize and address risk factors and keep expectations in check. ## Selecting The Appropriate Development Methodology - **Clarity of User Requirements** - When the user requirements for a system are unclear - It is difficult to understand them by talking about them. - Prototyping-based RAD methodologies are usually more appropriate when user requirements are unclear because they provide prototypes for users to interact with early in the SDLC. ## Selecting The Appropriate Development Methodology - **System Reliability** - Prototyping methodologies are generally not a good choice when reliability is critical - Because it lacks the careful analysis and design phases that are essential for dependable systems. ## Selecting The Appropriate Development Methodology 1. **Clarity of User Requirements** When the user requirements for a system are unclear, it is difficult to understand them by talking about them and explaining them with written reports. 2. **Users** normally need to **Interact with Technology** to really understand what a new system can do and how to best apply it to their needs. Prototyping- and throwaway prototyping-based RAD methodologies are usually more appropriate when user requirements are unclear because they provide prototypes for users to interact with early in the SDLC. 3. **Familiarity with Technology** When the system will use new technology with which the analysts and programmers are not familiar (e.g., the first Web development project with Java), early application of the new technology in the methodology will improve the chance of success. If the system is designed without some familiarity with the base technology, risks increase because the tools might not be capable of doing what is needed. ## Selecting The Appropriate Development Methodology 4. Throwaway prototyping-based methodologies are particularly appropriate if users **Lack Familiarity with Technology** because they explicitly encourage the developers to develop design prototypes for areas with high risks. Phased development-based methodologies are good as well, because they create opportunities to investigate the technology in some depth before the design is complete. 5. **System Complexity** Complex systems require careful and detailed analysis and design. Throwaway prototyping-based methodologies are particularly well suited to such detailed analysis and design, as opposed to prototyping-based methodologies, which are not. The traditional structured design-based methodologies can handle complex systems, but with- out the ability to get the system or prototypes into the users' hands early on, some key issues may be overlooked. Although phased development-based methodologies enable users to interact with the system early in the process, we have observed that project teams who follow these tend to devote less attention to the analysis of the complete problem domain than they might using other methodologies. ## Selecting The Appropriate Development Methodology 6. **System Reliability** System reliability is usually an important factor in system development after all, who wants an unreliable system? However, reliability is just one factor among several. For some applications reliability is truly critical (e.g., medical equipment, missile control systems), whereas for other applications (e.g., games, Internet video) it is merely important. Throwaway prototyping methodologies are the most appropriate when system 7. **Short Time Schedules** Projects that have short time schedules are well suited for RAD- based methodologies. This is due to them being designed to increase the speed of development. Prototyping and phased development-based methodologies are excellent choices when timelines are short because they best enable the project team to adjust the functionality in the system based on a specific delivery date, and if the project schedule starts to slip, it can be readjusted by removing functionality from the version or prototype under development. Waterfall-based methodologies are the worst choice when time is at a premium because they do not allow for easy schedule changes. 8. **Schedule Visibility** One of the greatest challenges in systems development is determining whether a project is on schedule. This is particularly true of the structured design methodologies because design and implementation occur at the end of the project. The RAD-based methodologies move many of the critical design decisions earlier in the project to help project managers recognize and address risk factors and keep expectations in check.