sre notes for mtech

Embed Size (px)

Citation preview

  • 7/29/2019 sre notes for mtech

    1/32

    1

    Software Requirements and

    Estimation

    Unit - III

  • 7/29/2019 sre notes for mtech

    2/32

    2

    Software Requirements ManagementRequirement Management Principles and Practices

    Requirements management involves

    Controlling changes to the requirements baseline Keeping project plans current with the requirements

    Controlling versions of both individual requirements and requirementsdocuments

    Tracking the status of the requirements in the baseline

    Managing the logical links between individual requirements and other

    project work products Requirements management comprises of

    Change Control

    Proposing changes

    Analyzing impact

    Making decisions

    Updating requirements documents

    Updating plans

    Measuring requirements volatility

  • 7/29/2019 sre notes for mtech

    3/32

    3

    Software Requirements ManagementRequirement Management Principles and Practices

    Requirements management comprises of

    Version Control Defining a version identification scheme

    Identifying requirements document versions

    Identifying individual requirement versions

    Requirements status tracking

    Defining possible requirement statuses

    Recording the status of each requirement Reporting the status distribution of all requirements

    Requirements Tracing

    Defining links to other requirements

    Defining links to other system elements

    Requirements baseline

    The requirements baseline is the set of functional and nonfunctionalrequirements that the development team has committed to implement in aspecific release. Defining a baseline gives the project stakeholders a sharedunderstanding of the capabilities and properties they can expect to see inthe release

  • 7/29/2019 sre notes for mtech

    4/32

    4

    Software Requirements ManagementRequirement Management Principles and Practices

    Requirements Attributes

    Date the requirement was created Its current version number

    Author who wrote the requirement

    Person who is responsible for ensuring that the requirement is satisfied

    Owner of the requirement or a list of stakeholders

    Requirement status

    Origin or source of the requirement

    The rationale behind the requirement

    Subsystems to which the requirement is allocated

    Product release number to which the requirement is allocated

    Verification method to be used or acceptance test criteria

    Implementation priority Stability

    Defining and updating these attribute values is part of the cost of requirementsmanagement

  • 7/29/2019 sre notes for mtech

    5/32

    5

    Software Requirements ManagementRequirement Management Principles and Practices

    Tracking Requirements Status

    Tracking the status of each functional requirement throughoutdevelopment provides a more accurate gauge of project progress

    Classifying requirements into several status categories is more meaningfulthan trying to monitor the percent completion of each requirement or ofthe complete baseline

    Requirement statuses can be

    Proposed

    The requirement has been requested by an authorized source

    Approved

    The requirement has been analyzed, its impact on the project has beenestimated, an dit has been allocated to the baseline for a specific release. Thekey stakeholders have agreed to incorporate the requirement, and the software

    development group has committed to implement it Implemented

    The code that implements the requirement has been designed, written, and unittested. The requirement has been traced to the pertinent design and codeelements

  • 7/29/2019 sre notes for mtech

    6/32

    6

    Software Requirements ManagementRequirement Management Principles and Practices

    Requirement statuses can be

    Verified The correct functioning of the implemented requirement has been

    confirmed in the integrated product. The requirement has been tracedto pertinent test cases. The requirement is now considered complete

    Deleted

    An approved requirement has been removed from the baseline. Include an

    explanation of why and by whom the decision was made to delete if Rejected

    The requirement was proposed but is not planned for implementation in anyupcoming release. Include an explanation of why and by whom the decisionwas made to reject it

  • 7/29/2019 sre notes for mtech

    7/32

    7

    Software Requirements ManagementRequirement Management Principles and Practices

    Measuring Requirements Management Effort

    Effort towards the following activities are to be counted Submitting requirements changes and proposing new requirements

    Evaluating proposed changes including performing impact analysis

    Change control board activities

    Updating the requirements documents or database

    Communicating requirements changes or affected groups and

    individuals

    Tracking and reporting requirements status

    Collecting requirements traceability information

    Effective requirements management can reduce the expectation gap bykeeping all project stakeholders informed about the current state of therequirements throughout the development process

  • 7/29/2019 sre notes for mtech

    8/32

    8

    Software Requirements Management

    Change Management Process

    An organization that is serious about managing its software projects must

    ensure that Proposed requirements changes are carefully evaluated before being

    committed to

    The appropriate individuals make informed business decisions aboutrequested changes

    Approved changes are communicated to all affected participants

    The project incorporates requirements changes in a consistent fashion

    The change-control process

    A change-control process lets the projects leaders make informed businessdecisions that will provide the greatest customer and business value whilecontrolling the products life cycle costs

    Change-control process is not an obstacle to making necessarymodifications. It is a funneling and filtering mechanism to ensure that theproject incorporates the most appropriate changes

  • 7/29/2019 sre notes for mtech

    9/32

    9

    Software Requirements Management

    Change Management Process

    Change-Control Policy

    Management should clearly communicate a policy that states itsexpectations of how project teams will handle proposed requirementschanges. Change-control policy consists of

    All requirements changes shall follow the process. If a change request is notsubmitted in accordance with this process, it wont be considered

    No design or implementation work other than feasibility exploration shall be

    performed on unapproved changes Simply requesting a change doesnt guarantee that it will be made. The

    projects change control board (CCB) will decide which changes to implement.

    The contents of the change database shall be visible to all project stakeholders

    The original text of a change request shall not be modified or deleted

    Impact analysis shall be performed for every change

    Every incorporated requirement change shall be traceable to an approvedchange request

    The rationale behind every approval or rejection of a change request shall berecorded

  • 7/29/2019 sre notes for mtech

    10/32

    10

    Software Requirements Management

    Change Management Process

    Change Control Board (CCB)

    The CCB is the body of people who decides which proposed requirementchanges and newly suggested features to accept for inclusion in theproduct

    The CCB decides which reported defects to correct and when to correctthem

    A CCB reviews and approves changes to any baselined work product on a

    project

    Each project CCB resolves issues and changes that affect only that project.

    A higher-level CCB has authority to approve changes that have a greaterimpact on the project

    An effective CCB will consider all changes promptly and will make timelydecisions based on analysis of the potential impacts and benefits of eachproposal

  • 7/29/2019 sre notes for mtech

    11/32

    11

    Software Requirements Management

    Change Management Process

    Change Control Board (CCB) composition

    The CCB membership should represent all groups who need toparticipate in making decisions within the scope of that CCBs authority.The board can consists of representatives from the following areas

    Project or program management

    Product management or requirements anlayst

    Development

    Testing or quality assurance

    Marketing or customer representatives

    User documentation

    Technical support or help desk

    Configuration management

    Make sure that the CCB members understand their responsibilities and

    take them seriously

    CCB Charter

    The charter should state the frequency of regularly scheduled CCBmeeting and the conditions that trigger a special meeting

  • 7/29/2019 sre notes for mtech

    12/32

    12

    Software Requirements Management

    Change Management Process

    CCB Charter

    Making Decisions The number of CCB members or the key roles that constitutes a quorum for

    making decisions

    Whether voting, consensus, consultative decision making, or some otherdecision rule is used

    Whether the CCB chair may overrule the CCBs collective decision

    Whether a higher level of CCB or someone else must ratify the decision Communicating Status

    Once the CCB makes its decision, a designated individual updates the requestsstatus in the change database

    Renegotiating Commitments

    Before accepting a significant requirement change renegotiate commitments

    with management and customers to accommodate the change.

  • 7/29/2019 sre notes for mtech

    13/32

    13

    Software Requirements Management

    Change Management Process

    Change Control Tools

    Automated tools can help change-control process operate more efficiently.Desired characteristics of the tools are

    Allows for definition of the data items included in a change request

    Allows for definition of a state-transition model for the change-request lifecycle

    Enforces the state-transition model so that only authorized users can make the

    permitted status change Records the date of every status change and the identity of the person who

    made it

    Allows for definition about who receives automatic e-mail notification when anoriginator submits a new request or when a requests status is updated

    Produces both standard and custom reports and charts

  • 7/29/2019 sre notes for mtech

    14/32

    14

    Software Requirements Management

    Change Management Process

    Measuring Change activity

    Measuring change activity is a way to assess the stability of therequirements. It also reveals opportunities for process improvement thatmight lead to fewer change requests in the future. Following are to betracked

    The number of change requests received, currently open, and closed

    The cumulative number of changes made, including added, deleted, and

    modified requirements The number of change requests that originated from each source

    The number of changes proposed and made in each requirements since it wasbaselined

    The total effort devoted to processing and implementing change requests

    The number of cycles through the change process that it took to correctlyimplement each approved change

  • 7/29/2019 sre notes for mtech

    15/32

    15

    Software Requirements Management

    Change Management Process

    Impact Analysis

    Impact analysis is a key aspect of responsible requirements management.It provides accurate understanding of the implications of a proposedchange, which helps the team make informed business decisions aboutwhich proposal to approve

    The analysis examines the proposed change to identify components thatmight have to be created, modified, or discarded and to estimate the effort

    associated with implementing the change Impact Analysis Procedure

    Understand the possible implications of making the change. Change often procudesa large ripple effect.

    Identify all the files, models, and documents that might have to be modified if theteam incorporates the requested change

    Identify the tasks required to implement the change, and estimate the effort neededto complete those tasks

    Determine whether the change is on the projects critical path. If a task on thecritical path slips, the projects completion date will slip.

  • 7/29/2019 sre notes for mtech

    16/32

    16

    Software Requirements Management

    Change Management Process

    Impact Analysis Procedure

    Estimate the impact of the proposed change on the projects schedule andcost

    Evaluate the changes priority by estimating the relative benefit, penalty,cost and technical risk compared to other discretionary requirements

    Report the impact analysis results to the CCB so that they can use theinformation to help them decide to approve or reject the change request

    Impact analysis report template

    Using a standard template makes it easier for the CCB members to findthe information they need to make good decisions

    Requirements change is a reality for all software projects, but disciplinedchange-management practices can reduce the disruption that changes cancause

    Improved elicitation techniques can reduce the number of requirementschanges, and effective requirements management will improve ability todeliver on project commitments

  • 7/29/2019 sre notes for mtech

    17/32

    17

    Software Requirements Management

    Links in the Requirements Chain

    Tracing Requirements

    Traceability links allows to follow the life of a requirement both forward andbackward form origin through implementation.

    To permit traceability, each requirement must be uniquely and persistently labeledso that it can referred unambiguously throughout the project

    Customer needs

    Requirements

    Downstream

    Work

    Products

    Forward to

    Requirements

    Backward from requirements

    Forward from

    Requirements

    Backward to requirements

  • 7/29/2019 sre notes for mtech

    18/32

    18

    Software Requirements Management

    Links in the Requirements Chain

    Tracing Requirements

    Customer needs are traced forward to requirements so that it can be toldwhich requirements will be affected if those needs change during or afterdevelopment

    Requirements can be traced backward from requirements to customer needs toidentify the origin of each software requirement

    Requirements flow into downstream deliverables during development, they can be

    traced forward from requirements by defining links between individualrequirements and specific product elements

    Specific product elements link backward to requirements so that it can be knownwhy each item was created

    Traceability links help to keep track of percentage, interconnections, anddependencies among individual requirements. This information reveals thepropagation of change that can result when a specific requirements is deleted or

    modified Test cases that are derived from and traced back to- individual requirement

    provide a mechanism for detecting unimplemented requirements because theexpected functionality will be missing

  • 7/29/2019 sre notes for mtech

    19/32

    19

    Software Requirements Management

    Links in the Requirements Chain

    Benefits of tracing requirements

    Certification Traceability information can be used when certifying a safety-criticalproduct to demonstrate that all requirements were implemented

    Change impact analysis Without traceability information, theres a highprobability of overlooking a system element that would be affected if a requirementis added, deleted, or modified a particular requirement

    Maintenance Reliable traceability information facilities making changes correctlyand completely during maintenance, which improves productivity.

    Project Tracking If the traceability data is recorded diligently, an accurate recordof implementation status of planned functionality can be obtained. Missing linksindicate work products that have not yet been created

    Reengineering functions that are being replaced in a legacy system can be listedand can be recorded where they were addressed in the new systems requirements

    ReuseTraceability information facilitates reusing product components by

    identifying packages of related requirements, designs, code, and reuse Risk reduction documenting the component interconnections reduces the risk if a

    key team member-with essential knowledge about the system leaves the project

    Testing When a test yields an unexpected result, the links between tests,requirements, and code can point toward likely parts of the code to examine for adefect

  • 7/29/2019 sre notes for mtech

    20/32

    20

    Software Requirements Management

    Links in the Requirements Chain

    Requirements Traceability Matrix

    A common way to represent the links between requirements and other systemelements is in a requirements traceability matrix.

    Traceability links can define one-to-one, one-to-many, or many-to-manyrelationships, between system elements.

    One-to-oneone design element is implemented in one code module

    One-to-many one functional requirement is verified by multiple test cases

    Many-to-many Each use case leads to multiple functional requirements, andcertain functional requirements are common to several use cases. Similarly, ashared or repeated design element might satisfy a number of functionalrequirements.

    User Functional Design Code Test

    Requirement Requirement Element Module Case

    UC-28 catalog.query.sort Class catalog catalog. Search.7

    sort() Search.8

    UC-29 catalog.query.import Class catalog catalog. Search.12

    .import() search.13

  • 7/29/2019 sre notes for mtech

    21/32

    21

    Software Requirements Management

    Links in the Requirements Chain

    Requirements Traceability Matrix

    Nonfunctional requirements such as performance goals and quality attributesdont always trace directly into code. A response-time requirement might dictate theuse of certain hardware, algorithms, database structures, or architectural choices.In such cases, trace the corresponding functional requirements backward to theirnonfunctional requirement and forward into down stream dliverables.

    Business rule

    Corporate security policy

    Integrity quality attribute

    Regarding use r identity

    authentication

    Functional requirements

    For passwords

    Design for Password

    Manager module

    Code that implements

    Password functions

  • 7/29/2019 sre notes for mtech

    22/32

    22

    Software Requirements Management

    Links in the Requirements Chain

    Requirements Traceability Procedure

    Identify the parts of the product for which traceability information is to bemaintained. Start with the critical core functions, the high-risk portions, orthe portions that are expected to undergo the most maintenance andevolution over the products life

    Modify the development procedures and checklist to remind developers toupdate the links after implementing a requirement or an approved change.

    The traceability data should be updated as soon as someone completes atask that crates or changes a link in the requirements chain

    Define the tagging conventions that will be used to uniquely identify allsystem elements so that they can be linked together.

    Identify the individuals who will specify each type of link information andthe person who will coordinate the traceability activities and manage the

    data Educate the team abut the concepts and importance of requirements

    tracing on where the traceability data is stored, and the techniques fordefining the links.

  • 7/29/2019 sre notes for mtech

    23/32

    23

    Software Requirements Management

    Links in the Requirements Chain

    Requirements Traceability Procedure

    As development proceeds, have each participant provide the requestedtraceability information as they complete small bodies of work. Stress theneed for ongoing creation of the traceability data rather than for attemptsto reconstruct it at a major milestone of at the end of the project

    Audit the traceability information periodically to make sure its being keptcurrent. If a requirement is reported as implemented and verified yet its

    traceability data is incomplete or inaccurate, the requirements tracingprocess isnt working as intended

  • 7/29/2019 sre notes for mtech

    24/32

    24

    Software Requirements Management

    Requirements Management Tools

    A document-based approach to storing requirements has numerous limitations

    like Its difficult to keep the documents current and synchronized

    Communicating changes to all affected team members is a manual process

    Its not easy to store supplementary information (attributes) about eachrequirement

    Its hard to define links between functional requirements and other system elements

    Tracking requirements status is cumbersome

    Concurrently managing sets of requirements that are planned for different releasesor for related products is difficult. When a requirement is differed from one releaseto another, an analyst needs to move it from one requirements specification to theother

    Reusing a requirement means that the analyst must copy the text from the originalSRS into the SRS for each other system or product where the requirements is to be

    used Its difficult for multiple project participants to modify the requirements,

    particularly if the participants are geographically separated

    Theres no convenient place to store proposed requirements that were rejected andrequirements that were deleted form a baseline

  • 7/29/2019 sre notes for mtech

    25/32

    25

    Software Requirements Management

    Requirements Management Tools

    A requirements management tool that stores information in a multiuser

    database provides a robust solution to these restrictions. Benefits of using a Requirements Management Tool

    Manage Versions and changes

    A project should define a requirements baseline, a specific collection ofrequirements allocated to a particular release. Some requirements managementtools provide flexible baselining functions. The tools also maintain a history ofthe changes made to every requirement.

    Store requirements attributes

    Everyone working on the project must be able to view the attributes, andselected individuals will be permitted to update attribute values. Requirementmanagement tools generate several system-defined attributes, such as the datea requirement was created and its current version number, and they let defineadditional attributes of various data types

    Facilitate impact analysis The tools enable requirements tracing by letting to define links between

    requirements in different subsystems, and between individual requirementsand related system components. These links help to analyze the impact that aproposed change will have on a specific requirement by identifying othersystem elements the change might affect

  • 7/29/2019 sre notes for mtech

    26/32

    26

    Software Requirements Management

    Requirements Management Tools

    Benefits of using a Requirements Management Tool

    Track requirements status Collecting requirements in a database lets to know how many discrete

    requirements have been specified for the product. Tracking the status of eachrequirement during development supports the overall status tracking of theproject

    Control access

    The requirements management tools let to define access permissions forindividuals or groups of users and share information with a geographicallydispersed team through a Web interface to the database. The databases userequirement-level locking to permit multiple users to update the databasecontents concurrently

    Communicate with stakeholders

    Some tools permit team members to discuss requirements issues electronically

    through threaded conversations. Automatically triggered e-mail messagesnotify affected individuals when a new discussions entry is made or when aspecific requirement is modified. Making the requirements accessible on linecan save travel costs and reduce document proliferation

  • 7/29/2019 sre notes for mtech

    27/32

    27

    Software Requirements Management

    Requirements Management Tools

    Benefits of using a Requirements Management Tool

    Reuse requirements Storing requirements in a database facilitates reusing them in multiple projects

    or subprojects. Requirements that logically fit into multiple parts of theproduct description can be stored once and referenced whenever necessary toavoid duplicating requirements

    Requirements Management Tool Capabilities

    Commercial requirements management tools allows to define different requirementtypes such as business requirements, use cases, functional requirements, hardwarerequirements, and constraints

    Most tools integrate with Microsoft Word to some degree by adding a tool-specificmenu to the Microsoft Word menu

    The tools support hierarchical numeric requirement labels, in addition tomaintaining a unique internal identifier for each requirement

    Output capabilities from the tools include the ability to generate a requirementsdocument, either in a user-specified format or a as a tabular report

    All the tools have robust traceability features.

    The tools have ability to set up user groups and define permissions for selected usersor groups to create, read, update and delete projects, requirements, attributes, andattribute values

  • 7/29/2019 sre notes for mtech

    28/32

    28

    Software Requirements Management

    Requirements Management Tools

    Requirements Management Tools available

    Caliber-RM Caliber-RM can extract requirements from Word documents by importing and

    parsing the document.

    The tool stores the requirements in a database, attributes can be storedalongside each requirement

    User defined attributes are also allowed in addition to the Caliber-RM defined

    attributes Multiple versions of requirements can be stored

    Maintains versions numbers for referencing and it is possible to comparedifferent versions of requirements

    Is an Internet based tool that can be used for multiple requirement types.

    E-mail notification to team members of changes in requirements is possible

    The tool supports traceability within and across projects and allows evaluationof the impart of changes

    The requirement data that is stored can be printed in the form of variousstandard and custom reports.

  • 7/29/2019 sre notes for mtech

    29/32

    29

    Software Requirements Management

    Requirements Management Tools

    Requirements Management Tools available

    RequisitePro It is a web-based tool. It makes the requirements accessible to cross functional

    teams that need the requirements for their tasks. Functionality includes

    Requirements can be reviewed

    Traceability relationships and attributes can eb defined and modified

    Requirements can be queried and sorted

    Views of the requirements can be retrieved and saved Links requirements made using Word to the selected non-proprietary database

    Documents can be uncoupled or synchronized back to the database as andwhen required

    Traceability is provided links. Changes made to a requirement are captured,tracking the evolution of the requirement throughout the project lifecycle

    Generates trend analyses, completeness reports, coverage assessment andproject status based on the data held in the tool

    Provides an open COM API in case users want to extend the application to suittheir specific environment

  • 7/29/2019 sre notes for mtech

    30/32

    30

    Software Requirements Management

    Requirements Management Tools

    Requirements Management Tools available

    DOORS Is a repository based tool with various functions such as

    Traceability of requirements

    Wizards to assist user

    On-line change proposal and review

    Impact analysis

    Configuration and access control

    Multi-user access with heterogeneous client / server architecture

    Information capture

    Organization of complex data

  • 7/29/2019 sre notes for mtech

    31/32

    31

    Software Requirements Management

    Requirements Management Tools

    Implementing Requirements Management Automation

    Selecting a tool Select a tool based on the combination of platform, pricing, access modes, and

    requirements paradigm- document centric or database centric- that best fitsthe development environment and culture

    Define organizations requirements for a requirements management tool.

    List 10 to 15 factors that will influence the selection decision

    Distribute 100 points among the selection factors giving more points tothe more important factors

    Obtain current information about the available requirementsmanagement tools, and rate the candidates against each the selectionfactors

    Calculate the score for each candidate based on the weight assigned eachfactor to determine which products appear to best fit the needs

    Evaluate the tools by using a real project. To make a decision, combine the ratings, licensing costs, and ongoing costs

    with information on vendor support, input from current users, and teamssubjective impression of the products

  • 7/29/2019 sre notes for mtech

    32/32

    32

    Software Requirements Management

    Requirements Management Tools

    Implementing Requirements Management Automation

    Changing the culture Use the tool as a groupware are support aid to facilitate

    communication with project stakeholders in various locations.

    Define an owner for each requirement type, who will have the primaryresponsibility for managing the database contents of that type

    Use business terminology when defining new data fields or

    requirements attributes

    To accelerate the movement from a document based paradigm to theuse of the tool, set a date after which the tools database will beregarded as the definitive repository of the projects requirements

    Instead of expecting to freeze the requirements early in the project, getin the habit of baselining a set of requirements for a particular release