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.