Software Engineering

Size: px
Start display at page:

Download "Software Engineering"

Transcription

1 1 Software Engineering Lecture 2: Software Life Cycles Stefan Hallerstede Århus School of Engineering 25 August 2011

2 2 Contents Naive Software Development Code & Fix Towards A Software Process Software Process Models Traditional Process Models Alternative Process Models Agile Process Models Agile Development Methods Two Examples Concluding Remarks

3 3 Contents Naive Software Development Code & Fix Towards A Software Process Software Process Models Traditional Process Models Alternative Process Models Agile Process Models Agile Development Methods Two Examples Concluding Remarks

4 4 Developing Software Question: How to develop software?

5 5 Contents Naive Software Development Code & Fix Towards A Software Process Software Process Models Traditional Process Models Alternative Process Models Agile Process Models Agile Development Methods Two Examples Concluding Remarks

6 6 Developing Software Code & Fix? SOFTWARE

7 6 Developing Software Code & Fix? code SOFTWARE

8 6 Developing Software Code & Fix? code fix SOFTWARE

9 6 Developing Software Code & Fix? code fix SOFTWARE

10 6 Developing Software Code & Fix? code fix SOFTWARE

11 7 Contents Naive Software Development Code & Fix Towards A Software Process Software Process Models Traditional Process Models Alternative Process Models Agile Process Models Agile Development Methods Two Examples Concluding Remarks

12 Software Process From The Internet (Source: xkcd) 8

13 9 What Do We Expect Of A Software Process? What is the aim of having one? What is a good software process?

14 9 What Do We Expect Of A Software Process? What is the aim of having one? What is a good software process? What is good software? Correctness Reliability Efficiency Integrity Usability Maintainability Testability Flexibility Portability Reusability Interoperability

15 10 Contents Naive Software Development Code & Fix Towards A Software Process Software Process Models Traditional Process Models Alternative Process Models Agile Process Models Agile Development Methods Two Examples Concluding Remarks

16 11 Contents Naive Software Development Code & Fix Towards A Software Process Software Process Models Traditional Process Models Alternative Process Models Agile Process Models Agile Development Methods Two Examples Concluding Remarks

17 The Waterfall Model Sequential 1 1 Winston W. Royce (1970) Managing the Development of Large Software Systems. IEEE WESCON 12

18 The Waterfall Model Sequential 1 Royce notes that this process often cannot be followed in practice. 1 Winston W. Royce (1970) Managing the Development of Large Software Systems. IEEE WESCON 12

19 The Waterfall Model Iterative 1 Instead it is common to iterate between development phases. 1 Winston W. Royce (1970) Managing the Development of Large Software Systems. IEEE WESCON 12

20 The Waterfall Model V-Model 2 2 Barry W. Boehm (1988) A Spiral Model of Software Development and Enhancement. Computer 21(5), IEEE 13

21 The Waterfall Model V-Model 2 Requirements Acceptance testing Analysis System testing Architectural design Integration testing Detailed design Unit testing Coding 2 Barry W. Boehm (1988) A Spiral Model of Software Development and Enhancement. Computer 21(5), IEEE 13

22 The Waterfall Model V-Model 2 Requirements Acceptance testing Analysis System testing Architectural design Integration testing Detailed design Unit testing Coding The V-Model emphasises the need for testing matching the development phases. 2 Barry W. Boehm (1988) A Spiral Model of Software Development and Enhancement. Computer 21(5), IEEE 13

23 Iterative Development The Spiral Model 3 3 Barry W. Boehm (1988) A Spiral Model of Software Development and Enhancement. Computer 21(5), IEEE 14

24 Iterative Development The Spiral Model 3 1. Objective setting Definition of objectives for the phase Identification of risks and planning of alternative strategies 2. Risk assessment and reduction Analyse risks, and choose or adapt development model 3. Development and validation 4. Planning Review project Decide whether to continue with spiral Draw up plan for next phase 3 Barry W. Boehm (1988) A Spiral Model of Software Development and Enhancement. Computer 21(5), IEEE 14

25 Iterative Development The Spiral Model 3 3 Barry W. Boehm (1988) A Spiral Model of Software Development and Enhancement. Computer 21(5), IEEE 14

26 Iterative Development The Spiral Model 3 The Spiral Model takes into account: risk analysis 3 Barry W. Boehm (1988) A Spiral Model of Software Development and Enhancement. Computer 21(5), IEEE 14

27 Iterative Development The Spiral Model 3 The Spiral Model takes into account: risk analysis and project management 3 Barry W. Boehm (1988) A Spiral Model of Software Development and Enhancement. Computer 21(5), IEEE 14

28 15 Contents Naive Software Development Code & Fix Towards A Software Process Software Process Models Traditional Process Models Alternative Process Models Agile Process Models Agile Development Methods Two Examples Concluding Remarks

29 16 Incremental Delivery System is not delivered as a whole but in small increments Customer is involved in decision on increments Requirements specification Assign requirements to increments Final system Design system architecture Develop system increment Validate increment Integrate increment Validate system

30 17 Component-Based Software Engineering Requirements specification Component analysis Requirements modification System design with reuse Development and integration System validation Targeted at reuse Process stages adapted to this aim: Component analysis: Search for component matching best the requirements Requirements modification: Modify requirements to reflect available component System design with reuse: Designers incorporate components to be reused, development of new software only if reuse is not possible Development and integration: Missing pieces of software are implemented, and reused components integrated Is this a reasonable approach? When could it be used?

31 18 Software Design Process Without Reuse Turn requirements specification into an executable system Interleaved model of design from architecture to algorithms Requirements specification Implementation Design activities Architectural design Abstract specification Interface design Component design Data structure design Algorithm design System architecture Software specification Interface architecture Component specification Data structure specification Algorithm specification Design products Can this be used with incremental delivery?

32 19 Contents Naive Software Development Code & Fix Towards A Software Process Software Process Models Traditional Process Models Alternative Process Models Agile Process Models Agile Development Methods Two Examples Concluding Remarks

33 Agile Processes Agile Manifesto 4 We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. 4 Kent Beck, et al. (2001) Manifesto for Agile Software Development. 20

34 21 Agile Processes Unified Process 5 Core Workflows: Organisation along time Organisation along content Business modeling Requirements Analysis and Design Implementation Test Deployment PHASES Inception Elaboration Construction Transition Preliminary Iterations Iter#1 Iter#2 Iter#n Iter#n+1 Iter#n+2 Iter#m Iter#m+1 ITERATIONS Supporting Workflows: Configuration and Change Management, Project Management, Environment 5 Philippe Kruchten (2004) The rational unified process: an introduction, 3rd ediiton. Addison-Wesley.

35 21 Agile Processes Unified Process 5 Core Workflows: Organisation along time Organisation along content Business modeling Requirements Analysis and Design Implementation Test Deployment PHASES Inception Elaboration Construction Transition Preliminary Iterations Iter#1 Iter#2 Iter#n Iter#n+1 Iter#n+2 Iter#m Iter#m+1 ITERATIONS Supporting Workflows: Configuration and Change Management, Project Management, Environment 5 Philippe Kruchten (2004) The rational unified process: an introduction, 3rd ediiton. Addison-Wesley.

36 22 Agile Processes Unified Process Six fundamental best practices: 6 1. Develop software iteratively. 6 Ian Sommerville (2007) Software Engineering, 8th edition. Addison-Wesley.

37 22 Agile Processes Unified Process Six fundamental best practices: 6 1. Develop software iteratively. Plan increments of the system based on customer priorities and develop and deliver the highest priority system features early in the development process. 6 Ian Sommerville (2007) Software Engineering, 8th edition. Addison-Wesley.

38 22 Agile Processes Unified Process Six fundamental best practices: 6 1. Develop software iteratively. 2. Manage requirements. 6 Ian Sommerville (2007) Software Engineering, 8th edition. Addison-Wesley.

39 22 Agile Processes Unified Process Six fundamental best practices: 6 1. Develop software iteratively. 2. Manage requirements. Explicitly document the customer s requirements and keep track of changes to these requirements. Analyse the impact of changes to the system before accepting them. 6 Ian Sommerville (2007) Software Engineering, 8th edition. Addison-Wesley.

40 22 Agile Processes Unified Process Six fundamental best practices: 6 1. Develop software iteratively. 2. Manage requirements. 3. Use component-based architectures. 6 Ian Sommerville (2007) Software Engineering, 8th edition. Addison-Wesley.

41 22 Agile Processes Unified Process Six fundamental best practices: 6 1. Develop software iteratively. 2. Manage requirements. 3. Use component-based architectures. Structure the system architecture into components and rely on reusable software components. 6 Ian Sommerville (2007) Software Engineering, 8th edition. Addison-Wesley.

42 22 Agile Processes Unified Process Six fundamental best practices: 6 1. Develop software iteratively. 2. Manage requirements. 3. Use component-based architectures. 4. Visually model software. 6 Ian Sommerville (2007) Software Engineering, 8th edition. Addison-Wesley.

43 Agile Processes Unified Process Six fundamental best practices: 6 1. Develop software iteratively. 2. Manage requirements. 3. Use component-based architectures. 4. Visually model software. Use graphical UML models to present static and dynamic views of the software. 6 Ian Sommerville (2007) Software Engineering, 8th edition. Addison-Wesley. 22

