Lesson 4 - Intro to Requirements engineering (Ch 8, Ch 9, Ch 10) (FSP = For specific project) Flashcards
Requirements engineering helps software engineers better _____ the problems they are trying to solve.
understand
Building an elegant computer solution that ignores the customer’s needs _____ no one.
helps
It is very important to understand the customer’s wants and needs before you begin _____ or _____ a computer-based solution.
designing or building
The __________ process begins with inception, moves on to elicitation, negotiation, problem specification, and ends with review or validation of the specification.
requirements engineering
The intent of requirements engineering is to produce a _____ understanding of the customer’s problem.
written
- Must be adapted to the needs of a specific process, project, product, or people doing the work.
- Begins during the software engineering communication activity and continues into the modeling activity.
- In some cases requirements engineering may be abbreviated, but it is never abandoned.
- It is essential that the software engineering team understand the requirements of a problem before the team tries to solve the problem.
Requirements engineering
- Inception (software engineers use context-free questions to establish a basic understanding of the problem, the people who want a solution, the nature of the solution, and the effectiveness of the collaboration between customers and developers)
- Elicitation (find out from customers what the product objectives are, what is to be done, how the product fits into business needs, and how the product is used on a day to day basis)
- Elaboration (focuses on developing a refined technical model of software function, behavior, and information)
- Negotiation (requirements are categorized and organized into subsets, relations among requirements identified, requirements reviewed for correctness, requirements prioritized based on customer needs)
- Specification (written work products produced describing the function, performance, and development constraints for a computer-based system)
- Requirements validation (formal technical reviews used to examine the specification work products to ensure requirement quality and that all work products conform to agreed upon standards for the process, project, and products)
- Requirements management (activities that help project team to identify, control, and track requirements and changes as project proceeds, similar to software configuration management (SCM) techniques
Requirements Engineering Tasks
• Identify stakeholders
• Recognize the existence of multiple stakeholder viewpoints
• Work toward collaboration among stakeholders
• These context-free questions focus on customer, stakeholders, overall goals, and benefits of the system
o Who is behind the request for work?
o Who will use the solution?
o What will be the economic benefit of a successful solution?
o Is there another source for the solution needed?
• The next set of questions enable developer to better understand the problem and the customer’s perceptions of the solution
o How would you characterize good output form a successful solution?
o What problem(s) will this solution address?
o Can you describe the business environment in which the solution will be used?
o Will special performance constraints affect the way the solution os approached?
• The final set of questions focuses on communication effectiveness
o Are you the best person to give “official” answers to these questions?
o Are my questions relevant to your problem?
o Am I asking too many questions?
o Can anyone else provide additional information?
o Should I be asking you anything else?
Initiating Requirements Engineering Process
- Quality management technique that translates customer needs into technical software requirements expressed as a customer voice table
- Identifies three types of requirements (normal, expected, exciting)
- In customer meetings function deployment is used to determine value of each function that is required for the system
- Information deployment identifies both data objects and events that the system must consume or produce (these are linked to functions)
- Task deployment examines the system behavior in the context of its environment
- Value analysis is conducted to determine relative priority of each requirement generated by the deployment activities
Quality function deployment (QFD)
The requirements model is the first technical representation of a _____.
system
Requirements modeling process uses a combination of text and diagrams to represent software _____ (data, function, and behavior) in an understandable way. Software engineers build requirements models using requirements elicited from customers.
requirements
Building analysis models helps to make it easier to uncover requirement _____ and omissions.
inconsistencies
Software problems can be characterized in terms of a set of _____ objects. Each object is described by its state (the data attributes that describe the objects). This can be represented using class-based modeling.
interacting
Class-based modeling defines the objects a system _____, operations applied to objects, and the collaborations occurring between classes. Elements of class model include: classes, objects, attributes, operations, CRC models, collaboration diagrams, and packages Requirements modeling work products must be reviewed for completeness, correctness, and consistency.
manipulates
- Categorization is an important part of analysis modeling
- Analysis packages are made up of classes having the same categorization
- In class diagrams visibility of class elements can be indicated using a + (public), - (private), # (package)
Analysis Packages