Top Banner
Software Requirements Requirements Overview Use Cases Software Requirements Spec SRS Documentation Principles Stuart Faulk
68

Software Requirements

Feb 25, 2016

Download

Documents

_vala_

Software Requirements. Requirements Overview Use Cases Software Requirements Spec SRS Documentation Principles Stuart Faulk. Documentation Principles. Documentation Problems. Documentation regarded as a “necessary evil” Written only because it’s required, as an afterthought - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Software Requirements

Software Requirements

Requirements OverviewUse Cases

Software Requirements Spec SRSDocumentation Principles

Stuart Faulk

Page 2: Software Requirements

Documentation Principles

Page 3: Software Requirements

Documentation ProblemsDocumentation regarded as a “necessary evil”– Written only because it’s required, as an afterthought– Do not expect it to be useful– A self-fulfilling prophecy

Result of spending little effort– Poor organization (e.g., stream of consciousness) – cannot find

needed information– Boring prose – difficult to read, maintain– Not user friendly – developer’s perspective

Upshot: vicious cycle – difficult to use documents, don’t get used, not worth maintaining, go out of date, become useless

Page 4: Software Requirements

Documentation Principles Write specifications for the document– Easiest way to ensure agreement on:

Intended audience(s)Purpose(s) of the documentDocument organization or design.

– Keep design simple and reusableAvoid starting another project in specification design…but, do enough to capture consensus and resolve dissention

Characterize and formulate questions to be answered before starting to answer them– Avoids adding extraneous material– Avoids answering only the easy questions

Page 5: Software Requirements

Documentation Principles (2)Design the document applying Separation of Concerns– Principle of Separation of Concerns: distinct concerns (i.e.,

relatively independent issues) belong in distinct (separate) parts of the document

– Goal is to divide the document into distinct and relatively independent parts

Readability: users can read and understand one section of the document without having to read or reference many others.Modifiability: relative independence of the parts means that a changes tend to be confined to one part of the documentReusability: parts that form a distinct whole (i.e. not dependent on other parts) are easier to reuse.

Page 6: Software Requirements

Documentation Principles (3)Write once - read many times– Remember that the specification will be used

many times but only written once (more or less)

– Best ROI when effort is spent in writing to make it easy to read!

Formal vs. informal notation– Informal (natural language): for introduction,

motivation, gaining an overview, or review– Formal (mathematics): for binding precise

information, ease of reference, ease of checking correctness.

Page 7: Software Requirements

AssignmentProject– Set up meeting times– Prepare walkthrough of your projects

Make an outline of topicsDescribe development approachDescribe progress against milestones

– Meet on Wednesday (30 min. or so)

Page 8: Software Requirements

Software Requirements

Page 9: Software Requirements

Overview

What is a “requirement?”What do we need to accomplish in the requirements phase?– Who is the audience for the SRS?– What do they use it for?

What’s difficult about what we’re trying to do?– Essential difficulties– Accidental difficulties

What goes in an SRS?What properties do we need in an SRS to do the job well?What is the role of formal methods?

Page 10: Software Requirements

Fit in Development CycleCustomerValueAnalysis

CompanyStrategicGoals

Business Goals Hardware Software Marketing other Product Requirements

Economic Evaluation Development Strategy Marketing Strategy Prioritization Software

Requirements Capabilities Qualities Reusability System

Architecture Tradeoffs of quality goals

System Implementation

Delivered System

StrategicPlan

BRDBusinessRequirementsDefinition SRS

SoftwareRequirementsDefinition

ArchitectureDesignDocuments

Traceability

Page 11: Software Requirements

What is a “software requirement?”

A description of something the software must do or a property it must haveAnything the customer says it is!

Page 12: Software Requirements

Do we Really Need Requirements?

Do we always need a requirements specification?Focus large, complex systems– Multi-person: many developers, many stakeholders– Multi-version: intentional and unintentional evolution

Qualitatively distinct from small developments– Multi-person introduces need for organizational functions

(management, accounting, marketing), policies, oversight, etc.– More stakeholders and more kinds of stakeholders

Quantitatively distinct from small developments– e.g., complexity of communication rises exponentially– Techniques that work in the small fail utterly (e.g., word of mouth)

Rule of thumb: project starts to be “large” when group developing a single work product can’t fit around a table.

Page 13: Software Requirements

StakeholdersFor “large” developments, many potential stakeholdersCustomers: the requirements typically document what should be delivered and my provide the contractual basis for the developmentManagers: provides a basis for scheduling and a yardstick for measuring progress Software Designers: provides the “design-to” specificationCoders: defines the range of acceptable implementations and is the final authority on the outputs that must be producedQuality Assurance: basis for validation, test planning, and verificationAlso: potentially Marketing, regulatory agencies, etc.

Page 14: Software Requirements

Requirements Phase Goals

What are the goals of the requirements phase?Standard definition: “Establish and specify precisely what the software must do without describing how to do it.”Establish what to build be for starting to build it.– Make the “what decisions” explicitly before starting design

… not implicitly during design.– Make sure you build the system that’s actually wanted/needed.– Allow the users a chance to comment before it’s built.

Specify in terms of an organized reference document - the Software Requirements Specification (SRS)– Communicate the results of analysis– Provide a baseline reference document for developers and QA

Page 15: Software Requirements

Requirements GoalsWhy the emphasis on “what not how”?

– Seek to describe the problem to be solved not the solution to ensure real problem is solved

– Avoid over-constraining the design or implementation

– Solutions are typically more complex, harder to understand, harder to change

Page 16: Software Requirements

Parts of the Requirements Phase

Problem Analysis– The (“establish” part) also called “problem understanding,

requirements exploration, etc– Goal is to understand precisely what problem is to be solved– Includes: Identify exact system purpose, who will use it, the

constraints on acceptable solutions, and possible tradeoffs among conflicting constraints.

Requirements Specification– Goal is to develop a technical specification - the Software

Requirements Specification (SRS)– SRS specifies exactly what is to be built, captures results of

problem analysis, and characterizes the set of acceptable solutions to the problem.

Page 17: Software Requirements

Two Kinds of Software RequirementsDiscussed last class periodConcept of Operations: documents user needs and customer expectations– Link to organizational goals– Stated in terms the the users’ / customer’s can understand

Technical Specifications: a concise and unambiguous statement of technical parameters for a system that will satisfy the operational requirements– Stated in the developers’ terminology– Covers issues such as performance, interfaces, safety, security,

and reliability

Page 18: Software Requirements

For Your ProjectApply Use Cases (scenarios) to describe the system’s mission from the user’s point of view– Answers the questions, “What is the system for?” and “How will

the user use it?”– Tells a story

For the “Functional Requirements” be as rigorous as possible– Use tables, bullets, or case-by-case behavior description– Purpose is to answer questions about the requirements quickly

and preciselyAnswers, “What should the system output in this circumstance?”Reference, not a narrative, does not “tell a story”

Page 19: Software Requirements

From Example SRS/SDS/Plan

SOFTWARE REQUIREMENT SPECIFICATION ................................................................ 1

PURPOSE OF THE DOCUMENT................................................................................................. 1

PROBLEM STATEMENT ............................................................................................................ 1

PROPOSED SOLUTION............................................................................................................... 1

USER CHARACTERISTICS......................................................................................................... 2

USER SCENARIOS .............................................................................................…..................... 3

FUNCTIONAL AND NON-FUNCTIONAL REQUIREMENTS ................................................ 4

OTHER REQUIREMENTS: ......................................................................................................... 5

SRS or Technical ReferenceOperational Requirements(Concept of Operation)

Page 20: Software Requirements

Problem AnalysisUsing

Use Cases

Page 21: Software Requirements

Use Cases

Often done as a prelude to OO modelingA form of User Centered Analysis – capturing requirements from the user’s point of view– Goal of helping identify user needs– Solve the right problem

