Requirements Engineering is the discipline of eliciting, analyzing, specifying and managing requirements. A requirement is essentially a definition of a property that a system or process must be able to perform. Enterprise Architect provides tools and functionality that will assist with all aspects of requirements engineering from elicitation through to requirements management.
Requirement engineering is performed differently depending on the development method being used; traditional processes such as Water Fall will prescribe that the requirements are elicited and analyzed before development work is started, whereas when iterative and incremental methods are used, including Agile, the requirements are incrementally elicited and analyzed.
Requirements also exist at different levels in a process; for example, there are high level requirements such as stakeholder needs, and low level requirements that define how a system component must function. Detailed requirements can be organized into a hierarchy culminating in a high-level requirement, so that satisfying each of the detailed requirements results in meeting the higher-level requirements and ultimately the top-level requirement. This hierarchical structure helps manage the complexity of large systems, with thousands of requirements and many processes being developed to implement those requirements.
Enterprise Architect was one of the first UML tools to support requirements engineering, and it continues to be a leader in this field with a powerful and versatile feature set supporting all aspects of requirements engineering, including the text based Specification Manager, hierarchical representations, Requirements diagrams for visualizing, automatic documentation generation and requirements management features. Requirements can be given a status that can be conveniently displayed using color codes on a diagram, helping the requirements manager and others to gain a quick visual overview of the status of the requirements.
Gathering requirements is typically the first step in developing a solution, be it for developing either a system or a process. Requirements are gathered from all parties expected to use, maintain or benefit from the solution, and are organized into groups, functional areas and hierarchies as necessary. They can be transcribed into a spreadsheet or a requirements gathering or management tool, or they can be created within an integrated modeling tool such as Enterprise Architect.
The management of requirements is one of the more problematic disciplines in software development, for reasons such as:
These can cause issues with:
Enterprise Architect can reduce or eliminate these problems in Requirements Management.
Requirements Management and Enterprise Architect
Enterprise Architect is one of the few UML tools that integrate Requirements Management with other software development disciplines in the core product, by defining requirements within the model. Within Enterprise Architect, you can: