CSC2106S Requirements Engineering

Similar documents
! Role of RE in software and systems engineering! Current techniques, notations, methods, processes and tools used in RE

Lecture 13: Requirements Analysis

Introduction. Requirements Engineering: Why RE? What is RE? How to do RE? -> RE Processes. Why RE in SysE? Case Studies and The Standish Report

UNIT-III LIFE-CYCLE PHASES

Design Science Research Methods. Prof. Dr. Roel Wieringa University of Twente, The Netherlands

IECI Chapter Japan Series Vol. 5 No. 2, 2003 ISSN

Software LEIC/LETI. Lecture 21

An Ontology for Modelling Security: The Tropos Approach

Requirements Analysis aka Requirements Engineering. Requirements Elicitation Process

A FRAMEWORK FOR PERFORMING V&V WITHIN REUSE-BASED SOFTWARE ENGINEERING

SWEN 256 Software Process & Project Management

Context Sensitive Interactive Systems Design: A Framework for Representation of contexts

RE Basics : Purpose and Nature of Requirements

Software-Intensive Systems Producibility

Grundlagen des Software Engineering Fundamentals of Software Engineering

Socio-cognitive Engineering

Course Introduction and Overview of Software Engineering. Richard N. Taylor Informatics 211 Fall 2007

SOFT 423: Software Requirements

Course Syllabus. P age 1 5

CSE - Annual Research Review. From Informal WinWin Agreements to Formalized Requirements

Integrated Product Development: Linking Business and Engineering Disciplines in the Classroom

This is a preview - click here to buy the full publication

Introduction to Design Science Methodology

Introduction to Systems Engineering

Lecture 10, Part 1: Non-Functional Requirements (NFRs)

Understanding Requirements. Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

Software Verification and Validation. Prof. Lionel Briand Ph.D., IEEE Fellow

Modeling Enterprise Systems

Meta-models, Environment and Layers: Agent-Oriented Engineering of Complex Systems

M&S Requirements and VV&A: What s the Relationship?

Unit 5: Unified Software Development Process. 3C05: Unified Software Development Process USDP. USDP for your project. Iteration Workflows.

A Knowledge-Centric Approach for Complex Systems. Chris R. Powell 1/29/2015

Patterns and their impact on system concerns

Course Outline Department of Computing Science Faculty of Science

Software Maintenance Cycles with the RUP

The Decision View of Software Architecture: Building by Browsing

Distributed Systems Programming (F21DS1) Formal Methods for Distributed Systems

Introduction to Design Science Methodology

Solutions to selected exercises

Requirements Engineering Through Viewpoints

Evolving a Software Requirements Ontology

UNIVERSITY OF REGINA FACULTY OF ENGINEERING. TIME TABLE: Once every two weeks (tentatively), every other Friday from pm

Objectives. Designing, implementing, deploying and operating systems which include hardware, software and people

Reconsidering the Role of Systems Engineering in DoD Software Problems

CC532 Collaborative System Design

Goals for this Lecture. Lecture 5: Introduction to Analysis. Requirements Engineering. IEEE definition of requirement

progressive assurance using Evidence-based Development

Strategies for Research about Design: a multidisciplinary graduate curriculum

Systems Engineering Overview. Axel Claudio Alex Gonzalez

Co-evolution of agent-oriented conceptual models and CASO agent programs

Information and Communication Technology

SAFETY CASE PATTERNS REUSING SUCCESSFUL ARGUMENTS. Tim Kelly, John McDermid

Principled Construction of Software Safety Cases

Professor Hausi A. Müller PhD PEng FCAE Department of Computer Science Faculty of Engineering University of Victoria

Systems Engineering Presented at Stevens New Jersey Community College Strategic Partnership 27 th September, 2005

Model-Based Systems Engineering Methodologies. J. Bermejo Autonomous Systems Laboratory (ASLab)

ENGAGE MSU STUDENTS IN RESEARCH OF MODEL-BASED SYSTEMS ENGINEERING WITH APPLICATION TO NASA SOUNDING ROCKET MISSION

IS 525 Chapter 2. Methodology Dr. Nesrine Zemirli

DEFENSE ACQUISITION UNIVERSITY EMPLOYEE SELF-ASSESSMENT. Outcomes and Enablers

