Kiến trúc máy tính và hợp ngữ - Chapter 8: Risks in requirement engineerring
          
        
            
            
              
            
 
            
                
                    Time pressure to proceed despite TBDs
Good idea to mark areas of the SRS document that
need further work with ‘to be determined’ (TBD).
But it is risky to proceed with the construction if
these TBDs have not been resolved.
Record the name of the individual responsible for
resolving each TBD, how it will resolved, and the
target date for resolution
                
              
                                            
                                
            
 
            
                 27 trang
27 trang | 
Chia sẻ: huyhoang44 | Lượt xem: 898 | Lượt tải: 0 
              
            Bạn đang xem trước 20 trang tài liệu Kiến trúc máy tính và hợp ngữ - Chapter 8: Risks in requirement engineerring, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Risk management provides a standard 
approach to 
Identify and document risk factors 
Evaluate their potential severity 
Propose strategies for mitigating them 
Risk assessment: is the process of examining a 
project to identify areas of potential risk. 
Risk identification: makes lists of common risk 
factors for software projects 
Risk analysis: Examine the potential consequences 
of specific risks to your project. 
Risk prioritization: focus on the most severe risks 
by assessing the potential risk exposure from each. 
Risk avoidance : 
You can avoid risks by not undertaking certain 
projects, by relying on proven rather than cutting-
edge technologies, or by excluding features that 
will be especially difficult to implement correctly. 
Software development is intrinsically risky, though, 
so avoiding risk also means losing an opportunity. 
Risk control: manage the top-priority risks 
Risk management planning: produce a plan for 
dealing with each risk including mitigation 
approaches, contingency plans, owners, and 
timelines 
Risk resolution involves executing the plans for 
mitigating each risk. 
Risk monitoring: track your progress toward 
resolving each risk item through 
Risks factors are organized by the requirements 
engineering sub-disciplines: 
Elicitation 
Analysis 
Specification 
Verification 
Management 
Techniques are suggested that can reduce: 
Either the probability of the risk materializing into a 
problems 
Or the Impact on the projects if it does. 
Product Vision and scope: 
Team members don’t have a clear, shared 
understanding of what the product is supposed to 
be or do. 
 Early in the project write a vision and scope 
document that contains your business 
requirements and use it to guide decisions about 
new or modified requirements. 
Time spent on requirements development 
Tight projects schedules often pressure managers 
into glossing over the requirements. 
 A rough guideline is : 
To spend about 15 per cent of your project effort 
on requirements development activities. 
Keep records of how much efforts you actually 
spend on requirements development  you can 
judge whether it is sufficient and improve your 
planning for future projects. 
Completeness and correctness of 
requirements specification 
Apply the use case technique to elicit 
requirements by focusing on user tasks. This 
ensure that you will capture real customer needs. 
Devise specific usage scenarios. 
Write test cases from requirements 
Create prototypes to make the requirements more 
tangible for users and to elicit specific feedback 
from them. 
Requirements for highly innovative products: 
Emphasize marked research, build prototypes, 
Use customer focus groups to obtain early and 
frequent feedback about your innovative product 
visions. 
Defining Non functional requirements 
Natural emphasis on product functionality and 
easy neglect of non functional ones. 
Query customers about quality characteristics: 
performance, reliability, usability. 
Document these NF requirements and their 
acceptance criteria in the SRS document. 
Customer agreement on product 
requirements: 
Determine who the primary customers are. 
Make sure you have adequate customer 
representation and involvement 
Make sure you are relying on the right people for 
decision making authority on requirements. 
Unstated requirements: 
Customers might hold implicit expectations that 
are not communicated or documented. 
Try to identify and record any assumptions the 
customers might be taking. 
Use open ended questions to encourage customers 
to share more of their thoughts, ideas and 
concerns than you might otherwise hear. 
Existing product used as the requirement 
baseline: 
Developers are sometimes told to use the existing 
product as their source for requirements (fix 
specific bugs, add new features). 
 Document the requirements that you discover 
