Requirements Engineering Requirements Engineering in Agile Methods Lecture-29.

Slides:



Advertisements
Similar presentations
Chapter 7 System Models.
Advertisements

Methods for Requirements Engineering
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Rapid software development
1 Software Engineering Muhammad Fahad Khan Software Engineering Muhammad Fahad Khan University Of Engineering.
Agile Development.
System Modelling System modelling helps the analyst to understand the functionality of the system and models are used to communicate with customers. Different.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System modeling 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Chapter 17: Rapid software development November 3, 2008.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
CS 425/625 Software Engineering System Models
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
7M701 1 Software Engineering Systems Models Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 7 (some items)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models September 29, 2008.
©Ian Sommerville 2000Software Engineering, 6/e, Chapter 71 System models l Abstract descriptions of systems whose requirements are being analysed.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Methods for requirements engineering. Objectives To explain the role of methods and techniques in requirements engineering To introduce data-flow modelling.
Chapter 3 – Agile Software Development Lecture 1 1Chapter 3 Agile software development.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
System Analysis Overview Document functional requirements by creating models Two concepts help identify functional requirements in the traditional approach.
Software Engineering 8. System Models.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Chapter 3 – Agile Software Development Lecture 1 1Chapter 3 Agile software development.
Agile Software Development Chapter 3 – Lecture 1 Adrián Susinos.
Extreme Programming(XP)
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
System models. System modelling System modelling helps the analyst to understand the functionality of the system and models are used to communicate with.
System models Abstract descriptions of systems whose requirements are being analysed Abstract descriptions of systems whose requirements are being analysed.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Chapter 7 System models.
Slide 1 System models. Slide 2 Objectives l To explain why the context of a system should be modelled as part of the RE process l To describe behavioural.
System models l Abstract descriptions of systems whose requirements are being analysed.
Pertemuan 19 PEMODELAN SISTEM Matakuliah: D0174/ Pemodelan Sistem dan Simulasi Tahun: Tahun 2009.
Modified by Juan M. Gomez Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
Software Engineering, 8th edition Chapter 8 1 Courtesy: ©Ian Somerville 2006 April 06 th, 2009 Lecture # 13 System models.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Chapter 3 Agile Software Development (1/2) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
Requirements Engineering Methods for Requirements Engineering Lecture-30.
SWEN 5231 FORMAL METHODS Slide 1 System models u Abstract presentations of systems whose requirements are being analyzed.
Traditional Process Models A quick overview. 2 Waterfall Model (Diagram) Communication Project initiation Requirements gathering Planning Estimating Scheduling.
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
 To explain why the context of a system should be modelled as part of the RE process  To describe behavioural modelling, data modelling and object modelling.
© 2000 Franz Kurfess System Design Methods 1 CSC 205: Software Engineering I Dr. Franz J. Kurfess Computer Science Department Cal Poly.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
Agile Software Development 1. Topics covered Agile methods Plan-driven and agile development Extreme programming 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Engineering, 7th edition. Chapter 8 Slide 1 System models.
CS223: Software Engineering
Rapid Software Development
CHAPTER 8: RAPID SOFTWARE DEVELOPMENT
Abstract descriptions of systems whose requirements are being analysed
System models October 5, 2005.
Chapter 3 – Agile Software Development
Extreme Programming.
Presentation transcript:

Requirements Engineering Requirements Engineering in Agile Methods Lecture-29

Recap 2  Requirement engineering in AMs

Today’s lecture 3  Requirement engineering in AMs  Requirement methods

XP and agile principles  Incremental development is supported through small, frequent system releases.  Customer involvement means full-time customer engagement with the team.  People not process through pair programming, collective ownership and a process that avoids long working hours.  Change supported through regular system releases.  Maintaining simplicity through constant refactoring of code.

Customer involvement  Customer involvement is a key part of XP where the customer is part of the development team.  The role of the customer is:  To help develop stories that define the requirements  To help prioritize the features to be implemented in each release  To help develop acceptance tests which assess whether or not the system meets its requirements.

Requirements scenarios  In XP, user requirements are expressed as scenarios or user stories.  These are written on cards and the development team break them down into implementation tasks. These tasks are the basis of schedule and cost estimates.  The customer chooses the stories for inclusion in the next release based on their priorities and the schedule estimates.

Story card for document downloading

XP and change  Conventional wisdom in software engineering is to design for change. It is worth spending time and effort anticipating changes as this reduces costs later in the life cycle.  XP, however, maintains that this is not worthwhile as changes cannot be reliably anticipated.  Rather, it proposes constant code improvement (refactoring) to make changes easier when they have to be implemented.

