Professional Documents
Culture Documents
01 - Requirements Engineering Intro
01 - Requirements Engineering Intro
Requirements
Software
Volatile business environment subject to constant change - BPR; rapid IS development needed Wide range of more complex system types CAD/CAM, GIS, Office Automation, CASE tools Increased use of complex data types - text documents, video, sound, graphics, spatial data Sophisticated user interfaces (GUIs) Client-Server environments / distributed systems Tendency for larger systems with complex and varied interrelationships among software components
z z z
The average software product released on the market is not error free
z z
Updates are needed to meet users requirements Bug, Problems, Failures Misunderstanding requirements leads to functional misbehavior Errors in code
Standard software: 25 bugs per 1.000 lines of program Windows95: 200.000 errors (!) in 10 Millions lines
Exploding
costs during development Delivery Date can not be met Organizational structure changes
Armin B. Cremers, Sascha Alda Organizational Requirements Engineering 5
a high quality software system with a given budget before a given deadline while change occurs.
Computer Scientist
Proves theorems about algorithms, designs languages, defines knowledge representation schemes Has infinite time Develops a solution for an application-specific problem for a client Uses computers & languages, tools, techniques, and methods Works in multiple application domains Has only 3 months... while changes occurs in requirements and available technology
Engineer
Software Engineer
Models abstract from a real life system that allows to answer questions about the systems: only relevant aspect are incorporated; Suppress irrelevant details Nonlinear process: addition of new knowledge may invalidate old knowledge Capturing the context in which decisions were made and the rationale behind these decisions
Armin B. Cremers, Sascha Alda Organizational Requirements Engineering 8
Knowledge Acquisition
Rationale Management
Notation
Graphical or textual set of rules for representing a model Repeatable technique that specifies the steps for solving a specific problem Collection of methods for solving a class of problems. Specifies how and when each method should be used Instrument or automated systems to accomplish a method
Methods:
Methodologies:
Tools:
Complexity
The
application (problem) domain is difficult Complex technologies (programming languages) The development process is very difficult to manage Domains are complex that no single person can understand it Fixing a bug causes another bug
z
Change
Requirements
need to be updated when errors are discovered and when developers have a better understanding of the application Project constellation changes (staff turn-around) Technological changes (new standards, languages)
10
Modularization of the software life cycle Abstraction through modeling various aspects of a problem Decomposition of the system to be modeled
11
Expressed in Terms of
Structured by
Realized by
Implemented by
Verified by
?
class....?
Subsystems
Source Code
12
Test Cases
human being is able only able to perceive and to reason about 7 (+/- 2) things simultaneously. (the 7 +- 2 phenomena, Miller 1956)
13
System Model:
Object
Model: What is the structure of the system? What are the objects and how are they related? Functional model: What are the functions of the system? How is data flowing through the system?
Dynamic z
model: How does the system react to external events? How is the event flow in the system ?
Task Model:
PERT
Chart: What are the dependencies between the tasks? GANTT Chart: How can this be done within the time limit? Org Chart: What are the roles in the project or organization?
z
Issues Model:
What
are the open and closed issues? What constraints were posed by the client? What resolutions were made?
Armin B. Cremers, Sascha Alda Organizational Requirements Engineering 14
Functional Model
Dynamic Model
Issue Model
Armin B. Cremers, Sascha Alda Organizational Requirements Engineering
Task Models
16
Decomposition: Overview
z z
system is decomposed into modules Each module is a major processing step (function) in the application domain Modules can be decomposed into smaller modules
z
Object-oriented decomposition
The
system is decomposed into classes (objects) Each class is a major abstraction in the application domain Classes can be decomposed into smaller classes
Decomposition: Overview
z
Both views are important during software life-cycle Functional decomposition emphasizes the ordering of operations
Very
useful at requirements engineering stage and high level description of the system. Functions are spread over the system Hard to maintain / change
z
18
Read Input
Transform
Level 1 functions
Read Input
Transform
Produce Output
Level 2 functions
Load R10
Machine Instructions
19
20
21
moves around
Entrance
Windhole Diameter
MainEntrance Size
Size listen()
Ear
23
I/O Devices
CPU
Memory
Cache
ALU
Program Counter
24
Requirements Engineering is the first phase of the Software Lifecycle Production of a specification from informal ideas Goal: Requirements Specification
System requirements specification: requirements describe Software and Hardware Software requirements specification: describe only Software
RE is about what the system should do (not how to do it) Key influencing factor to the development process
Failures made here result in high costs in later development phases System will meet the user/customer needs
25
Expressed in Terms of
Structured by
Realized by
Implemented by
Verified by
?
class....?
Subsystems
Source Code
26
Test Cases
Defining Requirements is a very challenging activity Requirements Elicitation needs Collaboration between different groups (stakeholder)
Developers Clients Users
(domain knowledge)
can we identify the purpose of a system? What is inside, what is outside the system? Very hard to decide!
z
fails to support users work: Missing or incorrect functionality Corrections are expensive
Armin B. Cremers, Sascha Alda Organizational Requirements Engineering 27
Requirements Analysis
Design basis for developers Technical specification of the system in terms understood by the developer (Problem Specification)
28
Initial Input
A Vision of a system to be created (vague) Different stakeholders with different interests Problem Statement Specification as complete as possible
Complete coverage of the problem (all relevant requirements are
Desired Output
captured)
Complete and exact definition of each requirement
30
The problem statement is developed by the client as a description of the problem addressed by the system A good problem statement describes
The current situation The functionality the new system should support The environment in which the system will be deployed Deliverables expected by the client Delivery dates A set of acceptance criteria
31
Current situation: The Problem to be solved Description of one or more scenarios Some initial requirements
Functional
Project Schedule
Major
milestones that involve interaction with the client including deadline for delivery of the system environment in which the delivered system has to perform a specified set of system tests for the system tests
Target environment
The
32
A change either in the application domain or in the solution domain has appeared
Change
A new function (business process) is introduced into the business Example: A function is provided for credit payment with fingerprint as
authorization
Change
A new solution (technology enabler) has appeared Example: New standards (implementation) for secure network
communication
Armin B. Cremers, Sascha Alda Organizational Requirements Engineering 33
Both models focus on the requirements from the users view of the system. Requirements specification uses natural language (derived from the problem statement) The analysis model uses formal (Z, pi-calculus) or semi-formal notation (for example, a graphical language like UML)
34
A condition or capability needed by a user to solve a problem or to achieve an objective Condition or capability that must be met by a system
Satisfies a contract, standard, specification
35
Functional requirements
Describe the interactions between the system and its environment independent from implementation User visible aspects of the system not directly related to functional behavior. Reliability, Performance, Availability, Supportability, Usability, Tailorability, Security
Idea: A Library Management System should be designed. Information on books, CDs, DVDs, Journals, Problem Statement etc. can be stored and retrieved Possible Requirements:
functional requirement Implementation requirement performance requirement
Searching by Title, Author, and/or ISDN should be possible User Interface should be web-based (accessible via WWW Browser) At least 20 transactions per seconds should be possible All services should be available within 10 minutes Users have no access to personal data of other users
Security requirement
Armin B. Cremers, Sascha Alda Organizational Requirements Engineering 37
availability requirement
System structure, implementation technology Development methodology Development environment Implementation language Reusability It is desirable that none of these above requirements are constrained by the client.
38
Many guidelines and standards exist that define the content and structure for good requirement specification document. Examples:
IEEE Recommended Practice for Software Requirements Specifications (IEEE Std-830) JPL Software Requirements Analysis Phase (JPL D-4005)
39
RSM is embraces the most common requirements standards into a single metamodel.
Model: an abstraction of a system that omits irrelevant details Metamodel: A model that explains a set of related models
z z
RSM was proposed by Gibbels and Pohl Hierarchical Conception: Using classification, generalization, aggregation, and attribution Can help structuring requirements according to a specific scheme
40
Client/Customer
Contract partner who orders the software product Decides on budget and system functionality
z
User
uses the system important for successful introduction (involvement during RE!)
z
User Advocate
speaks two languages: the one of the users, and the one of the developers should be
technical experienced (what can be built) domain expert
z
Project Manager
Programmer/Software/Requirements Engineer
Elicitation
Analysis/ Negotiation
Documentation
Validation
Analysis Model
Requirements Document
System specification
44
customer
Elicitation
project manager/ user advocate
software engineer
Negotiation
marketing expert
administrative officer
Armin B. Cremers, Sascha Alda
programmer
Organizational Requirements Engineering 45
customer
Elicitation
project manager
Negotiation
marketing expert
Using
scenario-based approaches interviews simulations and prototypes
administrative officer
programmer
Participants
system specialist
Elicitation
Make conflicts explicit (avoid emotional conflicts) Develop relevant alternatives (incl. underlying rationales) Make right decisions
Votings, Decision Support Systems etc.
project manager
software engineer
Negotiation
marketing expert
administrative officer
programmer
47
taking into account different perspectives representing intermediate as well as final results
system specialist
Elicitation
project manager
software engineer
Negotiation
marketing expert
z z
Formal languages can be used (Consistency) In intermediate status inconsistencies may occur and must be tolerated Participants
administrative officer
programmer
48
Verification
am I building the product right? Checking specification against formally defined constraints am I building the right product? Checking if the specification meets users needs Software engineer System specialist Customer
Elicitation
project manager
software engineer
Negotiation
marketing expert
Validation
administrative officer
programmer
Participants
49
Subject
Domain of the system Stakeholders = Subjects that are represented within system Example: Car Recommender System, Cars
Usage
Stakehoders = Users of the system Usage world can be outside the subject world Example: Customers, Car Dealer
System
Operating and Maintaining Example: Car dealers system manager
Development
Example: Developers, Architects, User Representative etc.
50
4 Worlds: Dependencies
Impact privacy ownerships
Subject World
System World
Usage World
Development World
Armin B. Cremers, Sascha Alda Organizational Requirements Engineering 51
Specification Developing as complete as possible requirements specification Include cost schedule Representation Provide integrated representation formalisms of all aspects
needed
z
Pohl et al.
Transformations between them Agreement Accomplish common agreement on the final specification
52
Negotiations Rationales
z
Be traceable
Pohl et al.
Forward traceability (problem, refinement, requirement) and Backward traceability (requirement origin)
Armin B. Cremers, Sascha Alda Organizational Requirements Engineering 53
54
Good Requirements
z
Complete
Necessary
Requirement should be needed by customer and user Requirements are to be realized in a software system (discussed earlier)
Correct
Realisable
Consistent
Traceable
There are no two requirements that can not be reached in one single system Requirements can be used to generate tests on the final software (or sinlge modules) Requirements are to be understood by all stakeholders
Armin B. Cremers, Sascha Alda
Well-Defined
Checkable
Requirement can only be understood in one single way Leaves no space for interpretation
Comprehensible
55
Modeling with UML Software Development Process Models Requirements Elicitation Requirements Analysis Requirements Verification Requirements Management Methods for Requirements Engineering Viewpoint-oriented Requirements Methods Non-functional Requirements Interactive Systems Groupware Systems Practitioners talks (tba)
Armin B. Cremers, Sascha Alda Organizational Requirements Engineering 56
Conclusions
z
Requirements Engineering is one of the early phases of software engineering process Iterative process Interaction between
z z
z z
57
References
z
58