Best fit with operational requirements (mission statement, ConOps, BRD, etc.)

DevelopUse Cases

OOAnalysis

SetArchitecture

OODesign

Refineduse cases

Analysisobjectmodel

Softwarearchitecture

- find actors- find use cases- refine model

- select objects- assign responsibilities

Page 22: Software Requirements

TerminologyScenario – description of a sequence of interactions between a user and the system from the user’s POV– What does the user see or do– What does the system do in response

Use Case – a set of scenarios related by a common user goal– Goal – an objective the user is employing the

system to achieve– Scenarios represent different possible outcomes

(nominal case, error case, etc.)

Page 23: Software Requirements

UML Graphic Examplehttp://www.math-cs.gordon.edu/local/courses/cs211/ATMExample/

Page 24: Software Requirements

ATM Session Use Case (Informal)

A session is started when a customer inserts an ATM card into the card reader slot of the machine. The ATM pulls the card into the machine and reads it. (If the reader cannot read the card due to improper insertion or a damaged stripe, the card is ejected, an error screen is displayed, and the session is aborted.) The customer is asked to enter his/her PIN, and is then allowed to perform one or more transactions, choosing from a menu of possible types of transaction in each case. After each transaction, the customer is asked whether he/she would like to perform another. When the customer is through performing transactions, the card is ejected from the machine and the session ends. If a transaction is aborted due to too many invalid PIN entries, the session is also aborted, with the card being retained in the machine.

The customer may abort the session by pressing the Cancel key when entering a PIN or choosing a transaction type

http://www.math-cs.gordon.edu/local/courses/cs211/ATMExample/

Page 25: Software Requirements

1 Use Case: Manage Reports

1.1 Description This Use Case describes operation for Creating, Saving, Deleting, Printing, Exiting and Displaying reports.

1.2 Actors User Project database

1.3 Triggers Program Manager selects operations from menu.

1.4 Flow of events

1.4.1 Basic Flow 1. User chooses desired report by selecting “Report” -> “Open” from the menu bar 2. System displays report to screen 3. User selects desired report layout using Use Case Specify Report 4. Steps 2 and 3 are repeated until user is satisfied 5. User can Save or Print report using use case Save Report or Print Report 6. User Exits report by selecting “Exit” from the “File” menu

1.4.2 Alternative Flows

1.4.2.1 Create New Report 1. User selects “Create New Report” from file menu 2. …

1.4.2.2 Delete Report ……………..

1.4.3 Preconditions etc

A more systematic approach• Uses a standard template• Easier to make sure it is

complete

Page 26: Software Requirements

Use Case Contents (Generic)Use case identifierSummary – summary of use caseActors – roles enacting use caseScenarios– Basic scenario – the normal case– Alternative scenarios – other ways to reach goal– Exceptions – problem scenarios

Trigger – what causes the use case to startAssumptionsPreconditions – what must be true before the interaction can occur?Post conditions – what must be true after the interaction occurs

Page 27: Software Requirements

Use Case ContentsActors – identifies a role the user plays with respect to the system– Roles represent different classes of users

(use the system with different goals)– Actors carry out use cases– Primarily useful in identifying different use

cases “How would depositors use the system?”“How would a library patron use the system?”

Page 28: Software Requirements

Basic Scenario

Sequence when the user proceeds to his goal as system designers intend

1.Customer puts card into ATM card slot and enters PIN number. 2.Card verified and main menu presented. 3.Customer selects the transaction services menu and the

corresponding menu is displayed. 4.Customer selects ``automated payment service'' and is

prompted for the recipient's account number. 5.Customer enters recipient's account number. 6.Account verified and a menu with payment schedules is

presented.7.…….

Page 29: Software Requirements

Exceptions

What is the scenario if the customer enters the wrong PIN?

1. Customer puts card into ATM card slot and enters PIN number.

2. Incorrect PIN identified and error message “Incorrect PIN” and error menu displayed.

3. Customer selects the “try again” option 4.…….

Page 30: Software Requirements

Uses and LimitationsWhat are the limitations?– Expressive power?– Ambiguity– Completeness – Etc?

What can use cases help with?

Page 31: Software Requirements

SummaryUse cases can be an effective tool for identifying:– The actors, – Major analysis objects, – Interactions between actors and analysis objects, and– Collaborations among analysis objects

Use case analysis is a generally applicable technique that can be done independent of OO design and implementation– use cases reduce the accidental difficulties and help to control

the essential difficulties of software developmentGenerally inadequate for detailed technical requirements

Page 32: Software Requirements

Software Requirements

The Software Requirements Specification

(SRS)

Page 33: Software Requirements

“The hardest single part of building a software system is deciding precisely what to build. No other part of the conceptual work is as difficult as establishing the detailed technical requirements...No other part of the work so cripples the resulting system if done wrong. No other part is as difficult to rectify later.”

F.P. Brooks, “No Silver Bullet: Essence and Accidents of Software Engineering”

Page 34: Software Requirements

A Big ProblemRequirements issues appeared along with large software Ballistic Missile Defense system developers note: “In nearly every

software project that failed to meet performance and cost goals, requirements inadequacies played a major and expensive role in project failure” [Alford 79]

Survey of major Aerospace firms turns up requirements as the top-priority problem.Recent GAO report identifies requirements as a major problem source in two-thirds of systems examined

=> SE improvements haven’t kept pace with growth in project scale and complexity

Page 35: Software Requirements

Distribution and Effects of Requirements Errors

2 . The later that software errors are

detected, the more costly they are to correct.

1

2

5

10

20

50

100

design unit test,integration operation

requirements codedebug

acceptance initial test

Phase in which error detected

0

10

20

30

40

50

requirements and

functional analysis

design construction and system

development test acceptance testing and operation

Development Phase

1 . The majority of software errors

are introduced early in software development.

Page 36: Software Requirements

Requirements Goal

Standard definition:“Identify and specify precisely what the software must do without describing how to do it.”– Idiomatically: Specify “what” without specifying “how.”

What’s so hard about that?

Page 37: Software Requirements

What vs. How DilemmaUser Needs

Product Space (set of legal behaviors)

Actual product’s behavior

Architecture

Module specs.

Algorithms

Code

whathow

whathow

whathow

whathow

whathow

whathow

From Davis, Software Requirements

Page 38: Software Requirements

What vs. How (2)One man’s “what” is another’s “how”Typically mixed together– “If the system cannot complete the transaction within 1 second, the

data base must be rolled back to it’s initial state and the customer notified”

– “Update data associated with each aircraft being tracked by the low aperture radar must be contained in distinct packets on the primary data bus.”

Most systems contain more than one problem space (e.g., user interface requirements vs. accounting transaction requirements).Upshot: Must agree on what constitutes the problem space and what constitutes the solution space (before the discussion even makes sense)– Requirements analysis and specification then belong in the problem

space– Future issues: Does your approach help obtain and maintain this

distinction?

Page 39: Software Requirements

Overall Goals of RequirementsOnly three goals (given the large development context)– 1) Understand precisely what is required of the

software.– 2) Communicate that understanding to all of the

parties involved in the development (stakeholders)– 3) Control production to ensure the final system

satisfies the requirementsProblems in requirements result from the failure to adequately accomplish one of these goalsWhat makes these goals difficult to accomplish?

Page 40: Software Requirements

Essential vs. Accidental

Thesis: Meeting the requirements phase goals is

essentially difficult - but not as difficult as we make it!

Essential difficulties - part of the essence of the problemAccidental difficulties - difficulties introduced or added by the way we do things

*(not “essential” as in “needed” nor “accidental” as in “unintended”)

Page 41: Software Requirements

Essential DifficultiesComprehension (understanding)– People don’t (really) know what they want (…

until they see it)– Superficial grasp is insufficient for expressing

