University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.

Slides:



Advertisements
Similar presentations
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--
Advertisements

Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
SOFTWARE DEVELOPMENT METHODOLOGIES Methodologies Waterfall Prototype model Incremental Iterative V-Model Spiral Scrum Cleanroom RAD DSDM RUP.
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall B.1.
Agile methods and techniques– some method comparisons Dave Parsons Mark Cranshaw.
Agile
1 Software Testing and Quality Assurance Lecture 34 – SWE 205 Course Objective: Basics of Programming Languages & Software Construction Techniques.
Dynamic Systems Development Method (DSDM)
Extreme Programming Mark Steverson. What Is Extreme Programming? ● Extreme Programming (XP) is a lightweight, agile methodology developed by Kent Beck.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
03/12/2001 © Bennett, McRobb and Farmer Managing Object-Oriented Projects—DSDM and XP Based on Chapter 21 of Bennett, McRobb and Farmer: Object.
Iterative development and The Unified process
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
COMP 350: Object Oriented Analysis and Design Lecture 2
Coming up: The Manifesto for Agile Software Development 1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 3 Agile Development Software Engineering:
1 © Bennett, McRobb and Farmer 2002, and De Montfort University 2002 Systems Development Methodologies Based on Chapter 22 of Bennett, McRobb and Farmer:
Agile Process: Overview n Agile software engineering represents a reasonable compromise to conventional software engineering for certain classes of software.
Software Engineering Lecture No:12. Lecture # 7
Chapter 6 View Alignment Techniques and Method Customization (Part I) Object-Oriented Technology From Diagram to Code with Visual Paradigm for UML Curtis.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Chapter 2: Approaches to System Development
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
© 2010 Bennett, McRobb and Farmer1 Agile Methodologies—DSDM, XP and Scrum Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis.
Chapter 4 An Agile View of Process
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.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
Current Trends in Systems Develpment
Unified Process versus Extreme Programming. Outline Compare and contrast UP and XP  Processes / Disciplines  Management  Artefacts Risk management.
Software Development Processes
Industrial Software Project Management Some views on project managing industrial and business software projects.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Agile
Coming up: The Manifesto for Agile Software Development 1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 3 Agile Development Software Engineering:
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
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.
K.Ingram 1 Sept 2007 Agile Software Development. K.Ingram 2 Sept 2007 Contents Agile Software Development: 1.What is it? 2.Agile’s Values, Principles,
J. Scott Hawker p. 1Some material © Rational Corp. Rational Unified Process Overview See and use the RUP Browser on lab machines.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Chapter 3 Agile Development
Extreme Programming Based on and
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix B Agile Methodologies B.1.
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
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.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
44222: Information Systems Development
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Project Management Software development models & methodologies
AGILE METHODS Curtis Cook CS 569 Spring 2003.
TK2023 Object-Oriented Software Engineering
Software Development.
Process 4 Hours.
Software Development methodologies
Extreme Programming.
Approaches to Systems Development
Object Oriented Analysis and Design
Rosa María Torres de Paz
Agile Process: Overview
Chapter 3 – Agile Software Development
Extreme Programming.
Presentation transcript:

University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved in doing a particular job No two projects are ever identical, so method is specific to one project Methodology = set of general principles that guide the choice of a method suited to a specific task or project methodology or process?

University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 2 method/process vs methodology Level of abstraction Typical product Task Specific version of a class diagram Technique Any UML class diagram Method/Process A product costing system Methodology Example of application Developing a first-cut class diagram Description of how to carry out a technique, e.g. UML class modelling Specific techniques used on a particular project that lead to a specific software product General selection and sequence of techniques capable of producing a range of software products A range of business software applications

University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 3 typical participatory design lifecycle

University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 4 elements of a methodology Technique: the UML class diagram Tool: Rational Rose (CASE software) Procedure: Find classes by inspecting use case descriptions Structure: Operation specifications should not be written until class model is stable (also the stages) Stages: Inception, Elaboration, Construction… Activities: Requirements, Analysis, Design… Philosophy: OO development promotes software which is robust and resilient to change

University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 5 Unified Software Development Process (USDP) Public domain methodology for Object-Oriented software development Main principles: Use-case driven Architecture-centric Iterative development Incremental development

University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 6 Unified Software Development Process (USDP)

