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:

  1. Glossary of terms
  2. General knowledge about the domain
  3. Customers and users
  4. Environment
  5. Domain Model
  • UML class diagram to model the relationship between entities
  • Entity relationship model
  1. Tasks and procedures currently performed
  2. 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.

Image

Non-functional Requirements

Define what a system is supposed to do. Describe security, reliability, maintainability, scalability, usability.