requirements

Page 42: Software Requirements

Essential DifficultiesCommunication– People work (think) best with regular

structures, conceptual coherence, and visualization

– Software’s conceptual structures are complex, arbitrary, and difficult to visualize

– Requirements specification must do more than one job well

Specification serves many purposes (test-to, design-to, contractual, validation, etc.)Specification has many audiences with different viewpoints, languages, knowledge (customer, designer, tester, regulator, etc.)

Page 43: Software Requirements

Essential Difficulties Control (decideability, predictability, manageability)– Control => ability to plan the work, work to the

plan– Without experience, can’t predict which

requirements will cause problems– Requirements change all the time– Together make planning unreliable, cost and

schedule unpredictable

Page 44: Software Requirements

Essential DifficultiesInseparable Concerns– Separation of concerns - ability to divide a problem into distinct

and relatively independent parts– Many issues in requirements cannot be cleanly separated (I.e.,

decisions about one necessarily impact another)Need for stability (control) vs. comprehension (need to see it)Formality vs. understanding

– ImplicationsDifficult to apply “divide and conquer”

– Cannot achieve effective solutions considering problems in isolation

– Issue with many “academic” techniquesMust make tradeoffs

– Requires compromises where constraints conflict– Differing effects on different stakeholders imply negotiation

Page 45: Software Requirements

Accidental DifficultiesWritten as an afterthought: common practice to write requirements after the code is done (if at all)– Inevitably a specification of the code as written– Not planned, not managed, not reviewed or used– Designers and coders end up defining requirements

Confused in purpose– Authors fail to decide precisely what purposes the SRS will

serve and in what way it will serve them– Requirements end up mixed with other things (overview

material, marketing hype, implementation details, etc.)– Fails to do anything well

Cannot distinguish which parts are really requirementsUnclear what tradeoffs to make regarding issues like precision, formality, etc.

Page 46: Software Requirements

Accidental DifficultiesNot designed to be useful– Often little effort is expended on the SRS - and it shows

SRS is not expected to be useful - a self-fulfilling prophesyLittle effort expended in organizing, writing, checking, maintainingInherent difficulties doom haphazard approaches to failure

– Resulting document of limited usefulnessNot organized as a technical reference - difficult to look things upNo effective procedure for determining consistency or completenessDifficult to make changes, keep consistentDocument is difficult to use, quickly out of date

Lacking essential properties– For the SRS to serve its purposes effectively it must have certain

properties: Completeness,Consistency, Ease of change, Precision...

– Accidental difficulties lead to document that is redundant, inconsistent, unreadable, ambiguous, imprecise, inaccurate.

– Not useful, not used.

Page 47: Software Requirements

Role of a Disciplined ApproachMeaning of “disciplined”– Objectives are known in advance

What’s the document’s purpose?Who are in its audience?

– Product is well defined and designed to purpose– Process is defined, followed, tracked and managed

Disciplined approach will address the accidental difficultiesProvides a basis for attacking essential difficulties

Page 48: Software Requirements

Address Accidental DifficultiesWritten as an afterthought– Plan for and budget for the requirements phase and its products– Specification is carefully written, checked, and maintained

Confused in purpose– Document purpose is defined in advance (who will use it and what for)– Plan is developed around the objectives

Not designed to be useful– Specification document itself is designed to facilitate key activities

document users (e.g., answer specific questions quickly and easily)document producers (e.g., ability to check for properties like consistency)

– Designed to best satisfy its purpose given schedule and budget constraintsLacking essential properties– Properties are planned for then built in– Properties are verified by the best means possible (review, automated

checking, etc.)

Page 49: Software Requirements

Sommerville’s “Requirements”

1. The software must provide a means of representing and accessing external files created by other tools1. The user should be provided with facilities to define the type

of external files2. Each external file type may be represented as a specific

icon on the user’s display3. Facilities should be provided for the icon representing an

external file type to be defined by the user4. When a user selects an icon representing an external file,

