System Development Methods

Slides:



Advertisements
Similar presentations
Keith McMillan Principal, Adept Technologies Copyright (C) 2008, Adept Technologies llc.
Advertisements

Colin Weaver The Eleven Essential Behaviours of Successful Agile Project Teams.
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--
E X treme Programming & Agile Modeling Copyright © 2003 Patrick McDermott UC Berkeley Extension
COPYRIGHT © 2012 ALCATEL-LUCENT. ALL RIGHTS RESERVED. 1 Agile documentation development methodology Giby Panicker and Judith Benjamin 1-Dec-2012.
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.
Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Agile Project Management with Scrum
Agile development By Sam Chamberlain. First a bit of history..
Agile Architecture? Paul Lund 24 th Nov Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Agile Methods.
COMP 350: Object Oriented Analysis and Design Lecture 2
An Agile View of Process
Introduction to Agile.
Software engineering Process models Pavel Agejkin.
Classical vs. Agile Requirements Development Svetlin Nakov Telerik Software Academy academy.telerik.com Senior Technical Trainer
Software Development Process
1 Agile Methodology & Programming Ric Holt July 2009.
Software Engineering Modern Approaches
Agile Programming Principles.
The Agile Primer July 2008 © ThoughtWorks 2008.
Developed by Reneta Barneva, SUNY Fredonia Agile Development.
Chapter 4 Agile Development
AGILE Methodology. AGILE  derived from the word ‘agile manifesto’, also called the Manifesto for Agile Software Development which is a formal proclamation.
Agile Methods. Agile Process/Method lightweight processes/methods that can be used to manage and control software and product development using iterative,
AgileCamp Presents: Agile 101. Good luck in your presentation! This slide deck has been shared by AgileCamp Kit under the Creative Commons Attribution.
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:
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
Software Engineering Saeed Akhtar The University of Lahore Lecture 5 Originally shared for: mashhoood.webs.com.
AGILE COTS Václav Pergl We are uncovering better ways of developing software by doing it and helping others do it. Through this work.
- Discussion of Chapter 1 in Martin and Martin.  We are uncovering better ways of developing software by doing it and helping others do it. Through this.
Module 2: What is Agile? Why use it? TLO: Given a DoD program involved in software development, the student will recognize situations where applying agile.
TIK 302 Rekayasa Perangkat Lunak Agile Proses. Agile View of Process Represents a reasonable compromise between conventional software engineering for.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
Baby Steps to Agility How to Grow Into Agile. A little about me A little about Agile Growing into Agile Questions Goals.
Project Workflow.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Chapter 5 Agile Development Moonzoo Kim KAIST
Agile Project Management
Introduction to Agile Software Development
Principles for Agile Development
Methodologies and Algorithms
Agile Training Day 2 November 17, 2015.
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Software Engineering Process
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Agile Software Development
Project Workflow.
Software Development methodologies
Software Engineering: A Practitioner’s Approach, 7/e Chapter 3 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Iterative and Agile Development
#2-What is Agile? Why Agile?
Introduction to Software Engineering
COMP 350: Object Oriented Analysis and Design Lecture 2
Project Management and the Agile Manifesto
Teaching slides Chapter 1.
Rosa María Torres de Paz
Lecture 2 Revision of Models of a Software Process
Chapt 2 Iterative Evolutionary Agile.
Introduction to Agile Blue Ocean Workshops.
Adjective: Able to move quickly and easily. Principles and Values
Chapter 3: Agile Software Processes
Projects, Assignments, and other Assessments
Agile Development.
SD5953 Successful Project Management AGILE SOFTWARE DEVELOPMENT
Presentation transcript:

System Development Methods Erik Perjons

Questions to answer What is a system development method? Why do you need system development methods? Which different types of system development methods exists and which are their benefits and drawbacks?

System Development Methods

System Development is Complex System development, sometimes called software development, is complex Many system development projects fail (around 25 percent), others are delayed or do not produce the required functionality (around 45 percent) – mainly due to this complexity of the projects

System Development is Complex Factors that makes system development complex are: System development project are large project with many different people involved from different groups, departments and organizations. These people have different roles, and thereby, different views and expectations Many times there are shortcomings in requirement engineering, that is, requirements are lacking and/or have low quality. Requirements can also change during the projects The system to be developed also needs to be integrated with business processes and other IT systems in the IT system architecture of an organization, and this is a complex process