Refactoring  Refactoring is the process of code improvement where code is reorganised and rewritten to make it more efficient, easier to understand, etc.  Refactoring is required because frequent releases mean that code is developed incrementally and therefore tends to become messy.  Refactoring should not change the functionality of the system.  Automated testing simplifies refactoring as you can see if the changed code still runs the tests successfully.

Testing in XP  Test-first development.  Incremental test development from scenarios.  User involvement in test development and validation.  Automated test harnesses are used to run all component tests each time that a new release is built.

Task cards for document downloading

Test case description

Test-first development  Writing tests before code clarifies the requirements to be implemented.  Tests are written as programs rather than data so that they can be executed automatically. The test includes a check that it has executed correctly.  All previous and new tests are automatically run when new functionality is added. Thus checking that the new functionality has not introduced errors.

Tools for Requirements Management in AMs  UML Modeling Tools  Requirements Negotiation Tools  Instant Messaging Tools  Project Management Tools

Methods for Requirement Engineering 15

Role of methods in RE  Process of requirements engineering (RE) is usually guided by a requirements method  Requirement methods are systematic ways of producing system models  System models bridges gap between the analysis and the design process

Necessary properties for a RE method  Suitability for agreement with the end-user  The precision of definition of its notation  Assistance with formulating requirements  Definition of the world outside  Scope for malleability  Scope for integrating other approaches  Scope for communication  Tool support

No ideal RE method  There is no ideal requirement method  A number of methods use a variety of modelling techniques to formulate system requirements  System models can be enriched by modelling different aspects of using modelling techniques

Modeling techniques  Data-flow models  Compositional models  Classification models  Stimulus-response models  Process models

Data flow modelling  Based on the notion that systems can be modelled as a set of interacting functions  Uses data-flow diagrams (DFDs) to graphically represent the external entities, processes, data-flow, and data stores

Data flow notation

Notation variability  There is little uniformity in industry concerning the DFD notation  The notation shown was advanced by DeMarco  Gane and Sarson use rounded rectangles for bubbles shadowed rectangles for sources and destinations, and squared off C’s for data stores  Orr uses rectangles for bubbles, ellipses for sources and destinations, and ellipses for data stores

DFD example  Consider a simple library system intended to automate the issuing of library items  The first data-flow diagram derived by the analyst represents the ‘target’ system at its context level  The next level (level 1) of the data-flow diagram is constructed by decomposing the library system bubble into sub-functions

Library example- Context level data flow diagram

Library example - Level 1 data flow diagram

Structured analysis  The data-flow approach is typified by the Structured Analysis method (SA)  Two major strategies dominate structured analysis  ‘Old’ method popularised by DeMarco  ‘Modern’ approach by Yourdon

DeMarco  A top-down approach  The analyst maps the current physical system onto the current logical data-flow model  The approach can be summarised in four steps:  Analysis of current physical system  Derivation of logical model  Derivation of proposed logical model  Implementation of new physical system

Modern structured analysis  Distinguishes between user’s real needs and those requirements that represent the external behaviour satisfying those needs  Includes real-time extensions  Other structured analysis approaches include:  Structured Analysis and Design Technique (SADT)  Structured Systems Analysis and Design Methodology (SSADM)

Relational model  Data may be modelled using the relational model  Specifies data as a set of tables, with some columns being used as common keys  Disadvantages of relational model  Implicit data typing  Inadequate modelling of relations  Data model should include information about the semantics of the data

Semantic model  Approaches to semantic data modelling include:  Entity-relationship model (Chen, 1976)  RM/ T (Codd, 1979)  SDM (Hammer and McLeod, 1981)  Models identify the entities in a database, their attributes and their relationships  Uses graphical notations

Notation for semantic data modelling

Extensions to entity relationship model  The basic ERM has been extended to include sub and super-types to the basic entity and relation primitives  Types may have sub-types  Types may inherit the attributes of their super-types  In addition, sub-types may have private attributes

ERM example - Software requirement

Object-oriented approaches  Closest precursor is entity relationship model  Requirements methods based on object orientation:  Shlaer and Mellor (1988)  Colbert (1989)  Coad and Yourdon (1989)  Wirf-Brock (1990)  Rumbaugh (1991)  Jacobson (1992)  Martin-Odell (1992)  Notations for the various methods are semantically similar

Object  Are major actors, agents, and servers in the problem space of the system  Identified by analysing the domain  Objects include:  Devices that the system interacts with  Systems that interface with the system under study  Organisational units  Things that must be remembered over time  Physical locations or sites  Specific roles played by humans

Basic concepts  Encapsulation  Class  Inheritance  Operations or Services

Object definition  Something real or abstract about which we store data and those operations that manipulate the data  Examples include: An account, a sensor, a software design, a car, an organisation  May be composite - composed of other objects

Summary 38  Requirement Engineering in AMs  XP  Customer involvement  Requirement scenarios  Changes/Refactoring  Testing  Requirement methods  System models