SEEM4570 System Design and Implementation Lecture 10 Software Development Process

Size: px
Start display at page:

Download "SEEM4570 System Design and Implementation Lecture 10 Software Development Process"

Transcription

1 SEEM4570 System Design and Implementation Lecture 10 Software Development Process Software Development A software development process: A structure imposed on the development of a software product Also known as software development life cycle (SDLC) Several models proposed. Each describes an approach to a variety of tasks or activities that take place during the process. We will discuss some of these models in this lecture

2 Standard ISO/IEC is an international standard for software lifecycle processes. It aims to be the standard that defines all the tasks required for developing and maintaining software. There are 23 Processes, 95 Activities, 325 Tasks and 224 Outcomes (the new ISO/IEC 12207:2008 Systems and software engineering Software life cycle processes defines 43 system and software processes). ISO/IEC (1/2) Why we need standard? A standard can give a common structure and language to all buyers, suppliers, developers, maintainers, operators, managers and technicians who are involved. This common language is established in the form of well defined processes.

3 ISO/IEC (2/2) What is the major characteristic? The structure of the standard was intended to be conceived in a flexible, modular way so as to be adaptable to the necessities of whoever uses it. So, any design principle? A basic principles: modularity. Modularity can be divided into coupling and cohesion. Coupling (1) Coupling among classes or subsystems is a measure of how interconnected those classes or subsystems are. Two common coupling terms: Loose coupling vs. tight coupling Related classes have to know internal details of each other, changes ripple through the system, and the system is potentially harder to understand. A good software (design) should have low degree of coupling (loose coupling)!

4 Coupling (2) The following program has high degree of coupling. You need to understand a lot of things (e.g. database structure, connection name) that are not related to the business logic. Program 1: public function Process(){ $con = mysqli_connect(" ","abc","123","mydb"); if (mysqli_connect_errno($con)){ die(mysqli_connect_error()); } $statement = "SELECT name, passwd FROM user"; $result = mysqli_query($con, $statement); for(; $row=mysqli_fetch_array($result); ){ processdata($row); } mysqli_close($con); } Coupling (3) The following program has low degree of coupling Program 2: public function Process(){ $con = new DBConnect(); $userdata = getuserdata($con); for(; $row=$userdata->fetch_array(); ){ processdata($row); } $con->close(); }

5 Coupling (4) The goals behind achieving loose coupling between classes and modules are to: Make the code easier to read. Make our classes easier to consume by other developers by hiding the ugly inner workings of our classes. Isolate potential changes to a small area of code. Reuse classes in completely new contexts. Cohesion (1) A measure of how closely related all the responsibilities, data, and methods of a class are to each other. i.e., a measure of whether a class has a well-defined role within the system. A good software (design) should have high degree of cohesion Think about it: When you're at a loud party with a lot of different conversations going on at once, it can be difficult to focus on the one conversation you're trying to have. It's much easier to have a conversation in a quiet setting where there's only one conversation going on.

6 Cohesion (2) An easy test for cohesion is to look at a class and decide whether all the contents of the class are directly related to and described by the name of the class names. If the class has responsibilities that don't relate to its name, those responsibilities probably belong to a different class. If you find a subset of methods and fields that could easily be grouped separately under another class name, then maybe you should extract these methods and fields to a new class. Waterfall Model Overview The waterfall model is a sequential design process Progress is seen as flowing steadily downwards (like a waterfall) through different phases, such as requirements, design, implementation, verification, maintenance, One should move to a phase only when its preceding phase is completed and perfected. An Example

7 Waterfall Model Why Time spent early in the software production cycle can lead to greater economy at later stages. A simple example (idea): A bug found in the early stages (such as requirements specification or design) is cheaper in money, effort, and time, to fix than the same bug found later (such as coding). An extreme example If a program design turns out to be impossible to implement, it is easier to fix the design at the design stage than to realize months later, when program components are being integrated, that all the work done so far has to be scrapped because of a broken design. Waterfall Model Related Concept (1) Big Design Up Front (BDUF) A software development approach in which the program s design is to be completed and perfected before that program's implementation is started

8 Waterfall Model Related Concept (2) Joel Spolsky, a BDUF lover: Many times, thinking things out in advance saved us serious development headaches later on. Making this change in the spec took an hour or two. If we had made this change in code, it would have added weeks to the schedule. I can t tell you how strongly I believe in Big Design Up Front, which the proponents of Extreme Programming consider anathema. I have consistently saved time and made better products by using BDUF and I m proud to use it, no matter what the XP fanatics claim. They re just wrong on this point and I can t be any clearer than that. Waterfall Model Benefits Waterfall model emphasis on documentation (such as requirements documents and design documents) as well as source code. If we have less designed and documented methodologies, then in case some team members leave, knowledge may be lost and may be difficult for a project to recover. Should a fully working design document be present, new team members or even entirely new teams should be able to familiarize themselves by reading the documents.

