WFU
Systems & Requirements Engineering
Systems Engineering
- System:
- regularly interacting or interdependent group of items that form a unified whole
- homogeneous entity that exhibits pre-defined behavior and which is composed of heterogeneous parts that do not individually exhibit that behavior and which is an integrated configuration of components and/or subsystems
- Systems engineering life cycle:
- System design
- Requirements
- Design
- Coding
- Testing
- Integration
Allocating Requirements
- Systems that contain hardware, software, people and processes
- Once the subsystems and components have been identified, system functions must be allocated to them. In systems engineering this is called functional allocation or functional analysis
- There are a number of techniques that can be used to help make allocation tradeoff decisions.
- Most of these techniques use a type of analysis called multi-criteria decision analysis (MCDA)
Requirements Engineering
- The word engineering is used as a way of emphasizing the use of systematic and repeatable techniques that help to ensure the completeness, correctness, consistency, and continued relevance of software requirements for a software product.
Introduction to Requirements
- A requirement is a capability that must be delivered by the system, or a condition that the system must satisfy.
- A functional requirement is something the system must do in other words, the behaviors the system must possess.
- A functional requirement can have 5 moving parts inputs, outputs, statement of intended functionality, business rules, and possibly constraints.
- A non-functional requirement is a condition that the system must comply with.
Importance of Requirements
- First, the requirements phase in a project can be a major source of defects that get introduced into the project.
- Second, the requirements are used as input to many of the subsequent project work phases.
- And, third, requirements errors can be costly and time-consuming to fix…and contribute significantly to a project’s rework costs.
- Good requirements are correct, complete, testable, and unambiguous.
Activities and Work Products
- Analysts will identify key stakeholder groups, evaluate the system boundary, and elicit stakeholder needs to identify the project’s functional and non-functional requirements
- Major deliverable work products produced in this activity typically include a Vision Document, a use case model or a functional requirements specification document if use cases are not being used, and a supplementary specification document.
- The Vision Document specifies the stakeholders’ view of the product to be developed. It is written in terms of the stakeholders’ key goals/needs and desired features.
- And it provides the basis for eliciting and specifying the more detailed product requirements.
- Section 3 in this document is extremely important. It contains a description of product stakeholders and their needs. Note that there are two types of stakeholders: end user stakeholders and non-user stakeholders.
- My first layer of stakeholders is what I call direct stakeholders. The next layer is the enterprise layer. And the third layer consists of entities outside the organization.
Use Cases vs Traditional Requirements
- A use case describes a set of interactions between the product we are gathering requirements for, users of that product, and other systems the product will interact with.
- Use cases are used to describe the functional requirements for a software product.