INTRODUCTION UNIT 1: INTRODUCTION Introduction The SDLC Planning Analysis Design Implementation Rapid Application Development (RAD) Phased Development Prototyping Throwaway Prototyping Agile Development Development Methodologies Extreme Programming Structured Design Waterfall methodology Parallel Development Selecting the appropriate methodology Exercises The systems development life cycle (SDLC) is the process of understanding how an information system (IS) can support business needs, designing the system, building it, and delivering it to users. SDLC PHASES SDLC Phases Planning Analysis Design Implementation PHASE ONE: PLANNING Focus: Why build this system? How to structure the project? Primary Outputs: Steps: • System Request with Feasibility Study. Identify opportunity • Project Plan Analysis feasibility Develop work plan Staff Project Control and direct project PHASE TWO: ANALYSIS Focus: Who, what, where, and when for this system? Primary Outputs: • System proposal Steps: Develop analysis strategy Determine business requirements Create use cases Model processes Model data PHASE THREE: DESIGN Focus: How will system work? Primary Outputs: • System specification Steps: Design physical system Design architecture Design interface Design programs Design database and files PHASE FOUR: IMPLEMENTATION Focus: Delivery and support of completed system Primary Outputs: • Installed system Steps: Construct System Install system Maintain system Post-implementation TRUE OR FALSE System request is a primary output of design ( ) System specification with feasibility study is a primary output of planning ( System proposal is a primary output of analysis ( ) Installed system is a primary output of implementation ( ) ) TRUE OR FALSE System request with feasibility study is a primary output of design ( F ) System specification is a primary output of planning ( F ) System proposal is a primary output of analysis ( T ) Installed system is a primary output of implementation ( T ) UNIT 1: INTRODUCTION Introduction The SDLC Planning Analysis Design Implementation Development Methodologies Structured Design Waterfall methodology Parallel Development Rapid Application Development (RAD) Phased Development Prototyping Throwaway Prototyping Agile Development Extreme Programming Selecting the appropriate methodology Exercises A methodology is a formalized approach to implementing the SDLC (i.e., it is a list of steps and deliverables). The methodology will vary depending on whether the emphasis is on businesses processes or on the data that supports the business Process-centered methodologies focus first on defining the activities associated with the system Data-centered methodologies focus first on defining the contents of the data storage containers and how the contents are organized Object-oriented methodologies attempt to balance the focus between processes and data. Object-oriented methodologies utilize the Unified Modeling Language (UML) to describe the system concept as a collection of objects incorporating both data and processes. EXAMPLE The open-ended rectangles in the diagram represent data storage containers The rounded rectangles in the diagram represent activities performed STRUCTURED DESIGN • Structured design methodologies adopt a formal step-by-step approach to the SDLC that moves logically from one phase to the next • Traditional structured design uses one set of diagrams to represent the processes and a separate set of diagrams to represent data . • This category includes two methodologies waterfall and parallel methodologies. STRUCTURED DESIGN Waterfall Methodology With waterfall development-based methodologies, the analysts and users proceed sequentially from one phase to the next STRUCTURED DESIGN Waterfall Methodology STRUCTURED DESIGN Waterfall Methodology Advantages: System requirements are identified long before programming begins Changes to the requirements are minimized as the project proceeds STRUCTURED DESIGN Waterfall Methodology Disadvantages: The design must be completely specified before programming begins A long time elapses between the completion of the system proposal in the analysis phase and the delivery of the system STRUCTURED DESIGN Parallel Methodology STRUCTURED DESIGN Parallel Methodology This methodology attempts to address the long time interval between the analysis phase and the delivery of the system A general design for the entire system is performed and then the project is divided into a series of distinct subprojects. RAPID APPLICATION DEVELOPMENT (RAD) • RAD-based methodologies adjust the SDLC phases to get some part of the system developed quickly and into the hands of the users. • Most RAD-based methodologies recommend that analysts use computer tools to speed up the analysis, design, and implementation phases, such as CASE (computer-aided software engineering) tools. RAPID APPLICATION DEVELOPMENT (RAD) • One possible subtle problem with RAD-based methodologies is managing user expectations • In this category we will study three different methodologies Phased development, Prototyping development and Throwaway development methodologies RAPID APPLICATION DEVELOPMENT (RAD) Phased Development The phased development-based methodologies break the overall system into a series of versions that are developed sequentially Phased development-based methodologies have the advantage of quickly getting a useful system into the hands of the users The major drawback to phased development is that users begin to work with systems that are intentionally incomplete RAPID APPLICATION DEVELOPMENT (RAD) Phased Development RAPID APPLICATION DEVELOPMENT (RAD) Prototyping Prototyping-based methodologies perform the analysis, design and implementation phases concurrently. All three phases are performed repeatedly in a cycle until the system is completed. A prototype is a smaller version of the system with a minimal amount of features RAPID APPLICATION DEVELOPMENT (RAD) Prototyping RAPID APPLICATION DEVELOPMENT (RAD) Prototyping Advantage: Provides a system for the users to interact with, even if it is not initially ready for use. Disadvantage: Often the prototype undergoes such significant changes that many initial design decisions prove to be poor ones. RAPID APPLICATION DEVELOPMENT (RAD) Throwaway Prototyping Throwaway prototyping methodologies are similar to prototyping based methodologies. The main difference is that throwaway prototyping IS completed during a different point in the SDLC. Has relatively thorough analysis phase. RAPID APPLICATION DEVELOPMENT (RAD) Throwaway Prototyping AGILE DEVELOPMENT • This category focuses on streamlining the SDLC by eliminating much of the modeling and documentation overhead and the time spent on those tasks. • Projects emphasize simple, iterative application development. • This category uses extreme programming, which is described next AGILE DEVELOPMENT Extreme Programming Is founded on four core values: communication, simplicity, feedback, and courage. Key principles of XP include: Continuous testing Simple coding Close interaction with the end users to build systems very quickly AGILE DEVELOPMENT Extreme Programming UNIT 1: INTRODUCTION Introduction The SDLC Planning Analysis Design Implementation Development Methodologies Structured Design Waterfall methodology Parallel Development Rapid Application Development (RAD) Phased Development Prototyping Throwaway Prototyping Agile Development Extreme Programming Selecting the appropriate methodology Exercises Selecting a methodology is not simple, as no one methodology is always best. Many organizations have their own standards. The next figure summarizes some important methodology selection criteria Structured Methodologies Agile RAD Methodologies Methodologies Ability to Develop systems Waterfall Parallel Phased Prototyping Throwaway Prototyping XP With Unclear User Requirements Poor Poor Good Excellent Excellent Excellent With Unfamiliar Technology Poor Poor Good Poor Excellent Poor That are Complex Good Good Good Poor Excellent Poor That are reliable Good Good Good Poor Excellent Good With a short Time Schedule Poor Good Excellent Excellent Good Excellent With Schedule Visibility Poor Poor Excellent excellent Good Good EXERCISES ☺ Suppose you are a project manager using the waterfall development methodology on a large and complex project. Your manager has just read the latest article in Computerworld that advocates replacing the waterfall methodology with prototyping and comes to your office requesting you to switch What do you say? ☺ Think about your ideal analyst position. Write a newspaper ad to hire someone for that position. What requirements would the job have? What skills and experience would be required? How would applicants demonstrate that they have the appropriate skills and experience?