Approaches to Systems Development

Slides:



Advertisements
Similar presentations
SOFTWARE DEVELOPMENT METHODOLOGIES Methodologies Waterfall Prototype model Incremental Iterative V-Model Spiral Scrum Cleanroom RAD DSDM RUP.
Advertisements

Systems Analysis and Design in a Changing World, 6th Edition
Chapter 2 Approaches to System Development
Systems Analysis and Design in a Changing World, 6th Edition
Approaches to Systems Development
NAUG NAUG Knowledge Evening – th February 2007.
Agile development By Sam Chamberlain. First a bit of history..
Agile Software Development. Traditional Software Development 1.Initiation (RFP) 2.Feasibility study Technical – can we build it? Economic – should we.
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Systems Analysis and Design in a Changing World, Fifth Edition
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
Introduction to Agile.
Chapter 1 The Systems Development Environment
Chapter 2: Approaches to System Development
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
Current Trends in Systems Develpment
By Saravanan Bala. General Report 31 % of Software projects are cancelled 75 % of the software projects are considered failures by the people who initiated.
Systems Analysis and Design in a Changing World, 6th Edition 1 Chapter 8 - Approaches to System Development.
CPSC 2150 August 21, Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Approaches to Systems Development
Rational Unified Process Mr Hisham AlKhawar. Iterative versus Waterfall  We need to use a life cycle model in order to approach developing a system easily,
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
2 Systems Analysis and Design in a Changing World, Fifth Edition.
Systems Analysis and Design in a Changing World, Fourth Edition
Systems Analysis and Design in a Changing World, 6th Edition
Copyright © 2015 Curt Hill Software Development Paradigms What do you need to know?
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Intelligence and Information Systems 1 3/17/2004 © 2004 Raytheon Company USC/CSE Executive Workshop on Agile Experiences March 17, 2004 A Raytheon Agile.
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
Systems Analysis and Design in a Changing World, 6th Edition
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Software Development Life Cycle. The Software Life Cycle  Encompasses all activities from initial analysis until end of work  Formal process for software.
Embedded Systems Software Engineering
Software Development.
Agile Methodology and Scrum
Process 4 Hours.
Flight Software Conference 2016
Methodologies and Algorithms
Scrum.
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Appendix B Agile Methodologies
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Software Development methodologies
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Agile Software Development Brian Moseley.
Information Technology Project Management – Fifth Edition
Systems Analysis and Design in a Changing World, 6th Edition
Approaches to Systems Development
Rapid software development
Software Processes.
Introduction to Software Engineering
How to Successfully Implement an Agile Project
Teaching slides Chapter 1.
Summarizing Our Models to Date
Chapter 1 (pages 4-9); Overview of SDLC
Lecture 2 Revision of Models of a Software Process
System DEVELOPMENT LIFE CYCLE MODELS
Software engineering -1
Systems development life cycle (SDLC)
Systems Analysis and Design in a Changing World, 6th Edition
Appendix B Agile Methodologies
Agile software development
Scrum in Action.
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

Approaches to Systems Development Chapter 10

Outline Introduction Ch 10 - Approaches to System Development Systems Analyst Ch 10 - Approaches to System Development SDLC Predictive vs Adaptive Approaches Agile Methodologies RUP XP Scrum

Systems Analyst

Systems Analyst Organizational role most responsible for the analysis & design of information systems. Translates a _________ __________ into an ___________ ___________ ___________ . Job Titles vary by organization; read the job description Systems Analyst Business Analyst (client-facing)

…more of a business problem solver than a technical programmer Systems Analyst …more of a business problem solver than a technical programmer Knowledge & Skills Technical DB, Programming, Computers Hardware, Networking, Operating systems, and utilities, Communication & collaboration technology SDLC techniques Business Organizational knowledge, Management techniques, Functional work processes People Communication skills, Interpersonal Skills Roles: Negotiator, Teacher, Mentor, Collaborator, Manager

Development Projects & the SDLC