44 22 Agile Processes Unified Process Six fundamental best practices: 6 1. Develop software iteratively. 2. Manage requirements. 3. Use component-based architectures. 4. Visually model software. 5. Verify software quality. 6 Ian Sommerville (2007) Software Engineering, 8th edition. Addison-Wesley.

45 22 Agile Processes Unified Process Six fundamental best practices: 6 1. Develop software iteratively. 2. Manage requirements. 3. Use component-based architectures. 4. Visually model software. 5. Verify software quality. Ensure that the software meets the organisational quality standards. 6 Ian Sommerville (2007) Software Engineering, 8th edition. Addison-Wesley.

46 22 Agile Processes Unified Process Six fundamental best practices: 6 1. Develop software iteratively. 2. Manage requirements. 3. Use component-based architectures. 4. Visually model software. 5. Verify software quality. 6. Control changes to software. 6 Ian Sommerville (2007) Software Engineering, 8th edition. Addison-Wesley.

47 22 Agile Processes Unified Process Six fundamental best practices: 6 1. Develop software iteratively. 2. Manage requirements. 3. Use component-based architectures. 4. Visually model software. 5. Verify software quality. 6. Control changes to software. Manage changes to the software using a change management system and configuration management procedures and tools. 6 Ian Sommerville (2007) Software Engineering, 8th edition. Addison-Wesley.

48 22 Agile Processes Unified Process Six fundamental best practices: 6 1. Develop software iteratively. 2. Manage requirements. 3. Use component-based architectures. 4. Visually model software. 5. Verify software quality. 6. Control changes to software. 6 Ian Sommerville (2007) Software Engineering, 8th edition. Addison-Wesley.

49 23 Contents Naive Software Development Code & Fix Towards A Software Process Software Process Models Traditional Process Models Alternative Process Models Agile Process Models Agile Development Methods Two Examples Concluding Remarks

50 24 Agile Processes Two Popular Examples Extreme Programming: Leverage developer creativity and minimise administrative overhead keywords: small releases, simple design, write tests first, refactoring, pair programming, continuous integration, coding standards Scrum: Self-organising autonomous teams implement product increments in parallel keywords: sprint, product backlog, prioritised requirements

51 25 Agile Processes Extreme Programming 7 7 Kent Beck (2000) Extreme Programming Explained. Embrace Change. Addison Wesley

52 Agile Processes Scrum 8 8 Ken Schwaber, Mike Beedle (2002) Agile software development with Scrum. Prentice Hall. 26

53 27 Contents Naive Software Development Code & Fix Towards A Software Process Software Process Models Traditional Process Models Alternative Process Models Agile Process Models Agile Development Methods Two Examples Concluding Remarks

54 Summing Up Advantages And Disadvantages Of Different Software Processes 9 Waterfall vs Spiral vs Agile 9 Eric J. Braude, Michael E. Bernstein (2011) Software Engineering Modern Approaches. Wiley. 28

55 29 The Waterfall Process Advantages Simple and easy to use Easy to allocate resources Works well for smaller projects or when requirements are well understood Disadvantages Requirements must be known upfront Late feedback by users Lack of parallelism Inefficient use of resources

56 30 The Spiral Process Advantages Risks are managed early and throughout the process Software evolves as the project progresses Planning is built into the process Disadvantages Complicated to use May be overkill for small projects

57 31 The Agile Process Advantages The project always has demonstrable results Developers tend to be more motivated Customers are able to provide better requirements because they can see the evolving product Disadvantages Problematical for large application Problematical for large teams Documentation output is questionable

Classical Software Life Cycle Models

Classical Software Life Cycle Models Classical Software Life Cycle Models SWEN 301 Trimester 1, 2015 Lecturer: Dr Hui Ma Engineering and Computer Science Lecture slides make use of material provided on the textbook's companion website Motivation

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

Software Life Cycles and Configuration Management

Software Life Cycles and Configuration Management Theory Lecture Plan 2 Software Configuration Lecture 11 Software Engineering TDDC88/TDDC93 autumn 2008 Department of Computer and Information Science Linköping University, Sweden L1 - Course Introduction

More information

I219 Software Design Methodology

I219 Software Design Methodology I219 Software Design Methodology JAIST Master s Program Fall 2014 Nguyen Van Vu nvu@fit.hcmus.edu.vn Topics Course Introduction Objectives and Scope Evaluation Policies Content and Schedule Basic Concepts

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

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville Software Engineering Software Processes Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To introduce software process models To describe three generic process models and when

More information

Unit 1 Learning Objectives

Unit 1 Learning Objectives Fundamentals: Software Engineering Dr. Rami Bahsoon School of Computer Science The University Of Birmingham r.bahsoon@cs.bham.ac.uk www.cs.bham.ac.uk/~rzb Office 112 Y9- Computer Science Unit 1. Introduction

More information

software studio software development processes Daniel Jackson