the effect of that selection is to apply the tool associated with the type of the external file to the file represented by the selected icon

What is the system required to do if an external file type has two or more associated tools?Is the user allowed to associate a tool with a file type or does the system do this from some other source? Change the association?Does the system have to associate a specific icon with each file? What happens if the user associates the same icon with two different file types?

Page 50: Software Requirements

CIS 422:Developing a Good SRS

Page 51: Software Requirements

Contents of an SRS

What should go in a requirements document?Everything you need to know to design and write the code– No more, no less– Every statement should be valid for all acceptable products– If a product satisfies every statement, it should be

acceptable– Areas of incompleteness should be explicit

Includes non-behavioral attributes like– Ease of change or maintenance requirements– Safety constraints– Reusability constraints

Page 52: Software Requirements

Properties of a Good SRSDoes an SRS have a “design?” i.e., does it make sense to talk about designing an SRS as a distinct activity from designing the system?What would it mean to “design” the SRS?What properties should we design for?

Page 53: Software Requirements

Role of Correct RequirementsDEVELOPMENT PHASE

HIGH-ASSURANCEGOAL

ANALYSIS

CODING

SYSTEM INTEGRATION AND TESTING

DESIGN

REQUIREMENTSSPECIFICATION

TESTPLAN

Traceability

1. Get the right requirements2. Get the requirements right a. Application-Independent

Properties• Consistency• Completeness

b. Application-Dependent Properties

• Safety properties• Mission-critical properties

3. Verify the system against the requirements

a. Test coverageb. Traceabilityc. Statistically based testing

Page 54: Software Requirements

Desirable SRS Properties

Semantic Properties*

CompleteConsistentUnambiguousVerifiable Implementation independent

* Properties of the specification’s semantics (what it says) independently of how it’s said

Packaging Properties+

ModifiableReadable Organized for reference and reviewReusable

+ Properties arising from the way the specification is written (organization, formats, notations)

Page 55: Software Requirements

CompleteFormal vs. informal notions of completeness– Completeness of a model: everything mentioned is specified– Completeness of an SRS: captures all of the customer’s

requriements

Complete means:– The SRS defines the set of acceptable implementations– The SRS contains all the information needed to write the

software that is acceptable to the customer (and nothing more)– Any implementation that satisfies every statement in the

requirements is an acceptable product.

Page 56: Software Requirements

CompleteWhy is completeness hard to achieve?– Essential:

Comprehension (don’t know what we want until we see it)Mutability (target keeps moving)Visibility (difficult to measure)

– Accidental:No objective definitions of completenessContents of SRS not well definedNo guidelines for determining when the specification is done

Page 57: Software Requirements

ConsistentConsistent means: no two statements of requirements conflict Why difficult to achieve?– Accidental difficulty resulting from

specifications that are hard to read and review.

– Often there are poorly documented or understood relationships between requirements.

– Essential: changes inevitably introduce inconsistencies over time

Page 58: Software Requirements

UnambiguousUnambiguous means: there is only one possible interpretation of each requirement.Why needed?– Everyone agrees on what is to be built and builds what is

intended– All parts of the development a built with common assumptions

Why difficult to achieve– Essential Dilemma: all natural languages are ambiguous

Formal methods are impractical for complex systemsFormal methods are essential for precision, unambiguousness

– Need for practical formal methods

Page 59: Software Requirements

VerifiableVerifiable means: it is possible to determine unambiguously whether a given implementation satisfies the requirement (also called “testable”).– “The system shall be easy to use.”

vs.– “Every menu operation shall be accessible with no more than

three mouse clicks.”

Why needed?– Ensures there is an objective measure for each requirement.– Allows QA to determine whether or not a given implementation

satisfies the requirements (and which ones it satisfies).

Page 60: Software Requirements

Packaging Properties

Page 61: Software Requirements

ModifiableModifiable means: the specification is relatively easy to change for the set of expected changesWhy needed? Change disrupts everything.Principles– Change is inevitable - plan on it, plan for it!– Process and products must support ease of

