Requirements Engineering: A Roadmap Vahid Jalali Fall 2007 Amirkabir university of technology, Department of computer engineering and information technology,

Slides:



Advertisements
Similar presentations
Intelligence Step 5 - Capacity Analysis Capacity Analysis Without capacity, the most innovative and brilliant interventions will not be implemented, wont.
Advertisements

Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
May 14, May 14, 2015May 14, 2015May 14, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,
Use-case Modeling.
Software Quality Engineering Roadmap
Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Requirements Engineering Course, Dr. Abdollahzadeh 1 Requirements.
Towards Modelling and Reasoning Support for Early-Phase Requirements Engineering Vahid Jalali Amirkabir university of technology, Department of computer.
درس مهندسي نيازمندي ها استاد دكتر عبداله زاده دانشجو خيرالنسا مرچانت Requirement Engineering :A Roadmap.
Knowledge Acquisitioning. Definition The transfer and transformation of potential problem solving expertise from some knowledge source to a program.
Shiva Vafadar 1 آزمايشکاه سيستم های هوشمند ( Requirements Engineering : A Roadmap Effectiveness of.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Requirement Engineering – A Roadmap
Identifying needs and establishing requirements Chapter 7b.
The meaning of requirements Vahid Jalali October 2007 Amirkabir university of technology, Department of computer engineering and information technology,
Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Requirements Engineering Course, Dr. Abdollahzadeh 1 Goal.
Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Requirements Engineering Course, Dr. Abdollahzadeh 1 Requirements.
Chapter 2: IS Building Blocks Objectives
IIBA Denver | may 20, 2015 | Kym Byron , MBA, CBAP, PMP, CSM, CSPO
Dealing with NFRs Vahid Jalali Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory,
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Foundations This chapter lays down the fundamental ideas and choices on which our approach is based. First, it identifies the needs of architects in the.
Course Instructor: Aisha Azeem
Requirement engineering for an online bookstore system
Chapter 4 Capturing the Requirements 4th Edition Shari L. Pfleeger
Domain-Specific Software Engineering Alex Adamec.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes 1.
What is Business Analysis Planning & Monitoring?
Chapter 4 Requirements Engineering
S/W Project Management
UML - Development Process 1 Software Development Process Using UML (2)
Advanced Topics in Requirement Engineering. Requirements Elicitation Elicit means to gather, acquire, extract, and obtain, etc. Requirements elicitation.
1 REQUIREMENT ENGINEERING Chapter 7. 2 REQUIREMENT ENGINEERING Definition Establishing what the customer requires from a software system. OR It helps.
Requirements Elicitation
Demystifying the Business Analysis Body of Knowledge Central Iowa IIBA Chapter December 7, 2005.
Business Analysis and Essential Competencies
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
Requirements Engineering
Requirements Elicitation. Who are the stakeholders in determining system requirements, and how does their viewpoint influence the process? How are non-technical.
I NTEGRATING C REATIVITY INTO R EQUIREMENTS P ROCESSES Vahid Jalali Amirkabir university of technology, Department of computer engineering and information.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
1-1 System Development Process System development process – a set of activities, methods, best practices, deliverables, and automated tools that stakeholders.
R EQUIREMENTS AND SYSTEM ENGINEERING Week 4. O UTLINE System engineering Requirements elicitation Assignment.
Lecture 7: Requirements Engineering
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Requirement Elicitation Process Lesson 3. Requirements Elicitation  Is the process to find out the requirements for an intended software system by communicating.
1 What is OO Design? OO Design is a process of invention, where developers create the abstractions necessary to meet the system’s requirements OO Design.
Requirements Collection By Dr. Gabriel. Requirements A requirement is any function, constraint, or property that the system must provide, meet, or satisfy.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
27/3/2008 1/16 A FRAMEWORK FOR REQUIREMENTS ENGINEERING PROCESS DEVELOPMENT (FRERE) Dr. Li Jiang School of Computer Science The.
Requirements Validation
Requirements Engineering
Requirements Engineering Process
Requirements Engineering Requirements Validation and Management Lecture-24.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Requirement Engineering
Understanding User's Work Ethnography The systematic study and documentation of human activity without imposing a prior interpretation on it via immersion.
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
 CMMI  REQUIREMENT DEVELOPMENT  SPECIFIC AND GENERIC GOALS  SG1: Develop CUSTOMER Requirement  SG2: Develop Product Requirement  SG3: Analyze.
Chapter 3: The Requirements Workflow [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada, Reno Department of Computer.
1 Requirements Elicitation – 2 Lecture # Requirements Engineering Process Requirements Elicitation Requirements Analysis and Negotiation Requirements.
Information Technology Project Management, Seventh Edition.
 The processes used for RE vary widely depending on the application domain, the people involved and the organisation developing the requirements.  However,
Introduction to Software Requirement Engineering Nisa’ul Hafidhoh Teknik Informatika
The Components of Information Systems
The Components of Information Systems
Usability Techniques Lecture 13.
Introduction to Requirements Engineering
Information System Building Blocks
Presentation transcript:

Requirements Engineering: A Roadmap Vahid Jalali Fall 2007 Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

What is RE? The primary measure of success of a software system is the degree to which it meets the purpose for which it was intended software systems requirements engineering (RE) is the process of discovering that purpose ▫identifying stakeholders ▫their needs ▫documenting these amenable to  analysis  communication  subsequent implementation Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

RE difficulties Stakeholders may be numerous and distributed Their goals may vary and conflict, depending on their perspectives of the environment in which they work and the tasks they wish to accomplish Their goals may not be explicit or may be difficult to articulate satisfaction of these goals may be constrained by a variety of factors outside their control Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

Core RE activities eliciting requirements modeling and analyzing requirements communicating requirements agreeing requirements evolving requirements Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

Role of RE Requirements engineering is the branch of software engineering concerned with : ▫the real-world goals for, functions of, and constraints on software systems. It is also concerned with the relationship of these factors to ▫precise specifications of software behavior ▫and to their evolution over time and across software families Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

Formalism Since software is a formal description, analysis of its behavior is amenable to formal reasoning Logic provides a vehicle for performing such analysis ▫improve the rigor of the analysis performed ▫to make the reasoning steps explicit Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

Formalism (Cont.) RE must span the gap between the informal world of stakeholder needs, and the formal world of software behavior the key question over the use of formal methods is not whether to formalize, but when to formalize Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

Context of RE The context in which RE takes place is usually a human activity system RE needs to be sensitive to how people perceive and understand the world around them how they interact how the sociology of the workplace affects their actions Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

Eliciting Requirements activity most often regarded as the first step in the RE process requirements are not out there to be collected simply by asking the right questions Information gathered during requirements elicitation often has to be ▫interpreted ▫analyzed ▫modeled ▫validated Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

Eliciting Requirements (Cont.) One of the most important goals of elicitation is to find out what problem needs to be solved, and hence identify system boundaries Identifying and agreeing a system's boundaries affects identification of ▫Stakeholders ▫user classes ▫goals ▫tasks ▫scenarios ▫use cases Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

Elicitation Techniques The choice of elicitation technique depends on ▫the time and resources available to the requirements engineer ▫the kind of information that needs to be elicited Some classes of elicitation techniques ▫Traditional techniques ▫Group elicitation techniques ▫Prototyping ▫Model-driven techniques ▫Cognitive techniques ▫Contextual techniques Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

Traditional techniques questionnaires surveys interviews analysis of existing documentation ▫organizational charts ▫process models ▫standards ▫user or other manuals of existing systems Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

Group elicitation techniques aim to foster stakeholder agreement ▫brainstorming ▫RAD/JAD workshops Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

Prototyping used for elicitation where there is a great deal of uncertainty about the requirements or where early feedback from stakeholders is needed Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

Model-driven techniques provide a specific model of the type of information to be gathered ▫goal-based methods ▫scenario-based methods Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

Cognitive techniques a series of techniques originally developed for knowledge acquisition for knowledge-based systems ▫protocol analysis  expert thinks aloud while performing a task, to provide the observer with insights into the cognitive processes used to perform the task ▫Laddering  using probes to elicit structure and content of stakeholder knowledge ▫card sorting  asking stakeholders to sort cards in groups, each of which has name of some domain entity ▫repertory grids  constructing an attribute matrix for entities Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

Contextual techniques emerged in the 1990's as an alternative to both traditional and cognitive techniques ▫ethnographic techniques ▫ethnomethodogy and conversation analysis Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

Elicitation Process With a plethora of elicitation techniques available to the requirements engineer, some guidance on their use is needed Elicitation techniques should be selected regarding particular application domain Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

Modeling and Analyzing Requirements Modeling - the construction of abstract descriptions that are amenable to interpretation - is a fundamental activity in RE The key question to ask for any modeling approach is "what is it good for?“ Categories of RE modeling ▫Enterprise Modeling ▫Data Modeling ▫Behavioral Modeling ▫Domain Modeling ▫Modeling Nonfunctional Requirements ▫Analyzing Requirements Models Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

Communicating Requirements RE is not only a process of discovering and specifying requirements, it is also a process of facilitating effective communication of these requirements among different stakeholders The focus of requirements documentation research is often on specification languages and notations the ability, not only to write requirements but also to do so in a form that is readable and traceable by many Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

Communicating Requirements (Cont.) Requirements traceability (RT) ▫is another major factor that determines how easy  it is to read  Navigate  Query  Change requirements documentation Gotel defines requirements traceability as ▫the ability to describe and follow the life of a requirement in both forwards and backwards direction Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

Agreeing Requirements As requirements are elicited and modeled, maintaining agreement with all stakeholders can be a problem ▫especially where stakeholders have divergent goals Requirements validation is difficult for two reasons ▫Philosophical  what is knowable? ▫Social  difficulty of reaching agreement among different stakeholders with conflicting goals Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

Agreeing Requirements (Cont.) Jackson argues that descriptions used in RE should be refutable those that are not refutable are vague, and should only be treated as rough sketches win-win approach ▫win conditions for each stakeholder are identified ▫software process is managed and measured to ensure that all the win conditions are satisfied, through negotiation among the stakeholders Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

Evolving Requirements Managing change is a fundamental activity in RE because: ▫Successful software systems always evolve as the environment in which these systems operate changes and stakeholder requirements change Changes to requirements documentation need to be managed. this involves providing techniques and tools for ▫configuration management ▫version control ▫exploiting traceability links to monitor and control the impact of changes in different parts of the documentation Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

Evolving Requirements (Cont.) Traceability links does not support automated reasoning The links carry little semantic information ViewPoints framework address this problem ▫In ViewPoints relationships between chunks of a specification are expressed operationally ▫automated support for propagation of change becomes possible Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

Evolving Requirements (Cont.) Managing changing requirements is not only a process of managing documentation, it is also a process of: ▫Recognizing change through continued requirements elicitation ▫Reevaluation of risk ▫evaluation of systems in their operational environment Nowadays one of the key research issues in software engineering is identifying core requirements in order to develop architectures that are: ▫stable in the presence of change ▫flexible enough to be customized and adapted to changing requirements Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

RE during the last decade The 1990's saw several important and radical shifts in the understanding of RE By the early 1990's, RE had emerged as a field of study in its own right, as witnessed by the emergence of two series of international meetings ▫IEEE ▫Springer By the late 1990's, the field had grown enough to support a large number of additional smaller meetings and workshops in various countries Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

RE during the last decade (Cont.) Three radical new ideas ▫modeling and analysis cannot be performed adequately in isolation from the organizational and social context ▫The notion that RE should not focus on specifying the functionality of a new system, but instead should concentrate on modeling indicative and optative properties of the environment ▫RE has to take seriously the need to analyze and resolve conflicting requirements Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

Future Challenges Development of new techniques for formally modeling and analyzing properties of the environment, as opposed to the behavior of the software Bridging the gap between requirements elicitation approaches based on contextual enquiry and more formal specification and analysis techniques Richer models for capturing and analyzing non- functional requirements Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

Future Challenges (Cont.) Better understanding of the impact of software architectural choices on the prioritization and evolution of requirements Reuse of requirements models Multidisciplinary training for requirements practitioners Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

Reference Bashar Nuseibeh, Steve Easterbrook, Requirements engineering: a roadmap, Proceedings of the Conference on The Future of Software Engineering, p.35-46, June 04-11, 2000, Limerick, Ireland Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007

Thanks for your attention Amirkabir university of technology, Department of computer engineering and information technology, Intelligent systems laboratory, Requirement engineering course, Fall 2007