The Software Process ECE 417/617: Elements of Software Engineering Stan Birchfield Clemson University.

Slides:



Advertisements
Similar presentations
Software Development Practices and Methodologies Svetlin Nakov Telerik Corporation
Advertisements

Unified process(UP) UP is an OO system development methodology offered by Rational(Rational Rose) s/w, now a part of IBM Developed by Booach,Rambaugh,Jacobson--
SDLC – Beyond the Waterfall
Software Development Life-Cycle Models
PROC-1 3. Software Process. PROC-2 What’s a process? Set of activities in creating software It involves creativity –hard to automate –Requires human judgment.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
The Software Process ECE 417/617: Elements of Software Engineering
Alternate Software Development Methodologies
NAUG NAUG Knowledge Evening – th February 2007.
Agile Process Models. Prescriptive models don’t work It is unrealistic to not have changes. Why? The Agile Manifesto: Individuals and interactions over.
Agile development By Sam Chamberlain. First a bit of history..
Software Life Cycles ECE 417/617: Elements of Software Engineering
Agile
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Extreme Programming--a “New” Process Model Extreme Programming-- a “New” Process Model.
Fundamental of Software Project Management Team Assignment 1 – K15T2 – Team 07.
An Agile View of Process
Introduction to Agile Methodologies and Concepts Roy Osherove Principal, Team Agile Blog : ISerializable.com.
Introduction to Agile.
Software engineering Process models Pavel Agejkin.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Software Engineering Modern Approaches
Chapter 4 Agile Development
Chapter 4 Agile Development 1. The Manifesto for Agile Software Development 2 “We are uncovering better ways of developing software by doing it and helping.
By Saravanan Bala. General Report 31 % of Software projects are cancelled 75 % of the software projects are considered failures by the people who initiated.
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
Coming up: The Manifesto for Agile Software Development 1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 3 Agile Development Software Engineering:
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,
Software Engineering Saeed Akhtar The University of Lahore Lecture 5 Originally shared for: mashhoood.webs.com.
1 The Manifesto for Agile Software Development “We are uncovering better ways of developing software by doing it and helping others do it. Through this.
Chapter 4 프로세스 모델 Process Models
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 4 Agile Development Discussion of Agile Development and Agile Process.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
2  Examine effects of using agile methods for creating Internet products on customer satisfaction and firm performance  Agile methods are informal,
1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 7/e Chapter 2.
Software Engineering (CSI 321) An Agile View of Process 1.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
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,
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
Copyright 2015, Robert W. Hasker. Classic Model Gathering Requirements Specification Scenarios Sequences Design Architecture Class, state models Implementation.
CS 4500: Software Development Software Process. Materials Sommmerville Chapters 1, 2 and 3 Software Cycle and Models:
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
RATIONAL UNIFIED PROCESS PROCESS FRAMEWORK OVERVIEW.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Chapter 5 Agile Development Moonzoo Kim KAIST
Software Development.
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Software Engineering: A Practitioner’s Approach, 7/e Chapter 3 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Agile Software Development Brian Moseley.
Approaches to Systems Development
Software Engineering (CSI 321)
Introduction to Software Engineering
روش‌های سريع الانتقال (چابک) توسعه نرم افزار
Agile Software Processes
Lecture 2 Revision of Models of a Software Process
Software Engineering Fundamentals
Presentation transcript:

The Software Process ECE 417/617: Elements of Software Engineering Stan Birchfield Clemson University

Life cycle phases 5 phases of every S/W life cycle: 1.Communication – requirements gathering, project initiation 2.Planning – determine tasks, risks, resources, work products, schedule; estimate, schedule, track 3.Modeling – create models to facilitate more precise communication and planning; includes analysis and design 4.Construction – code generation and testing 5.Deployment – delivery, feedback, support Two approaches: prescriptive and agile

Waterfall model Requirements Analysis System Design Object Design Coding Testing Installation Maintenance [adapted from Royce (1970)]

What is wrong with waterfall? Requirements Analysis System Design Object Design CodingTesting Installation Maintenance Interrelated  nonlinear, sequential

V-model Requirements Analysis System Design Object Design Coding Unit Testing System Testing Acceptance Testing less detail more detail build systemvalidate system is validated by

Incremental model ADCTM increment #1 version #1 ADCTM increment #2 version #2 ADCTM increment #3 version #3 time features

Rapid application development (RAD) Communication Planning Modeling Construction Deployment Team #N Modeling Construction Team #1 60 – 90 days Developed by James Martin at IBM in 1980s RAD has largely been discredited because it has not proved successful "RAD is back", says IBM, Information Age, Feb. 10,

Prototyping Communication Quick plan Quick modeling Construct Prototype Delivery Feedback Enables faster feedback Can be incorporated into other models But what is the danger?

Shark tooth model [from Michael Black]

Spiral model Planning Modeling Construction Deployment Communication start [developed by Barry Boehm, 1988] “Risk-driven approach”

Concurrent under development awaiting changes under revision under review baselined done none Each activity can be in a different state:

Unified process Communication Planning Modeling Construction Deployment software increment inception elaboration transition construction Incremental, iterative “Unified”  same originators as UML Also called Rational Unified Process (RUP) Based on spiral model, developed at Rational Software, a division of IBM since 2003

