The system development lifcycle

Download Report

Transcript The system development lifcycle

ZEIT2301- Design of Information Systems

School of Engineering and Information Technology UNSW@ADFA Dr Kathryn Merrick

Week 01: Intro

 Topics:   Review of the

systems development

phases lifecycle (SDLC) and its Introduction to the

database development

and phases lifecycle (DBLC) 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

planning) (actually initiation, then  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

 Gather the requirements (using various techniques, e.g. interviews, document analysis, etc)  Requirements

Modelling

 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 Planning Analysis Design Implementation Product Project Proposal and Plan Requirements Specification Design Specification 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 centred

.

or

data-

 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   Waterfall Development Parallel Development  Rapid Application 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 Entity relationship 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 Cons Divides project into sub-projects that can be worked on in parallel thus allowing earlier delivery of the system Subsystems might not be independent; could require significant integration effort

Rapid Application Development

 Rapid Application Development (RAD)  Concentrates on developing earlier at least part of the system much   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  A series of versions ; initial version meets key requirements  Prototyping   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 Unclear user requirements Unfamiliar technology Poor Poor Complex systems Good Reliable systems Good Short time schedule Schedule visibility Poor Poor Parallel Poor Poor Good Good Good Poor Phased Good Good Good Good Excellent Excellent Prototyping Throwaway Prototyping Extreme Programming Excellent Excellent Excellent Poor Poor Excellent Excellent Poor Poor Poor Excellent Excellent Excellent Good Good Good Excellent 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  systems thinking, organisational knowledge, problem identification, problem analyzing and solving  Technical  Computers, networks, databases, operating systems, Internet, programming languages  Management  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 Business Analyst Systems Analyst Infrastructure Analyst Change Management Analyst Project Manager Responsibilities

Analyzing the key business aspects of the system Identifying how the system will provide business value Designing the new business processes and policies Identifying how technology can improve business processes Designing the new business processes Designing the information system Ensuring the system conforms to IS standards Ensuring the system conforms to infrastructure standards Identifying infrastructure changes required by the system Developing and executing a change management plan Developing and executing a user training plan 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.