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 Copyright © 2005 John Wiley & Sons, Inc. All rights reserved. Reproduction or translation of this work beyond that permitted in Section 117 of the 1976 United States Copyright Act without the express written permission of the copyright owner is unlawful. Request for further information should be addressed to the Permissions Department, John Wiley & Sons, Inc. The purchaser may make back-up copies for his/her own use only and not for redistribution or resale. The Publisher assumes no responsibility for errors, omissions, or damages, caused by the use of these programs or from the use of the information contained herein. Slide 2 INTRODUCTION Chapter 1 Slide 3 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 4 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 5 THE SYSTEMS DEVELOPMENT LIFE CYCLE Slide 6 Major Attributes of the Lifecycle The project Moves systematically through phases where each phase has a standard set of outputs Produces project deliverables Uses deliverables in implementation Results in actual information system Uses gradual refinement Slide 7 Major Attributes of the Lifecycle The SDLC The SDLC has a set of four fundamental phases: Slide 8 Planning Analysis Design Implementation 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 Project Phases Planning Often called project initiation Concept of the product is explored and refined Client’s general requirements are elicited Slide 10 Added by Dr. Stoecklin Project Phases Planning Tasks Identifying business value Analyze feasibility Analyze risks Develop work plan Staff the project Control and direct project Slide 11 Added by Dr. Stoecklin Project Phases Analysis Who uses the system, what specifications are produced Client’s requirements are analyzed and presented in Software Requirements Specification (SRS) document Software Project Management Plan Slide 12 Added by Dr. Stoecklin Project Phases Analysis Tasks Analysis Information gathering Process modeling Data modeling Slide 13 Added by Dr. Stoecklin Project Phases Design Describes “HOW the product does it” Architectural design (high-level design) Product as a whole is broken down into components, called modules Detailed design (low-level design) Each module is designed Output: Design document Slide 14 Added by Dr. Stoecklin Project Phases Design Tasks Physical design Architectural design Interface design Database and file design Program design Slide 15 Added by Dr. Stoecklin Project Phases Implementation Coding and testing of individual software components Combination and testing of software components Acceptance testing by client Ends with the product being accepted by the client and installed on the client’s computer Slide 16 Added by Dr. Stoecklin Project Phases Implementation Tasks Construction Installation Slide 17 Added by Dr. Stoecklin Processes and Deliverables Process Planning Analysis Design Implementation Slide 18 Modified by Dr. Stoecklin Product Project Plan System Requirements Specifications System Design Specification New System and Maintenance Plan SYSTEM DEVELOPMENT Methodologies Slide 19 What Is a Methodology? A formalized approach or series of steps Writing code without a wellthought-out system request may work for small programs, but rarely works for large ones. Slide 20 Structured Design Projects move methodically from one to the next step Generally, a step is finished before the next one begins Slide 21 Waterfall Development First documented process model for software development. Method Slide 22 Modified by Dr. Stoecklin Pros and Cons of the Waterfall Method Pros Identifies requirements long before programming Begins Enforces a disciplined approach Implies testing inherent to each phase. Forces delivery of documents needed in the development process. Easy to explain to customers. Slide 23 Modified by Dr. Stoecklin Cons Design must be specified on paper before programming begins Long time between system proposal and delivery of new system . Real projects rarely follow sequential flow. Requirements difficult to completely document up front. Code and Fix Model Slide 24 Included by Dr. Stoecklin RAD Development Slide 25 Included by Dr. Stoecklin Pros and Cons of the RAD Method Rapid prototype working model functionally equivalent to a subset of the product Concentrates on experimenting with those parts of the customer’s requirements that are poorly understood Pros delivers to customer what customer really needs Slide 26 Modified by Dr. Stoecklin Included by Dr. Stoecklin Cons customer thinks product is almost done Spiral Development Slide 27 Included by Dr. Stoecklin Spiral Development Slide 28 Included by Dr. Stoecklin Pros and Cons of the Spiral Method Goal: minimizing risk of software development each phase includes risk management to minimize and control risk Pros emphasizes looking at alternatives and constraints during risk analysis Slide 29 Included by Dr. Stoecklin Cons intended exclusively for internal development of largescale software risk analysis is timeconsuming Incremental Development Incremental Model 1)operational system one currently being used by the customer and users 2)development system next version that is being prepared to replace current operational system Refer to systems using release numbers: users use Release 1 while developers are building Release 2 Slide 30 Included by Dr. Stoecklin Pros and Cons of the Incremental Method Pros customers do not have to wait until the entire system is delivered to benefit from it lower risk of overall project failure training can begin on early versions frequent releases allow developers to fix problems found in previous release can grab market share early Slide 31 Included by Dr. Stoecklin Cons customers and users do beta testing too many versions may degenerate into build-and-fix Parallel Development Slide 32 Alternatives to the SDLC Agile Development Phased Development Prototyping Throw-Away Prototyping Unified Process Slide 33 Rapid Application Development (generic term) Critical elements CASE tools JAD sessions Fourth generation/visualization programming languages Code generators Slide 34 Rapid Application Development Categories Phased development A series of versions Prototyping System prototyping Throw-away prototyping Design prototyping Agile Development Extreme Development Slide 35 Agile Development A collection of new paradigms characterized by •Less emphasis on analysis and design •Earlier implementation (working software is considered more important than documentation) •Responsiveness to change •Close collaboration with the client Slide 36 Included by Dr. Stoecklin Extreme Programming •Stories (features client wants) •Estimate duration and cost of each story •Select stories for next build •Each build is divided into tasks •Test cases for a task are drawn up first •Pair programming Slide 37 Included by Dr. Stoecklin Microsoft Development Microsoft’s life-cycle model Steps: Requirements analysis — interview potential customers Draw up specifications Divide project into 3 or 4 builds Each build is carried out by small teams working in parallel Slide 38 Included by Dr. Stoecklin How Prototyping Works Slide 39 Throwaway Prototyping Slide 40 Selecting the Appropriate Methodology Clarity of User Requirements Familiarity with Technology System Complexity System Reliability Short Time Schedules Schedule Visibility Slide 41 Criteria for Selecting a Methodology Slide 42 Unified Process •The leading object-oriented methodology for the development of large-scale software •Basic Characteristics of the Unified Process Object-oriented Use-case driven Architecture centric Iteration and incrementation Slide 43 Included by Dr. Stoecklin Project Team Roles and Skills Slide 44 Information Systems Roles Business analyst System analyst Infrastructure analyst Change management analyst Project manager Slide 45 Project Team Roles Slide 46 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 Prototyping (regular and throwaway) Agile development Slide 47 XP streamline SDLC Summary -- Part 2 There are five major team roles: business analyst, systems analyst, infrastructure analyst, change management analyst and project manager. Slide 48