What is a System Developments Method? A system development method is method that provide structure to the development of a system A system development method does often contain the following phases/activities: Requirement engineering – define the requirement of the system (this phase/activity is sometimes called analysis) Design – define the overall architecture and structure of the system Implementation – code the functions and build the database system Test and deploy – test that the implemented system fulfill the requirements, and introduce the system in the organisation and integrate it with processes and other systems

Why System Developments Methods? The goals of system development methods are: to provide a better control of the project, such as better resource allocation and management of delays to ensure that requirements are defined and fulfilled to communicate information about the project throughout the organization – to all stakeholders (i.e. people and roles that has interest in the system, such as future users, developers, managements, owners) to produce necessary documentation for maintaining the system after it has been deployed

Categorizing System Development Methods System development methods can be categorized into methods based on the waterfall principle or the iterative principle Example of methods based on waterfall principle – DOD-STD-2167A , MIL-STD-1521, both are standards from the military domain Example of methods based on iterative principle – Rational Unified Process (RUP), XP, Scrum

Waterfall Principle Waterfall principle - is based on the idea that all requirements should be defined before the overall design of the whole system is started. Moreover, the design, in its turn, needs to be finished before implemation/coding is started. Finally, first when the coding is finished, the system can be tested and deployed in the organization. That is, it is stictly sequential. Requirement Design Implementation Test & Deploy

Iteration Principle Iteration principle is based on the idea that a system should be developed in a set of mini project. Each miniproject, called an iteration, involve a limited set of requirements, which are designed, implemented and deployed to receive early user feedback

Waterfall Principle Evaluated Benefit of the Waterfall principle: easy to plan and estimate costs early in the project the plan is easy to understand, and control/follow up Drawback of Waterfall principle: many systems developed using the waterfall principle are not successful, mainly due to limited customer feedback during the project problem to handle changed requirments during development often results in extensive production of documents that are not used (i.e. easily become bureaucratic)

Iteration Principle Evaluated Benefit of the Iteration principle: more successful results than projects based on the waterfall principle the project receive early and rapid feedback from user support replanning based on user feedback and changed requirements during the project Drawback of Iteration principle: hard to plan and estimate costs early hard to introduce iterations and early user feedback in practice

Incremental/Evolutionary Development Closely related to the interation principle are incremental and evaluationary development Incremental development – the system is growing (in number of functions) step-by-step Evolutionary development – the system is developed based on feedback, that is, the system is adapted given the feedback

Prototype Before developing a system, a prototype can be developed. There is no agreement on what a prototype is, but it can be seen as an early form of the final system, focusing on certain aspects of it. For example, a prototype of a system can be a drawing on a paper, or a software system focusing on the system’s user friendliness. The prototype enables the designers to better understand design challenges for developing the final artefact, and the prototype is often constructed to obtain early user-feedback.

Agile Methods Agile methods are a group of iterative system development methods that share a set of values and principles that should govern the system development – presented in the Agile Manifesto Agiles methods also provide a set of practices to use for supporting the values and principles, for example pair programming and time boxing Most well-known agile methods are: eXtreme Programming (XP), Scrum, Crystal, Lean Software Development

Agile 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” [Citations from Manifesto of Agile Software Development (http://agileManifesto.org)]

Agile Principles - Examples “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software” “Working software is the primary measure of progress” “Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done” “At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly” [Citations from Manifesto of Agile Software Development (http://agileManifesto.org)]

Agile Practices – Examples Pair programming – means that two programmers work together during the coding of the system. The first one, called the driver, carries out the coding, while the other, the observer, gives advices both regarding both the strategy and details Time boxing – means that the time frame for each each iteration is specified early in the project and should not be changed. The time frames for each iteration force the develoment team to really develop the system incrementally using iterations

Agile Methods Evaluated Benefits of Agile methods: popular among system developers very adaptive to new requirements – support constant replanning the bureaucracy is limited – instead focus on individuals and their collaboration Drawbacks of Agile methods: provide limited governance support in large project provide insufficient risk management

Rational Unified Process Rational Unified Process (RUP) - also often called Unified Process RUP is iterative and use case driven RUP provides a loose structure of activities and instruments (including a number of UML models) that can be used RUP needs to be configured for each projects, that is, it need to be specified which activities and instrument to be used and combined

RUP Evaluated Benefits of RUP: can be configured to suit a specific project better in managing risk than agile methods is use case driven which supports iterations Drawbacks of RUP: RUP is often criticized for being too bureaucratic if too many activities and instruments are used when configuring RUP for a project

Questions to answer What is a system development method? Why do you need system development methods? Which different types of system development methods exists and which are their benefits and drawbacks?