Lecture 3 Topics on Requirements Engineering



Similar documents
Lecture 2 Software Re-engineering

feature requirements engineering

Ubiquitous, Pervasive and Mobile Computing: A Reusable-Models-based Non-Functional Catalogue

Goal-Based Self-Contextualization

Towards an Agent Oriented approach to Software Engineering

Goal-Oriented Requirements Engineering: An Overview of the Current Research. by Alexei Lapouchnian

To Comply Software and IT System Development with Related Laws Abstract. Keywords: 1. PROBLEM STATEMENT

How To Develop A Multi Agent System (Mma)

Elicitation and Modeling Non-Functional Requirements A POS Case Study

Location-based Software Modeling and Analysis: Tropos-based Approach

Understanding the Role of Enterprise Architecture. towards Better Institutionalization

Tropos: An Agent-Oriented Software Development Methodology

Elicitation and Modeling Non-Functional Requirements A POS Case Study

Deriving Use Cases from Organizational Modeling

However, the marketplace for replaceable components is still not at sight due to many

Agent-Oriented Software Development

GOAL-BASED WEB DESIGN TOWARDS BRIDGING THE GAP BETWEEN REQUIREMENTS AND DESIGN OF WEB APPLICATIONS

A Modeling Ontology for Integrating Vulnerabilities into Security Requirements Conceptual Foundations

Service Oriented Architecture

Requirements Analysis Concepts & Principles. Instructor: Dr. Jerry Gao

Agent-Oriented Software Engineering PORTO Methodology AIAD 2013/2014. António Castro and Eugénio Oliveira

Goals and Scenarios to Software Product Lines: the GS2SPL Approach

NFR Catalogues for RFID Middleware

Mastem: A Mathematics Tutoring Multi-Agent System

TOWARDS A FRAMEWORK INCORPORATING FUNCTIONAL AND NON FUNCTIONAL REQUIREMENTS FOR DATAWAREHOUSE CONCEPTUAL DESIGN

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

From i* Models to Service Oriented Architecture Models

Goal-Oriented Requirement Analysis for Data Warehouse Design

Table of Contents. CHAPTER 1 Web-Based Systems 1. CHAPTER 2 Web Engineering 12. CHAPTER 3 A Web Engineering Process 24

A Comparison of SOA Methodologies Analysis & Design Phases

Sofware Requirements Engineeing

BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT. March 2013 EXAMINERS REPORT. Software Engineering 2

4. Multiagent Sys stems Design. Part 2: The PROMETHEUS methodology.

An Investigation of Agent Oriented Software Engineering Methodologies to Provide an Extended Methodology

Problem-Solution Mapping for Forward and Reengineering on Architectural Level

Requirements Engineering for Web Applications

On Non-Functional Requirements

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

Modeling Mental States in Requirements Engineering An Agent-Oriented Framework Based on i* and CASL

Goal-Oriented Requirements Engineering: Part II

Execution of A Requirement Model in Software Development

Communication Diagrams

Web Application Architectures

CS 6361, SPRING 2010 Advanced Requirements Engineering Web Based Meeting Scheduler- Project Plan

Software Requirements, Third Edition

Requirements Analysis through Viewpoints Oriented Requirements Model (VORD)

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

How To Develop Use Cases In Uml From Organizational Modeling

FIVE LAYERED MODEL FOR IDENTIFICATION OF

Appendix... B. The Object Constraint

Scenario-based Requirements Engineering and User-Interface Design

Course Outline. Foundation of Business Analysis Course BA30: 4 days Instructor Led

An NFR Pattern Approach to Dealing with NFRs

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

Lecture 9: Requirements Modelling

SOFTWARE REQUIREMENTS

Software Requirements. Descriptions and specifications of a system. Ian Sommerville 2000 Software Engineering, 6th edition.

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

Interface Design Rules

Fourth generation techniques (4GT)

VAIL-Plant Asset Integrity Management System. Software Development Process

Introduction to Web Services

Software Requirements Specification (SRS)

Announcements. SE 1: Software Requirements Specification and Analysis. Review: Use Case Descriptions