9 Waterfall Model Critics (1) Poorly adaptable to changing requirements Assumes designers are able to foresee problem areas without extensive prototyping or implementation Ignore there is an overhead to be balanced between the time spent planning and the time that fixing a defect would actually cost If the cost of planning is greater than the cost of fixing then time spent planning is wasted. Waterfall Model Critics (2) It is quite impossible for many non-trivial project to finish a phase perfectly before moving to the next phase Clients may not know exactly what requirements they need before reviewing a working prototype and commenting on it. They may change their requirements constantly. Designers and programmers may have little control over this. If clients change their requirements after the design is finalized, the design must be modified to accommodate the new requirements. Investing a lot on planning (e.g. BDUF) is not wise

10 Waterfall Model Critics (3) Designers may not be aware of future implementation difficulties when writing a design for an unimplemented software product. That is, it may become clear in the implementation phase that a particular area of program functionality is extraordinarily difficult to implement. In this case, it is better to revise the design than persist in a design based on faulty predictions, and that does not account for the newly discovered problems. Iterative Model Overview (1) Iterative and Incremental development is at the heart of a cyclic software development process developed in response to the weaknesses of the waterfall model. It starts with an initial planning and ends with deployment with the cyclic interactions in between.

11 Iterative Model Overview (2) Develop a system through repeated cycles (iterative) and in smaller portions at a time (incremental), allowing software developers to take advantage of what was learned during development of earlier versions of the system. Learning comes from both the development and use of the system, where possible key steps in the process start with a simple implementation of a subset of the software requirements and iteratively enhance the evolving versions until the full system is implemented. At each iteration, design modifications are made and new functional capabilities are added. Iterative Model Related Concept Two kinds of famous models that implemented the concept of iterative model: Spiral Model Extreme Programming Agile Software Development Framework

12 Iterative Model Why Working software vs. comprehensive documentation Working software will be more useful and welcome than just presenting documents to clients in meetings Customer collaboration vs. contract negotiation Requirements cannot be fully collected at the beginning, therefore continuous customer or stakeholder involvement is very important Responding to change vs. following a plan Focus on quick responses to change and continuous development Iterative Model Benefits Suitable for certain types of environment, including small teams of experts. The customer and developers are in close communication. In water-fall model, customers are initially represented by the requirement and design documents. Documents are produced when they are required, and the content reflects the information necessary at that point in the process. All documents will not be created at the beginning of the process, nor all at the end. Like the product they define, the documents are works in progress. The idea is to have a continuous stream of products produced and available for user review

13 Iterative Model Critics Unstable requirements Lack of overall design specification or documentation. No documented compromises of user conflicts Inefficient in large organizations or involve a project involve many parties It is developer-centric rather than user-centric. Focuses on processes for getting requirements and developing codes and does not focus on product design Agile Development Framework Proposed by Agile Alliance in Uses iterative development as a basis but advocates a lighter and more people-centric viewpoint than traditional approaches. Uses feedback, rather than planning, as their primary control mechanism. The feedback is driven by regular tests and releases of the evolving software. Software developers are not coders, but experience creators

14 Agile Development Framework Principles Twelve principles: Customer satisfaction by rapid delivery of useful software Welcome changing requirements, even late in development Working software is delivered frequently (weeks rather than months) Working software is the principal measure of progress Sustainable development, able to maintain a constant pace Close, daily co-operation between business people and developers Face-to-face conversation is the best form of communication Projects are built around motivated individuals, who should be trusted Continuous attention to technical excellence and good design Simplicity Self-organizing teams Regular adaptation to changing circumstances Agile Development Framework Concept Agile methods break tasks into small increments (known as iteration) with minimal planning and do not directly involve long-term planning. Each iteration involves: Working through a full software development cycle, including planning, requirements analysis, design, coding, unit testing, Demonstrate to stakeholders. Iterations are short time frames Typically last from one to four weeks. This minimizes overall risk and allows the project to adapt to changes quickly. An iteration might not add enough functionality to warrant a market release, but will have an available release (with minimal bugs)

15 Agile Development Framework Characteristics Team size is typically small (5-9 people) to simplify team communication and team collaboration. Emphasize face-to-face communication over written document Larger development efforts can be delivered by multiple teams working toward a common goal or on different parts of an effort. This might require a coordination of priorities across teams No matter what development disciplines are required, each agile team will contain a customer representative Extreme Programming Extreme programming (XP) is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements. It advocates frequent releases in very short development cycles, which is intended to improve productivity and introduce checkpoints where new customer requirements can be adopted.

16 Spiral Model (1) Spiral Model (2) Combines the features of iterative model and waterfall model Allows for incremental releases of the product, or incremental refinement through each time around the spiral. Starting at the center, each turn around the spiral goes through several task regions: Determine the objectives, alternatives, and constraints on the new iteration. Evaluate alternatives and identify and resolve risk issues. Develop and verify the product for this iteration. Plan the next iteration.

17 Spiral Model (3) The spiral model is intended for large (e.g. few years), expensive (e.g. up to a few millions) and complicated projects (e.g. military project). Future Combat System (FCS) ( ) Research/create unattended ground sensors (UGS); unmanned aerial vehicles (UAVs); unmanned ground vehicles; and eight manned ground vehicles. In 2009 Pentagon and army officials announced that the FCS effort would be swept into a new, pan-army program called the Army Brigade Combat Team Modernization Program. 2 Years an iteration

Software Development Process

Software Development Process Software Development Process A software development process, also known as software development lifecycle, is a structure imposed on the development of a software product. Similar terms include software

More information

Alternative Development Methodologies

Alternative Development Methodologies Alternative Development Methodologies The Software Development Process described in the course notes and lecture is a generalized process that been in use for decades. Over this time, scholars in the IT

More information

Life Cycle Models. V. Paúl Pauca. CSC 331-631 Fall 2013. Department of Computer Science Wake Forest University. Object Oriented Software Engineering

Life Cycle Models. V. Paúl Pauca. CSC 331-631 Fall 2013. Department of Computer Science Wake Forest University. Object Oriented Software Engineering Life Cycle Models V. Paúl Pauca Department of Computer Science Wake Forest University CSC 331-631 Fall 2013 Software Life Cycle The overall framework in which software is conceived, developed, and maintained.

More information

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design Session # 3 Contents Systems Analysis and Design 2 1 Tiers of Software Development 10/4/2013 Information system development project Realistic behavior 3 Information system development project System Development

More information

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing. Processing Models Of SDLC Mrs. Nalkar Sanjivani Baban Asst. Professor, IT/CS Dept, JVM s Mehta College,Sector 19, Airoli, Navi Mumbai-400708 Nalkar_sanjivani@yahoo.co.in Abstract This paper presents an

More information

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW Year 2014, Vol. 1, issue 1, pp. 49-56 Available online at: http://journal.iecuniversity.com TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW Singh RANDEEP a*, Rathee AMIT b a* Department of

More information

Agile Projects 7. Agile Project Management 21

Agile Projects 7. Agile Project Management 21 Contents Contents 1 2 3 Agile Projects 7 Introduction 8 About the Book 9 The Problems 10 The Agile Manifesto 12 Agile Approach 14 The Benefits 16 Project Components 18 Summary 20 Agile Project Management

More information

COMP 354 Introduction to Software Engineering

COMP 354 Introduction to Software Engineering COMP 354 Introduction to Software Engineering Greg Butler Office: EV 3.219 Computer Science and Software Engineering Concordia University, Montreal, Canada Email: gregb@cs.concordia.ca Winter 2015 Course

More information

Advanced Software Engineering. Software Development Processes

Advanced Software Engineering. Software Development Processes Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Advanced Software Engineering Software Development Processes Prof. Agostino Poggi Software Development

More information

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki SE464/CS446/ECE452 Software Life-Cycle and Process Models Instructor: Krzysztof Czarnecki 1 Some of these slides are based on: Lecture slides by Ian Summerville accompanying his classic textbook software

More information

AGILE vs. WATERFALL METHODOLOGIES

AGILE vs. WATERFALL METHODOLOGIES AGILE vs. WATERFALL METHODOLOGIES Introduction Agile and waterfall are two major methodologies that software developers and project managers have the option of using. Some of the goals of developers and

More information

Software Development Life Cycle (SDLC)

Software Development Life Cycle (SDLC) Software Development Life Cycle (SDLC) Supriyo Bhattacharjee MOF Capability Maturity Model (CMM) A bench-mark for measuring the maturity of an organization s software process CMM defines 5 levels of process

More information

A Survey of Software Development Process Models in Software Engineering

A Survey of Software Development Process Models in Software Engineering , pp. 55-70 http://dx.doi.org/10.14257/ijseia.2015.9.11.05 A Survey of Software Development Process Models in Software Engineering Iqbal H. Sarker 1, Faisal Faruque 1, Ujjal Hossen 2 and Atikur Rahman

More information

Software development process

Software development process OpenStax-CNX module: m14619 1 Software development process Trung Hung VO This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License 2.0 Abstract A software development

More information

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology Process Methodology for Wegmans Deli Kiosk Version 1.0 Prepared by DELI-cious Developers Rochester Institute of Technology September 15, 2013 1 Table of Contents 1. Process... 3 1.1 Choice... 3 1.2 Description...

More information

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT Shivangi Shandilya, Surekha Sangwan, Ritu Yadav Dept. of Computer Science Engineering Dronacharya College Of Engineering, Gurgaon Abstract- Looking at the software

More information

Selecting a Software Development Methodology based on. Organizational Characteristics. Adrienne Farrell

