#csse3012
- Complex systems cannot be comprehended in their entirety
- models help manage complexity
-
Why Model Requirements?
- See requirements in context
- [[Whole is greater than the sum of its parts]]
- Multiple Views
- High Level
- Detail
- See what's missing
- see what's unclear
- Identify Inconsistency
- possibly conflicting requirements
- check understanding
- reason about and visualize requirements
- See requirements in context
-
Limitations
- It is very important to define the constraints realistically
- e.g. Stairs cannot be modelled down to a ramp ![[Pasted image 20220609162932.png|400]]
-
Key Benefits
- Easy to create simulations
- Able to automatically generate documents
- Can automatically conduct tests
- Allows for easy integration into development and test tools
- Can easily manage evolving requests and requirements
-
Product centered
- Focus on features to be delivered
- expect users will use features to achieve their objective
- example: making a notes' platform for students and expecting everyone to understand everything because it is written in detail
- Focus on features to be delivered
-
User centered
- Focus on anticipated usage
- what do users need to accomplish
- Reveal necessary functionality
- Focus on anticipated usage
-
example: recognizing that more than 50% of the knowledge retention is done when user writes the notes themselves in their own language, and hence users don't actually need these notes. But they do need a system to quickly search for information
TL;DR [[User Stories]] - Natural [[Use Case Modelling|Use Cases]] - Semi-Formal UML
-
Natural Language
- flexible
- ambiguous
-
Semi-formal
- Structured
- some reasoning possible based on assumptions
-
Formal
- precise (math) so extensive reasoning possible
- very detailed
-
[[Desired characteristics of a modelling language]]
- Implementation Agnostic
- Abstract
- Formal
- Constructible
- Analysable
- Traceable
- Minimal
[[Week 03a - Requirements Modelling.pdf]]