software studio software development processes Daniel Jackson software studio software development processes Daniel Jackson 1 One of the planning documents for software research revealed --in a parenthetical remark only-- an unchallenged tacit assumption by referring

More information

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering Prof. Dr. Armin B. Cremers Sascha Alda Overview Phases during Software Development

More information

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice In this Lecture you will Learn: Development Chapter 5C About the Unified Software Development How phases relate to workflows in an iterative life cycle An approach to system development Major activities

More information

To introduce software process models To describe three generic process models and when they may be used

To introduce software process models To describe three generic process models and when they may be used 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

International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research)

International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research) International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research) International Journal of Engineering, Business and Enterprise

More information

Software Development Process and Activities. CS 490MT/5555, Fall 2015, Yongjie Zheng

Software Development Process and Activities. CS 490MT/5555, Fall 2015, Yongjie Zheng Software Development Process and Activities CS 490MT/5555, Fall 2015, Yongjie Zheng Software Process } A set of activities that leads to the production of a software product } What product we should work

More information

Hamid Faridani (h.faridani@rogers.com) March 2011

Hamid Faridani (h.faridani@rogers.com) March 2011 Hamid Faridani (h.faridani@rogers.com) March 2011 Introduction Methodologies like Waterfall, RUP and Agile have all become key tools for software developers and project manager s to aid them in delivering

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

Introduction to Software Engineering: Project Management ( Highlights )

Introduction to Software Engineering: Project Management ( Highlights ) Introduction to Software Engineering: Project Management ( Highlights ) John T. Bell Department of Computer Science University of Illinois, Chicago Based on materials from chapters 14, 15, and 16 of Object

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

Singhania University, Jhunjhunu, Rajasthan, India. 2 Department of Information Technology King Abdul Aziz University, Jeddah, Saudi Arabia

Singhania University, Jhunjhunu, Rajasthan, India. 2 Department of Information Technology King Abdul Aziz University, Jeddah, Saudi Arabia www.ijcsi.org 441 A Comprehensive Study of Commonly Practiced Heavy and Light Weight Software Methodologies 1 Asif Irshad Khan, 2 Rizwan Jameel Qurashi and 3 Usman Ali Khan 1 Department of Computer Science

More information

SOFTWARE DEVELOPMENT METHODOLOGIES, TRENDS, AND IMPLICATIONS

SOFTWARE DEVELOPMENT METHODOLOGIES, TRENDS, AND IMPLICATIONS SOFTWARE DEVELOPMENT METHODOLOGIES, TRENDS, AND IMPLICATIONS Xihui Zhang University of North Alabama xzhang6@una.edu Hua Dai University of Wisconsin-La Crosse dai.hua@uwlax.edu Tao Hu King College thu@king.edu

More information

Part 3 Overview. People and Projects. Where it starts. Project Failure Rates. Part III. Verteilte Web-basierte Systeme.

Part 3 Overview. People and Projects. Where it starts. Project Failure Rates. Part III. Verteilte Web-basierte Systeme. Verteilte Web-basierte Systeme SS 2006 Verteilte Web-basierte Systeme SS 2006 Verteilte Web-basierte Systeme Dr.-Ing. Martin Gaedke Universität Karlsruhe (TH) Part III Aspects of the Life-Cycle Part 3

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

1. Software Process Models (Sommerville Chapters 4, 17, 19, 12.4)

1. Software Process Models (Sommerville Chapters 4, 17, 19, 12.4) 1. Software Process Models (Sommerville Chapters 4, 17, 19, 12.4) A software process model is a standardised format for planning organising, and running a development project. 1 Hundreds of different models

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

Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming

Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming Génie Logiciel et Gestion de Projets Software Processes Focus on Extreme Programming 1 Roadmap Process, Method, Methodology?? What is a software process? Software Process Models Documentation Methodologies:

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

Software processes that are:

