Software Engineering Notes
Software Engineering Notes
Agile VS incremental: Incremental models plan further ahead, while agile
focuses on short bursts. Incremental models have larger, less frequent
iterations compared to agile's short sprints. If core maintenance features
are well-defined, Incremental might be efficient.
When to use spiral: the spiral model for projects with high levels of
uncertainty and risk that require a risk-driven approach to development.
RE
System Requirements can only be implemented after the user requirements
are understood and finalized. User Requirements describe the system
functions and features from the perspective of a user. These are usually
abstract. System requirements provide a more detailed explanation of the
procedure.
1. User Requirements:
Example: "As a customer, I want to search for products by category and filter by
price range to find the perfect item quickly and easily."
2. System Requirements:
Example: "The system shall provide a search function that allows users to search for
products by category and filter results by price range. The search results shall be
displayed in a user-friendly and paginated format, with at least 10 products per
page."
3. Functional Requirements:
Example: "The search function shall search product titles, descriptions, and
specifications for keywords entered by the user."
"The filter function shall allow users to refine search results by selecting a minimum
and maximum price range from a drop-down menu."
4. Non-functional Requirements (it can be two types: non func syst req):
Example: "The search function shall return results within 2 seconds after the user
submits their query."
"The system shall be accessible to users with disabilities and comply with relevant
accessibility standards."
"The system shall be secure and protect user data from unauthorized access.".
Structure approach to RE:
Function
Description
Input
Source
Outputs
Destination
Action : Zero state...
Requires
Precondition
Post condition: target found/gas issued
Side-effects
The following diagram shows a change process that may be used to maintain
consistency between the requirements document and the system.
USE CASE
Structure of Use case in table:
Actors
Inputs
Outputs
Normal operation
Exception
Modelling
Scope creep: define boundaries, functionalities
Social and organizational concerns mean the position of a system boundary
may be determined by non-technical factors
Activity diagram (structural perspective, overall flow of control)): activity
(rounded rect., actions or tasks), action edge, decision. Start , stop . Use
black line for merging or multiple outing. Example:
Model an object classes means define class with variables and methods
ATM cash withdraw actors: User, atm-system, card controller, bank, account.
State Diagram
Washing machine, idle used used more than once. Start from idle, start and
stop state.
Model Driven Approach (MDA) fo SE
Uses UML
Need tools
suitable for long-lifetime systems
relies on code-generation which may be less efficient than hand written
Architecture
Need to design architecture before RE because:
Provide a means of structuring the R, cost estimation
To understand functional and nonfunctional requirements
In agile, refactoring architecture is expensive because most system
components will need to be modified.
you need to model the architecture to identify subsystems and associate
the requirements with these subsystems.
Performance wants few large component for less comm. But security needs
layered architecture, more component for validation. Conflict