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



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

How To Understand The Software Process

CS4507 Advanced Software Engineering

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

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

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

Software Process and Models

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

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

Software Engineering

Unit 1 Learning Objectives

Software Life Cycles and Configuration Management

SOFTWARE PROCESS MODELS

Classical Software Life Cycle Models

Web Application Development Process

Software Development Process

I219 Software Design Methodology

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Agile So)ware Development

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

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

Chapter 3 Technology adapted

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

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

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

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

Rapid Software Development

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

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

COMP 354 Introduction to Software Engineering

Development Methodologies

Software Development Methodologies

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

Family: Iterative Enhancement Origin: Ivar Jacobson, James Rumbaugh, Grady Booch, 1996 Defines process framework that is adaptable to

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

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

Chapter 2 Software Processes

An Iterative and Agile Process Model for Teaching Software Engineering

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

Agile Unified Process

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

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

Software Development Life Cycle (SDLC)

COMPARATIVE STUDY ON SOFTWARE PROJECT MANAGEMENT MODELS

Software Development Life Cycle at SSPL. An Summary of Methodologies We Offer

Quality Assurance Software Development Processes

A Comparison between Five Models of Software Engineering

RUP. Development Process. Iterative Process (spiral) Waterfall Development Process. Agile Development Process. Well-known development processes

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

A Capability Maturity Model (CMM)

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal

Software development processes Life-cycle Models

6 Contracts and Scenarios in the Software Development Process

Contents. 3 Agile Modelling Introduction Modelling Misconceptions 31

What is a life cycle model?

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

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

LECTURE 1. SYSTEMS DEVELOPMENT

Leveraging RUP, OpenUP, and the PMBOK. Arthur English, GreenLine Systems

Software Development Methodologies

Surveying and evaluating tools for managing processes for software intensive systems

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

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

A complete software development process of a general report publication service implemented using Web Services

Advanced Software Engineering. Software Development Processes

Plan-Driven Methodologies

Software Engineering. Christopher Simpkins Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS / 16

System development lifecycle waterfall model

Basic Unified Process: A Process for Small and Agile Projects

Chapter 3. Technology review Introduction

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

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

The Software Life Cycle. CSE 308: Software Engineering

Extreme Programming and Rational Unified Process Contrasts or Synonyms?


A Comparison Between Five Models Of Software Engineering

CSE 435 Software Engineering. Sept 16, 2015

Lifecycle Models: Waterfall / Spiral / EVO

Increasing Development Knowledge with EPFC

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

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

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda

Lecture 3 Software Development Processes

Mitigating Service-Orientation Risks with RUP

MDA Case Study: State of Wisconsin Unemployment Insurance Division

Quality Assurance in an Agile Environment

Models of Software Development

Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc.

Management. Project. Software. Ashfaque Ahmed. A Process-Driven Approach. CRC Press. Taylor Si Francis Group Boca Raton London New York

Basic Trends of Modern Software Development

Applying Agile Methods in Rapidly Changing Environments

CHAPTER. Software Process Models

Supporting Workflow Overview. CSC532 Fall06

Software Engineering and Scientific Computing

Comparison between Agile and Traditional software development methodologies

Introduction to Software Engineering: Overview and Methodologies

Software Engineering. What is a system?

Project Management in the Rational Unified Process

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

Transcription:

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 on next } What criteria that work product must satisfy } There is no standard or ideal process! } For some systems, such as critical systems, a very structured development process is required. } For business systems, with rapidly changing requirements, a flexible process is likely to be more effective. } For large systems, a mixed process is often preferred. 1 CS 490MT/5555: Software Methods and Tools

Software Process Models } Waterfall Model } V-Model } Prototyping } Iterative Process } Incremental Development } Spiral Model } Agile Methods } Rational Unified Process (RUP) 2 CS 490MT/5555: Software Methods and Tools

Waterfall Model 3 CS 490MT/5555: Software Methods and Tools