Selecting a Software Development Methodology based on. Organizational Characteristics. Adrienne Farrell ATHABASCA UNIVERSITY Selecting a Software Development Methodology based on Organizational Characteristics BY Adrienne Farrell An essay submitted in partial fulfillment Of the requirements for the degree

More information

ABHINAV NATIONAL MONTHLY REFEREED JOURNAL OF RESEARCH IN SCIENCE & TECHNOLOGY www.abhinavjournal.com

ABHINAV NATIONAL MONTHLY REFEREED JOURNAL OF RESEARCH IN SCIENCE & TECHNOLOGY www.abhinavjournal.com SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC) ANALYTICAL COMPARISON AND SURVEY ON TRADITIONAL AND AGILE METHODOLOGY Sujit Kumar Dora 1 and Pushkar Dubey 2 1 Programmer, Computer Science & Engineering, Padmashree

More information

Software Development Methodologies

Software Development Methodologies Software Development Methodologies If you are running a software project, one of the main questions you are likely to come across is which development methodology to use. There are as many opinions on

More information

Software Life Cycle Processes

Software Life Cycle Processes Software Life Cycle Processes Objective: Establish a work plan to coordinate effectively a set of tasks. Improves software quality. Allows us to manage projects more easily. Status of projects is more

More information

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL Sanja Vukićević 1, Dražen Drašković 2 1 Faculty of Organizational Sciences, University of Belgrade, vukicevicsanja@yahoo.com 2 Faculty

More information

A Capability Maturity Model (CMM)

A Capability Maturity Model (CMM) Software Development Life Cycle (SDLC) and Development Methods There are some enterprises in which a careful disorderliness is the true method. Herman Melville Capability Maturity Model (CMM) A Capability

More information

Information Technology Policy

Information Technology Policy Information Technology Policy Systems Development Life Cycle Policy ITP Number ITP-APP012 Category Recommended Policy Contact RA-itcentral@pa.gov Effective Date May 1, 2013 Supersedes Scheduled Review

More information

How To Model Software Development Life Cycle Models

How To Model Software Development Life Cycle Models Various Software Development Life Cycle Models Sahil Jindal, Puneet Gulati, Praveen Rohilla Dronacharya College of Engineering, India Abstract:An SDLC model is a conceptual framework describing different

More information

How To Understand The Limitations Of An Agile Software Development

How To Understand The Limitations Of An Agile Software Development A Cynical View on Agile Software Development from the Perspective of a new Small-Scale Software Industry Apoorva Mishra Computer Science & Engineering C.S.I.T, Durg, India Deepty Dubey Computer Science

More information

Agile Software Development Methodologies and Its Quality Assurance

Agile Software Development Methodologies and Its Quality Assurance Agile Software Development Methodologies and Its Quality Assurance Aslin Jenila.P.S Assistant Professor, Hindustan University, Chennai Abstract: Agility, with regard to software development, can be expressed

More information

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is: In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is: The period of time that starts when a software product is conceived and ends when the product is no longer

More information

www.stephenbarkar.se Lean vs. Agile similarities and differences 2014-08-29 Created by Stephen Barkar - www.stephenbarkar.se

www.stephenbarkar.se Lean vs. Agile similarities and differences 2014-08-29 Created by Stephen Barkar - www.stephenbarkar.se 1 www.stephenbarkar.se Lean vs. Agile similarities and differences 2014-08-29 Purpose with the material 2 This material describes the basics of Agile and Lean and the similarities and differences between

More information

Software Process Models. Xin Feng

Software Process Models. Xin Feng Software Process Models Xin Feng Questions to Answer in Software Engineering? Questions to answer in software engineering What is the problem to be solved? Definition What are the characteristics of the

More information

Quality Assurance Software Development Processes

Quality Assurance Software Development Processes Quality Assurance Software Development Processes Part II - Lecture 3 1 The University of Auckland New Zealand 254 12/09/ /2012 The FBI Virtual Case File 254 12/09/ /2012 Database application developed

More information

Waterfall vs. Agile Methodology

Waterfall vs. Agile Methodology 2012 Waterfall vs. Agile Methodology Mike McCormick MPCS, Inc. Revised Edition 8/9/2012 Contents Waterfall vs. Agile Model Comparison...3 Conceptual Difference...3 Efficiency...4 Suitability...4 Waterfall

More information

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal Research Article ISSN 2277 9140 ABSTRACT Analysis and tabular comparison

More information

A Comparative Study of Different Software Development Life Cycle Models in Different Scenarios

A Comparative Study of Different Software Development Life Cycle Models in Different Scenarios ISSN: 2321-7782 (Online) Volume 1, Issue 5, October 2013 International Journal of Advance Research in Computer Science and Management Studies Research Paper Available online at: www.ijarcsms.com A Comparative

More information

(Refer Slide Time: 01:52)