Systems Requirements: Once Captured, are Slaughtered

Technology Transfer: Software Engineering and Engineering Design

AN INTERROGATIVE REVIEW OF REQUIREMENT ENGINEERING FRAMEWORKS

Towards a Software Engineering Research Framework: Extending Design Science Research

Chapter 8: Verification & Validation

TOWARDS AN ARCHITECTURE FOR ENERGY MANAGEMENT INFORMATION SYSTEMS AND SUSTAINABLE AIRPORTS

Requirements Engineering I

AGENTS AND AGREEMENT TECHNOLOGIES: THE NEXT GENERATION OF DISTRIBUTED SYSTEMS

KNOWLEDGE-BASED REQUIREMENTS ENGINEERING FOR RECONFIGURABLE PRECISION ASSEMBLY SYSTEMS

New Idea In Waterfall Model For Real Time Software Development

Catholijn M. Jonker and Jan Treur Vrije Universiteit Amsterdam, Department of Artificial Intelligence, Amsterdam, The Netherlands

Software Testing Introduction

Reverse Engineering A Roadmap

DECISION BASED KNOWLEDGE MANAGEMENT FOR DESIGN PROJECT OF INNOVATIVE PRODUCTS

WNR Approach: An Extension to Requirements Engineering Lifecycle

Serious Games production:

School of Computer Science. Course Title: Introduction to Human-Computer Interaction Date: 8/16/11

Requirements Engineering I

Achieving the Systems Engineering Vision 2025

MANAGING HUMAN-CENTERED DESIGN ARTIFACTS IN DISTRIBUTED DEVELOPMENT ENVIRONMENT WITH KNOWLEDGE STORAGE

Non-Functional Requirements (NFRs) Definitions

Context-sensitive Approach for Interactive Systems Design: Modular Scenario-based Methods for Context Representation

FM p.i-xxii 4/2/04 11:39 AM Page v. Preface

Introduction to Software Requirements and Design

ABSTRACT I. INTRODUCTION

UNIT IV SOFTWARE PROCESSES & TESTING SOFTWARE PROCESS - DEFINITION AND IMPLEMENTATION

! Consideration of design trade-offs, esp. resource usage! Minimize negative impacts (e.g. environmental and social cost)

IBM Software Group. Mastering Requirements Management with Use Cases Module 2: Introduction to RMUC

Systems. Professor Vaughan Pomeroy. The LRET Research Collegium Southampton, 11 July 2 September 2011

UML Use Case Diagrams

Architectures On-Demand for Any Domain Using Stable Software Patterns

F. Tip and M. Weintraub REQUIREMENTS

Industrial Applications and Challenges for Verifying Reactive Embedded Software. Tom Bienmüller, SC 2 Summer School, MPI Saarbrücken, August 2017

Software processes, quality, and standards Static analysis

The Evolution of User Research Methodologies in Industry

Leveraging 21st Century SE Concepts, Principles, and Practices to Achieve User, Healthcare Services, and Medical Device Development Success

CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DESIGN

Towards Integrated System and Software Modeling for Embedded Systems

Engineered Resilient Systems DoD Science and Technology Priority

Domain Understanding and Requirements Elicitation

FORESIGHT METHOD HORIZONS. Module. Introduction to Foresight for Canada Beyond 150

Transcription:

Today s Menu CSC2106S Engineering Prof. Steve Easterbrook sme@cs.toronto.edu http://www.cs.toronto.edu/~sme/csc2106s/ This This Week: Aims Aims of of the the course course Syllabus Syllabus Readings What What are are? Next Next Week: Week: Engineering Engineering Context Context s s Thinking Thinking Role Role of of Modeling Modeling 1 2 Definition of RE Course Objectives Not a phase or stage! Communication is as important as the analysis Quality means fitness-for-purpose. Cannot say anything about quality unless you understand the purpose Engineering (RE) is a set of activities concerned with identifying and communicating the purpose of a software-intensive system, and the contexts in which it will be used. Hence, RE acts as the bridge between the real world needs of users, customers, and other constituencies affected by a software system, and the capabilities and opportunities afforded by softwareintensive technologies Need to identify all the stakeholders - not just the customer and user Designers need to know how and where the system will be used are partly about what is needed and partly about what is possible Examine the state-of-the-art for research & practice in Engineering. ƒ Role of RE in software and systems engineering ƒ Current techniques, notations, methods, processes and tools used in RE Gain practical experience in selected RE techniques Understand the essential nature of RE ƒ Breadth of skills needed for RE, and the many disciplines on which it draws ƒ Contextual factors & practicalities Gain a basic grounding for research in RE ƒ Methodological issues for RE research ƒ Current research issues & direction of the field ƒ Awareness of the literature 3 4 1

