Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 1: Introduction to Systems Analysis and Design Alan Dennis, Barbara Wixom, and David Tegarden © 2005 John Wiley & Sons, Inc. Slide 1 INTRODUCTION Chapter 1 Slide 2 Slide 3 Introduction 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. Slide 4 Key Ideas Many failed systems were abandoned because analysts tried to build wonderful systems without understanding the organization. The primarily goal is to create value for the organization. Slide 5 Key Ideas The systems analyst is a key person analyzing the business, identifying opportunities for improvement, and designing information systems to implement these ideas. It is important to understand and develop through practice the skills needed to successfully design and implement new information systems. Slide 6 Key Ideas In many ways, building an information system is similar to building a house: • • • • First, the house starts with a basic idea. Second, this idea is transformed into a simple drawing that is shown to the customer and refined until the customer agrees that the picture depicts what he or she wants. Third, a set of blueprints is designed that presents much more detailed information about the house (e.g., the type of water faucets, where the telephone jacks will be placed). Finally, the house is built following the blueprints—and often with some changes directed by the customer as the house is erected. Slide 7 THE SYSTEMS DEVELOPMENT LIFE CYCLE Slide 8 Project Phases Planning Why build the system? Analysis Who, what, when, where will the system be? Design How will the system work? Implementation System delivery Slide 9 A “Simple” Process for Making Lunch Slide 10 Planning Identifying business value Analyze feasibility Develop work plan Staff the project Slide 11 Analysis Analysis Information gathering Process modeling Data modeling Slide 12 Design Physical design Architectural design Interface design Database and file design Program design Slide 13 Implementation Construction Installation Slide 14 Processes and Deliverables Process Planning Project Plan Analysis System Proposal Design Implementation Slide 15 Product System Specification New System and Maintenance Plan SYSTEM DEVELOPMENT Methodologies Slide 16 What Is a Methodology? A formalized approach or series of steps to implementing the SDLC. Writing code without a wellthought-out system request may work for small programs, but rarely works for large ones. Slide 17 Structured Design Dominant in the 1980s. Projects move methodically from one to the next step Generally, a step is finished before the next one begins Slide 18 Waterfall Development Method Slide 19 Waterfall Development Method The key deliverables for each phase are typically very long. Project sponsor have to approve phase before move to next phase Two key advantages 1- identifies system requirements long before programming begins 2- it minimize changes to the requirements as the project proceeds Two disadvantages 1- design must be completely specified before programming begins 2- a long time elapses between the completion of the system proposal in system analysis phase and the delivery of the system (usually months or years) Slide 20 Parallel Development Slide 21 Parallel Development Parallel development attempts to address the problem of long delays between the analysis phase and the delivery of the system Perform general design Divides the project of subproject Once all subprojects are complete Integration of the separate pieces Slide 22 Parallel Development Advantages Reduce schedule time to deliver the system. Thus, less chance of changes in the business environment causing rework. Disadvantages Sometimes the subprojects are not completely independent, and end of the project may require significant integration efforts. Slide 23 Alternatives to the SDLC RAD-based methodologies attempt to address both weaknesses of structured design methodologies by adjusting the SDLC phases to get some part of the system developed quickly and into the hands of the users. So, the users can better understand the system and suggest revisions that bring the system closer to what is needed. Slide 24 Alternatives to the SDLC Rapid Application Development (RAD) Phased Development Prototyping Throw-Away Prototyping Slide 25 Phased Development Slide 26 Phased Development A phased development–based methodology breaks the overall system into a series of versions that are developed sequentially. Perform general analysis. Once version 1 is implemented, work begins on version 2. This process continues until the system is complete. Phased development–based methodologies have the advantage of quickly getting a useful system into the hands of the users. Slide 27 How Prototyping Works Slide 28 Prototyping A prototyping-based methodology performs the analysis, design, and implementation phases concurrently, and all three phases are performed repeatedly in a cycle until the system is completed. The first prototype is usually the first part of the system that The key advantage of a prototyping is that it very quickly provides a system for the users to interact with. Slide 29 Throwaway Prototyping Slide 30 Throwaway Prototyping Throwaway prototyping-based methodologies are similar to prototyping-based methodologies in that they include the development of prototypes; however throwaway prototypes are done at a different point in the SDLC. A design prototype is not a working system. The key advantage is that each of the prototypes is used to minimize the risk associated with the system by confirming that important issues are understood before the real system is built. Slide 31 Selecting the Appropriate Methodology Clarity of User Requirements Familiarity with Technology System Complexity System Reliability Short Time Schedules Schedule Visibility Slide 32 Criteria for Selecting a Methodology Slide 33 Project Team Roles and Skills Slide 34 Information Systems Roles Business analyst System analyst Infrastructure analyst Change management analyst Project manager Slide 35 Project Team Roles Slide 36 EXERCISES 1) Suppose you were an analyst working for a small company to develop an accounting system. What type of methodology would you use? Why? 2) Suppose you were an analyst developing a new executive information system intended to provide key strategic information from existing corporate databases to senior executives to help in their decision making. What type of methodology would you use? Why? Slide 37 Summary -- Part 1 The Systems Development Lifecycle consists of four stages: Planning, Analysis, Design, and Implementation The major development methodologies: Structured design the waterfall method Parallel development RAD development Slide 38 Prototyping (regular and throwaway) Summary -- Part 2 There are five major team roles: business analyst, systems analyst, infrastructure analyst, change management analyst and project manager. Slide 39