Waterfall Model } Pros } A plan-based, document-driven, rigor process } Fits with other engineering process model } Cons } Premature freezing of requirements } Inflexibility } Usages } Critical systems } Large systems (hardware & software) } Different development teams in different places } Long lifetime 4 CS 490MT/5555: Software Methods and Tools

V-Model (the extension of Waterfall) 5 CS 490MT/5555: Software Methods and Tools

Annotated V-Model 6 CS 490MT/5555: Software Methods and Tools

Prototyping requirements engineering design design implementation implementation testing testing maintenance 7 CS 490MT/5555: Software Methods and Tools

Prototyping } Prototype } Prototype is a working model of a software system, which emphasizes certain aspects. } Usually starts with requirements that are not well understood } Pros } A good way to clarify user requirements } Useful for user interface design } Cons } The process is not visible } The resulting system can be poorly structured 8 CS 490MT/5555: Software Methods and Tools

Iterative Processes } The essence of iterative processes is that the specification is developed in conjunction with the software. } Incremental Development } Spiral Model } Agile Methods 9 CS 490MT/5555: Software Methods and Tools

Incremental Development 10 CS 490MT/5555: Software Methods and Tools

Incremental Development } The functionality of the system is produced and delivered to the customer in small increments. } Starts with the user requirements that are best understood, or essential features. } Each release is a mini-waterfall. } Pros } Avoids the Bing Bang effect. } The most important system services receive the most testing. } Cons } Contractual problems } Hard to manage 11 CS 490MT/5555: Software Methods and Tools

Spiral Model 12 CS 490MT/5555: Software Methods and Tools

Spiral Model } A risk-driven process model } Each loop in the spiral consists of: } Identify objectives and alternatives } Evaluate the alternatives, identify and resolve risks } Develop the identified portion of the product } Plan for succeeding phases } Pros } Subsumes previous moels } Cons } Not clear how to analyze risk 13 CS 490MT/5555: Software Methods and Tools

Agile Methods } Traditional plan-based approaches (waterfall, spiral, incremental) often involve a significant overhead in planning, designing, and documenting the system. } Agile methods allow the development team to focus on the software itself rather than on its design and documentation 14 CS 490MT/5555: Software Methods and Tools

Agile Methods } Principles } Customer involvement } Incremental delivery } No prescriptive process } Embrace change } Maintain simplicity } Examples } Extreme Programming (XP) } Pair programming } Test-driven development 15 CS 490MT/5555: Software Methods and Tools

Rational Unified Process (RUP) 16 CS 490MT/5555: Software Methods and Tools

Rational Unified Process (RUP) } Separation of phases and development activities (workflows) } Four phases: Inception, Elaboration, Construction, Transition } Nine workflows: Business modeling, Requirements, Analysis and design, Implementation, Testing, Deployment, Configuration and change management, Project management, Environment } In principle, all of RUP workflows may be active at all phases of the process. } A hybrid of traditional process models } A phased model where phases are more related to business } Each phase is enacted in an iterative way } The whole set of phases may also be enacted incrementally 17 CS 490MT/5555: Software Methods and Tools

Software Engineering Activities (covered in this course) } Requirements Analysis and Specification } Requirements Specification (UML Use Case Diagrams) } Software Architecture and Design } Architectural Design (ArchStudio) } Detailed Design (UML Class Diagrams, etc.) } Software Implementation } Development Environment (Eclipse, Emacs) } Software Testing } Unit Testing (JUnit Testing Framework) } Software Maintenance } Version Control (Subversion, GIT) 18 CS 490MT/5555: Software Methods and Tools

Other Software Engineering Activities and Topics (not covered) } Software Deployment } Software Refactoring } Software Metrics } Software Mining } Software Usability } Software Product Line } 19 CS 490MT/5555: Software Methods and Tools

Reminder } Lab #1 is on next Tuesday. } Assignment #1 will be assigned after Lab #1. 20 CS 490MT/5555: Software Methods and Tools