Part 1 Foundations of object orientation

Semantic Transformation of Web Services

Quotes from Object-Oriented Software Construction

Keywords Aspect-Oriented Modeling, Rule-based graph transformations, Aspect, pointcuts, crosscutting concerns.

Combining Business Intelligence, Indicators, and the User Requirements Notation for Performance Monitoring

STREAM-ADD Supporting the Documentation of Architectural Design Decisions in an Architecture Derivation Process

Transcription:

Lecture 3 Topics on Requirements Engineering Some material taken from the Tropos project at U of T Copyright Yijun Yu, 2005

Course information Let s vote Course Project/Final Exam 50-50 or 60-40? Midterm/Final Exam 15-35 or 0-50? Final Exam Open notes or Close notes or Aid Sheet

Last tutorial Web Services Why we use Web Services? Key standards: SOAP, WSDL and UDDI Tomcat/Axis implementation of a legacy OmniEditor web service Architectures of the OmniEditor Requirements specifications

Last lecture Software Reengineering Reasons to reengineering The horseshoe process model Overloaded words reengineering, reverse engineering, restructuring and refactoring There is another RE*ING in SE: Requirements engineering

Today Topics on Requirements Engineering 1. What are Software Requirements? 2. Why are they important? 3. How to engineer the requirements of a software,? 4. Why shall we do goal-oriented requirements engineering? Goal models 5. Summary

1. What are software requirements? Definition from Google: define:software Requirements The set of functions, performance measures, and constraints that software must satisfy. A more or less formal statement of what a software application should do. Sometimes business analysts create requirements and hand them to software developers. Other times software analysts interview business people in order to determine the requirements for a software application development effort. Business people invariably define requirements less formally than necessary. Business people tend to define requirements with written statements or with process diagrams. Software developers are more likely to define software requirements by means of Use Case Diagrams or Class Diagrams, which often aren't that clear to business analysts. Software Requirements constitute an important interface between business managers and IT organizations. If the handoff isn't clear and precise then the resulting system is likely to disappoint the business people who requested it.

What are software requirements, then? Requirements are expectations of the system by the environment: what problem is solved? Software refers to the software plus the system/platform where it is running Requirements to the software product Functionalities: functional requirements Qualities: non-functional requirements Reliability, Correctness, Usability, Performance, Security, Privacy, Requirements to the software development process Productivity: How fast you deliver functionalities? Maintainability, Understandability, Reusability, etc.: How good you can maintain the product qualities?

Related Requirements System requirements specify the minimal demands (dependency) to the environment (hardware/software/people) Windows 3.1/95/98/NT/XP, 256MB, English Platform independent? Stakeholder Requirements specify the expectations from different agents in the world Domain engineers, End-Users, Developers, Managers, Testers, HCI designers, Administrators, Partners, Competitors, Lawyers, Artists, you name it Business Requirements Market, ROI, Profit margin, Market share, Organizations

Example system requirements not everyone can be an astraunaut

Requirements have dependencies and Reengineering needs to know about the Requirements Spring 2005 ECE450H1S Software Engineering II

2. Why are requirements important? The Waterfall process model IT SAVES DOLLARS, IT SAVES LIFES

3. How to obtain requirements? Rapid Prototyping process

3. How to specify FR? A functional requirement Goal: query [stock quote] Inputs: stock quote [string] Outputs: stock price [float] Precondition: stock quote is not empty Postcondition: stock price >=0 if the stock quote is found, otherwise stock price = -1 Relation to other requirements To make profit of investment (why?) To invoke an XMETHODS web service (how?) Investor (brokers), Stock analysts (who?) 9am 5pm EST (when?) Stock portfolio (what?) Sometimes Helps, sometimes Hurts the profit goal (how much?)

An alternative requirement An alternative functional requirement Goal: query [stock name] Inputs: stock name [string] Outputs: stock price [float] Precondition: stock name is not empty Postcondition: stock price >=0 if the stock name is found and unique, otherwise stock price = -1 if the stock doesn t exist, or stock price = -2 if more than one stock is found Relate to other requirements To make profit of investment (why?) Do not need to remember the stock quote (why?) To invoke another XMETHODS web service (how?)

3. How to specify a NFR? A non-functional requirement Quality attribute: responsiveness [query] Metric: elapsed time to get response Satisfaction criteria: elapsed time < 1 second Another non-functional requirement Quality attribute: usability [query] Metric: time to memorizing the name Satisfaction criteria: memorizing the name < 1 second Quality attribute, metrics, satisficing criteria

3. How to obtain requirements? Goal-oriented requirements engineering What is a goal? Desired state of the system. Captures intentions or objectives Either true (satisfied) or false (denied) Partially/Fully satisfied/denied? Soft-goal: Satisficed Reveal the rationale behind the requirements, called early requirements Goal-oriented requirements elicitation (asking why, how, who, what, when, where and how much ) Goal-oriented requirements specification: goal modelling to define the inter-dependencies among requirements

4. Representation issues: Conceptual modelling Each functional requirement has an associated goal, like the @purpose statement in the Javadoc, which defines the function: What is the acceptable input and what is the exceptional input? What is the expected output? Each non-functional requirements has an associated softgoal, and the contribution to the satisficing of the softgoal through a criteria on a threshold of the metric: Operationalization Dependencies among them (AND/OR contributions and HELPS/HURTS/MAKES/BREAKS correlations)

4. The goal model: a syntax Goal +children AndOrRefinement String getname() Boolean issatisfied() SoftGoal 1 0..n Boolean isfullysatisficed() Boolean ispartiallysatisficed() Boolean isfullydenied() Boolean ispartiallydenied() 1 subgoals +parent 0..n Refinement Boolean isand() Boolean isor() OperationalizationRefinement SoftGoal target() Boolean ishelp() Boolean ishurt() Boolean ismak e() Boolean isbreak()

4. Goal reasoning: the semantics T: satisfied F: denied Goal: Contact a Friend Get Get Reliable Reply Reply Fully satisficed Partially satisficed Unknown Partially denied Fully denied Conflict OR ++: MAKE +: HELP --: BREAK Goal: Email a Friend Goal: Mail a Friend Goal: Call a Friend AND Text Editor SMTP

4. V-graph: the pragmatics of a goal model

decompose list objectives root goal soft goals correlate goals soft goals resolve conflict goals soft goals tasks No conflict correlation decompose tasks decompose Consistent V model Satisfied & satisficed goals tasks soft goals list aspects aspects

5. Summary RE is getting more important FR and NFR are explained Goal models are used to model early requirements, followed by software architectures, UML class diagrams, design patterns, refactoring, etc. The syntax/semantics/pragmatics of a goal model are explained, also with a process for goal oriented requirements engineering Three related tutorials will further explore the topic: The OpenOME requirements engineering tool Aspect-oriented programming (AOP) and the use of goal model to find aspects in the early requirements Quality metrics and software measuring tools

Further readings A. Dardenne, A. van Lamsweerde, S. Fickas: Goal-Directed Requirements Acquisition. Science of Computer Programming, 20(1-2): 3-50 (1993). A. van Lamsweerde, L. Willemet. Goal-Oriented Requirements Engineering, A Guided Tour, International Conference on Requirements Engineering, 2001. L. Chung, B. A. Nixon, E. Yu and J. Mylopoulos. Non-Functional Requirements in Software Engineering, Kluwer Academic Publishing, 1999. J. Mylopoulos, L. Chung, E. Yu. From Object-Oriented to Goal-Oriented Requirement Analysis. Communications of the ACM. 42(1):31-37, January 1999. P. Giorgini, J. Mylopoulos, E. Nicchiarelli, and R. Sebastiani. Reasoning with goal models. LNCS, 2503:167--181, 2002. L. Liu, E. Yu, and J. Mylopoulos. Security and privacy requirements analysis within a social setting. In RE 2003, pp. 151--161, 2003. Y. Yu, J.C. Leite, J. Mylopoulos. From goals to aspects: discovering aspects from goal models. RE 04, 2004.

What s next A Tutorial on a Requriements Engineering tool: OpenOME Next lectures will explain design patterns and refactoring techniques