Software processes that are: Agile Processes Software processes that are: Incremental (small software releases with rapid cycles) Cooperative (customer and developer working together with close communication) Straightforward (method

More information

Models of Software Development

Models of Software Development October 28, 2015 Verification & Validation In many computer science courses, software is submitted once, graded, and thrown away. In real life, software development is an process. Some attempts to codify

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

The Software Life Cycle. CSE 308: Software Engineering

The Software Life Cycle. CSE 308: Software Engineering The Software Life Cycle CSE 308: Software Engineering 1 Life Cycle Models A software life cycle model represents all of the activities and work products necessary to develop a software system Life cycle

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

Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming

Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming Génie Logiciel et Gestion de Projets Software Processes Focus on Extreme Programming 1 Roadmap Process, Method, Methodology?? What is a software process? Software Process Models Methodologies: RUP Focus

More information

Software Process and Models

Software Process and Models Agenda Software Process Models Plan-driven Process Models Software Process and Models A software process model simplified, abstracted description of a software development process. A model is good for

More information

Agile Processes and Methodologies: A Conceptual Study

Agile Processes and Methodologies: A Conceptual Study Agile Processes and Methodologies: A Conceptual Study Sheetal Sharma Amity School of Engineering & Technology Amity University Noida Sheetal.meenu@gmail.com Darothi Sarkar Amity School of Engineering &

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

Web Application Development Process

Web Application Development Process Web Engineering Web Application Development Process Copyright 2013 Ioan Toma & Srdjan Komazec 1 Where we are? # Date Title 1 5 th March Web Engineering Introduction and Overview 2 12 th March Requirements

More information

Chapter 2 Software Processes

Chapter 2 Software Processes Chapter 2 Software Processes Chapter 2 Software Processes Slide 1 Topics covered Software processes and process models Generic models: Waterfall Incremental development Reuse-oriented software engineering

More information

Agile and Secure: Can We Be Both?

Agile and Secure: Can We Be Both? Agile and Secure: Can We Be Both? OWASP AppSec Seattle Oct 2006 Keith Landrus Director of Technology Denim Group Ltd. keith.landrus@denimgroup.com (210) 572-4400 Copyright 2006 - The OWASP Foundation Permission

More information

ASSESSMENT OF SOFTWARE PROCESS MODELS

ASSESSMENT OF SOFTWARE PROCESS MODELS ASSESSMENT OF SOFTWARE PROCESS MODELS Akhilesh Research Scholar, Department of Computer Science, Manav Bharti University, Solan (H.P.) ABSTRACT The field of software engineering is related to the development

More information

1. Software Process Models (Sommerville Chapters 4, 17, 19, 12.4)

1. Software Process Models (Sommerville Chapters 4, 17, 19, 12.4) 1. Software Process Models (Sommerville Chapters 4, 17, 19, 12.4) A software process model is a standardised format for planning organising, and running a development project. 1 Hundreds of different models

More information

A Contrast and Comparison of Modern Software Process Models

A Contrast and Comparison of Modern Software Process Models A Contrast and Comparison of Modern Software Process s Pankaj Vohra Computer Science & Engineering Department Thapar University, Patiala Ashima Singh Computer Science & Engineering Department Thapar University,

More information

An Efficient Objective Quality Model for Agile Application Development

An Efficient Objective Quality Model for Agile Application Development An Efficient Objective Quality Model for Agile Application Development M.Usman Malik M. Haseeb Nasir Ali Javed UET Taxila UET Taxila UET Taxila Rawalpindi, Pakistan Rawalpindi, Pakistan Rawalpindi, Pakistan

More information

Abstract. Heavy vs Light Methodologies: Bulimic or Anorexic? Fernando Brito e Abreu FCT/UNL

Abstract. Heavy vs Light Methodologies: Bulimic or Anorexic? Fernando Brito e Abreu FCT/UNL Heavy vs Light Methodologies: Bulimic or Anorexic? Fernando Brito e Abreu FCT/UNL ISCTE, 15 April 2005 Abstract 2 From anorexic to bulimic Overview of heavy-weight methodologies Origins of light-weight

More information

System development lifecycle waterfall model

System development lifecycle waterfall model Slide 6.1 System development lifecycle waterfall model Figure 6.1 The waterfall model of system development lifecycle Slide 6.2 The b model Figure 6.2 The b model Source: N D Birrell and M A Ould, A Practical

More information

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1 Objectives To explain how an iterative, incremental development process leads to faster delivery of

More information

An Approach for assessing the Quality of Software for small and medium sized firms

An Approach for assessing the Quality of Software for small and medium sized firms An Approach for assessing the Quality of Software for small and medium sized firms N. Veeranjaneyulu Associate Professor, School of Computing, Vignan University, Vadlamudi, India 1 Abstract: Software quality

More information

The traditional project management uses conventional methods in software project management process.

The traditional project management uses conventional methods in software project management process. Volume 5, Issue 1, January 2015 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com Analysis of

More information

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit Development models R. Kuiper and E.J. Luit 1 Introduction We reconsider the classical development models: the Waterfall Model [Bo76], the V-Model [Ro86], the Spiral Model [Bo88], together with the further

More information

Software Lifecycles Models

Software Lifecycles Models Software Lifecycles Models Software Engineering Lecture 17 Bernd Bruegge Applied Software Engineering Technische Universitaet Muenchen 1 Outline of Today s Lecture Modeling the software life cycle Sequential

More information

Introduction to Software Engineering: Overview and Methodologies

Introduction to Software Engineering: Overview and Methodologies Introduction to Software Engineering: Overview and Methodologies John T. Bell Department of Computer Science University of Illinois, Chicago Based on materials from Bruegge & DuToit, Object Oriented Software

More information

REVIEW OF AGILE METHODOLOGIES IN SOFTWARE DEVELOPMENT

REVIEW OF AGILE METHODOLOGIES IN SOFTWARE DEVELOPMENT REVIEW OF AGILE METHODOLOGIES IN SOFTWARE DEVELOPMENT 1 MALIK HNEIF, 2 SIEW HOCK OW 1 Department of Software Engineering, University of Malaya, Kuala Lumpur, Malaysia-50603 2 Assoc. Prof., Department of

More information

Christina Wallin ABB Corporate Research Department of Industrial IT 721 78 Västerås +46 (0)21 34 50 74 christina.wallin@se.abb.

Christina Wallin ABB Corporate Research Department of Industrial IT 721 78 Västerås +46 (0)21 34 50 74 christina.wallin@se.abb. Christina Wallin ABB Corporate Research Department of Industrial IT 721 78 Västerås +46 (0)21 34 50 74 christina.wallin@se.abb.com Software Development Lifecycle Models The Basic Types Rikard Land Mälardalens

More information

CHAPTER 3 : AGILE METHODOLOGIES. 3.3 Various Agile Software development methodologies. 3.4 Advantage and Disadvantage of Agile Methodology

CHAPTER 3 : AGILE METHODOLOGIES. 3.3 Various Agile Software development methodologies. 3.4 Advantage and Disadvantage of Agile Methodology CHAPTER 3 : AGILE METHODOLOGIES 3.1Introductions 3.2 Main Stages in Agile project 3.3 Various Agile Software development methodologies 3.4 Advantage and Disadvantage of Agile Methodology 3.1Introductions

More information

A Review of an MVC Framework based Software Development

A Review of an MVC Framework based Software Development , pp. 213-220 http://dx.doi.org/10.14257/ijseia.2014.8.10.19 A Review of an MVC Framework based Software Development Ronnie D. Caytiles and Sunguk Lee * Department of Multimedia Engineering, Hannam University

More information

Project Management in Software: Origin of Agile

Project Management in Software: Origin of Agile PAGE 1 ios App Development Project Management in Software: Origin of Agile PAGE 2 Learning Outcomes By the end of the unit, you should be able to: 1. Differentiate between Waterfall and Agile process 2.

More information

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution Software Life Cycle Main issues: Discussion of different life cycle models Maintenance or evolution Not this life cycle SE, Software Lifecycle, Hans van Vliet, 2008 2 Introduction software development

More information

The Role of Software Quality in Agile Software Development Methodologies Osama Sohaib and Khalid Khan Abstract he various agile software development methodologies have promoted since their inception and

More information

A Comparison Between Five Models Of Software Engineering

A Comparison Between Five Models Of Software Engineering 94 A Comparison Between Five Models Of Software Engineering Nabil Mohammed Ali Munassar 1 and A. Govardhan 2 1 Ph.D Student of Computer Science & Engineering Jawahrlal Nehru Technological University Kuktapally,

More information

Software Process. Successful Software Production between Extreme Programming and Rational Unified Process Short Version

Software Process. Successful Software Production between Extreme Programming and Rational Unified Process Short Version Software Process Successful Software Production between Extreme Programming and Rational Unified Process Short Version Jörg Hofstetter, HTA Luzern (www.hta.fhz.ch) www.sweed.ch 2002, J. Hofstetter 1 Literature

More information

Outline. Definitions. Course schedule

Outline. Definitions. Course schedule SENG480A/CSC576A Topics in Software Engineering Software Development, Architecture & Evolution Lectures, Sep 17, 20, 2001 Hausi A. Müller University of Victoria Outline Assignment 1 due Sep 27 Last week

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

SWEN - Software Engineering Network Donnerstag 06. Mai. 2010

SWEN - Software Engineering Network Donnerstag 06. Mai. 2010 SWEN - Software Engineering Network Donnerstag 06. Mai. 2010 Agile Requirements Engineering Blaise Rey-Mermet, EVOCEAN GmbH, 2010 My background Executive Roles Dept. Head - Requirements Management & Engineering

More information

Extreme Programming, an agile software development process

Extreme Programming, an agile software development process Extreme Programming, an agile software development process Paul Jackson School of Informatics University of Edinburgh Recall: Waterfall and Spiral Models Waterfall: Spiral: Split project into controlled

More information

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS) CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS) Prescriptive Process Model Defines a distinct set of activities, actions, tasks, milestones, and work products that are required to engineer high quality