(Refer Slide Time: 01:52) Software Engineering Prof. N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture - 2 Introduction to Software Engineering Challenges, Process Models etc (Part 2) This

More information

Nova Software Quality Assurance Process

Nova Software Quality Assurance Process Nova Software Quality Assurance Process White Paper Atlantic International Building 15F No.2 Ke Yuan Yi Road, Shiqiaopu, Chongqing, P.R.C. 400039 Tel: 86-23- 68795169 Fax: 86-23- 68795169 Quality Assurance

More information

Foundations for Systems Development

Foundations for Systems Development Foundations for Systems Development ASSIGNMENT 1 Read this assignment introduction. Then, read Chapter 1, The Systems Development Environment, on pages 2 25 in your textbook. What Is Systems Analysis and

More information

Development. Lecture 3

Development. Lecture 3 Software Process in Modern Software Development Lecture 3 Software Engineering i Practice Software engineering practice is a broad array of principles, concepts, methods, and tools that must be considered

More information

Test Cases Design for Software Database Provisioning Development

Test Cases Design for Software Database Provisioning Development Test Cases Design for Software Database Provisioning Development Sunguk Lee Research Institute of Industrial Science and Technology Pohang, Gyeongbuk, South Korea sunguk@rist.re.kr Abstract This paper

More information

CPSC 491 Lecture Notes Fall 2013

CPSC 491 Lecture Notes Fall 2013 CPSC 491 Lecture Notes Fall 2013 1 Overview Topics Process models (cont.) Key Ideas Basic definition and advantages/disadvantages of major lifecycle models Homework HW 3 (out) Ch 1, Ch 2: 29 47 2 Software

More information

INTRODUCTION. Chapter 1. 1.1 Motivation

INTRODUCTION. Chapter 1. 1.1 Motivation Chapter 1 INTRODUCTION 1.1 Motivation The success of any computer software depends on the user s satisfaction. When software fulfills the user s requirements, it succeeds but the software fails if its

More information

Rapid Development & Software Project Survival Guide Steve McConnell Dave Root (Developed with Mel Rosso-Llopart)

Rapid Development & Software Project Survival Guide Steve McConnell Dave Root (Developed with Mel Rosso-Llopart) Lifecycle Planning Rapid Development & Software Project Survival Guide Steve McConnell Dave Root (Developed with Mel Rosso-Llopart) Version 1.4 David Root, 2005, all rights reserved 1 Topics Who am I to

More information

Software Development Life Cycle Models - Process Models. Week 2, Session 1

Software Development Life Cycle Models - Process Models. Week 2, Session 1 Software Development Life Cycle Models - Process Models Week 2, Session 1 PROCESS MODELS Many life cycle models have been proposed } Traditional Models (plan-driven) } Classical waterfall model } Iterative

More information

How To Understand The Software Process

How To Understand The Software Process Ingegneria del Software Corso di Laurea in Informatica per il Management Software process model Davide Rossi Dipartimento di Informatica Università di Bologna The task of the software development team

More information

Whitepaper. Agile Methodology: An Airline Business Case YOUR SUCCESS IS OUR FOCUS. Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan

Whitepaper. Agile Methodology: An Airline Business Case YOUR SUCCESS IS OUR FOCUS. Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan YOUR SUCCESS IS OUR FOCUS Whitepaper Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan 2009 Hexaware Technologies. All rights reserved. Table of Contents 1. Introduction 2. Subject Clarity 3. Agile

More information

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management Introduction to Software Project Management CITS3220 Software Requirements & Project Management "A project gets a year late one day at a time." "Anything that can be changed will be changed until there

More information

How To Develop An Application

How To Develop An Application What is Application Lifecycle Management? David Chappell Sponsored by Microsoft Corporation Copyright 2014 Chappell & Associates Defining application lifecycle management (ALM) isn t easy. Different people

More information

Evolutionary BPM. A New Process Methodology. Published: Oct. 17, 2013. Authors: Eli Stutz, Bruce Hardy

Evolutionary BPM. A New Process Methodology. Published: Oct. 17, 2013. Authors: Eli Stutz, Bruce Hardy A New Process Methodology Published: Oct. 17, 2013 Authors: Eli Stutz, Bruce Hardy Introduction This white paper describes a new methodology for BPM (Business Process Management) Software development projects.

More information

CS4507 Advanced Software Engineering

CS4507 Advanced Software Engineering CS4507 Advanced Software Engineering Lectures 2 & 3: Software Development Lifecycle Models A O Riordan, 2015 Some diagrams from Sommerville, some notes from Maciaszek/Liong Lifecycle Model Software development

More information

And the Models Are 16-03-2015. System/Software Development Life Cycle. Why Life Cycle Approach for Software?