Teaching and Assessment 1 x 3 hour seminar per week (13 weeks) ƒ Discussion of weekly reading material ƒ Student presentations ƒ Plus typically up to 1 hour of lecture material from me. Weekly readings ƒ 1 or 2 papers per week (must read before the seminar!) Will be available on the course website ƒ plus various background reading Assessments: ƒ 40% literature survey on a topic of your choice ƒ 40% practical project, applying 1 or more RE techniques ƒ 10% oral presentation on one or other of the above ƒ 10% class discussion (lead a discussion on weekly reading) ARISE Video-conferencing ARISE is a collaborative venture ƒ IBM Toronto Lab and the Universities of Waterloo, Toronto and York ƒ See http://www.softwareresearch.ca/ for details Challenges: ƒ Interaction Laptops and instant messaging during the class? ƒ Community building Name tags, exchange bios, photos, web addresses ARISE research questions ƒ How to collect, archive and index the classes? Communications from the instructor (syllabus, assignments, lecture notes) Postings to a Wiki (or similar online discussion tool) Audio+Video of the seminars Instant messaging during the seminars Emails ƒ What would you give your consent to? 5 6 Syllabus (I) Introductory Stuff Introductory stuff ƒ What are? ƒ What is Engineering? ƒ What is a? Basic RE activities ƒ Planning and Eliciting ƒ Modelling and Analysing ƒ Communicating and Agreeing ƒ Realizing and Evolving Advanced Topics ƒ Inconsistency and Uncertainty in RE ƒ Use of Formal Methods in RE ƒ Research methodology for RE What are? ƒ Scope (for this course): Software-intensive s ƒ Separating the Problem from the Solution ƒ What Engineers do What is Engineering? ƒ Engineering as a profession ƒ Engineering projects ƒ Engineering lifecycles ƒ Engineering design What is a? ƒ General systems theory ƒ Formal foundations of software systems ƒ Conceptual foundations of information systems ƒ Empirical foundations of human activity systems ƒ Observability of systems 7 8 2

(II) Eliciting and Planning (III) Modelling & Analysing Elicitation Targets ƒ Stakeholders & User Classes ƒ boundaries ƒ Goals ƒ Scenarios Elicitation techniques ƒ Interviews, questionnaires, surveys, meetings ƒ Prototyping ƒ Ethnographic techniques ƒ Knowledge elicitation techniques ƒ Conversation Analysis ƒ Text Analysis The Feasibility Study ƒ Types of Feasibility ƒ Cost/benefit analysis Risk Analysis ƒ Identifying and managing risk Basics of modelling ƒ Notations and their uses ƒ Formality and Expressiveness ƒ Abstraction and Decomposition ƒ Model management and viewpoints ƒ Types of Analysis Enterprises ƒ Business rules and organisational structures ƒ Goals, tasks and responsibilities ƒ Soft s analysis Information Structures ƒ Entities and Relationships ƒ Classes and Objects ƒ Domain Ontologies Behaviour ƒ Activities and Interactions ƒ States and Transitions ƒ Concurrency Quality ƒ Taxonomies of NFRs ƒ Performance ƒ Usability ƒ Safety ƒ Security ƒ Reliability ƒ Maintainability 9 10 (IV) Communicating & Agreeing (V) Realizing and Evolving Validation ƒ Refutable descriptions ƒ Role of contracts and procurement ƒ Role of organisational politics Documenting ƒ Properties of a good specification ƒ Documentation standards ƒ Specification languages ƒ Making requirements testable Prototyping and Walkthroughs ƒ Throwaway prototyping ƒ Operational prototyping ƒ Walkthroughs of operational models Reviews and Inspections ƒ Effectiveness of Inspection ƒ Conducting an Inspection ƒ Collaborative Workshops Negotiation and Prioritization ƒ Representing argumentation and rationale ƒ Computer-supported negotiation ƒ Trade-off analysis ƒ Release planning Software Evolution ƒ Laws of evolution ƒ Release planning ƒ Product families ƒ Requirement Reuse and Architectures ƒ Architectural Patterns and Description Languages ƒ Mapping requirements to architectures ƒ Architectural Robustness Managing Change ƒ Baselines and change requests ƒ Configuration management and version control ƒ Impact Analysis Traceability and Rationale ƒ Pre- and Post- traceability ƒ Capturing Design Rationale ƒ Traceability techniques Managing Inconsistency ƒ On the inevitable intertwining of inconsistency and change ƒ Learning from inconsistency ƒ Feature interaction ƒ Living with inconsistency 11 12 3

