ZEIT2301- Design of Information Systems School of Engineering and Information Technology [email protected] Dr Kathryn Merrick Week 01: Intro Topics: Review of the systems development lifecycle (SDLC) and its phases Introduction to the database development lifecycle (DBLC) and phases References: Dennis, A., Wixom, B.and Tegarden, D., Systems Analysis and Design with UML Version 2.0: An Object-Oriented Approach, 3rd edition, 2009, John Wiley. (Chapter 1) Connolly, T., Begg, C., Database Solutions: A step-by-step guide to building databases, Second Edition, Pearson, 2004. (Chapter 4) Systems Development Lifecycle The SDLC consists of phases/activities traditionally used to conceive, develop and maintain information systems. Different variants of the lifecycle exist. The textbook identifies four phases Planning, Analysis, Design, Implementation SDLC Phases 1. Planning (actually initiation, then planning) Why build the system? 2. Analysis Who, what, when, where of the system? 3. Design How will the system work? 4. Implementation System delivery 1. Planning Identifying business value Does the project align with key business objectives? Evaluate feasibility Technical, economic, organizational Develop work plan Staff the project Control and direct project 2. Analysis Requirements Gathering/Elicitation Requirements Modelling Gather the requirements (using various techniques, e.g. interviews, document analysis, etc) Develop a set of analysis models that represent both the data and processes necessary to support the business Requirements Specification Document the requirements in a system/software requirements specification document 3. Design Develop a design strategy Design architecture and interfaces Hardware, software, networks Interface design Forms, reports, web pages Database and file design Program design 4. Implementation Construction System is built (or acquired) System testing Installation Implement a training plan for the users New system becomes operational Operation & Maintenance Establish a support plan Processes and Deliverables Process Product Planning Project Proposal and Plan Analysis Requirements Specification Design Design Specification Implementation Code User Manual Database Development Lifecycle 1. 2. 3. 4. 5. 6. Planning Analysis Design DBMS Selection Implementation Maintenance 1. Planning Management activities that permit the stages of the database system development lifecycle to be realised efficiently and effectively Creation of a mission statement and objectives Development of standards for data collection and format 2. Analysis Collecting and analysing information about the organisation to be supported by the new database system Using this information to identify the requirements of the new database A preliminary part of database design 3. Database Design Creating a design that will support the organisation’s mission statement and objectives Other design processes: Application design Transaction design User interface design Database Management Software Database Shared collection of logically related data Database Management Software (DBMS) Methods to define, retrieve update and maintain data Applications Interact with database via DBMS 4. DBMS Selection 5. Implementation Physical realisation of the database and related applications Includes data conversion and loading Testing 6. Maintenance Monitoring and maintaining the database system following installation Systems development: Some terminology Methodology: A comprehensive approach to system development; typically includes activities, techniques, and tools Technique: a collection of guidelines that help an analyst complete an activity or task Tool: a specific device, usually software, which makes it easier to use a specific technique System Development Methodologies Historically methodologies tended to be either process-centred or datacentred. More recently the object-oriented approach seeks to integrate both process and data in a single model. Large organizations may follow internal methodologies or formal standards. For a complex information system, a systematic approach is crucial. Well-known methodologies include: Waterfall development Parallel development Rapid application development Agile development Categories of Methodologies Structured Design Rapid Application Development Waterfall Development Parallel Development Phased Prototyping Throwaway Prototyping Agile Development eXtreme Programming “Structured” Design The advent of “Structured” design introduced formal models: Typically used one set of models to describe process (eg Data Flow Diagrams) and a separate set of models to describe data (eg Entityrelationship Diagrams) Structured development methodology involved a formal step-by-step approach Most well known methodology is the Waterfall method Moves from one phase to the next in sequence Many variants; later variants allowed for iteration where necessary Structured Design 1 Waterfall Development Pros and Cons of the Waterfall Method Pros Identifies systems requirements long before programming begins Cons Requirements must be fully specified before programming begins Long delay before delivery of product; Highly formalized; Inflexible; Structured Design 2 Parallel Development: sub-projects developed separately Pros and Cons of Parallel development Pros Divides project into sub-projects that can be worked on in parallel thus allowing earlier delivery of the system Cons Subsystems might not be independent; could require significant integration effort Rapid Application Development Rapid Application Development (RAD) Concentrates on developing at least part of the system much earlier Involving users for feedback Use of tools to speed development Rapid Application Development Key features CASE tools (Computer-Aided Software Engineering) JAD sessions (Joint Application Development) Fourth generation/visualization programming languages Code generators Eg generate code from models/diagrams RAD based approaches Phased Development Prototyping A series of versions; initial version meets key requirements System prototyping Prototype evolves to become the system Throw-Away Prototyping Design prototyping Prototype is used only to help determine requirements Rapid Application Development 1 Phased Development Version1, version 2, etc Rapid Application Development 2 System Prototyping The prototype evolves to become the actual system Rapid Application Development 3 Throwaway Prototyping The prototype is only used to help elicit requirements and thus inform system design. Agile Development Agile development Drastically reduces the modelling and associated documentation phases Concentrates on programming (ie producing working code) Extreme Programming Develop code rapidly and involve users Pair programming using skilled programmers Rapid incremental development; continuous release of product to users Agile Development Extreme Programming Criteria for Selecting the Appropriate Methodology Clarity of user requirements Familiarity with technology System complexity System reliability Short time schedules Schedule visibility Criteria for selecting a Methodology Criteria Waterfall Parallel Phased Prototyping Throwaway Extreme Prototyping Programming Unclear user requirements Poor Poor Good Excellent Excellent Excellent Unfamiliar technology Poor Poor Good Poor Excellent Poor Complex systems Good Good Good Poor Excellent Poor Reliable systems Good Good Good Poor Excellent Good Short time schedule Poor Good Excellent Excellent Good Excellent Schedule visibility Poor Poor Excellent Excellent Good Good Object-Oriented Analysis & Design Attempt to balance emphasis on data and process Uses Unified Modelling Language (UML) Characteristics of OOAD: Use-case Driven Architecture Centric Iterative and Incremental Skills of the systems analyst Analytical Technical Computers, networks, databases, operating systems, Internet, programming languages Management systems thinking, organisational knowledge, problem identification, problem analyzing and solving Resource management, project management, risk management, change management Interpersonal Communications skills, ability to work in a team, group facilitation, managing expectations The Analyst’s Approach to Problem Solving Project Team Roles Role Responsibilities Business Analyst Analyzing the key business aspects of the system Identifying how the system will provide business value Designing the new business processes and policies Systems Analyst Identifying how technology can improve business processes Designing the new business processes Designing the information system Ensuring the system conforms to IS standards Infrastructure Analyst Ensuring the system conforms to infrastructure standards Identifying infrastructure changes required by the system Change Management Analyst Developing and executing a change management plan Developing and executing a user training plan Project Manager Managing the team Developing and monitoring the project plan Assigning resources Serving as the primary point of contact for the project Summary The SDLC consists of four stages: Planning, Analysis, Design, and Implementation The DBLC consists of six stages: Planning, Analysis, Design, DBMS Selection, Implementation, Maintenance System development methodologies vary The choice of an appropriate methodology depends on the characteristics of the system, the organisation and the available staff skill set.