|
|
Requirement Engineering
Software requirements
|
|
|
|
What is Software Requirements?
Requirements covers the discovery, documentation, and analysis of functions to be implemented in software.
Requirements analysis is a critical activity on any software project because if you don't get the requirements right, your project will fail no matter how well you perform all other activities.
Getting requirements right has proven to be one of the more difficult areas of software engineering. This is due to requirements analysis being open ended in nature, the interfaces with many different project stakeholders, and the fact that time spent on requirements is often short-changed based on the mistaken idea that projects should move on to design and construction as fast as possible.
Followings are severy common pitfalls in requirement management:
- Inadequate customer involvement
- Identify stakeholders and key anchors
- Plan for requirements and scope review
- Vague and ambigous requirements
- Avoid terms like minimize, maximize, optimize, rapid, user-friendly, easy, simple, often, normal, usual, large, intuitive, robust, state-of-the-art, improved, efficient,flexible etc.
- Writing conceptual test cases against the use cases and functional requirements crystallizes the vision of how the software should behave under certain conditions
- No prioritization of requirements
- Identify relative implementation priority based on
- The anticipated frequency or volume of usage
- Satisfying the most favored user segments
- Implementing core business processes
- Functionality demanded for regulatory compliance
- Inadequate version control
- Periodically merge approved changes into the requirements specifications and communicate to all affected stakeholders
- Adopt a versioning scheme for documents that clearly distinguishes drafts from base lined versions
- Store the requirements documents in a version control tool, restrict read/write access to a few authorized individuals
- Scope creep
- Avoid undocumented changes
- Avoid outdated requirement documentation -poor configuration management
- Establish a workable process for managing requirement changes
- Follow change control process for all changes, recognizing that one might have to renegotiate commitments when one accepts new requirements
So, following basic criteria are always used in static testing of requirements specifications.
The criteria ask that each requirement be
correct,
unambiguous,
complete,
necessary,
consistent,
feasible,
prioritized,
traceable,
testable.
How to convert customer-oriented requirement to real analysis, design and implementation is a big obstacle,
and following diagram gives a solution:
This diagram comes from a Borland White Paper, which can be found below.
Good practice from book "Software Requirements, Second Edition by Karl E. Wiegers" can be found here.
|
|
|
 |
White papers & Articles
|
|
|
|
Ian Sommerville,
Software Requirements Engineering Processes
,
Slides
Karl E. Wiegers,
So You Want To Be a Requirements Analyst?
,
Process Impact
Mike Taylor,
Iteration-Specific Requirements: More Control Where You Really Need It
,
The Rational Edge, March 2001
Joseph D. Schulz,
Requirements-based Unified Modeling Language
,
A Borland White Paper, Sep. 2003
Scott W. Ambler,
Agile Requirements Modeling
,
Agile Modeling Essay
Alan Cline,
Joint Application Development (JAD) for Requirements Collection and Management
,
Carolla Development
M. Christel K. Kang.,
Issues in Requirements Elicitation
,
Technical Report, CMU/SEI-92-TR-012
Raghavan, S.; Zelesnik, G.; Ford, G.,
Lecture Notes on Requirements Elicitation
,
CMU/SEI-93-EM-10
Nancy Mead,
Requirements Engineering for Survivable Systems
,
Technical Note,
CMU/SEI-2003-TN-013
Priscilla Fowler,
Mac Patrick,
Proceedings of the Introducing Requirements Management into Organizations Workshop: Requirements Management Transition Packages (November 11-13, 1996)
,
Special Report,
CMU/SEI-97-SR-001
Priscilla Fowler,
Malcom (Mac) Patrick,
Transition Packages for Expediting Technology Adoption: The Prototype Requirements Management Transition Package
,
Technical Report,
CMU/SEI-98-TR-004
Carol Woody,
Eliciting and Analyzing Quality Requirements: Management Influences on Software Quality Requirements
,
Technical Note
CMU/SEI-2005-TN-010
|
|
|
 |
Good books
|
|
|
|
 |
Software Requirements, Second Edition
By:
Karl E. Wiegers
Published by: Addison-Wesley
This book describes several dozen practices that can help you gather, analyze, document, verify, and manage your software project requirements. The emphasis is on realistic practical methods and process improvement, not theoretical models. Business, user, functional, and nonfunctional requirements are all addressed. Topics covered include customer involvement in the requirements process, use cases, prototyping, requirements prioritization, the software requirements specification, change management, requirements traceability, requirements management tools, and managing requirements risks. The second edition features more depth on every topic, a comprehensive requirements troubleshooting guide, an integrated set of sample requirements documents, and new chapters on the role of the requirements analyst, defining and using business rules, and applying requirements engineering to maintenance projects, package solution projects, outsourced projects, and emergent projects.
|
 |
Software Requirements Using the Unified Process
By:
Daniel R. Windle, L. Rene Abreo
Published by: Paperback
Effective requirements development: An end-to-end process that works. - How to build requirements that can easily be transformed into high-quality software
- Easy-to-apply, start-to-finish methodology based on the Unified Process
- Practical solutions for requirements gathering, analysis, specification, and maintenance
This book presents a systematic, easy-to-apply methodology for creating effective requirements. The authors present practical solutions for the full requirements lifecycle: gathering, analysis, specification, verification, and maintenance. Working in the context of the Unified Process, they cover process flows, present detailed diagrams, and offer insights that draw on their extraordinary mission-critical project experience, which ranges from the floor of the New York Stock Exchange to the U.S. Air Force's most advanced Command and Control Systems. - The key characteristics of good software requirements
- Understanding the requirements analysis process and artifacts
- Building user requirements problem domains, actors, use cases, activity diagrams, and storyboarding
- Building the requirements architecture entities and events, class diagrams, state transition diagrams, and sequence diagrams
- Building the specifications software requirements, interface requirements, and verification
- Using the requirements architecture you've built
Whether you're an analyst, architect, developer, tester, manager, or software customer, this book will help you define requirements that precisely reflect your needsand can be transformed into working software faster and more cost-effectively than ever before. |
 |
Writing Effective Use Cases
By:
Alistair Cockburn, Lois Fichner-Rathus
Leverage the full power of use cases in real-world software development!
- A practical methodology that makes use cases more accessible than ever before.
- Project standards, formats, style, and detailed "do's and don'ts" for creating use cases that work.
- Based on Cockburn's acclaimed tutorials at OOPSLA and Software Development Conferences!
Use cases have never been this easy to understand -- or this easy to create! In Writing Effective Use Cases,
Alistair Cockburn offers a hands-on, soup-to-nuts guide to use case development,
based on the proven concepts he has refined through years of research, development, and seminar presentations.
Cockburn begins by answering the most basic questions facing anyone interested in use cases: "What does a use case look like?
When do I write one?" Next, he introduces each key element of use cases: actors, stakeholders, design scope,
goal levels, scenarios, and more. Writing Effective Use Cases contains detailed guidelines, formats,
and project standards for creating use cases -- as well as a detailed chapter on style, containing specific
do's and don'ts. Cockburn shows how use cases fit together with requirements gathering, business processing
reengineering, and other key issues facing software professionals. The book includes practice exercises with
solutions, as well as a detailed appendix on how to use these techniques with UML. For all application developers,
object technology practitioners, software system designers, architects, and analysts.
Alistair Cockburn is Consulting Fellow at Humans and Technology, where he is responsible for helping clients
succeed with object-oriented projects. He has more than 20 years experience leading hardware, software, and
research projects for companies such as IBM, Ralston Purina, GE Capital Venture, and Traveler's Insurance.
|
 |
Joint Application Development
By:
Alistair Cockburn, Lois Fichner-Rathus
From two leading JAD innovators—everything you need to become a first-class JAD facilitator.
If you're an IS professional, you've probably heard quite a bit over the past few years
about JAD's amazing track record in computer system design. But have you also heard that
JAD techniques are now being used in companies worldwide to help facilitate everything
from planning mergers to new product development? The demand has never been greater for
first-class JAD facilitators and now this book helps you to become one. No dry academic
treatise, this lively, hands-on guide bridges the gap between theory and practice with:
Detailed, step-by-step guidance on running JAD workshops from start to finish—from
project definition, research, preparation, and running sessions, to final documentation
Dozens of useful agendas, checklists, sample documents, memos, visual aids, and more
A gold mine of eye-opening "war stories" and helpful hints from facilitators across North
America and Europe.
Completely updated and revised to reflect JAD's prominent new role in corporate
decision-making, this Second Edition of the "JAD facilitator's bible" now features new
and expanded coverage of how to:
Manage group dynamics, including handling difficult people, getting the timid ones to
speak up, promoting creative thinking, and much more JAD psychology
Integrate CASE tools, prototyping, and groupware into your JAD sessions
Use JAD across and beyond the entire systems development life cycle
Measure success, select pilot projects, and train facilitators
Market your facilitating services within the company
Apply JAD techniques to all types of corporate planning and decision-making
|
|
|
|
 |
Standard in use
|
|
|
|
- IEEE Std 830-1998 - IEEE Recommended Practice for Software Requirements Documentation
- IEEE Std 1028-1988 (Reaff 1993), IEEE Standard for Software Reviews and Audits (ANSI)
- IEEE Std 610.12-1990, IEEE Standard Glossary of Software Engineering Terminology
- IEEE Std 1063-1987 (Reaff 1993), IEEE Standard for Software User Documentation (ANSI)
- IEEE 1233 - Guide for Developing System Requirements Specifications
- FAST (Facilitated Application Specification Techniques) technology
- JAR (Joint Application Requirement) technique
|
|
|
 |
Wonderful web resources
|
|
|
|
 |
Created by
beyondtest
Last modified
2006-01-15 11:37 AM
|
|
«
|
August
2008
|
»
|
| Su |
Mo |
Tu |
We |
Th |
Fr |
Sa |
|
|
|
|
|
|
1 |
2 |
| 3 |
4 |
5 |
6 |
7 |
8 |
9 |
| 10 |
11 |
12 |
13 |
14 |
15 |
16 |
| 17 |
18 |
19 |
20 |
21 |
22 |
23 |
| 24 |
25 |
26 |
27 |
28 |
29 |
30 |
| 31 |
|
|
|
|
|
|
|