Information System Development Project What is it? It's a planned undertaking Has fixed beginning and end Produces desired result or product It can differ in… Features Size Cost Resources

SDLC: Systems Development Life Cycle Provides overall framework for managing systems development process All projects use some variation of SDLC Phase Project Initiation Planning Analysis Design Implementation Deployment Core Process 1. Identify the problem/need & obtain approval 2. Plan & monitor the project 3. Discover & understand the details 4. Design the system components 5. Build, test, and integrate system components 6. Complete system tests and deploy solution Ch 11 Ch 11 Ch 2-5 Ch 6, 8-9,12-13 Ch 13 Ch 14

2 Approaches to the SDLC Assumptions Assumptions Predictive SDLC Adaptive SDLC Waterfall Model Modified Waterfall Spiral Model Incremental Development Assumptions can be planned in advance system can be developed according to the plan Assumptions Iterative Must be flexible & adapt

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

Adaptive Approaches Spiral Model An iterative approach Spiral until project completion Then, deployed! Project Management: managed differently than a waterfall approach Note: An iteration contains the complete SDLC

Adaptive Approaches Incremental Development 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

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

Agile Methodologies

Agile Philosophy 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 These are complete adaptive development methodologies that incorporate Agile principles: Rational Unified Process (RUP) Extreme Programming Scrum They are iterative, incremental, and agile

Rational Unified Process (RUP) An object-oriented systems development methodology Invented by 3 Amigos: Grady Booch, James Rumbaugh, & Ivar Jacobson Rational Software, which is now owned by IBM Also, invented UML 4 Phases 9 Disciplines Inception Elaboration Construction Transition A&D of Core Reqs -Use Cases Coding Solve Tech, Perf, Reliability concerns Scope & Prelim est. User acceptance testing, Deploying Each phase can consist of one or more iterations.

Extreme Programming (XP) An iterative and incremental agile SW 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

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

XP Project Approach Project Release # Iteration # User Stories 5 Iteration2 2 Release2 3 4 Iteration3 1

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

Scrum Scrum An iterative and incremental agile SW development methodology frequent releases in short development cycles: 2-week sprints Organization Product Owner - client stakeholder who controls the Product Backlog Scrum Master - Scrum project manager a facilitator, removes impediments, resolves issues However, the Scrum Team does the schedule Development Team - 5 to 9 developers, testers, architects, designers, etc. Small self-organizing teams; have all the skills necessary They ultimately decide what goes in a Sprint Can have more than 1 team in larger projects Main Concepts: Product Backlog - Prioritized list of user requirements Development Team has complete control over organization & work processes

Scrum - Sprint Sprint - A time-controlled mini-project to implement part of the system Scope is frozen (but can be reduced) Time period is kept constant – 2 weeks, 4 weeks

Scrum - Meetings Sprint Planning - 8 hours before the Sprint Time: assumptions are for a 1-month sprint Sprint Planning - 8 hours before the Sprint Purpose: Creating the Sprint Backlog Part I: Product Owner presents the desired set of User Stories & the acceptance criteria for each story. Part II: Dev Team takes each story & breaks them into tasks; creates time estimates per task; finalizes the user stories they can commit to. Dev Team gets to say if there are details lacking in the user stories & cannot commit to certain stories Attended by: Scrum Master, Development Team, Product Owner Daily Scrum (“Stand-Up”) - 15 mins @ beginning of day Purpose: Daily status update between the development team: Yesterday, Today, Barriers Sprint Review (“Demo”) – 4 hours at the end of the Sprint Purpose: a demo to inspect & adapt the product; additions to product backlog may be identified. Attended by: Scrum Master, Development Team, Product Owner PLUS: stakeholders, management and developers from other teams Sprint Retrospective - 3-hours at the end of the Sprint Purpose: process improvement - lessons learned, successes and failure Attended by: Scrum Master, Development Team

XP vs Scrum XP Scrum Work Units Rate of Change 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) No additions allowed once sprint has started but can remove a feature Order of Features within an iteration Features prioritized by the customer Must work on features in order! 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