Domain Analysis and Requirement Modeling
Domain Analysis
Domain Analysis is the process by which a software engineer learns background information.
The aim is to understand the problem's domain independently of the particular system we intend to develop.
Benefits:
- faster development, communicate with stakeholders more effectively
- better understanding of user's needs
- anticipation of extensions
Components:
- Glossary of terms
- General knowledge about the domain
- Customers and users
- Environment
- Domain Model
- UML class diagram to model the relationship between entities
- Entity relationship model
- Tasks and procedures currently performed
- Competing software
Domain Model
Domain modeling is the decomposition of a domain into its individual entities. It is a way to describe and model domain entities, their responsibilities, and the relationship between them.
These can include but are not limited to:
- UML class diagrams
- Entity relationship model
Requirements
Customer Requirements
These requirements help figure out exactly what the customer wants.
Requirements Elicitation (more on this found here):
- where the expectations of the customer are captured
- done through interviews
- high-level, non-technical statements
Functional Requirements
Capture the intended behavior of the system.
Use Case View
Captures the behavior of the system as it appears to an outside actor.
Non-functional Requirements
Define what a system is supposed to do. Describe security, reliability, maintainability, scalability, usability.