Activities Common to Software Projects. Software Life Cycle. Activities Common to Software Projects. Activities Common to Software Projects

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

Lecture 7: Software Processes. Refresher: Software Always Evolves

Software Development Process Models

Objectives. Connecting with Computer Science 2

System Development Life Cycle Methods/Approaches/Models

Incremental development A.Y. 2018/2019

Introduction to. and. Scott W. Ambler Source Documents

Topic 01. Software Engineering, Web Engineering, agile methodologies.

Systems Analysis and Design in a Changing World, Fourth Edition

How Can a Tester Cope With the Fast Paced Iterative/Incremental Process?

Agile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do?

Meltem Özturan

Testing in Agile Software Development

Review: Cohesion and Coupling, Mutable, Inheritance Screen Layouts. Object-Oriented Design CRC Cards - UML class diagrams

Model driven Engineering & Model driven Architecture

Introduction to Extreme Programming

Processes, Methodologies and Tools. Fall 2005

Optimize tomorrow today.

The requirements engineering process

SOFTWARE LIFE-CYCLE MODELS 2.1

Reducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping

XP Evolution Rachel Davies

Ready for Scrum? Steve Hutchison DISA T&E

02291: System Integration

Test Driven Development. René Barto SES Agile Development - Test Driven Development

The Process of Software Architecting

Chapter 5. The Database Life Cycle. Class 04: Topic 3.1: The Database Life Cycle

CSC Advanced Object Oriented Programming, Spring Overview

Agile Development

Introduction to Extreme Programming. Extreme Programming is... Benefits. References: William Wake, Capital One Steve Metsker, Capital One Kent Beck

Introduction to Software Engineering

VO Software Engineering

Introduction to Software Engineering (ESE : Einführung in SE) Prof. O. Nierstrasz

SOFTWARE LIFE-CYCLE PROCESSES From Waterfall to Extreme Programming

CS487 Midterm Exam Summer 2005

Extreme programming XP 6

Software processes. Objectives. Contents

defined. defined. defined. defined. defined. defined. defined. defined. defined.

Requirements and Design Overview

Software Process. Software Process

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping.

Software Quality in a Modern Development Team. Presented by Timothy Bauguess and Marty Lewis

Best Practices for Collecting User Requirements

Experience-based Refactoring for Goal- oriented Software Quality Improvement

Best Practices for Final Year Projects

Testing in the Agile World

Mensch-Maschine-Interaktion 1

Outline of UML and Unified Process. Object Oriented Analysis/Design/Programming UML1.5. Koichiro Ochimizu, JAIST. UML&UP outline 1.

The Agile Unified Process (AUP)

Software Engineering

Software Engineering I (02161)

No SVN checkout today. Object-Oriented Design

Test Driven Development TDD

Chapter 1: Programming Principles

Foundation Level Syllabus Usability Tester Sample Exam Answers

B Nagaraju

Agile Software Development The Cooperative Game 2nd Edition

Agile Model-Driven Development with UML 2.0 SCOTT W. AM BLER. Foreword by Randy Miller UNIFIED 1420 MODELING LANGUAGE. gile 1.

Study Of Feature Driven Development Using The Concepts Of Object Oriented Programming System

Software Verification and Validation (VIMMD052) Introduction. Istvan Majzik Budapest University of Technology and Economics

((MARKS)) (1/2/3...) ((QUESTIO N)) ((OPTION_ A)) What is Software?

Administrivia. Added 20 more so far. Software Process. Only one TA so far. CS169 Lecture 2. Start thinking about project proposal

How to Harvest Reusable Components in Existing Software. Nikolai Mansurov Chief Scientist & Architect

Founda'ons of So,ware Engineering. Process: Agile Prac.ces Claire Le Goues

Agile Accessibility. Presenters: Ensuring accessibility throughout the Agile development process

THE BCS PROFESSIONAL EXAMINATION BCS Level 6 Professional Graduate Diploma in IT September 2017 EXAMINERS REPORT. Software Engineering 2

INTRODUCTION. 2. User-centred interface design.

Systems Analysis & Design

Software Engineering with Objects and Components Open Issues and Course Summary

CS193D Handout 15 Winter 2005/2006 February 8, 2006 Software Engineering Methodologies and XP. See also: Chapter 6. The Stagewise Model

5 Object Oriented Analysis

Managing Change and Complexity

Object-Oriented Systems. Development: Using the Unified Modeling Language

K Kantor, Jeff Use Case Driven Testing, 249

Chapter 12. Systems Design. McGraw-Hill/Irwin. Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved.

Rapid Application Development [RAD]

David Bernstein Five Development Practices Essential for Scrum Teams

Product. e ss. P roc. so get the right requirements. Garbage in garbage out,

Software Processes. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 1

Chapter 1: Principles of Programming and Software Engineering

Modern Software Engineering Methodologies Meet Data Warehouse Design: 4WD

Darshan Institute of Engineering & Technology for Diploma Studies Rajkot Unit-1

The Design Space of Software Development Methodologies

White Paper. Incorporating Usability Experts with Your Software Development Lifecycle: Benefits and ROI Situated Research All Rights Reserved

Announcements. How to build a UML model. Rational Unified Process. How RUP builds a model. UI design. Architect

The ATCP Modeling Framework

E xtr B e y CS R m oy 6704, e T a P n a Spring r n o d J g ia n 2002 r g a S m hu m ing

SE420 - Software Quality Assurance

Incremental Programming

SE 2730 Final Review

CSC 330 Object Oriented Software Design. Software Analysis Phase