Bibliography Many books on RE exist Extensive list of books and papers! ƒ no one textbook covers the field well ƒ this course is research-oriented: we ll rely on recent papers more than books most of the papers are available electronically feel free to contact researchers directly for more papers, info, tools, etc. To help navigate the literature: ƒ http://www.cs.toronto.edu/~sme/csc2106s/readings.pdf provides a detailed bibliography, arranged according to the topics on this course ƒ http://easyweb.easynet.co.uk/~iany/reviews/reviews.htm Book reviews by Ian Alexander ƒ http://www.rmplace.org/ Al Davis bibliography and other RE related links ƒ See also the resource list on the course website 13 Student textbooks A. Davis, Software requirements: objects, functions and states, Prentice Hall, 1993. G. Kotonya and I. Sommerville, Engineering: Processes and Techniques, Wiley, 1998. P. Loucopoulos and V. Karakostas, Engineering, McGraw Hill, 1995. L. A. Macaulay, Engineering, Springer Verlag, 1996. R. J. Wieringa, Engineering: Frameworks for Understanding, Wiley, 1996. Flynn, D., Information s : Determination and Analysis, McGraw Hill, 1992 Collected Readings R. H. Thayer and M. Dorfman (eds.), Software Engineering, Second Edition, IEEE Computer Society Press, 1997. J. Goguen, and M. Jirotka (Eds.), Engineering: Social and Technical Issues, Academic Press, 1994. Practitioner textbooks S. J. Andriole, Managing s : Methods, Tools, and Cases, McGraw-Hill, 1996. D. C. Gause and G. M. Weinberg, Exploring : quality before design, Dorset House, 1989. D. C. Gause and G. M. Weinberg, Are Your Lights On?: How to Figure Out What the Problem Really Is, Dorset House, 1990. J. O. Grady, Analysis, McGraw Hill, 1993. I. S. Graham, Engineering and Rapid Development: A Rigorous, Object-Oriented Approach, Addison-Wesley, 1998. B. L. Kovitz, Practical Software ; A Manual Of Content And Style, Manning Publications, 1998 K. L. McGraw and K. Harbison, User-Centered : The Scenario-Based Engineering Process, Lawrence Erlbaum Associates, 1997. J. Robertson and S. Robertson, The Complete s Analysis, Dorset House, 1998. G. Schneider and J. P. Winters, Applying Use Cases: A Practical Guide, Addison-Wesley, 1998. I. Sommerville and P. Sawyer, Engineering: A Good Practice Guide, Wiley, 1997. R. Stevens, K. Jackson, P. Brook, and S. Arnold, s Engineering: Coping with Complexity, Prentice Hall 1998. 14 Conferences ƒieee International Symposium on Engineering RE 93 - Jan 1993, San Diego, USA RE 95 - Mar 1995, York, UK. RE 97 - Jan 1997. Annapolis, USA RE 99 - Jun 1999, Limerick, Ireland RE 01 - Aug 2001, Toronto, Canada ƒieee International Conference on Engineering ICRE 94 - Apr 1994. Colorado Springs, USA. ICRE 96 - Apr 1996. Colorado Springs, USA. ICRE 98 - Apr 1998. Colorado Springs, USA. ICRE 00 - Jun 2000, Chicago, USA ƒin 2002, ICRE and RE merged... ƒieee International Engineering Conferences RE 02 - Sept 2002, Essen, Germany RE 03 - Sept 2003, Monterey Bay, USA RE 04 - Sept 2004, Kyoto, Japan (see www.re04.org) RE 05 - Sept 2005, Paris, France (see www.re05.org) Research Literature Journals ƒ Engineering Journal published quarterly by Springer ƒ IEEE Transactions on Software Engineering (published monthly) ƒ ACM Transactions on Software Engineering and Methodology (published quarterly) ƒ Various other SE journals: Annals of Software Engineering Software Practice and Experience Automated Software Engineering Journal of s and Software Workshops ƒ IWSSD - Int. Workshops on Software Specification and Design ƒ REFSQ - Int. Workshops on Engineering: Foundations of Software Quality 15 Part II: What are? Two basic principles: 1. It is useful to separate the problem the solution And to document a problem statement separately from any design solutions 2. This separation can never be achieved fully in practice Because design changes the world, and therefore changes the original problem Why RE is important ƒ (because failure is expensive!) Applications Domains ƒ RE is more about studying human activity than it is about computers Themes for the course 16 4

