Approaches to Systems Development Chapter 10 Outline v

  • Slides: 18
Download presentation
Approaches to Systems Development Chapter 10

Approaches to Systems Development Chapter 10

Outline v. Approaches to System Development SDLC − Review − Approaches to the SDLC

Outline v. Approaches to System Development SDLC − Review − Approaches to the SDLC • Predictive • Adaptive Approaches Agile Methodologies − XP − Scrum: notes located in Ch 10 Extra - Scrum (pt 1). pptx 2

SDLC: SYSTEMS DEVELOPMENT LIFE CYCLE v Provides overall framework for managing systems development process

SDLC: SYSTEMS DEVELOPMENT LIFE CYCLE v Provides overall framework for managing systems development process All projects use some variation of SDLC Phases Core Processes Project Initiation Identify the problem and Obtain approval Ch 11 Planning Plan the Project Ch 11 Analysis Discover and Understand Details Ch 2 -5 Design System Components Ch 6, 8 -9, 12 -13 Implementation Build, Test, and Integrate System Components Ch 13 Deployment Complete System Testing and Deploy the System Ch 14 3

2 Approaches to the SDLC Assumptions Predictive SDLC • can be planned in advance

2 Approaches to the SDLC Assumptions Predictive SDLC • can be planned in advance • system can be developed according to the plan Adaptive SDLC Assumptions • Iterative • Must be flexible & adapt • Waterfall Model • Spiral Model • Modified Waterfall • Incremental Development • Agile Development Waterfall* • NOTE: Typically, Waterfall projects today are employing a Modified Waterfall. Agile* • NOTE: Agile projects are adaptive but not all adaptive projects are agile. 4

Predictive Approaches Project Initiation Waterfall � Planning One phase begins when another completes; Specifications

Predictive Approaches Project Initiation Waterfall � Planning One phase begins when another completes; Specifications are frozen Problems � System requirements “locked in” � Limited user involvement � Too much focus on milestone deadlines Analysis Design Implementati on Deploymen t Support Modified Waterfall � � Overlapping phases Can go backwards Project Initiation Planning Analysis Design Implementation Deployment Support 5

Adaptive Approaches v. Spiral Model An iterative approach − One of the 1 st

Adaptive Approaches v. Spiral Model An iterative approach − One of the 1 st adaptive approaches Spiral until project completion − Then, deployed! Project Management: − managed differently than a waterfall approach Note: An iteration contains the complete SDLC 6

Adaptive Approaches v. Incremental Development Two Features: − Also, an iterative approach − BUT…System

Adaptive Approaches v. Incremental Development Two Features: − Also, an iterative approach − BUT…System is built in small increments; it is "grown" • As an iteration is completed it is integrated to the whole • Partially deployed in steps Advantage − some functionality gets into the user's hands much earlier 7

Methodology v. A comprehensive guideline to follow for completing every SDLC activity Abstraction used

Methodology v. A comprehensive guideline to follow for completing every SDLC activity Abstraction used to separate out aspect Models Software to create models or other project components Methodology Tools Techniques Guidelines or instructions 8

Agile Methodologies 9

Agile Methodologies 9

Agile Philosophy v. A guiding philosophy and set of guidelines for : developing information

Agile Philosophy v. A guiding philosophy and set of guidelines for : developing information systems in an unknown, rapidly changing environment − complements Adaptive SDLCs & Methodologies − makes sure developers are fast to respond to changes “Manifesto for Agile Development” agilemanifesto. org • • Value responding to change over following a plan Value individuals and interactions over processes and tools Value working software over comprehensive documentation Value customer collaboration over contract negotiation

Agile Methodologies v. Agile Methodologies include both: Incremental Development – i. e. iterative &

Agile Methodologies v. Agile Methodologies include both: Incremental Development – i. e. iterative & deploy multiple times Agile Principles v. A few methodologies that are adaptive development methodologies that incorporate Agile principles: Extreme Programming Scrum 11

Extreme Programming (XP) v. XP An incremental (iterative & deploy multiple times) & agile

Extreme Programming (XP) v. XP An incremental (iterative & deploy multiple times) & agile development methodology − With frequent releases in short development cycles: 2 -week iterations − Main Concepts: • 4 Core Values • 12 Software Engineering Practices • extends these “to the extreme” • Emphasizes Software quality 4 Core Values Open & frequent Keep it simple From Client, users, developers Courage to do it right; re-do if necessary 12

XP - 12 Software Engineering Practices v Planning – quick rough plan; develop user

XP - 12 Software Engineering Practices v Planning – quick rough plan; develop user stories; heavily involve users v Testing – "user story" tests written before coding; can be re-run anytime Test-Driven Development & Automated Testing v Pair Programming – one writes (driver), one inspects (navigator), trade turns v Simple Designs – few classes & methods, no duplicate code v Refactoring – improving code quality without changing what it does v Owning Code Collectively – allows anyone to improve code v Continuous integration – unit-tested code is integrated daily v On-site customer – customer must commit to the project v System metaphor –have an easily-understood vision in laymen's terms – e. g. assembly line v Small Releases – small & frequent deployment v 40 -Hour Work Week – don’t overload the developers v Coding standards – follow standards 13

XP Project Approach Project Release # Iteration # User Stories Iteration 1 5 Iteration

XP Project Approach Project Release # Iteration # User Stories Iteration 1 5 Iteration 2 2 Iteration 1 3 Iteration 2 4 Iteration 3 1 Project 1 Release 2 14

XP Project Approach Project Release # Iteration # User Stories Iteration 1 5 Iteration

XP Project Approach Project Release # Iteration # User Stories Iteration 1 5 Iteration 2 2 Iteration 1 3 Iteration 2 4 Iteration 3 1 Project 1 Release 1 v Outer layer – 1 x per PROJECT Release 2 Create all user stories Create system metaphor Create all acceptance tests Plan all releases Loop thru each RELEASE (Middle Layer) v Middle Layer – 1 x per RELEASE Plan all iterations Loop thru each ITERATION (Inner Layer) Acceptance testing of the Release Deploy the Release! Project ends when the final release is deployed! v Inner Layer – 1 x per ITERATION Code & unit test each user story Integration testing of user stories 15

Scrum v. See details in: Ch 10 Extra - Scrum (pt 1). pptx 16

Scrum v. See details in: Ch 10 Extra - Scrum (pt 1). pptx 16

XP vs Scrum XP Scrum Work Units Iteration = 2 weeks Sprints = 2

XP vs Scrum XP Scrum Work Units Iteration = 2 weeks Sprints = 2 to 4 weeks Rate of Change Can add a feature of equal size (for an unstarted feature within an iteration) Order of Features within an iteration Features prioritized by the customer Must work on features in order! No additions allowed once sprint has started but can remove a feature Features prioritized by the Product Owner Dev Team determines the sequence (but typically works on priority) SW Engineering Practices 12 Principles: test-driven development, pair programming, etc. No engineering practices prescribed But it can be combined w/XP practices 17

Our Textbook v. The Development Approach in our textbook primarily covers/follows: Incremental Development: o

Our Textbook v. The Development Approach in our textbook primarily covers/follows: Incremental Development: o Iterative – a project iterates through the SLDC _______ times. o Incremental – ____ multiple times Agile Principles: o Flexibility; embrace ______