System Analysis and Design Rabie A. Ramadan, PhD http://rabieramadan.org 1 About my self Rabie A. Ramadan My website and publications • http://www.rabieramadan.org 2 Class Information I am not here to punish you Trust yourself and do your best I want you to learn and compete with others working on the same field I want you to be confident when you speak with others 3 Class Information You can bring anything to drink but NO FOOD PLEASE When you come in , DO NOT knock on the door When you want to leave , do not tell me Just leave but you will be counted as absent • I do not take attendance every class but sometimes I do Class Information Attendance is a vey important Assignments must be delivered on time 5 Class Information Textbooks Systems Analysis and Design , 2nd Edition Alan Dennis and Barbara Haley Wixom John Wiley & Sons, Inc. 6 Class Information Website http://www.rabieramadan.org/classes/2011/sysanalysis/ 7 Introduction 8 Grading Assig 5% Attendance 5% Exam1 15% Exam2 15% project 20% Final 40% 9 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. 1 - 10 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. 1 - 11 THE SYSTEMS DEVELOPMENT LIFE CYCLE 1 - 12 Major Attributes of the Life Cycle 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 1 - 13 Project Phases Planning (Why build the system? How should the team go about building it?) Analysis (Who uses system, what will it do, where and when will the system be used?) Design (How will the system work?) Implementation (System delivery) 1 - 14 A simple process for making lunch 1 - 15 Planning Identifying business value Analyze feasibility Develop work plan Staff the project Control and direct project 1 - 16 Analysis Analysis strategy Gathering business requirements Requirements definition use cases Process modeling Data modeling 1 - 17 Design Design selection Architecture design Interface design Data storage design Program design 1 - 18 Implementation Construction Installation • Program building • Program and system testing • Conversion strategy • Training plan • Support plan 1 - 19 Processes and Deliverables Process Planning Analysis Design Implementation Product System Request Feasibility Analysis Workplan System Proposal System Specification New System and Maintenance Plan 1 - 20 SYSTEM DEVELOPMENT METHODOLOGIES 1 - 21 What Is a Methodology? A formalized approach to implementing the Systems Development Life Cycle (SDLC) • A series of steps and deliverables Methodology Categories Process-Centered Data-Centered Object-Oriented 1 - 22 Waterfall Development Methodology 1 - 23 Pros and Cons of the Waterfall Methodology Pros Identifies systems requirements long before programming begins Minimizes changes to requirements as project progresses Cons Design must be specified on paper before programming begins Long time between system proposal and delivery of new system 1 - 24 Parallel Development Methodology 1 - 25 Pros and Cons of Parallel Development Methodology Pros Cons Reduces Schedule Time Still Uses Paper Documents Less Chance of Rework Sub-projects May Be Difficult to Integrate 1 - 26 Rapid Application Development (RAD) Incorporate special techniques and tools: • CASE tools • JAD sessions • Fourth generation/visualization programming • languages Code generators 1 - 27 CASE tools Computer-aided software engineering (CASE) • Scientific application of a set of tools and methods to a software system which is meant to result in highquality, defect-free, and maintainable software products. Modeling business / real-world processes and data flow. Development of data models in the form of entity-relationship diagrams 1 - 28 JAD sessions Joint Application Development (JAD) • • • Developed by Drake and Josh of IBM Crawford of IBM Toronto in a workshop setting. JAD was designed to bring system developers and users of varying backgrounds and opinions together in a productive as well as creative environment. 1 - 29 Three RAD Categories Phased development Prototyping Throw-away prototyping • A series of versions developed sequentially • System prototyping • Design prototyping 1 - 30 Phased Development Methodology Insert Figure 1-4 here 1 - 31 Pros and Cons of Phased Development Methodology Pros Users Get a System To Use Quickly Users Can Identify Additional Needs For Later Versions Cons Users Work with a System that is Intentionally Incomplete 1 - 32 How Prototyping Works 1 - 33 Pros and Cons of Prototyping Methodology Pros Cons Users Interact with Prototype Very Quickly Tendency to do Superficial Analysis Users Can Identify Needed Changes And Refine Real Requirements Initial Design Decisions May Be Poor 1 - 34 Throwaway Prototyping 1 - 35 Pros and Cons of Throwaway Prototyping Methodology Pros Risks are Minimized Cons May Take Longer Than Prototyping Important Issues are Understood Before the Real System is Built 1 - 36 Agile Development: Extreme Programming 1 - 37 Pros and Cons of Agile Methodologies Pros Fast Delivery of Results Works Well in Projects With Undefined or Changing Requirements Cons Requires Discipline Works Best in Small Projects Requires Much User Input 1 - 38 Criteria for Selecting the Appropriate Methodology Clear user requirements Familiarity with technology Complexity of system Reliability of system Time schedule Schedule visibility 1 - 39 TEAM ROLES AND SKILLS 1 - 40 Information Systems Roles Business analyst Systems analyst Infrastructure analyst Change management analyst Project manager 1 - 41 1 - 42 Summary The Systems Development Lifecycle consists of four stages: Planning, Analysis, Design, and Implementation There are six major development methodologies: the waterfall method, the parallel development method, the phased development method, system prototyping, design prototyping, and agile development. There are five major team roles: business analyst, systems analyst, infrastructure analyst, change management analyst and project manager. 1 - 43