System Analysis and Development Rev: Feb 15, 2012 Euiho (David) Suh, Ph.D. POSTECH Strategic Management of Information and Technology Laboratory (POSMIT: http://posmit.postech.ac.kr) Dept. of Industrial & Management Engineering POSTECH Contents ※ Discussion Questions 1 System Analysis 2 3 (1) Basic Concepts (2) Modeling System Development (1) Systems Development Life Cycle (SDLC) (2) Rapid Application Development (RAD) (3) Prototyping Case Study Discussion Questions ■ Explain the differences between Prototyping and SDLC (Systems Development Life Cycle) ■ Explain the Feasibility (Technical, Economic, Operational, and Organizational) ■ What is a System Conversion (Parallel, Pilot, Phased, and Plunge)? ■ DFD (Data Flow Diagram) vs. ERD (Entity Relationship Diagram) ■ RAD (Rapid Application Development) vs. SDLC – When do we use RAD? 3 1. System Analysis (1) Basic concepts System Analysis (SA) ■ Definition of SA – To model the real-world system so that it can be understood ■ Goals of SA – To fully specify the problem and application domain without introducing a bias to any particular implementation ■ Benefits of SA – It clarifies the requirements of customer(end-user) – It provides a basis for agreement between customer and the developer – It becomes the framework for later design and implementation 4 1. System Analysis (1) Basic concepts Overview of Analysis Users Developer Generate Requests Manager Problem Statement User interview Domain knowledge Analysis Build Model Real-world experience Data Model Functional Model Behavioral Model Design 5 1. System Analysis (1) Basic concepts Problem Statement ■ Consist of requirements statement and design & implementation policy ■ Requirement statements – Problem scope – Application Context – Assumptions – Performance Needs ■ Design & implementation policy – General approach – Algorithms – Data Structures – Architecture 6 1. System Analysis (2) Modeling Data Modeling (1/2) ■ Data model answers following specific questions – What are the primary data objects to be processed by the system? – What is the composition of each data objects and what attributes describe the object? – Where do the objects currently reside? – What are the relationships between each object and other objects? – What is the relationship between the objects and the processes that transform them ? ■ Data modeling methods – ERD(Entity Relationship Diagram) – DD(Data Dictionary) – OM(Object Modeling) : object-oriented modeling method 7 1. System Analysis (2) Modeling Data Modeling (2/2) - ERD Manufacturer Contracts Car Builds Stocks Licenses Dealership Shipper Entity Cardinality Relationship 8 1. System Analysis (2) Modeling Functional Modeling (1/2) ■ Functional model shows – How values are computed, without regard for sequencing, decision, or object structure – Which values depend on which other values and the functions that relate them ■ Steps for constructing a functional model – – – – Identify input and output values Show functional dependencies(Using DFD or IDEF0) Describe functions Identify constraints ■ Identify input and output values – Ex> Input and output values for ATM system Cash card bank code, card code Password Transaction kind, Account type, amount User 9 cash., receipt., messages ATM System boundary 1. System Analysis (2) Modeling Functional Modeling (2/2) ■ Describing functions – Ex> Function description for update account function Update account(account, amount, transaction-kind) -> cash, receipt, message If the account on a withdrawal exceeds the current account balance, reject the transaction and dispense no cash If the account on a withdrawal does not exceed the current account balance debit the account and dispense the amount requested If the transaction is a deposit credit the account and dispense no cash If the transaction is a status request dispense no cash In any case, the receipt shows ATM number, date, time, account number, transaction-kind, amount transacted(if any), and new balance 10 1. System Analysis (2) Modeling Behavioral Modeling (1/4) ■ Behavioral model – – – – Shows the time-dependent behavior of the system and object in it Begins by looking for events(externally-visible stimuli & responses) Is insignificant for a purely static data repository, such as a DB. Is important for interactive system ■ Steps for constructing a Behavioral model – – – – Prepare scenarios of typical interaction sequences Identify events between objects Prepare an event trace for each scenario Build a state diagram 11 1. System Analysis (2) Modeling Behavioral Modeling (2/4) ■ Prepare scenarios – Ex> Normal ATM scenario The ATM asks the user to insert a card; the user insert a cash card. The ATM accepts the card and reads its serial number The ATM requests the password : the user enters “1234” The ATM verifies the serial number and password with the consortium; the consortium checks it with bank “39” and notifies the ATM of acceptance The ATM asks the user to select the kind of transaction ; the user select withdrawal The ATM asks for the amount of cash ; the user enters $100 The ATM asks the consortium to process the transaction ; consortium passes the request to the bank The ATM dispenses cash and asks the user to take it; the user takes the cash The ATM asks whether the user wants to continue; the user indicates no The ATM prints a receipt, ejects the card, and asks the user to take them; the user takes the receipt and the card The ATM asks a user to insert a card ■ Identify Events – Examine scenario to identify all external events. : Events include all signals, inputs, decisions, interrupts, transitions, and actions to or from users or external devices ■ Prepare an event trace – Ex> Event trace for ATM scenario (next slide) ■ Build a state diagram – Ex> State diagram for ATM (next slide) 12 1. System Analysis (2) Modeling Behavioral Modeling (3/4) ■ Event trace User ATM Consortium Insert card Request password Enter password Request kind Verify account Verify card Account OK Bank account OK Process transaction Process bank Enter kind Request amount Enter amount 13 succeed Bank 1. System Analysis (2) Modeling Behavioral Modeling (4/4) ■ State diagram Main screen Do : display main screen Insert card [readable] Enter password Do : request password Insert card [unreadable] Account OK Cancel Unreadable Take card Do : verify account Bad account Do : Unreadable Card message Do: request kind Card ejected Cancel Do : eject card; Request take card Cancel Do : canceled message Enter Kind Cancel Do : verify account Finish Do : bad account message; Do : print receipt Enter amount Terminate cancel Do : request continuation Take cash Do : dispense cash; request take cash 14 Transaction succeed Do : process transaction Systems Development Life Cycle (SDLC) 2. System Development (1) SDLC - Introduction to SDLC ■ Definition – The overall process of developing information systems through a multi step process from investigation of initial requirements through analysis, design, implementation and maintenance <Russell Kay, Computer World> ■ Types of SDLC – Waterfall • Major methodology of SDLC – Fountain – Spiral ■ Outputs from one step → Inputs to next ■ Often referred to as the “waterfall” model (The oldest one - early 1970s) 15 5 Phases of Waterfall Development Method 16 2. System Development (1) SDLC - Waterfall Development Method 2. System Development (1) SDLC - Waterfall Development Method Phase 1: Investigation ■ Initialization – Management planning, Users’ needs & opportunities ■ Formal definition – Objective, motivation, scope, boundaries, constraints, strategy – Verifying a problem or deficiency which really exists, or passing judgment on the new requirement ■ Feasibilities studies Technical Feasibility • Availability of computing hardware and software to do a particular job Economic Feasibility • Ability of a system to pay for itself in monetary terms Operational Feasibility • Ability of the people working within a system to do their jobs in a prescribed manner Organizational Feasibility • Managers’ concerns about the absence of technology in many cases No unprofitable spending e.g.) Cost-benefit Analysis, Break-even Analysis, Payback Analysis, NPV e.g.) Ability of Users and Participants & Attitudes of Users and Participants How well a proposed e-commerce system helps the company’s plans for developing Web-based sales, marketing, and financial system 17 2. System Development (1) SDLC - Waterfall Development Method Phase 2: Analysis ■ What a system should do to meet the needs of users ■ Determine requirements – Study current system – Structure requirements and eliminate redundancies ■ Requirement Analysis – Functional requirements – Performance requirements ■ Generate alternative designs ■ Compare alternatives ■ Recommend best alternative 18 2. System Development (1) SDLC - Waterfall Development Method Phase 3: Design ■ How the system will accomplish the objective ■ User interface Design – – – – Screen Form Report Dialog Design ■ Data Design – Data Element structure Design ■ Process Design – Program and Procedure Design 19 2. System Development (1) SDLC - Waterfall Development Method Phase 4: Implementation ■ Evaluating Hardware, Software, and Services – Scoring evaluation system: Used when there are several competing proposals for a hardware or software acquisition ■ Software Development or Modification ■ Documentation – Major mechanism of communication during development process ■ Data Conversion – Correcting incorrect data – Filtering unwanted data – Consolidating data from several data warehouses. ■ Testing – Testing & Debugging the Software ■ Training 20 2. System Development (1) SDLC - Waterfall Development Method Phase 4: Implementation ■ Conversion Parallel Strategy Running old & new systems for awhile to check validity Safe Pilot Strategy Installed in one part of organization at a time Learning and adapting Phased Strategy Changing one function at a time in large system e.g. order entry Plunge Strategy Starting using entire system Dangerous if errors exist 21 2. System Development (1) SDLC - Waterfall Development Method Phase 5: Maintenance ■ Modification – Modifying established system due to changes in the system for potential problems or necessary change ■ Correcting errors ■ Feedback <Martin, “Managing Information Technology” p.395> 22 2. System Development (1) SDLC - Pros and Cons of SDLC Pros and Cons of SDLC ■ Advantages: – Highly structured, systematic process – Thorough requirements definition – Clear milestone with business management sign-offs ■ Disadvantages – Not accounting well for evolving requirements during project – Time-consuming (and costly) process 23 2. System Development (2) RAD Rapid Application Development (RAD) ■ Definition – Rapid Application Design – A system development methodology created to radically decrease the time needed to design and implement information systems <James Martin, “RAD, CIRCA”> ■ Motivation of Rapid Application Development (RAD) – – – – Limitation of SDLC Pressures for businesses to speed up Shorter development lifecycles Competition in changing global environment “Why wait 3 years to develop systems likely to be obsolete upon completion?” RAD methodology was born! 24 2. System Development (2) RAD The 4 Essentials of RAD (1/2) ■ Management – Executives, Support for the RAD ■ People – Participation in JAD type – Specialized team for RAD: SWAT(“Skilled With Advanced Tools”) Joint application design (JAD) Group Decision Support System Users, Managers and Analysts work together for several days System requirements are reviewed Structured meetings ■ Methodologies – RAD life cycle: Users play key roles ■ Tools – Fourth-generation languages and CASE tools that facilitate prototyping and code generation Computer-Aided Software Engineering (CASE) Any software tool to transfer some of the systems development workload from the human developer to the computer by automating one or more steps of a software development methodology 25 2. System Development (2) RAD RAD Life Cycle JRP(Joint Requirement Planning) workshops to agree requirements, overall planning Executives, managers, and users determine requirements JAD session to develop basis design CASE tool is used Generate code End users validate design Delivery of new system to users 26 2. System Development (3) Prototyping Prototyping ■ Definition – The overall process of developing IS, which enables creation of system (or part of system) more quickly, then revising after users have tried it < Martin, “Managing Information Technology”> ■ Selected features: Only some essential features included in prototype, more added later 27 2. System Development (3) Prototyping Prototyping Life Cycle Prototype cycle 28 2. System Development (3) Prototyping Pro and Cons of Prototyping ■ Advantages – – – – Improved communications between the developer and user A more active role of users in system development Less time and effort of information specialists and user in developing the system Much easier implementation due to the user’s understanding about what to expect ■ Disadvantages – – – – Lack of security and control features in end prototype Possibility that prototyping may not undergo as rigorous testing Possibility of less complete final documentation Bigger difficulty to manage user expectations 29 2. System Development (3) Prototyping 3 Types of System Development SPEED When requirements are hard to define Prototyping STABILITY Hybrid type of SDLC and Prototyping RAD Large and complex system SDLC 30 Case Study 3. Case Study 31 Reference ■ O’Brien & Marakas, “Introduction to Information Systems – Fifteenth Edition”, McGraw – Hill, Chapter 10, pp. 404~450 ■ Hyungjong Roh, “System Development Methods (PPT slide)” 32