Separate the problem from the solution But design changes the world Understand the problem ƒ elicitation, requirements acquisition, etc. Real World Formally describe the problem ƒ specification, modelling, etc. Attain agreement on the nature of the problem ƒ validation, conflict resolution, negotiation ƒ requirements management - maintain the agreement! Correspondence Correctness Problem Statement Implementation Statement Verification Validation change implementation statement real world problem statement abstract model of world Source: Adapted from Loucopoulos & Karakostas, 1995, p20 and Blum, 1992 17 18 Problems Importance of RE ƒ Increased reliance on software E.g. cars, dishwashers, cell phones, web services, ƒ Software now the biggest cost element for mission critical systems E.g. Boeing 777 ƒ Wastage on failed projects E.g. 1997 GAO report: $145 billion over 6 years on software that was never delivered ƒ High consequences of failure E.g. Ariane 5: $500 million payload E.g. Intel Pentium bug: $475 million Key factors: ƒ Certification costs E.g. Boeing 777: >40% of software budget spent on testing ƒ Re-work from defect removal E.g. Motorola: 60-80% of software budget (was) spent on re-work ƒ Changing E.g. California DMV system 19 What vs. How Traditionally, should specify what without specifying how ƒ But this is not always easy to distinguish: What does a car do? What does a web browser do? What does an operating system do? ƒ The how at one level of abstraction forms the what for the next level Jackson s work provides a clearer distinction ƒ What refers to a system s purpose it is external to the system it is a property of the application domain ƒ How refers to a system s structure and behavior it is internal to the system it is a property of the machine domain Source: Adapted from Jackson, 1995, p207 Subsystem Unit What What What How Design How Design Design How 20 5

The Application vs. The Machine Application Domain Some distinctions: ƒ Domain Properties are things in the application domain that are true whether or not we ever build the proposed system ƒ are things in the application domain that we wish to be made true by delivering the proposed system ƒ A specification is a description of the behaviours the program must have in order to meet the requirements Two verification criteria: ƒ The Program running on a particular Computer satisfies the Specification ƒ The Specification, in the context of the given Domain properties, satisfies the Two validation criteria: ƒ Did we discover (and understand) all the important? ƒ Did we discover (and understand) all the relevant Domain properties? Machine Domain Requirement R: Validation Example ƒ Reverse thrust shall only be enabled when the aircraft is moving on the runway Domain Properties D: ƒ Wheel pulses on if and only if wheels turning ƒ Wheels turning if and only if moving on runway Specification S: ƒ Reverse thrust enabled if and only if wheel pulses on S + D imply R ƒ But what if the domain model is wrong? Source: Adapted from Jackson, 1995, p170-171 21 Source: Adapted from Jackson, 1995, p172 22 Requirement R: Another Example ƒ The database shall only be accessible by authorized personnel Domain Properties D: ƒ Authorized personnel have passwords ƒ Passwords are never shared with non-authorized personnel Specification S: ƒ Access to the database shall only be granted after the user types an authorized password S + D imply R ƒ But what if the domain assumptions are wrong? Monitored Variables Setting the Boundaries software How will the software interact with the world? ƒ s engineer decides what application domain phenomena are shared E.g. the four variable model: ƒ Decide the boundaries by designing the input/output devices ƒ Uses I/O data items as proxies for the monitored and controlled variables Input devices input data output data S - Specification of software in terms of inputs & outputs Output devices Controlled Variables Environment Environment R - : what control actions the system must take in which circumstances. D - Domain Properties that constrain how the environment can behave Source: Adapted from Jackson, 1995, p172 23 24 6

Some observations about RE RE is not necessarily a sequential process: ƒ Don t have to write the problem statement before the solution statement (Re-)writing a problem statement can be useful at any stage of development ƒ RE is a set of activities that continue throughout the development process The problem statement will be imperfect ƒ RE models are approximations of the world will contain inaccuracies and inconsistencies will omit some information. detailed analysis can reduce the risk that these will cause serious problems but that risk can never be reduced to zero Perfecting a specification may not be cost-effective ƒ analysis has a cost ƒ For different projects, the cost-benefit balance will be different Problem statement should never be treated as fixed ƒ Change is inevitable, and therefore must be planned for ƒ There should be a way of incorporating changes periodically 25 Key Themes for this Course Software-intensive systems ƒ software + hardware + human activity the human activity gives the system its purpose ƒ RE is about discovering that purpose Continuous Change ƒ Introduction of new system changes the human activity ƒ People find new ways of using it Human Centered Development ƒ goal is to change human activities to make them more effective, efficient, safe, enjoyable, etc. ƒ rather than to design a new computer system A s Perspective ƒ treat relevant parts of the world as systems with emergent properties Multi-disciplinary approach ƒ Use whatever techniques seem useful Social, cognitive, mathematical, Continuous Risk Management ƒ Upfront RE as risk reduction Design as Reflection ƒ New designs arise in response to observed problems with existing ones ƒ There is always an existing system! Multiple Viewpoints ƒ Many stakeholders ƒ Each model presupposes a viewpoint RE as negotiation ƒ Resolve conflicts between different stakeholders goals ƒ Manage customer s expectations 26 What do Engineers do? Starting point ƒ Some notion that there is a problem that needs solving e.g. dissatisfaction with the current state of affairs e.g. a new business opportunity e.g. a potential saving of cost, time, resource usage, etc. ƒ A Engineer is an agent of change The requirements engineer must: ƒ identify the problem / opportunity Which problem needs to be solved? (identify problem Boundaries) Where is the problem? (understand the Context/Problem Domain) Whose problem is it? (identify Stakeholders) Why does it need solving? (identify the stakeholders Goals) How might a software system help? (collect some Scenarios) When does it need solving? (identify Development Constraints) What might prevent us solving it? (identify Feasibility and Risk) ƒ and become an expert in the problem domain although ignorance is important too -- the intelligent ignoramus Processes, Methods, Techniques... A notation notation is is a a representation representation scheme scheme (or (or language) language) for for expressing expressing things; things; e.g., e.g., Z, Z, first first order order logic, logic, dataflow dataflow diagrams, diagrams, UML. UML. A technique technique prescribes prescribes how how to to perform perform a a particular particular (technical) (technical) activity activity - and, and, if if necessary, necessary, how how to to describe describe a a product product of of that that activity activity in in a a particular particular notation; notation; e.g, e.g, use use case case diagramming, diagramming, A method method provides provides a a technical technical prescription prescription for for how how to to perform perform a a collection collection of of activities, activities, focusing focusing on on integration integration of of techniques techniques and and guidance guidance about about their their use; use; e.g., e.g., SADT, SADT, OMT, OMT, JSD, JSD, KAOS, KAOS, RUP(?). RUP(?). A Process Process model model is is an an abstract abstract description description of of how how to to conduct conduct a a collection collection of of activities, activities, focusing focusing on on resource resource usage usage and and dependencies dependencies between between activities. activities. A Process Process is is an an enactment enactment of of a a process process model, model, describing describing the the behaviour behaviour of of one one or or more more agents agents and and their their management management of of resources. resources. Where do RE methods fit into RE processes? ƒ each method is appropriate for some particular types of problem domain often not well-defined where they fit ƒ methods vary in their coverage (of RE activities) and focus; e.g., Coverage: elicitation, modelling, analysis, etc. Focus: goals, behaviour, viewpoints, etc. 27 28 7