Skip to content

BeyondTest - Focusing Quality Everywhere

Sections
Personal tools
You are here: Home » Software Engineering » Requirement » Requirement Engineering

Requirement Engineering

Document Actions
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.

 Up
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

 Up
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 needs—and 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


 Up
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
 Up
Wonderful web resources

Requirements Engineering Tools
This page lists RE tool vendors as well as suppliers of free RE materials that I have heard of. Each entry points to a tool website, says briefly what the tool is best used for, and where available includes a quote from a representative of the vendor describing the tools approach. These short quotes may help to give you an idea of the flavour of each product.


including CM | Construction | Design | Management | Process | Quality | Requirements | Testing topics...
Topic or Artifact
CxOne Basic Materials
General
Requirements Specification
Best Practices

Joint Application Design/Development , Mei C. Yatco


Resources for writing use cases , by Alistair Cockburn.


The Use Case Zone , from Pols Consulting.


the usage-centered design resource , from Constantine & Lockwood, Ltd.


http://www.businessrulesgroup.org/brglink.htm , A list of business-rule management products are maintained by The Business Rules Group.

 Up
Created by beyondtest
Last modified 2006-01-15 11:37 AM
« December 2009 »
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    

 
 

Powered by Plone

This site conforms to the following standards: