Professional Documents
Culture Documents
Course outline
What is a requirement? Where do requirements come from? How are requirements recorded? Process of collecting requirements Quiz
Requirements Elicitation Requirements Analysis Requirements Specification Requirements Validation Requirements Management & Traceability Quiz
Objectives
What is a requirement? Where do requirements come from? How are requirements recorded? Process of collecting requirements
What is a requirement?
In engineering, a requirement is a singular documented need of what a particular product or service should be or do.
Business objectives
Requirements
Marketing requirements Working in user environment
Workshops
Requirements
Questionnaires Prototypes
Innovation work
Studies
Designing and building an elegant computer program that solves the wrong problem serves no ones needs.
Cost of finding bug is cheaper when compared with the same bug is found in the later stage
Use cases Documents Data dictionary State diagrams Scenarios System diagrams
Objectives
Requirements Elicitation Requirements Analysis Requirements Specification Requirements Validation Requirements Management & Traceability Quiz
View
Art of listening to Stakeholders Art of sending appropriate stimuli to stakeholders so that the responses are worth listening to The art of establishing an environment in which stakeholders are willing and able to describe their problems and needs
Observations
Elicitation is the input to all system development Elicitation technique varies greatly across projects No one technique is universal Completeness can never be assured Lots of human nature and communication problems
Difficulties of elicitation
Requirements elicitation is a complex and imprecise process that varies greatly for different projects. Many technical problems are related to this process:
Scope problems Problems related to the nature of computer science Problems related to the process itself Articulation problems Communication barriers Knowledge and cognitive limitations Human behavior issues
Requirements - Capture
map needs more work Map out business activities scenarios agreed Build process flows for key activities workflow needs more work
Review business map with stakeholders map agreed Build scenarios for key activities where IT required scenarios need more work Review process flows with stakeholders workflow agreed Identify Use Cases Review scenarios with stakeholders Use cases need more work
Interviewing and questionnaires Requirements workshop Brainstorming and idea reduction Storyboards Use cases Role playing Prototyping
Simple direct technique : Personal substitute for questionnaire. Pre Requisites for Interviewing:
Establish Customer or User Profile Understanding the User Environment
Step 1:
Context-free questions can help achieve bias-free interviews Goal is to prevent prejudicing the users response to the questions
Step 2:
Then, it may be appropriate to search for undiscovered requirements by exploring solutions. Convergence on some common needs will initiate a requirements repository for use during the project.
Step 3:
Step 4: Showtime
Assessing the Problem Recap the Understanding Analysts Inputs on Customers Problems Assessing Your Solution (if applicable)
Pyramid
Diamond-Shaped
Start with closed questions specific
Expands to
general
Funnel
The requirements workshop is perhaps the most powerful technique for eliciting requirements. It gathers all key stakeholders together for a short but intensely focused period. The use of an outside facilitator experienced in requirements management can ensure the success of the workshop. Brainstorming is the most important part of the workshop.
Establish professional and objective tone to the meeting. Start and stop the meeting on time. Establish and enforce the rules for the meeting. Introduce the goals and agenda for the meeting. Manage the meeting and keep the team on track. Facilitate a process of decision and consensus making, but avoid participating in the content. Make certain that all stakeholders participate and have their input heard. Control disruptive or unproductive behavior.
Workshop Agenda
Set an agenda before the workshop and publish it along with the other pre-workshop documentation. Balance is the key, try to stay on the agenda, but do not strictly obey it, especially if good discussion is going on. Order lunch in, and have a light working lunch.
Assess System Feasibility Be sensitive to organizational and political considerations Identify and consult system stakeholders Record requirements sources Use Business concerns to drive requirements elicitation Look for domain constraints
If lacking consideration of everyone who is likely to be affected by the introduction of the system, there is a great likelihood of missing some critical requirements. Identifying stakeholders and discussing the system with them makes people feel like they are part of the requirements elicitation process. In fact, it makes them a part of it.
If a system is to be useful, it must contribute to the key concerns of the business. If the concerns are identified and used as drivers of the requirements elicitation process, there will be higher confidence that the system will meet real organization needs. Making the business concerns explicit helps to focus and clarify these goals.
If requirements are collected from a single viewpoint, they are unlikely to meet other stakeholders requirements. Collecting requirements from multiple viewpoints is a useful way to prioritize requirements. Identified viewpoints can be used to help
organize requirements elicitation and organize the requirements specification, too.
Brainstorming
involves both idea generation and idea reduction Is the most creative, innovative ideas often result from combining, seemingly unrelated ideas
Rules:
Do not allow criticism or debate Let your imagination soar Generate as many ideas as possible Mutate and combine ideas Idea Reduction
Pruning ideas that are not worthy of further discussion Grouping of similar ideas into one super topic
The purpose of storyboarding is to elicit early Yes, But reactions. Storyboards can be positive, active, or inactive. Storyboards identify the players, explain what happens to them, and describes how it happens. Make the storyboard sketchy, easy to modify, and unshipable. Storyboard early and often on every project with new or innovative content.
The Use Case model describes the totality of the systems functional behavior.
Prototype the fuzzy requirements: those that, although known or implied, are
poorly defined and poorly understood
Rigorous modeling of everything is likely not feasible Prototyping everything is likely not feasible Match requirements/analysis techniques to needs and situations
Interface
Requirements Analysis
Analyse it:
Requirements Modeling
Requirements modeling is more than an intuitive way of figuring out the functional requirements of a system. It is the application of a process of proven techniques to produce useful and verifiable models. Use Case modeling, Data modeling and UML (Unified Modeling Language) are examples of Requirements Modeling methods.
The use case approach is an especially effective technique for deriving software requirements, analysis models, and test cases.
Use Case
A meaningful piece of system functionality Jakobson treats business processes as use cases of the business (a business is a system too) More than a simple transaction (e.g. enter customer address)
Example
An Actor
A Use Case
<<include>>
Change Invoice
<<extend>>
Chase Payment
Example
V a lid a te C u s to m e r
N o v a lid n u m b e r
R equest D e liv e ry D a te
d e liv e ry d a te n o t a c c e p ta b le
R e a d O rd e r D e ta ils T o C u s to m e r c u s to m e r a g re e s [ q u e ry fo r s a le s te a m ] T ra n s fe r C a ll
in c re a s e c re d it lim it re q u e s t
Projects cannot avoid the following fundamental facts of life: Differences in importance Limited project resources Long schedule Small RE budget
What is priority ?
For them, prioritizing requirements means categorizing raw potential requirements from the standpoint of importance into:
Essential requirements Useful capabilities Desirable capabilities
Mandatory nature of requirements Large number of requirements Limited resources Quality requirements Goals vs. requirements Changing priorities Incompatible priorities Stakeholder and developer collaboration Incompatible requirements Lack of trust Non-requirements Subjective prioritization Consequences of poor prioritization
Concerned with the structure, quality and verifiability of the requirements document. Results in one document with 2 parts or 2 separate documents:
System requirements definition document Software requirements specifications (SRS)
Also known as User Requirements document Also known as Concept of operations It must list the system requirements along with background information about the overall objectives for the system, its target environment & a statement of the constraints, assumptions & non-functional requirements
Establishes the basis for agreement between the customers and the developers Forces a rigorous assessment of requirements before design can begin Provides a realistic basis for estimating product costs, risks, and schedules Provides an informed basis for transferring a software product to new users Provides a basis for software standards
SRS must include a complete yet concise description of the entire external interface of the system with its environment, including other software, communication ports, hardware and human users. Should Includes 2 types of requirements
Functional/behavioral (define what the system does) Nonfunctional/non-behavioral (define the attributes of the system as it performs its job
Design
to help partition the documentation, different audiences, and potential lack of sound design principles Product assurance plans (e.g., verification and validation plans, test plans)
System Requirements
Minimum
The 'Minimum system requirements' must be satisfied for the software to be usable at all Computers with lower specifications than the minimum requirements may sometimes also run the software It is suggested, however, that the user will not have a representative experience of the software this way. Generally this set is regarded more of a rule than a guideline A system meeting this requirement will provide basic performance of a software application Recommended system requirements are often suggested by Software Vendors for optimal performance of a software Although not a necessity, this set of requirements is often sought after by power users who expect to gain a better experience of software usability Recommended System Requirements do not promise best possible performance of a software and are treated as more of a guideline than a rule Almost always a better system is available, or will be in future, to provide better performance. Also, exceeding by far these requirements does not guarantee to the user that everything will run with absolute smoothness and look its best More often than not, games are a bit disappointing in this respect, presenting issues that may or may not be corrected with future modifications.
Recommended
Hardware Requirements
Software Requirements deal with defining software resource requirements and prerequisites that need to be installed on a computer to provide optimal functioning of an application.
Platform APIs and Drivers Web browser Other requirements
Purpose of SRS
Defines what is to be provided Establishes when and how things are to be provided
Scope of SRS
Nature of the SRS Environment of the SRS Characteristics of good SRS Joint preparation of SRS SRS evolution Prototyping Embedding design in SRS Embedding Project requirements in the SRS
Benefits of SRS
to discover how to partition the system to identify which requirements should be allocated to which components maintain is good communication between system users and system developers. It is the requirements engineer who is the conduit for this communication to acquire / possess technical skills to have an ability to acquire an understanding of the application domain to develop the inter-personal skills to help build consensus between heterogeneous groups of stakeholders
: deliverables which provide basis for development : scheduling basis and is a basis for measurement of progress : specifications for design : provide acceptable implementations : enables modification and enhancement : for providing right look and feel, performance and behavior : basis for process compliance : basis for validation, test planning and verification
Characteristics of SRS
Structure of a SRS
Introduction
Purpose Document Conventions Intended Audience Reading Suggestions Product / Project Scope References Product Perspective Product Functions User Classes and Characteristics Operating Environment Design & Implementation Constraints Assumptions & Dependencies
Overall Description
Some Statistics
Objectives
SRS correctly describes the intended system behavior and characteristics Software requirements were correctly derived from system requirements or other origins Requirements are complete Requirements are of high quality All views of requirements are consistent Requirements provide an adequate basis to proceed with design, construction and testing
Approved version
Post-review Baseline
Techniques
Reviews
Informal Reviews Buddy Checks Walkthrough Formal Technical Review
Inspections
Highest leverage software quality technique Conducted before the baseline of requirements is developed Participants
Concerned with the process of examining the requirements document to ensure that it defines the right system:
Requirements Management
Requirements
An activity that spans the whole software lifecycle. It is fundamentally about change management and the maintenance of the requirements in a state that accurately mirrors the software to be, or that has been, built. sIt includes change management, requirements attributes and requirements tracing
Requirements Traceability
Traceability is
one of the essential activities of good requirements management. is used to ensure that the right products are being built at each phase of the software development life cycle, to trace the progress of that development and to reduce the effort required to determine the impacts of requested changes.
General Patterns
Requirements changes usually cause all subsequent phases ( design, implementation, testing ) change. Any changes in subsequent phases may force requirements to change. Every change introduced may potentially alter the requirements quality: consistency and completeness .
Misunderstandings in the RE process Refining the understanding of the problem and possible solutions in the design phase Implementation limitations discovered during implementation Defects discovered during testing or test case generation Defects discovered during system operational lifetime
Change Control
Proposing Changes Analyzing Impact Communicating Making Decisions Incorporation Measuring Requirements Stability
Version Control
Identifying requirements document versions Identifying individual requirement revisions
Requirement Tracing
Defining links to other requirements Defining links to other system elements
Benefits
Provides a formal mechanism to propose changes in requirements Enables project leaders make informed decisions about the changes Lets you track the status of all proposed changes Ensures that no suggested changes are lost or overlooked Ensures funneling and filtering to ensure that most appropriate changes are incorporated
Roles involved
Change Control Board Chair Evaluator Modifier Originator Project Manager Request Receiver Verifier
Requests received / open / closed Cumulative changes made, including added, deleted Number of change requests originating from a source Number of changes proposed and made in a given requirement baseline Total effort involved in making the changes at various stages
A process for managing changes effectively must include the following steps:
Recognize that Change is inevitable Baseline the requirements Establish a single channel Use a change control system Manage change hierarchically
References
Websites :
http://www.westfallteam.com http://www.processimpact.com http://www.vbhconsulting.com/ http://www.westfallteam.com/
White Papers :
Issues in Requirements Elicitation by Michael G Christel & Kyo C Kang http://www.sei.cmu.edu/pub/documents/92.reports/pdf/tr12.92.pdf http://www.borland.com/resources/en/pdf/solutions/rdm_whitepaper.pdf http://www.ee.unb.ca/kengleha/courses/CMPE3213/Requirements.htm http://aaaprod.gsfc.nasa.gov/TEAS/lr-web/lindarose.html
Books:
Requirements Engineering: A Good Practice Guide: by Ian Sommerville, Pete Sawyer Requirements Engineering by Elizabeth Hull (Author), Kenneth Jackson (Author), Jeremy Dick(Author)
References
http://www.ksc.com/education/oocourses/%60iterative.htm Software Engineering Roger S.Pressman Software Engineering - David Gustafson en.wikipedia.org/wiki/Software_requirement
Q?????