More information

Traditional SDLC Vs Scrum Methodology A Comparative Study

Traditional SDLC Vs Scrum Methodology A Comparative Study Traditional SDLC Vs Scrum Methodology A Comparative Study M. Mahalakshmi 1, DR. M. Sundararajan 2 1 Research Scholar, St. Peter s University, Avadi, India 2 Asst. Professor, Department of Computer Science,

More information

Laboratório de Desenvolvimento de Software

Laboratório de Desenvolvimento de Software Laboratório de Desenvolvimento de Software FEUP/MIEIC, 2015/16 Ademar Aguiar Nuno Flores Rui Maranhão Hugo Ferreira Luís Teixeira url: moodle http://www.facebook.com/notes/facebook-engineering/visualizing-friendships/469716398919

More information

An Iterative and Agile Process Model for Teaching Software Engineering

An Iterative and Agile Process Model for Teaching Software Engineering An Iterative and Agile Process Model for Teaching Software Engineering Maria Isabel Alfonso and Antonio Botía Dept. of Computer Science and Artificial Intelligence. University of Alicante (Spain) eli@dccia.ua.es,

More information

Lean Configuration Management

Lean Configuration Management A Softhouse White Paper Jens Norin Daniel Karlström September 2006 Softhouse Consulting, Stormgatan 14, SE-211 20 Malmö info@softhouse.se www.softhouse.se Contents Abstract...3 Introduction...4 Software

