Lecture 3 Enterprise Systems Development (CSC447) COMSATS Islamabad Muhammad Usman, Assistant Professor.

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 کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
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
Agile Software Development. Traditional Software Development 1.Initiation (RFP) 2.Feasibility study Technical – can we build it? Economic – should we.
Agile Methods and Extreme Programming CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 23, 2007.
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.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Coming up: The Manifesto for Agile Software Development 1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 3 Agile Development Software Engineering:
Wael Ellithy, Ph.D. Arx ICT  Agile Software Development  Scrum Framework  Scrum Rules and Process  Scrum In Industry.
An Agile View of Process
Introduction to Agile Methodologies and Concepts Roy Osherove Principal, Team Agile Blog : ISerializable.com.
Introduction to Agile.
An Overview of Agile L e a d i n g C h a n g e T h r o u g h C o l l a b o r a t i o n.
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.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Chapter 4 Agile Development
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
Chapter 4 An Agile View of Process
Agile Software Development with Scrum Shveta Mehtani
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.
IS2210: Systems Analysis and Systems Design and Change Twitter:
Current Trends in Systems Develpment
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
By Saravanan Bala. General Report 31 % of Software projects are cancelled 75 % of the software projects are considered failures by the people who initiated.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
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.
XP Overview Short Life cycle Risky / Dynamic Requirements Increase developer productivity.
CS3100 Software Project Management Agile Approaches.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Software Engineering (CSI 321) An Agile View of Process 1.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
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)
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Chapter 5 Agile Development Moonzoo Kim KAIST
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
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, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Software Engineering: A Practitioner’s Approach, 7/e Chapter 3 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Planning User stories are written.
Approaches to Systems Development
Software Engineering (CSI 321)
Rapid software development
Waterfall and Agile Quality Techniques
What do you need to know about XP?
Agile and XP Development
Agile and XP Development
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 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.
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

Lecture 3 Enterprise Systems Development (CSC447) COMSATS Islamabad Muhammad Usman, Assistant Professor

2 Agile Development 2001: Kent Beck and 16 other software developers, referred to as “Agile Alliance”, signed the “manifesto for Agile software development”. It stated: Through this work we have come to Value: Individuals and interaction over processes and tool Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following plan That is, while there is value in the items on the right, we values the items on the left more.

3 Agile Methods  Agile software development is a group of software development methodologies that are based on similar principles.  Agile methodologies generally promote a project management process that encourages –frequent inspection and adaptation –a leadership philosophy that encourages team work –a set of engineering best practices that allow for rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals

4 What are Agile Methods?  Agile software development is a conceptual framework for undertaking software engineering projects.  Most agile methods attempt to minimize risk by developing software in short timeboxes, called iterations, which may typically last one to four weeks.  Each iteration is like a miniature software project of its own, and includes all of the tasks necessary to release the mini-increment of new functionality.

5 Agile Methods v/s Traditional Methods  Agile methods emphasize real time communication, preferably face-to-face, over written documents.  Agile methods like XP relies on the close collaboration of activity engaged individuals with ordinary talents and has the ability to flexibly schedule the implementation of functionality, responding to changing business needs.  Reference: Extreme Programming explained: Embrace Change By: Kent Beck with Cynthia Andres; 2nd ed., 2005

6 Different Agile Methods? Extreme Programming (XP) Scrum Agile Modeling Adaptive Software Development (ASD) Crystal Clear and Other Crystal Methodologies Dynamic Systems Development Method (DSDM) Feature Driven Development Lean software development Agile Unified Process (AUP)

Extreme Programming Emphasis on four characteristics of agility –Communication: continual interchange between customers and developers –Simplicity: select the simplest design or implementation –Courage: commitment to delivering functionality early and often –Feedback: loops built into the various activitites during the development process

eXtreme Programming (XP) Philosophy –Take known good practices and push them to extremes For example –“If code reviews are good, we’ll review code all the time” –“If testing is good, we’ll test all the time” –“If design is good, we’ll make it part of everybody’s daily business”

eXtreme Programming (XP)

Essence of XP Four variables in software development : – Cost, Time, Quality, Scope Four Values – Communication, Simplicity, Feedback, and Courage Five Principles – Provide feedback, assume simplicity, make incremental changes, embrace change, quality work 12 Practices

Twelve Facets of XP The planning game (customer defines value) Small releases Metaphor (common vision, common names) Simple design Writing tests first Refactoring Pair programming Collective ownership Continuous integration (small increments) Sustainable pace (40 hours/week) On-site customer Coding standards

12 XP (Extreme Programming) XP Practices –Planning game - programmers estimate effort of implementing customer stories and customer decides about scope and timing of releases –Short releases - new release every 2-3 months –Simple design - emphasis on simplest design –Testing - development test driven…* –Refactoring - restructuring and changes to simplify –Pair Programming - 2 people at 1 computer

