Lecture 2 - Requirement Engineering Flashcards
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
- Large SW systems have many different stakeholders with different needs and priorities
- Real developers are not sure how to build it
- Real requirements creep
What 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?
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
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 one of several possible ways to 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
- Essence
- Communication
- Scope
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?
- Goals. The term “goal” (sometimes called “business concern” or “critical success factor”) refers to the overall, 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?
Industry-specific concepts
Business process
Regulatory and compliance requirements
===
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.
- The software engineer needs to be sensitive to these since, in general, new software should not force unplanned change on the business process.
What are the methods of Requirements Elicitation
- Interviews
- Facilitated meetings
- Prototypes
- Observation
* Scenarios
* User stories