And the Models Are 16-03-2015. System/Software Development Life Cycle. Why Life Cycle Approach for Software? System/Software Development Life Cycle Anurag Srivastava Associate Professor ABV-IIITM, Gwalior Why Life Cycle Approach for Software? Life cycle is a sequence of events or patterns that are displayed in

More information

The most suitable system methodology for the proposed system is drawn out.

The most suitable system methodology for the proposed system is drawn out. 3.0 Methodology 3.1 Introduction In this chapter, five software development life cycle models are compared and discussed briefly. The most suitable system methodology for the proposed system is drawn out.

More information

Agile Methodologies and Its Processes

Agile Methodologies and Its Processes International Journal of Computational Engineering Research Vol, 03 Issue, 9 Agile Methodologies and Its Processes 1, Akanksha, 2, Akansha Rakheja, 3, Latika Kapur, 4, Kanika Ahuja 1,2,3,, Information

More information

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed. CS 389 Software Engineering Lecture 2 Chapter 2 Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed. Topics covered Software process models Process activities Coping

More information

Introduction to Agile Software Development Process. Software Development Life Cycles

Introduction to Agile Software Development Process. Software Development Life Cycles Introduction to Agile Software Development Process Presenter: Soontarin W. (Senior Software Process Specialist) Date: 24 November 2010 AGENDA Software Development Life Cycles Waterfall Model Iterative

More information

Chapter 8 Approaches to System Development

Chapter 8 Approaches to System Development Systems Analysis and Design in a Changing World, sixth edition 8-1 Chapter 8 Approaches to System Development Table of Contents Chapter Overview Learning Objectives Notes on Opening Case and EOC Cases

More information

Software Project Models

Software Project Models INTERNATIONAL JOURNAL OF TECHNOLOGY ENHANCEMENTS AND EMERGING ENGINEERING RESEARCH, VOL 1, ISSUE 4 135 Software Project Models Abhimanyu Chopra, Abhinav Prashar, Chandresh Saini Email-abhinav.prashar@gmail.com,

More information

Software Engineering. What is a system?

Software Engineering. What is a system? What is a system? Software Engineering Software Processes A purposeful collection of inter-related components working together to achieve some common objective. A system may include software, mechanical,

More information

CSC408H Lecture Notes

CSC408H Lecture Notes CSC408H Lecture Notes These lecture notes are provided for the personal use of students taking Software Engineering course in the Summer term 2005 at the University of Toronto. Copying for purposes other

More information

The Blending of Traditional and Agile Project Management

The Blending of Traditional and Agile Project Management 1 of 6 The Blending of Traditional and Agile Project Management By Kathleen Hass Traditional project management involves very disciplined and deliberate planning and control methods. With this approach,

More information

COMPARATIVELY ANALYSIS OF AGILE SOFTWARE DEVELOPMENT

COMPARATIVELY ANALYSIS OF AGILE SOFTWARE DEVELOPMENT International Journal of Information Technology and Knowledge Management January-June 2012, Volume 5, No. 1, pp. 5-8 COMPARATIVELY ANALYSIS OF AGILE SOFTWARE DEVELOPMENT Ajaydeep 1, Lekha 2, Kavita Dawra

More information

Foundations of software engineering

Foundations of software engineering Foundations of software engineering Waterfalls, V s and Spirals: Standard SE Methodologies Dr. Julie Greensmith G51 Objectives To introduce three of the major software process models: Waterfall methods

More information

Agile Software Development

Agile Software Development Agile Software Development Use case for Agile Software Development Methodology in an Oil and Gas Exploration environment. White Paper Introduction No matter what business you are in, there are critical

More information

Elite: A New Component-Based Software Development Model

Elite: A New Component-Based Software Development Model Elite: A New Component-Based Software Development Model Lata Nautiyal Umesh Kumar Tiwari Sushil Chandra Dimri Shivani Bahuguna Assistant Professor- Assistant Professor- Professor- Assistant Professor-

More information

UC Santa Barbara. CS189A - Capstone. Christopher Kruegel Department of Computer Science UC Santa Barbara http://www.cs.ucsb.

UC Santa Barbara. CS189A - Capstone. Christopher Kruegel Department of Computer Science UC Santa Barbara http://www.cs.ucsb. CS189A - Capstone Christopher Kruegel Department of Computer Science http://www.cs.ucsb.edu/~chris/ How Should We Build Software? Let s look at an example Assume we asked our IT folks if they can do the

More information

SOFTWARE DEVELOPMENT SD

SOFTWARE DEVELOPMENT SD CONTENTS 1.SOFTWARE-DEFINITION 2.TYPES OF SOFTWARE 3.SOFTWARE DEVELOPMENT 4.SOFTWARE LIFECYCLE 5.WATERFALL MODEL 6.ITERATION MODEL 7.V SHAPED MODEL 8.SPIRAL MODEL SOFTWARE DEVELOPMENT SD MODULE 1 1.SOFTWARE:

More information

SOFTWARE PROCESS MODELS

SOFTWARE PROCESS MODELS SOFTWARE PROCESS MODELS Slide 1 Software Process Models Process model (Life-cycle model) - steps through which the product progresses Requirements phase Specification phase Design phase Implementation

More information

Software Development Life Cycle Models- Comparison, Consequences

Software Development Life Cycle Models- Comparison, Consequences Software Development Life Cycle Models- Comparison, Consequences Abstract- Software Development Life Cycle is a well defined and systematic approach, practiced for the development of a reliable high quality

More information

Agile Development for Application Security Managers

Agile Development for Application Security Managers Agile Development for Application Security Managers www.quotium.com When examining the agile development methodology many organizations are uncertain whether it is possible to introduce application security

More information

CSE 435 Software Engineering. Sept 16, 2015

CSE 435 Software Engineering. Sept 16, 2015 CSE 435 Software Engineering Sept 16, 2015 2.1 The Meaning of Process A process: a series of steps involving activities, constraints, and resources that produce an intended output of some kind A process

More information

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur Module 2 Software Life Cycle Model Lesson 4 Prototyping and Spiral Life Cycle Models Specific Instructional Objectives At the end of this lesson the student will be able to: Explain what a prototype is.

More information

Why the Traditional Contract for Software Development is Flawed

Why the Traditional Contract for Software Development is Flawed Why the Traditional Contract for Software Development is Flawed Susan Atkinson satkinson@gallenalliance.com Introduction Agile has entered the mainstream. In a recent survey, more than 50% of the respondents

More information

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci Software Engineering Software Development Process Models Lecturer: Giuseppe Santucci Summary Modeling the Software Process Generic Software Process Models Waterfall model Process Iteration Incremental

More information

General Problem Solving Model. Software Development Methodology. Chapter 2A

General Problem Solving Model. Software Development Methodology. Chapter 2A General Problem Solving Model Software Development Methodology These focus on understanding what the problem is about Chapter 2A Concerned with understanding more about the nature of the problem and possible

More information

EMC PERSPECTIVE. Adopting an Agile Approach to OSS/BSS Development

EMC PERSPECTIVE. Adopting an Agile Approach to OSS/BSS Development EMC PERSPECTIVE Adopting an Agile Approach to OSS/BSS Development Reader ROI The agile software methodology is different from the traditional approach in that requirements gathering and analysis, design,

More information

Application of software product quality international standards through software development life cycle

Application of software product quality international standards through software development life cycle Central Page 284 of 296 Application of software product quality international standards through software development life cycle Mladen Hosni, Valentina Kirinić Faculty of Organization and Informatics University

More information

Best-Practice Software Engineering: Software Processes to Support Project Success. Dietmar Winkler

Best-Practice Software Engineering: Software Processes to Support Project Success. Dietmar Winkler Best-Practice Software Engineering: Software Processes to Support Project Success Dietmar Winkler Vienna University of Technology Institute of Software Technology and Interactive Systems Dietmar.Winkler@qse.ifs.tuwien.ac.at

More information

Agile Software Development. Mohsen Afsharchi

Agile Software Development. Mohsen Afsharchi Agile Software Development Mohsen Afsharchi I. Agile Software Development Agile software development is a group of software development methods based on iterative and incremental development, where requirements

More information

Report structure (guidelines) Report structure (guidelines)

Report structure (guidelines) Report structure (guidelines) The dissertation The dissertation you write will will be read by at least two members of staff, and marks are awarded to it rather than to the software you have written. Learning Outcomes - On successful

More information

Evolving a Ultra-Flow Software Development Life Cycle Model