through reverse engineering, and have customers 
review those requirements to ensure that they are 
correct and still relevant 
Requirement prioritization 
Ensure that every requirement, feature or use case 
is prioritized and allocated to a specific product 
release or implementation stage. 
Evaluate the priority of every new requirement 
against the existing body of work remaining to be 
done so you can make clever trade-off decisions. 
Technical difficult features: 
Evaluate the feasibility of each requirement to 
identify those that might take longer to implement 
than planned. 
Use your project status tracking to watch for 
requirements that are falling behind their 
implementation schedule. 
Take corrective action as early as possible, 
Unfamiliar technologies, methods, tools, or 
hardware 
Don’t underestimate the learning curve of getting 
up to speed with new techniques that are needed 
to satisfy certain requirements 
Identify those high risks requirements early 
Allow sufficient time for false starts, learning, 
experimentation and prototyping. 
Requirement Understanding: 
Different understandings of the requirements by 
developers and users may lead to expectation gaps. 
Formal inspections of requirements documents by 
teams including developers, testers, and customers 
can mitigate the risk. 
Trained and experimented requirements analysts will 
ask the right questions and write better specification. 
Models and prototypes that represent the 
requirements from multiples perspectives will reveal 
fuzzy and ambiguous requirements. 
Time pressure to proceed despite TBDs 
Good idea to mark areas of the SRS document that 
need further work with ‘to be determined’ (TBD). 
But it is risky to proceed with the construction if 
these TBDs have not been resolved. 
Record the name of the individual responsible for 
resolving each TBD, how it will resolved, and the 
target date for resolution. 
Ambiguous terminology 
Create a glossary and data dictionary to define all 
business and technical terms that might be 
interpreted differently by different readers. 
Especially define terms that have both common 
and technical or domain-specific meanings 
Specific reviews can help participants reach a 
common understanding of key terms and concepts. 
Unverified requirements 
Inspecting a lengthy SRS, writing test cases very 
early in the development process may appears 
fastidious. 
However if you verify the quality and correctness 
of the requirements before construction begins, 
through inspection, requirements-based test 
planning and prototyping you can greatly reduce 
expensive rework later in the project. 
Unverified requirements 
Include time and resources for these quality 
activities in he project plan. 
Gain commitments from your customer 
representatives to participate in requirements 
inspections. 
Perform incremental, informal reviews prior to 
formal inspections to find problems as early and 
cheaper as possible. 
Inspection proficiency: 
Serious defects might be missed in case inspectors 
do not know to properly inspect requirements 
documents, and to contribute to effective 
inspections. 
Train all team members who will participate in 
inspections of requirement documents. 
Invite an experienced inspector from your 
organization or outside consultant to observe and 
moderate your early inspections to help make 
them effective. 
Requirement change process: 
Risks from the way changes to requirements are 
managed include not having a defined change process, 
using an ineffective change mechanism, and permitting 
changes to be made without following the process. 
You will need to develop a culture and discipline of 
change management at all levels. 
A requirements change process that includes impact 
analysis of proposed changes, a change control board 
to make decisions, and a tool to support the defined 
procedure is an important starting point. 
Unimplemented requirements 
The requirements traceability matrix helps to avoid 
overlooking any requirements during design, 
construction or testing. 
It also helps ensure that a requirement is not 
implemented by multiple developers because of 
inadequate communication within the project. 
Expanding project scope 
If requirements are poorly defined initially, further 
definition can expand the scope of the project. 
The project resources that were allocated according to 
the initial requirements might not be adjusted as the 
true scope of user needs becomes known. 
To mitigate this risk, plan on a phased or incremental 
delivery process. 
Implement the core functionality in the early releases, 
and iteratively elaborate the requirements for the later 
phases. 
            Các file đính kèm theo tài liệu này:
 chapter_8_risk_in_re_912.pdf chapter_8_risk_in_re_912.pdf