13 XP (Extreme Programming)……. XP Practices – Collective ownership - anyone can change any part of the code at any time. – Continuous integration - new builds as soon as code ready – 40 hour week - maximum 40-hour week. No overtime – On-site customer - customer present and available full-time for team – Coding standards - rules exist and are followed – Open workspace - large room small cubicles – Just rules - team has own rules but can be changed any at time

14 Planning –User stories are written.User stories –Release planning creates the schedule.Release planning –Make frequent small releasessmall releases –The Project Velocity is measured.Project Velocity –The project is divided into iterations.iterations –Iteration planning starts each iteration.Iteration planning –Move people around.Move people around –A stand-up meeting starts each day.stand-up meeting –Fix XP when it breaks.Fix XP Designing  Simplicity. Simplicity  Choose a system metaphor. (system of names for your objects that everyone can relate to)system metaphor  Use CRC cards for design sessions.CRC cards  Create spike solutions to reduce risk.spike solution  Refactor whenever and wherever possible. Refactor Key Practices…..

15 Coding –The customer is always available.always available –Code must be written to agreed standards.standards –Code the unit test first.unit test first –All production code is pair programmed.pair programmed –Only one pair integrates code at a time.integrates code at a time –Integrate often.Integrate often –No overtime.overtime Testing  All code must have unit tests.unit tests  All code must pass all unit tests before it can be released.unit tests  When a bug is found tests are created.a bug is found  Acceptance tests are run often and the score is published. Acceptance tests Key Practices

16 XP > Practices > “Circles of Life” On-site Customer Release Planning Small Releases Acceptance Tests Pair Programming Unit Tests Refactoring Simple Design Coding Standards Collective Ownership Continuous Integration Metaphor Sustainable Pace Synergy >> Customer – Team – Developer Pair – Team – Customer

When is Extreme Too Extreme? Extreme programming's practices are interdependent – A vulnerability if one of them is modified Requirements expressed as a set of test cases must be passed by the software – System passes the tests but is not what the customer is paying for Refactoring issue – Difficult to rework a system without degrading its architecture

Scrum In Rugby, a scrum is a way to restart the game after an interruption, e.g. after a minor foul. “During a Scrum, the pack must work as a unit, not as 8 individuals. Everybody has a role to play. The important goal to bear in mind is that when you work well together as a unit, the whole is much greater than the sum of the parts.” The On-Line Rugby Coaching Manual

What is Scrum? Scrum is not an acronym Scrum is –a team-based approach –to iteratively, incrementally develop systems and products –when requirements are rapidly changing Assumes complicated, unpredictable environment It produces a potentially shippable set of functionality at the end of every iteration

How does Scrum work? Small teams (< 10 people) A series of Sprints (1-4 weeks) Visible, usable increments Time-boxed

How does Scrum work?

22 Sprint Rules Total focus—no unwanted diversion NO interruptions/changes from the outside New work may be uncovered by the team Very XP-ish

23 What Happens During a Sprint? Frequent, short Scrum Meetings Each team produces a visible, usable increment Each increment builds on prior increments Clearly defined deliverables and responsibilities Each team member buys into the assignment

24 What’s a Scrum Meeting? Short ( min) frequent meetings, facilitated by the ScrumMaster All team members attend—even teleworkers One activity -- ScrumMaster asks each attendee 3 questions

25 What Are The 3 Questions? 1. What have you completed (relative to the Backlog) since the last Scrum meeting? 2. What got in your way of completing this work? 3. What will you do between now and the next Scrum meeting?

26 At the End of a Sprint? Status meeting with all stakeholders. Increments are delivered. Surprises are reported. ANYTHING can be changed, work can be added, eliminated, re-prioritized. New estimates and team assignments are made for the next Sprint. The project can be cancelled. “Experience from earlier increments allows better estimates and planning as project progresses. It's always easier to estimate shorter development periods”

Rational Unified Process S/W Engineering Process Process Framework Process Product Workers, Activities, Artifacts, Workflows

RUP Phases

The Architecture of RUP

You Didn’t Understand the RUP When… You think that – Inception = requirements – elaboration = design – construction = implementation. You think that the purpose of elaboration is to fully and carefully define models, which are translated into code during construction You think that only prototypes are created in elaboration You try to define most of the requirements before starting design or implementation. You try to define most of the design before starting implementation A “long time” is spent doing requirements or design work before programming starts You try to plan a project in detail from start to finish, allocating the work to each iteration; you try to speculatively predict all the iterations An organization wants believable plans and estimates for projects before they have entered the elaboration phase

RUP Support Templates – process/templates.htm process/templates.htm – 0/index.jsp?topic=/com.ibm.reqpro.help/administ ering/projects/creating_modifying/r_rup_proj_te mplate.html 0/index.jsp?topic=/com.ibm.reqpro.help/administ ering/projects/creating_modifying/r_rup_proj_te mplate.html Tools – tml tml

S/W Development Best Practices Develop software iteratively Manage requirements Use component based architecture Visually model software Continuously verify software quality ? Control changes to software

Process Models Waterfall Prototyping RAD Incremental Spiral Agile –XP –SCRUM RUP