Evolving a Ultra-Flow Software Development Life Cycle Model RESEARCH ARTICLE International Journal of Computer Techniques - Volume 2 Issue 4, July - Aug Year Evolving a Ultra-Flow Software Development Life Cycle Model Divya G.R.*, Kavitha S.** *(Computer Science,

More information

Life-Cycle Model. Software Life-Cycle Models. Software Development in Theory. Software Development in Practice

Life-Cycle Model. Software Life-Cycle Models. Software Development in Theory. Software Development in Practice Life-Cycle Model Software Life-Cycle Models Xiaojun Qi It specifies the various phases/workflows of the software process, such as the requirements, analysis (specification), design, implementation, and

More information

Basic Testing Concepts and Terminology

Basic Testing Concepts and Terminology T-76.5613 Software Testing and Quality Assurance Lecture 2, 13.9.2006 Basic Testing Concepts and Terminology Juha Itkonen SoberIT Contents Realities and principles of Testing terminology and basic concepts

More information

Ensuring Reliability in Lean New Product Development. John J. Paschkewitz, P.E., CRE

Ensuring Reliability in Lean New Product Development. John J. Paschkewitz, P.E., CRE Ensuring Reliability in Lean New Product Development John J. Paschkewitz, P.E., CRE Overview Introduction and Definitions Part 1: Lean Product Development Lean vs. Traditional Product Development Key Elements

More information

Lecture 21 March 7, 2013

Lecture 21 March 7, 2013 ECE155: Engineering Design with Embedded Systems Winter 2013 Lecture 21 March 7, 2013 Patrick Lam version 1 Software Development Lifecycle If you re asked to develop a software project, you re likely to

More information

Don t forget the testers

Don t forget the testers TODAY S TOPIC Knight Errant Software Testing Training Project Consulting Business Analysis www.knighterrant.com.au The importance of testing in an AGILE development context Or Don t forget the testers

More information

Development Methodologies Compared

Development Methodologies Compared N CYCLES software solutions Development Methodologies Compared Why different projects require different development methodologies. December 2002 Dan Marks 65 Germantown Court 1616 West Gate Circle Suite

More information

Agile Requirements Generation Model: A Soft-structured Approach to Agile Requirements Engineering. Shvetha Soundararajan

Agile Requirements Generation Model: A Soft-structured Approach to Agile Requirements Engineering. Shvetha Soundararajan Agile Requirements Generation Model: A Soft-structured Approach to Agile Requirements Engineering Shvetha Soundararajan Thesis submitted to the faculty of the Virginia Polytechnic Institute and State University

More information

Software Engineering

Software Engineering Software Engineering Introduction Software engineering Statistics Software Development Process Models Project Management Overview Situation Before programs were quite small written by one person Today

More information

Process Models and Metrics

Process Models and Metrics Process Models and Metrics PROCESS MODELS AND METRICS These models and metrics capture information about the processes being performed We can model and measure the definition of the process process performers

More information

Objectives. The software process. Basic software process Models. Waterfall model. Software Processes

Objectives. The software process. Basic software process Models. Waterfall model. Software Processes Software Processes Objectives To introduce software process models To describe three generic process models and when they may be used To describe outline process models for requirements engineering, software

More information

Agile and lean methods for managing application development process

Agile and lean methods for managing application development process Agile and lean methods for managing application development process Hannu Markkanen 24.01.2013 1 Application development lifecycle model To support the planning and management of activities required in

More information

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali Software development life cycle Software life cycle: Software Engineering - II ITNP92 - Object Oriented Software Design Dr Andrea Bracciali Module Co-ordinator 4B86 abb@cs.stir.ac.uk Spring 2014 (elicitation)

More information

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005 Principles of Software Engineering: Software Methodologies COSI 120b, Spring 2005 Overview What are methodologies? The methodologies Traditional Incremental Evolutionary Other Conclusions Way Forward What

More information

REVIEW ON THE EFFECTIVENESS OF AGILE UNIFIED PROCESS IN SOFTWARE DEVELOPMENT WITH VAGUE SYSTEM REQUIREMENTS

REVIEW ON THE EFFECTIVENESS OF AGILE UNIFIED PROCESS IN SOFTWARE DEVELOPMENT WITH VAGUE SYSTEM REQUIREMENTS REVIEW ON THE EFFECTIVENESS OF AGILE UNIFIED PROCESS IN SOFTWARE DEVELOPMENT WITH VAGUE SYSTEM REQUIREMENTS Lisana Universitas Surabaya (UBAYA), Raya Kalirungkut, Surabaya, Indonesia E-Mail: lisana@ubaya.ac.id

More information

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project. 6. Software Lifecycle Models A software lifecycle model is a standardised format for planning organising, and running a new development project. Hundreds of different kinds of models are known and used.

More information

Software Requirements and Specification

Software Requirements and Specification Software Requirements and Specification Agile Methods SE3821 - Jay Urbain Credits: Beck, K. (1999). Extreme Programming Explained: Embrace Change. Boston, MA: Addison-Wesley. Beck, Kent; et al. (2001).

More information

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods Topics covered Chapter 3 Agile Software Development Agile methods Plan-driven and agile Extreme programming Agile project management Scaling agile methods 1 2 Need for rapid software Rapid software Changing

More information

Software Development: The Waterfall Model

Software Development: The Waterfall Model Steven Zeil June 7, 2013 Contents 1 Software Development Process Models 2 1.1 Components of the Waterfall Model................................. 2 1.1.1 What is a requirement?. 2 1.1.2 Testing..........

More information

A Comparison between Five Models of Software Engineering

A Comparison between Five Models of Software Engineering International Journal of Research in Information Technology (IJRIT) www.ijrit.com ISSN 2001-5569 A Comparison between Five Models of Software Engineering Surbhi Gupta, Vikrant Dewan CSE, Dronacharya College

More information

The Agile Manifesto is based on 12 principles:

The Agile Manifesto is based on 12 principles: The Agile Manifesto is based on 12 principles: Customer satisfaction by rapid delivery of a useful product solution Welcome changing requirements, even late in development Working products are delivered

More information