Unified process work products Inception phase vision document initial use-case model initial business case initial risk list project plan prototype(s)... Elaboration phase use-case model requirements analysis model preliminary model revised risk list preliminary manual... Construction phase design model SW components test plan test procedure test cases user manual installation manual... Transition phase SW increment beta test reports user feedback...

Agile development S/W development is unpredictable –requirements will change (which ones?) –design and construction are interleaved (how much design is needed?) –analysis and testing, too Solution: Use an adaptable process –incremental development strategy

Agile principles Agile Manifesto (2001) values –individuals and interactions over processes and tools –working software over comprehensive documentation –customer collaboration over contract negotiation –responding to change over following a plan Agile principles: –satisfy customer (highest priority) –early and frequent S/W delivery –welcome changing requirements –work daily with business people and developers –build projects around motivated individuals –simplicity: maximize the amount of work NOT done –self-organizing teams –regular reflection to adjust behavior to improve effectiveness

Extreme programming (XP) [from extremeprogramming.org ] [Kent Beck, Extreme Programming Explained, 1999] Kent Beck became project leader of Chrysler’s payroll project in 1996 Project canceled in 2000

A simpler view of XP planning design coding test S/W increment refactoring unit test acceptance test continuous integration CRC cards spike solutions (prototypes)

XP principles 1.Test-driven development 2.The planning game 3.On-site customer 4.Pair programming 5.Continuous integration 6.Refactoring 7.Small releases 8.Simple design 9.System metaphor 10.Collective code ownership 11.Coding standards hour work week Pros and cons?

Adaptive S/W development (ASD) ASD focuses on human collaboration and team self-organization speculation collaboration learning S/W increment [Highsmith 2000]

Scrum Backlog – prioritized list of project requirements or features Sprints – work units required to achieve a requirement –deliver within fixed time (30 days) –no changes to requirement allowed during that time Daily meetings (15 min.) –What did you do? –What obstacles are you encountering? –What is your plan? Demos – S/W increments delivered to customer (can ship final product upon demand)

BDUF controversy BDUF – Big design up front Proponents claim that planning up front saves lots of time in the end Much faster to fix a bug in the spec than in the code An ounce of prevention is worth a pound of cure Who is right? Both. Strive for balance.

Model summary Prescriptive models Waterfall Incremental RAD Spiral Concurrent development Component-based development Formal methods Aspect oriented Unified process (RUP) Agile models Extreme programming (XP) Adaptive software development (ASD) Dynamic systems development (DSDM) Scrum Crystal Feature driven development (FDD) Agile model

Synch-and-stabilize How to balance structure and flexibility? Solution: –Plan product with vision statement –Translate into specification document with enough detail to divide the work –Divide into parts and assign to teams –Teams are free to implement, innovate as they wish –Teams work under common environment –Teams check-in work frequently –Frequent (daily) builds –Always a working system –Easy to test, see defects, measure progress continually [from “How Microsoft Builds Software”, Cusumano and Selby]

Personal software process (PSP) Individual developers should –measure the quality of output –plan (estimate and schedule work) –identify likely and actual errors –use metrics to improve process Activities: (1) planning, (2) high-level design, (3) high-level design review, (4) development, (5) postmortem Disciplined metrics-based approach to software engineering Requires significant training Improves productivity and quality, but resisted by many developers (culture shock) [SEI’s Watts Humphreys]

Team software process (TSP) Project team should –be self-directed, able to plan and track their work, establish goals, and own their processes and plans –have consistent understanding of its overall goals and objectives –define roles and responsibilities –track quantitative project data –identify and implement an appropriate process for the project –define local standards –continually assess and respond to risks –track, manage, and report project status Activities: (1) launch, (2) high-level design, (3) implementation, (4) integration and test, (5) postmortem Rigorous approach that requires a full commitment from the team Requires thorough training Improves productivity and quality [SEI’s Watts Humphreys]

Formal inspections Developed by Michael Fagan at IBM, 1970s and 1980s More effective than informal “walk-throughs” Participants: –Designer/Author – responsible for producing program design –Coder/Reader – paraphrases the design/code as if they will implement it –Tester – views product from testing standpoint –Moderator – acts as “coach”; goal should be to invite “Phantom Inspector”, the additional presence that seems to materialize from the synergy of the group If the coder and designer are the same person, then someone else fills the roll of coder Example inspection result: In module X, line Y: check is performed one less time than required – LO/W/MAJ (logic error, wrong, major) Maximum inspection rate: 125 Noncommentary source statements (NCSS) per hour (for systems programming) An inspection session should not exceed two hours to avoid diminishing ability to concentrate

Inspection process Each step is essential: 1.Overview – educate participants, assign roles 2.Preparation – participants prepare for roles 3.Inspection – find defects (do not find solutions) 4.Rework – author fixes all defects 5.Follow-Up – verification by moderator or team to ensure that no secondary defects have been introduced (approximately 1 in 6 fixes are wrong)

Types of inspections IT 1 : finds voids and discrepancies in test plan IT 2 : finds errors in test cases I 0 : inspects internal specifications I 1 : inspects design complete spec I 2 : inspects code Note: It is 10 to 100 times less expensive to find/correct errors early in the process