Chapter 1: Introduction to Systems Analysis

SOFTWARE ENGINEERING. Software Specification Software Design and Implementation Software Validation. Peter Mileff PhD

RE Process. Lawrence Chung Department of Computer Science The University of Texas at Dallas

CSC 330 Object Oriented Software Design Software Analysis Phase Object-Oriented Paradigm Object-Oriented Analysis cont d

02291: System Integration

Agile Model Driven Development (AMDD)

Heavy vs Light Methodologies: Bulimic or Anorexic? Fernando Brito e Abreu Universidade Nova de Lisboa (

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

Transcription:

Activities Common to Software Projects Software Life Cycle Mark van den Brand Requirements and specification Domain analysis Defining the problem Requirements gathering Obtaining input from as many sources as possible Requirements analysis Organizing the information Requirements specification Writing detailed instructions about how the software should behave / Faculteit Wiskunde en Informatica 2-2-2009 PAGE 1 Activities Common to Software Projects Activities Common to Software Projects Design Deciding how the requirements should be implemented, using the available technology Includes: Systems engineering: Deciding what should be in hardware and what in software Software architecture: Dividing the system into subsystems and deciding how the subsystems will interact Detailed design of the internals of a subsystem User interface design Design of databases Modeling Creating representations of the domain or the software Use case modeling Structural modeling Dynamic and behavioral modeling Programming Quality assurance Reviews and inspections Testing Deployment & Managing the process / Faculteit Wiskunde en Informatica 2-2-2009 PAGE 2 / Faculteit Wiskunde en Informatica 2-2-2009 PAGE 3

Software Engineering Projects Most projects are evolutionary or projects, involving work on legacy systems Corrective projects: fixing defects Adaptive projects: changing the system in response to changes in Operating system Database Rules and regulations Enhancement projects: adding new features for users Reengineering or perfective projects: changing the system internally so it is more maintainable Waterfall model requirements engineering design implementation testing / Faculteit Wiskunde en Informatica 2-2-2009 PAGE 4 / Faculteit Wiskunde en Informatica 2-2-2009 PAGE 5 V-model Waterfall model Document oriented Suited for (very) large projects (> 50 people) Too many design activities during coding and testing / Faculteit Wiskunde en Informatica 2-2-2009 PAGE 6 / Faculteit Wiskunde en Informatica 2-2-2009 PAGE 7

Agile methods Individuals and interactions are more important than processes and tools Working software is more important than comprehensive documents Customer collaboration is more important than contract negotiation Responding to change is more important than following a plan Agile methods No extensive architectural or design phase No energy spend on documentation / Faculteit Wiskunde en Informatica 2-2-2009 PAGE 8 / Faculteit Wiskunde en Informatica 2-2-2009 PAGE 9 requirements engineering design implementation testing Prototyping design implementation testing Advantages of prototyping Resulting system is easier to use Resulting system has less features User needs are better accommodated Design is of higher quality Problems are detected earlier Resulting system is easier to maintain Development costs less effort / Faculteit Wiskunde en Informatica 2-2-2009 PAGE 10 / Faculteit Wiskunde en Informatica 2-2-2009 PAGE 11

Disadvantages of prototyping Resulting system has more features Design is of lower quality Performance of resulting system is worse Resulting system is harder to maintain Team members should be more experienced Prototyping Is useful in situations with unclear or ambiguous requirements Is useful in when emphasis is on user interface Users and designers must be aware of pitfalls Must planned and controlled / Faculteit Wiskunde en Informatica 2-2-2009 PAGE 12 / Faculteit Wiskunde en Informatica 2-2-2009 PAGE 13 Incremental development Incremental development First focusing on essential features Additional functionality is only included if needed Resulting systems are leaner but provide sufficient support to the user / Faculteit Wiskunde en Informatica 2-2-2009 PAGE 14 / Faculteit Wiskunde en Informatica 2-2-2009 PAGE 15

Rapid application development (RAD) Similar to iterative development process models User involvement Prototyping Reuse Automated tools Small development teams Time boxing RAD has four phases: Requirements planning Application design Construction Cutover (testing, training, installation) MoSCoW: Must haves Should haves Could haves Won t haves / Faculteit Wiskunde en Informatica 2-2-2009 PAGE 16 / Faculteit Wiskunde en Informatica 2-2-2009 PAGE 17 Dynamic systems development method (DSDM) Builds on RAD 5 phases: Feasibility study Business study Functional model iteration Design and build iteration implementation Extreme programming (XP) principles: Rapid feedback Simplicity Incremental change Embracing change Quality work / Faculteit Wiskunde en Informatica 2-2-2009 PAGE 18 / Faculteit Wiskunde en Informatica 2-2-2009 PAGE 19

Extreme programming in practice: Planning game Small releases Metaphor Simple design Testing Refactoring Pair programming Collective ownership Continuous integration 40-hour week On-site customer Coding standards Rational Unified Process (RUP) in practice: Iterative development Requirements management Architecture and use of components Modeling and UML Quality of process and product Configuration and change management Use-case driven development Process configuration Tool support / Faculteit Wiskunde en Informatica 2-2-2009 PAGE 20 / Faculteit Wiskunde en Informatica 2-2-2009 PAGE 21 Model-driven architecture (MDA) Traditionally models are manually transformed into code MDA advocates model transformati ons Several models CIM (computation independent model) PIM (platform independent model) PSM (platform specific model) Code model code transform manually model code model transformation / Faculteit Wiskunde en Informatica 2-2-2009 PAGE 22 / Faculteit Wiskunde en Informatica 2-2-2009 PAGE 23