The Systems Development Lifecycle

Size: px
Start display at page:

Download "The Systems Development Lifecycle"

Transcription

1 Modelling and Systems Development Lecture 2 The Systems Development Lifecycle The four-phase model common to all system developments projects

2 The project Major attributes of the Lifecycle Moves systematically through phases where each phase has a standard set of outputs Produces project deliverables Uses deliverables in implementation Results in an actual information system Uses gradual refinement 2

3 Planning Project phases Why build the system? Analysis Who, what, when, where will the system be? Design How will the system work? Implementation System delivery 3

4 Planning Identify business value Analyze feasibility Develop work plan Staff the project Control and direct the project 4

5 Analysis Analysis strategy Requirement gathering Process modeling Data modeling 5

6 Design Design strategy Architectural design User interface design Database and file design Program design 6

7 Construction Installation Support plan Implementation 7

8 Processes and deliverables Process Planning Product Project Plan Analysis System Proposal Design Implementation System Specification New System and Maintenance Plan 8

9 What is a methodology? A formalized approach or series of steps and deliverables. Often categorized as Process-centered Data-centered Object-oriented Need for a methodology: Writing code without a well-thought-out system request may work for small programs, but rarely works for large ones 9

10 Structured Development Projects move methodically from one to the next step Generally, a step is finished before the next one begins 10

11 Waterfall (Development) Method 11

12 Pros and cons of the Waterfall Method Pros Identifies systems requirements long before programming begins Minimizes changes to requirements as project proceeds Cons Design must be specified on paper before programming begins Long time between system proposal and delivery of new system 12

13 Variant of the waterfall method: parallel development 13

14 Alternatives to the SDLC Rapid Application Development (RAD) Phased Development Prototyping Throw-Away Prototyping 14

15 Rapid Application Critical elements: CASE tools JAD sessions Development Fourth generation / visual programming languages Code generators 15

16 Rapid Application Development Categories Phased development A series of versions Prototyping System prototyping Throw-away prototyping Design prototyping 16

17 How Prototyping Works feedback 17

18 Throwaway Prototyping feedback 18

19 Object-Oriented Analysis and Design Attempts to balance emphasis on data and process Uses Unified Modeling Language (UML) for diagramming Use-case Driven Architecture Centric Iterative and Incremental 19

20 Use-case Driven A use case describes part of the system functionality needed by a user when performing a certain task Together, the use cases form the complete requirements document Use-case driven development is phased development where each version ads one or a few related new use cases 20

21 Architecture Centric The underlying software architecture of the evolving system specification drives the specification, construction and documentation of the system Functional view (use cases) Static view (CRC cards, class diagrams) Dynamic view (sequence diagrams, communication diagrams, state charts) 21

22 Iterative and Incremental Development consists of a large number of small projects (iterations) Each iteration implements one (or a few) use cases Each iteration delivers working, tested code Advantages: Throwing away a failed iteration is cheap High-risk aspects can be tested in early iterations 22

23 Rational Unified Process (RUP) Example of an OO development methodology (1997) A complete framework that can be adapted and extended to suit the need of different organizations and different types of projects Emphasis on building models rather than paper documents Models gradually refined throughout the process lifecycle 23

24 Extreme Programming (XP) A lightweight process (1998) with an emphasis on producing high-quality executable code throughout the development process Small releases Write tests before writing code Refactoring Pair programming Continuous integration On-site customer 24

25 Agile Development Set of principles (2001) that favors individuals and interactions over processes and tools use simple, free tools until you outgrow them working software over comprehensive documentation Produce no document until its need is immediate and significant consumer collaboration over contract negotiation responding to change over following a plan Make detailed plans for the next 2 weeks, very rough plans for the next 3 months, extremely crude plans beyond that 25

26 Team Roles and skills Business analyst Systems analyst Infrastructure analyst Change management analyst Project manager 26