University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 7 Agile Unified ProcessAgile Unified Process (AUP), a lightweight variation developed by Scott W. AmblerScott W. Ambler Basic Unified ProcessBasic Unified Process (BUP), a lightweight variation developed by IBM and aIBM precursor to OpenUPOpenUP Enterprise Unified ProcessEnterprise Unified Process (EUP), an extension of the Rational Unified Process Essential Unified ProcessEssential Unified Process (EssUP), a lightweight variation developed by Ivar JacobsonIvar Jacobson Open Unified ProcessOpen Unified Process (OpenUP), the Eclipse Process Framework software development process Rational Unified ProcessRational Unified Process (RUP), the IBM / Rational Software development processIBMRational Software Oracle Unified MethodOracle Unified Method (OUM), the Oracle development and implementation processOracle Rational Unified Process-System Engineering (RUP-SE), a version of RUP tailored by Rational SoftwareRational Software for System EngineeringSystem Engineering Unified Software Development Process (USDP)

University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 8 Dynamic Systems Development Method (DSDM) = a management and control framework for Rapid Application Development Prototyping DSDM fixes resources for the project, fixes the time available and then sets out to deliver only what can be achieved within these constraints The DSDM life cycle has these phases: feasibility study business study functional model iteration (using prototypes) design and build iteration (continue with prototypes) implementation

University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 9 Dynamic Systems Development Method (DSDM)

University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 10

University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 11

University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 12 DSDM is based upon 9 underlying principles 1.Active user involvement is imperative. 2.DSDM teams are empowered to make decisions including refining or changing requirements without the direct involvement of higher management. 3.The focus is on frequent product delivery. A team delivers product(s) within a timebox (2 – 6 weeks) and adopts the most appropriate approach. 4.Fitness for purpose is the key criterion. DSDM is geared to delivering essential functionality at the specified time. 5.Iterative and incremental development is necessary to converge on an accurate business solution. Incremental development allows user feedback to inform later development.

University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 13 DSDM is based upon 9 underlying principles 6.All changes during development are reversible. This allows inappropriate iterations to be undone. 7.Requirements are initially agreed at a high level. These provide objectives for prototyping and can be investigated by the teams. Normally the scope of the high level requirements are not changed significantly. 8.Testing is integrated throughout the life cycle — this is essential with an incremental approach. Developers test for technical compliance, user team members for functional compliance. 9.A collaborative and co-operative approach between all stakeholders is essential. Includes resource managers and quality assurance teams.

University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 14 Principles of Extreme Programming (XP) Communication - XP highlights the importance of good communication among developers and between developers and users. Simplicity - XP focuses on the simplest solution for the immediate known requirements. Feedback - Feedback in XP is geared to giving the developers frequent and timely feedback from users and also in terms of test results. Work estimates are based on the work actually completed in the previous iteration. Courage - Urges the developer to throw away code that is not quite correct and start again. Essentially the developer has to leave unproductive lines of development despite personal investment in the ideas.

University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 15 Based on user stories that describe the requirements –written by the user –the basis of project planning and the development of test harnesses Very similar to use cases though some proponents of XP suggest that there are key differences in granularity –typical user story is about three sentences with no technology indicated –developers get detailed descriptions from the customer when they start developing Best suited to projects with a relatively small number of programmers—say no more than ten Critical to maintain clear communicative code and to have rapid feedback (If these are not possible then XP would be problematic) XP not sympathetic to using UML for analysis & design Principles of Extreme Programming (XP)

University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 16 XP Activities The planning game involves quickly defining the scope of the next release from user priorities and technical estimates. The plan is updated regularly as the iteration progresses. The information system should be delivered in small releases that incrementally build up functionality through rapid iteration. A unifying metaphor or high level shared story focuses the development. The system should be based on a simple design. Programmers prepare unit tests in advance of software construction and customers define acceptance tests. The programme code should be restructured to remove duplication, simplify the code and improve flexibility (refactoring).

University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 17 Pair programming means that code is written by two programmers using one workstation. The code is owned collectively and anyone can change any code. The system is integrated and built frequently each day. This gives the opportunity for regular testing and feedback. Normally staff should work no more than forty hours a week. A user should be a full-time member of the team. All programmers should write code according to agreed standards that emphasise good communication through the code. XP Activities