change

Page 62: Software Requirements

Readable

“Readable” means;– The intended audience can readily understand the information in

the specification– The intended audience can readily use the information for its

intended purpose– (e.g., the customer can determine if the system will solve his

problem)Why needed?– An SRS typically has several purposes and audiences who must

understand specification– Specification that’s hard to read won’t be properly reviewed or

ultimately usedWhy difficult to achieve?– Conflicts with need for precision, unambiguousness, testability– Difficult to find common languages or points of view.

Page 63: Software Requirements

Organized for Reference and Review

We assume that the SRS is first and foremost a technical specification– i.e., it is a reference manual for the expected behavior.– It is not: an introduction, an explanation of intended use, a

justification of the projectOrganized means: One can use the specification answer specific technical questions quickly and easily.– It is clear where each piece of information belongs– It is clear where information is incomplete or missing.

Why difficult? – Requires forethought– Requires up-front effort, time, and money– Essential problem of many audiences and purposes

Principles– One must decide the primary audience and purpose in advance

(i.e., what kinds of questions the document will be designed to answer easily).

Page 64: Software Requirements

Role of Formal Methods

Page 65: Software Requirements

The Formal Methods Dilemma

Standard approaches (e.g., prose specs) lack sufficient rigor to meet high-assurance goalsFormal requirements methods have desired technical virtues viewed as impractical for large, complex systems– Capability for unambiguous specification, precision,

testability, and analyzability– Industry concern for practicality

Concern for difficulty to write/read, required expertise, ability to scaleConcern for real-world issues of fuzzy or changing requirementsConcern for fit with industrial development contextAdds up to perceived cost/schedule risk

Implication: Need for Practical Formal Methods

Page 66: Software Requirements

The Good NewsA little rigor in the right places can help a lot– Adding formality is not an all-or-none decision– Use it where it matters most to start (critical

parts, potentially ambiguous parts)– Often easier, less time consuming than trying

to say the same thing in proseE.g. in describing conditions or cases– Use predicates (i.e., basic Boolean

expressions)– Use tables where possible

NASA example

Page 67: Software Requirements

A Real Requirement(2.16.3.f) While acting as the bus controller, the C&C MDM CSCI shall set thee,c,w indicator identified in Table 3.2.16-II for the corresponding RT to “failed”and set the failure statue to “failed” for all RT’s on the bus upon detection oftransaction errors of selected messages to RT’s whose 1553 FDIR is not inhibitedin the two consecutive processing frames within 100 millisec of detection of thesecond transaction error if; a backup BC is available, the BC has been switched inthe last 20 sec., the SPD card reset capability is inhibited, or the SPD card has beenreset in the last 10 major (10-second) frames, and either:

1. The transaction errors are from multiple RT’s, the current channel has been reset within the last major frame, or2. The transaction errors are form multiple RT’s, the bus channel's reset capability is inhibited,and the current channel has not bee reset within the last major frame

Example of a NASA requirement for the Command and Control bus for the Space Stationspecifying exactly when all remote terminals on the bus should be switched to their backups

Q: Should the remote terminals be switched to their backups if the C&C MDM is acting as busController, there are transaction errors in two consecutive frames, errors are on selected messages,the RT’s 1553 FDIR is not inhibited, a backup BC is available, the BC has been switched on in the Last 20 seconds, transaction errors are from multiple RT’s and the current channel has been reset inthe last major frame?

Page 68: Software Requirements

Is a “Good” SRS Achievable?A qualified “yes”– Mutual satisfaction of some goals is difficult– Want completeness but users don’t know what they want

and requirements change.– Many audiences and purposes, only one possible

organization and language– Want formality (precision, verifiability, analyzability) but need

readability.Tradeoffs and compromises are inevitable– Usefulness of establishing document purpose in advance.– Make them by choice not chance!

It isn’t easy– Effort, expertise, technique

….but it is necessary!