More information

Introduction to Software Engineering (ESE : Einführung in SE)

Introduction to Software Engineering (ESE : Einführung in SE) Introduction to Software Engineering (ESE : Einführung in SE) Prof. O. Nierstrasz Selected material courtesy of Prof. Serge Demeyer, U. Antwerp ESE Introduction Lecturers Assistants Lectures Exercises

More information

When is Agile the Best Project Management Method? Lana Tylka

When is Agile the Best Project Management Method? Lana Tylka When is Agile the Best Project Management Method? Lana Tylka Staged Incremental Deliveries Prototypes Plan Develop Design Deploy Test Maintain Sequential Steps Multiple Iterations Waterfall Sprints, Spirals

More information

Software Development Methodologies

Software Development Methodologies Software Development Methodologies Jonathan Hoyle Eastman Kodak Thursday, June 2, 2005 Overview Predictive Methodologies Waterfall Other Predictive Methodologies Agile Methodologies Extreme Programming

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

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

Umbrella: A New Component-Based Software Development Model

Umbrella: A New Component-Based Software Development Model 2009 International Conference on Computer Engineering and Applications IPCSIT vol.2 (2011) (2011) IACSIT Press, Singapore Umbrella: A New Component-Based Software Development Model Anurag Dixit and P.C.

More information

EPL603 Topics in Software Engineering

EPL603 Topics in Software Engineering Lecture 3 Agile Software Development EPL603 Topics in Software Engineering Efi Papatheocharous Visiting Lecturer efi.papatheocharous@cs.ucy.ac.cy Office FST-B107, Tel. ext. 2740 Topics covered Agile methods

More information

Agile Software Engineering Practice to Improve Project Success

Agile Software Engineering Practice to Improve Project Success Agile Software Engineering Practice to Improve Project Success Dietmar Winkler Vienna University of Technology Institute of Software Technology and Interactive Systems dietmar.winkler@qse.ifs.tuwien.ac.at

More information

The software process. Generic software process models. Waterfall model. Software Development Methods. Bayu Adhi Tama, ST., MTI. bayu@unsri.ac.

The software process. Generic software process models. Waterfall model. Software Development Methods. Bayu Adhi Tama, ST., MTI. bayu@unsri.ac. The software process Software Development Methods Bayu Adhi Tama, ST., MTI. bayu@unsri.ac.id A structured set of activities required to develop a software system Specification; Design; Validation; Evolution.

More information

What is a life cycle model?

What is a life cycle model? What is a life cycle model? Framework under which a software product is going to be developed. Defines the phases that the product under development will go through. Identifies activities involved in each

More information

Plan-Driven Methodologies

Plan-Driven Methodologies Plan-Driven Methodologies The traditional way to develop software Based on system engineering and quality disciplines (process improvement) Standards developed from DoD & industry to make process fit a

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

Introduction to Agile Software Development. EECS 690 Agile Software Development

Introduction to Agile Software Development. EECS 690 Agile Software Development Introduction to Agile Software Development EECS 690 Agile Software Development Agenda Research Consent Forms Problem with Software Engineering Motivation for Agile Methods Agile Manifesto Principles into

More information

Agile Development Overview

Agile Development Overview Presented by Jennifer Bleen, PMP Project Services Practice of Cardinal Solutions Group, Inc. Contact: Agile Manifesto We are uncovering better ways of developing software by doing it and helping others

More information

Moonzoo Kim CS Division of EECS Dept. KAIST

Moonzoo Kim CS Division of EECS Dept. KAIST Chapter 4 Agile Development Moonzoo Kim CS Division of EECS Dept. KAIST 1 Ex. UP Work Products Inception phase Vision document Init ial use-case model Init ial project glossary Init ial business case Init

More information

Development Methodologies

Development Methodologies Slide 3.1 Development Methodologies Prof. Dr. Josef M. Joller jjoller@hsr.ch Development Methodologies Prof. Dr. Josef M. Joller 1 Session 3 Slide 3.2 SOFTWARE LIFE-CYCLE MODELS Development Methodologies

More information

Agile So)ware Development

Agile So)ware Development Software Engineering Agile So)ware Development 1 Rapid software development Rapid development and delivery is now often the most important requirement for software systems Businesses operate in a fast

More information

An Assessment between Software Development Life Cycle Models of Software Engineering

An Assessment between Software Development Life Cycle Models of Software Engineering International Journal of Electronics and Computer Science Engineering 700 Available Online at www.ijecse.org ISSN- 2277-1956 An Assessment between Software Development Life Cycle Models of Software Engineering

More information

Scaling Down Large Projects to Meet the Agile Sweet Spot

Scaling Down Large Projects to Meet the Agile Sweet Spot Scaling Down Large Projects to Meet the Agile Sweet Spot Philippe Kruchten Kruchten Engineering Services Ltd Presenter Philippe Kruchten, Ph. D., P. Eng. KESL 2906 West 37 th avenue Vancouver BC V5Z 2M9

More information

應 用 測 試 於 軟 體 發 展 生 命 週 期. Testing In The Software Development Life Cycle

應 用 測 試 於 軟 體 發 展 生 命 週 期. Testing In The Software Development Life Cycle The Second Management Innovation and Practices Conference, Tamsui, Taiwan, April 2001,Volume 2, pp59-68 應 用 測 試 於 軟 體 發 展 生 命 週 期 Testing In The Software Development Life Cycle 蔡 博 元 莊 立 文 真 理 大 學 資 訊

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

6 Contracts and Scenarios in the Software Development Process

6 Contracts and Scenarios in the Software Development Process 6 Contracts and Scenarios in the Software Development Process Summary: Software development processes play an important role in the successful and timely delivery of software. There are different approaches

More information

Basic Trends of Modern Software Development

Basic Trends of Modern Software Development DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development 2 3 Software Engineering FAQ What is software engineering? An engineering

More information

CHALLENGES AND WEAKNESSES OF AGILE METHOD IN ENTERPRISE ARCHITECTURE

CHALLENGES AND WEAKNESSES OF AGILE METHOD IN ENTERPRISE ARCHITECTURE CHALLENGES AND WEAKNESSES OF AGILE METHOD IN ENTERPRISE ARCHITECTURE Zahra Askarinejad Amiri 1 1 Department of Computer Engineering, Staffordshire University ABSTRACT zahra.askarinejad@gmail.com As Information

More information

2. Analysis, Design and Implementation

2. Analysis, Design and Implementation 2. Subject/Topic/Focus: Software Production Process Summary: Software Crisis Software as a Product: From Individual Programs to Complete Application Systems Software Development: Goals, Tasks, Actors,

More information

2. Analysis, Design and Implementation

2. Analysis, Design and Implementation 2. Analysis, Design and Implementation Subject/Topic/Focus: Software Production Process Summary: Software Crisis Software as a Product: From Programs to Application Systems Products Software Development:

More information

Software Quality Assurance in Agile, XP, Waterfall and Spiral A Comparative Study

Software Quality Assurance in Agile, XP, Waterfall and Spiral A Comparative Study Software Quality Assurance in Agile, XP, Waterfall and Spiral A Comparative Study S. Vijayakumar vijsy003@students.unisa.edu.au School of Computer and Information Science University of South Australia,

More information

Agile Software Development

Agile Software Development Agile Software Development Application in the Medical Device Industry Kelly Weyrauch Medtronic, Inc. (29 April 2008) Introduction Purpose Provide an introduction to Agile Software Development as it applies

More information

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective: CS 487 Week 8 Reading: 1. Ian Sommerville, Chapter 3. Objective: 1. To check the understandibility of the students in life cycle and process model for development of a software product. 2. To check if

More information

On the Agile Development of Virtual Reality Systems

On the Agile Development of Virtual Reality Systems 10 Int'l Conf. Software Eng. Research and Practice SERP'15 On the Agile Development of Virtual Reality Systems F. Mattioli 1, D. Caetano 1, A. Cardoso 1, and E. Lamounier 1 1 Faculty of Electrical Engineering,

More information

Agile Software Development compliant to Safety Standards?

Agile Software Development compliant to Safety Standards? DB AG/Christian Bedeschinski www.thalesgroup.com/germany Agile Software Development compliant to Safety Standards? Christian Scholz Thales Transportation Systems 2 / Content Motivation Agile Software Development

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

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