Lecture 2 - Requirement Engineering Flashcards
(38 cards)
Define Requirements Engineering
An activity that starts with planning, which involves identifying the project goals, constraints, and stakeholders. This step is crucial as it sets the direction for the entire project. REFER TO SLIDES FOR EXAMPLES
Why is Requirements Engineering difficult?
- SW Engineering is a creative, problem solving activity
- Real customers are not sure what they want
- Different stakeholders with different needs and priorities
- Real developers are not sure how to build it
- Real requirements creep
Whats a way to make Requirements Engineering easier?
It is difficult to capture intent with only “words” So use some diagrams/pictures
Tip: PowerPoint is a fast & cheap way to mock-up a user interface. Can be 1/10 the time to do mock-ups in code.
Why is Requirements Engineering important (or in other word what would happen if you didnt have proper requirements?
Poor requirements capture = Big problem (=$$)
Misunderstanding = Chaos (=$$)
= Software project failure (=$$$$$$$!)
What are the 4 major activities of Requirements Engineering?
- Elicitation: discover the requirements
- Analysis: ensure the requirements are correct, complete, consistent and unambiguous
- Specification: document the requirements
- Validation: ensure that the system addresses the client’s needs
What are Functional Requirements
An area of functionality the system must support.
- The functional requirements describe the interactions between the actors and the system independent of the realization of the system
What are Non-functional Requirements
A user-visible constraint on the system (restriction or limitation).
- Non-functional requirements describe user-visible aspects of the system that are not directly related with the functionality of the system.
What are some Quality Attributes of Non-functional Requirements?
Usability: How easy the system/service is to use
Reliability: Make sure the products works consistently
Security: Protecting the clients data, making product trustworthy
Safety: Make sure the product shouldn’t hurt anyone
Performance
Maintainability
Portability
Privacy
What are Project Requirements?
Include: Business, Product and Process Requirements
What are Business Requirements?
- Business Requirements describe in business terms what must be delivered or accomplished to provide value.
What are Product Requirements?
- Product Requirements describe the system or product which is that will accomplish the business requirements.
What are Process Requirements?
- Process Requirements describe the processes the developing organization must follow and the constraints that they must obey
Sample Requirements Document Structure
REFER TO SLIDES
What does Requirement Elicitation consist of?
Process: Identifying stakeholders, using techniques such as interviews, surveys and workshops
Essence: inclusive - functional and none-functional requirements
Communication: Actively listening to stakeholders needs - promoting alignment
Scope: Understanding the underlying problems, understanding what the stakeholder really wants and what it means to them
What is the difference between requirements and specification?
“Requirements is probably the most misused word in our industry.”
“Required means non-negotiable, yet in almost every project we see changed, bartered, and negotiated requirements”
VS
“The term “specification” acknowledges that software development is an iterative and evolving process.”
What is the Project Scope?
- A critical element of requirements elicitation is informing the project scope.
- Description of the software to be built and its purpose
- Prioritizing the deliverables to ensure the customer’s most important business needs
- how: time and other resources available to do this
What are the challenges of Requirement Elicitation?
- Articulation Problems
– People don’t know what they want so they can’t tell you about it! - Communication Barriers
– Different “languages” in different domains - Knowledge and Cognitive Limitations
– Managing complexity - Human Behaviour Issues
– Conflicting needs - Technical Issues
– Change management
– Too rigid adherence to methodology
What are the Requirement Sources?
- Goals
- Domain knowledge
- Stakeholders
- Business Rules
- Operational Environment
- Organisational environment
What is Requirement Source: Goals?
- The high-level objectives of the software.
- Goals provide the motivation for the software but are often vaguely formulated.
- Software engineers need to pay particular attention to assessing the value (relative to priority) and cost of goals.
- A feasibility study is a relatively low-cost way of doing this.
What is Requirement Source: Domain knowledge?
The unique ideas and knowledge in specific area, ie industry, business, etc
As well as the rules and regulations - regulatory and compliance requirements
What is Requirement Source: Business Rules?
- These are statements that define or constrain some aspect of the structure or the behavior of the business itself.
- “A student cannot register in next semester’s courses if there remain some unpaid tuition fees” would be an example of a business rule for a university’s course-registration software.
What is Requirement Source: Operational Environment?
- Requirements will be derived from the environment in which the software will be executed.
- These may be, for example, timing constraints in real-time software or performance constraints in a business environment.
What is Requirement Source: Organizational Environment?
- Software is often required to support a business process, the selection of which may be conditioned by the structure, culture, and internal politics of the organization.
What are the methods of Requirements Elicitation
- Interviews
- Facilitated meetings
- Prototypes
- Observation
* Scenarios
* User stories