Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Requirements Engineering: Organizing Software Requirements in a Document - Prof. Simon Rea, Study notes of Software Engineering

An overview of requirements engineering, a systematic process for developing software requirements. It covers the tasks of analysis and modeling, the classes of requirements (functional and non-functional), and the importance of precise and complete requirements. It also discusses the challenges of requirements imprecision and the importance of requirements validation.

Typology: Study notes

Pre 2010

Uploaded on 07/30/2009

koofers-user-rqj
koofers-user-rqj ๐Ÿ‡บ๐Ÿ‡ธ

10 documents

1 / 36

Toggle sidebar

Related documents


Partial preview of the text

Download Requirements Engineering: Organizing Software Requirements in a Document - Prof. Simon Rea and more Study notes Software Engineering in PDF only on Docsity! cmsc435 - 1 Software Requirements cmsc435 - 2 Objectives โ— To introduce the concepts of user and system requirements โ— To describe functional and non-functional requirements โ— To explain how software requirements may be organized in a requirements document cmsc435 - 3 Requirements engineering โ— Requirements engineering is a systematic way of developing requirements through an iterative process of analyzing a problem, documenting the resulting observations, and checking the accuracy of the understanding gained. โ— Requirements engineering is comprised of two major tasks: analysis and modeling โ— The requirements themselves are the descriptions of the system services and constraints that are generated during the requirements engineering process. cmsc435 - 4 What is a requirement? โ— A software requirement is a condition or capability needed by a user to solve a problem or achieve an objective and that must be met or possessed by a system or system component to satisfy a contract, standard, specification, or other formally imposed document. โ— Two classes of requirements:  Functional requirements โ€“ What the program does  Non-functional requirements โ€“ Attributes about the program cmsc435 - 9 Functional and non-functional requirements โ— Functional requirements  Statements of services the system should provide, how the system should react to particular inputs and how the system should behave in particular situations. โ— Non-functional requirements  constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, security requirements, performance, etc. โ— Domain requirements  Requirements that come from the application domain of the system and that reflect characteristics of that domain. cmsc435 - 10 Functional requirements โ— Describe functionality or system services. โ— Depend on the type of software, expected users and the type of system where the software is used. โ— Functional user requirements may be high- level statements of what the system should do but functional system requirements should describe the system services in detail. cmsc435 - 11 Examples of functional requirements โ— The user shall be able to search either all of the initial set of databases or select a subset from it. โ— The system shall provide appropriate viewers for the user to read documents in the document store. โ— Every order shall be allocated a unique identifier (ORDER_ID) which the user shall be able to copy to the accountโ€™s permanent storage area. โ— Are these good requirements? โ€œshallโ€ usually means a mandatory requirement cmsc435 - 12 Requirements imprecision โ— Problems arise when requirements are not precisely stated. โ— Ambiguous requirements may be interpreted in different ways by developers and users. โ— Consider the term โ€œappropriate viewersโ€  User intention - special purpose viewer for each different document type;  Developer interpretation - Provide a text viewer that shows the contents of the document. โ— Natural language (English) poor for expressing precise statements cmsc435 - 13 Requirements completeness and consistency โ— In principle, requirements should be both complete and consistent. โ— Complete  They include descriptions of all facilities required. โ€ข What is assumed as domain knowledge as a requirement? โ€ข For example, does a requirement to list names in alphabetical order require a definition of โ€œalphabetical orderโ€? โ— Consistent  There is no conflicts or contradictions in the descriptions of the system facilities. โ— In practice, it is impossible to produce a complete and consistent requirements document. cmsc435 - 14 Non-functional requirements โ— These define system properties and constraints e.g. reliability, safety, security, performance, and storage requirements. Constraints are I/O device capability, system representations, etc. โ— Process requirements may also be specified mandating a particular CASE system, programming language or development method. โ— Non-functional requirements may be more critical than functional requirements. If these are not met, the system may be useless. cmsc435 - 19 Examples โ— A system goal  The system shall be responsive to any user input. โ— A verifiable non-functional requirement  The system shall respond to any user input within 0.01 seconds. This is now a measurable and testable requirement cmsc435 - 20 Requirements measures Property Measure Speed Processed transactions/second User/Event response time Screen refresh time Size M Bytes Number of ROM chips Ease of use Training time Number of help frames Reliability Mean time to failure Probability of unavailability Rate of failure occurrence Availability Robustness Time to restart after failure Percentage of events causing failure Probability of data corruption on failure Portability Percentage of target dependent statements Number of target systems cmsc435 - 21 Requirements interaction โ— Constraints are a type of non-functional requirement that is imposed by the client that restricts the implementation of the system or the development process. โ— Conflicts between different non-functional requirements are common in complex systems.  E.g.,Spacecraft system โ€ข To minimize weight, the number of separate chips in the system should be minimized. โ€ข To minimize power consumption, lower power (i.e., slower) chips should be used. โ€ข However, using low power chips may mean that more chips have to be used. Which is the most critical requirement? cmsc435 - 22 Domain requirements โ— Derived from the application domain and describe system characteristics and features that reflect the domain. โ— Domain requirements be new functional requirements, constraints on existing requirements or define specific computations. โ— If domain requirements are not satisfied, the system may be unworkable. cmsc435 - 23 Domain requirements problems โ— Understandability  Requirements are expressed in the language of the application domain;  This is often not understood by software engineers developing the system.  On the other hand, users rarely understand the requirements jargon of the software engineer. โ— Implicitness  Domain specialists understand the area so well that they do not think of making the domain requirements explicit. cmsc435 - 24 User requirements โ— Should describe functional and non-functional requirements in such a way that they are understandable by system users who donโ€™t have detailed technical knowledge. โ— โ€œUser requirements are defined using natural language, tables and diagrams as these can be understood by all users.โ€ -- Yuk! cmsc435 - 29 The requirements engineering process Feasibility study Requir ements elicitation and analysis Requir ements specification Requir ements validation Feasibility repor t System models User and system requirements Requir ements document cmsc435 - 30 Feasibility studies โ— A feasibility study decides whether or not the proposed system is worthwhile. โ— A short focused study that checks  If the system contributes to organizational objectives;  If the system can be engineered using current technology and within budget;  If the system can be integrated with other systems that are used. cmsc435 - 31 Feasibility study implementation โ— Based on information assessment (what is required), information collection and report writing. โ— Questions for people in the organization  What if the system wasnโ€™t implemented?  What are current process problems?  How will the proposed system help?  What will be the integration problems?  Is new technology needed? What skills?  What facilities must be supported by the proposed system? โ— All involved in the outcome of the system are called Stakeholders (e.g., users, developers, management, contracting organization, funding source). cmsc435 - 32 Methods for requirements elicitation 1. Interviews 2. Observation 3. Examine artifacts (e.g., prior system documents) 4. Joint Application Design sessions 5. Software tools (e.g., groupware) 6. Questionnaires 7. Prototypes (On paper, automated mockups) 8. Customer focus groups 9. Customer part of development team cmsc435 - 33 Interviewing โ— Processes:  Interviewing: In formal or informal interviewing, the RE team puts questions to stakeholders about the system that they use and the system to be developed.  Scenarios are real-life examples of how a system can be used. They should include: โ€ข A description of the starting situation; โ€ข A description of the normal flow of events; โ€ข A description of what can go wrong; โ€ข Information about other concurrent activities; โ€ข A description of the state when the scenario finishes. cmsc435 - 34 Use cases โ— Use-cases are a scenario based technique in the UML which identify the actors in an interaction and which describe the interaction itself. โ— A set of use cases should describe all possible interactions with the system. โ— Sequence diagrams may be used to add detail to use-cases by showing the sequence of event processing in the system. cmsc435 - 39 Focused ethnography โ— Combine ethnography with prototyping โ— Prototype development results in unanswered questions which focus the ethnographic analysis. โ— The problem with ethnography is that it studies existing practices which may have some historical basis which is no longer relevant. โ— Requirements that are derived from the way that people actually work rather than the way in which process definitions suggest that they ought to work. โ— Requirements that are derived from cooperation and awareness of other peopleโ€™s activities. cmsc435 - 40 Social and organizational factors โ— Software systems are used in a social and organizational context. This can influence or even dominate the system requirements. โ— Social and organizational factors are not a single viewpoint but are influences on all viewpoints. โ— Good analysts must be sensitive to these factors but currently no systematic way to tackle their analysis. cmsc435 - 41 Ten Problems of Requirements Elicitation 1. The boundary of the system is ill-defined. 2. Unnecessary design information may be given. 3. Stakeholders have incomplete understanding of their needs. 4. Stakeholders have poor understanding of computer capabilities and limitations. 5. Software engineers have poor knowledge of the problem domain. 6. Stakeholder and software engineers speak different languages. 7. โ€œObviousโ€ information is omitted. 8. Different stakeholders have conflicting views. 9. Requirements are vague and untestable, such as โ€œuser friendlyโ€ and โ€œrobustโ€. 10. Requirements are volatile and change over time. cmsc435 - 42 Requirements and design โ— In principle, requirements should state what the system should do and the design should describe how it does this. โ— But, in practice, requirements and design are inseparable  A system architecture may be designed to structure the requirements;  The system may inter-operate with other systems that generate design requirements;  The use of a specific design may be a domain requirement. cmsc435 - 43 Alternatives to NL specification Notation Description Structured natural language This approach depends on defining standard forms or templates to express the requirements specification. Design description languages This approach uses a language like a programming language but with more abstract features to specify the requirements by defining an operational model of the system. This approach is not now widely used although it can be useful for interface specifications. Graphical notations A graphical language, supplemented by text annotations is used to define the functional requirements for the system. An early example of such a graphical language was SADT. Now, use-case descriptions and sequence diagrams are commonly used . Mathematical specifications These are notations based on mathematical concepts such as finite-state machines or sets. These unambiguous specifications reduce the arguments between customer and contractor about system functionality. However, most customers donโ€™t understand formal specifications and are reluctant to accept it as a system contract. cmsc435 - 44 Structured language specifications โ— The freedom of the requirements writer is limited by a predefined template for requirements. โ— All requirements are written in a standard way. โ— The terminology used in the description may be limited. โ— The advantage is that the most of the expressiveness of natural language is maintained but a degree of uniformity is imposed on the specification. cmsc435 - 49 Tabular specification โ— Used to supplement natural language. โ— Particularly useful when you have to define a number of possible alternative courses of action. Condition Action Sugar level falling (r2 < r1) CompDose = 0 Sugar level stable (r2 = r1) CompDose = 0 Sugar level increasing and rate of increase decreasing ((r2-r1)<(r1-r0)) CompDose = 0 Sugar level increasing and rate of increase stable or increasing. ((r2-r1)  (r1-r0)) CompDose = round ((r2-r1)/4) If rounded result = 0 then CompDose = MinimumDose cmsc435 - 50 Decision tables Rule 1 Rule 2 Rule 3 Rule 4 Rule 5 High standardized exam scores T F F F F High grades - T F F F Outside activities - - T F F Good recommendations - - - T F Send rejection letter X X X Send admission forms X X Triggers Action Table consists of True, False, and Donโ€™t Care conditions. Find the first rule whose trigger is true and apply that action. cmsc435 - 51 State machines โ— Functional descriptions and transition diagrams f(Si, Cj) = Sk Current state Input Next state S1 0 S2 S1 1 S1 S2 0 S2 S2 1 S1 S3 0 S1 S3 1 S3 cmsc435 - 52 Event tables Mode Event 1 Event 2 Event 3 Event 4 Graphics Action 1 Action 8 0 X Architecture X Action 2 followed by Action 3 Actions 5 and 6 in parallel 0 Native 0 Action 4 Actions 1, 2 and 3 Action 7 โ€ข Petri nets cmsc435 - 53 Graphical models โ— Graphical models are most useful when you need to show how state changes or where you need to describe a sequence of actions. โ— Example: Sequence diagrams:  These show the sequence of events that take place during some user interaction with a system.  You read them from top to bottom to see the order of the actions that take place.  Cash withdrawal from an ATM โ€ข Validate card; โ€ข Handle request; โ€ข Complete transaction. cmsc435 - 54 Sequence diagram of ATM withdrawal cmsc435 - 59 Requirements validation โ— Concerned with demonstrating that the requirements define the system that the customer really wants. โ— Requirements error costs are high so validation is very important  Fixing a requirements error after delivery may cost up to 100 times the cost of fixing an implementation error. Note: This factor of 100 was once stated by Barry Boehm and has been assumed to be absolutely true, but never really validated. cmsc435 - 60 Requirements checking โ— Validity. Does the system provide the functions which best support the customerโ€™s needs?  Consistency. Are there any requirements conflicts?  Traceability. Is the origin of the requirement clearly stated?  Verifiability. Is the requirement realistically testable? โ— Completeness. Are all functions required by the customer included?  Comprehensibility. Is the requirement properly understood? โ— Realism. Can the requirements be implemented given available budget and technology โ— Adaptability. Can the requirement be changed without a large impact on other requirements? cmsc435 - 61 Requirements validation techniques โ— Requirements reviews  Systematic manual analysis of the requirements. โ— Prototyping  Using an executable model of the system to check requirements. Test-case generation  Developing tests for requirements to check testability. cmsc435 - 62 Requirements should be: โ— Understandable โ— Non-prescriptive โ— Correct โ— Complete โ— Concise โ— Consistent language โ— Unambiguous and testable โ— Traceable โ— Feasible โ— Ranked in importance and stability (or volatility) cmsc435 - 63 Requirements review โ— Regular reviews should be held while the requirements definition is being formulated. โ— Both client and contractor staff should be involved in reviews. โ— Reviews may be formal (with completed documents) or informal. Good communications between developers, customers and users can resolve problems at an early stage. cmsc435 - 64 Requirements review -2 โ— Review goals and objections of system. โ— Compare requirements with goals and objectives. โ— Describe operational environment. โ— Examine  interfaces  information flow  functions โ— Check for omissions, incompleteness, inconsistency. โ— Document risk. โ— Discuss how system will be tested. cmsc435 - 69 Requirements change management โ— Should apply to all proposed changes to the requirements. โ— Principal stages  Problem analysis. Discuss requirements problem and propose change;  Change analysis and costing. Assess effects of change on other requirements;  Change implementation. Modify requirements document and other documents to reflect change. cmsc435 - 70 Key points โ— Requirements set out what the system should do and define constraints on its operation and implementation. โ— Functional requirements set out services the system should provide. โ— Non-functional requirements constrain the system being developed or the development process. โ— User requirements are high-level statements of what the system should do. User requirements should be written using natural language, tables and diagrams. โ— System requirements are intended to communicate the functions that the system should provide. โ— Formal notation better than English to express requirements; pick notation understandable by developers and users. โ— A software requirements document is an agreed statement of the system requirements. cmsc435 - 71 Key points โ— The requirements engineering process includes a feasibility study, requirements elicitation and analysis, requirements specification and requirements management. โ— Requirements elicitation and analysis is iterative involving domain understanding, requirements collection, classification, structuring, prioritisation and validation. โ— Systems have multiple stakeholders with different requirements. โ— Social and organization factors influence system requirements. โ— Requirements validation is concerned with checks for validity, consistency, completeness, realism and verifiability. โ— Business changes inevitably lead to changing requirements. โ— Requirements management includes planning and change management.
Docsity logo



Copyright ยฉ 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved