Requirements Management in Enterprise Architect
Requirements Management in Enterprise Architect
Requirements
Management
with Enterprise
Architect
By Sparx Systems
www.sparxsystems.com
Trademarks
Object Management Group, OMG, Unified Modeling Language and UML are registered trademarks or
trademarks of the Object Management Group, Inc.
Microsoft, MS Word and Excel are trademarks or registered trademarks of Microsoft Corporation.
All other product and /or company names mentioned within this document are used for identification purposes
only, and may be trademarks or registered trademarks of their respective owners.
Table of Contents
INTRODUCTION .................................................................................................................................................................5
REQUIREMENTS MANAGEMENT WITH UML...........................................................................................................5
GETTING STARTED WITH REQUIREMENTS MANAGEMENT..............................................................................6
REQUIREMENTS MODELING.........................................................................................................................................6
DEFINING YOUR REQUIREMENTS MANAGEMENT PROCESS ...............................................................................................................7
SETTING THE ATTRIBUTES FOR YOUR REQUIREMENTS.....................................................................................................................7
REQUIREMENTS SPECIFICATION INPUT...........................................................................................................................................7
SPECIFICATION MANAGER..........................................................................................................................................................7
Setting views............................................................................................................................................................................... 8
REQUIREMENTS MODELING.........................................................................................................................................................9
REQUIREMENT ATTRIBUTES......................................................................................................................................................10
Adding Custom Attributes to requirements................................................................................................................................11
Predefining Tagged Value types for requirements......................................................................................................................12
AUTO ELEMENT NAMING.........................................................................................................................................................13
List Numbering.............................................................................................................................................................13
Auto Naming.................................................................................................................................................................14
TRACEABILITY AND RELATING REQUIREMENTS..............................................................................................................................16
Aggregation...................................................................................................................................................................16
Realization....................................................................................................................................................................16
Creating and Viewing Relationships.............................................................................................................................16
Creating relationships using diagrams.......................................................................................................................................16
The Relationship Matrix............................................................................................................................................................ 17
Using the Traceability window..................................................................................................................................................18
Checking for unrealized requirements.......................................................................................................................................19
CHANGE CONTROL ................................................................................................................................................................19
Auditing.........................................................................................................................................................................20
Using Baselines.............................................................................................................................................................21
Change Requests and Issues on External Requirements..............................................................................................21
Using the Maintenance window.................................................................................................................................................22
Using Maintenance elements for Changes and Issues................................................................................................................22
INTERNAL REQUIREMENTS.......................................................................................................................................................24
CREATING QUALITY REQUIREMENTS DOCUMENTATION................................................................................25
EXTERNAL REQUIREMENTS REPORTS..........................................................................................................................................25
INTERNAL REQUIREMENTS REPORTS...........................................................................................................................................26
IMPLEMENTATION REPORT, DEPENDENCY REPORT, AND THE PACKAGE BROWSER................................................................................26
Implementation report...................................................................................................................................................26
Dependency report........................................................................................................................................................26
Package Browser view..................................................................................................................................................26
ADDITIONAL REQUIREMENTS MANAGEMENT FEATURES...............................................................................26
CREATING YOUR OWN REQUIREMENT TYPES.................................................................................................................................27
COLOR CODING REQUIREMENTS.................................................................................................................................................28
DRAG AND DROP REALIZATIONS.................................................................................................................................................28
IMPORTING EXTERNAL REQUIREMENTS...............................................................................................................29
USING THE CSV IMPORT.......................................................................................................................................................29
Introduction
Enterprise Architect integrates Requirements Management with other software development disciplines,
by creating requirements directly in the model. Requirements Management is built into the core product,
solving many of the issues of traceability, interdisciplinary team divisions, integration with change and
configuration management systems.
Representing a requirement as a UML element helps you to trace requirements to other UML elements
such as other requirements, use cases, test cases, and analysis or design elements. This element can be
used to model or document any requirements ranging from formal business requirements through to
performance or security requirements.
Requirements Management can involve a number of different steps ranging from the broad definition of
the process your organization will use, through to implementation of these requirements within your
model. Requirements Management processes differ from one organization to another, but can include
any of the following:
• Documenting the process used for Requirements Management
• Inputting requirements (manually or imported)
• Tracing a requirement through to implementation
• Change Management
• Team Interaction and Review
• Project Management
• Testing
• Documentation
Enterprise Architect offers a range of tools that you can quickly use for overall management of your
requirements for any of the above processes.
manage requirements, in a text format style, but using a UML profile specific for Requirements
Management.
Requirements modeling
Entry of requirements into the model is only one stage in the process of integrating your requirements
with other aspects of the model. After requirements entry, there are a variety of facilities for working
with requirements and specifications. Figure 1 gives an outline of the key functionality in Enterprise
Architect useful in Requirements Management.
In this paper you will be introduced to the general process of Requirements Management and the tools
available in Enterprise Architect to implement your process. The key points covered include:
• Defining and documenting your Requirements Management process
• Setting the Attributes that your requirements need to store
• Inputting requirements (manual and automated)
• Relating your requirements to aspects of the model
Specification Manager
The Specification Manager is a tool for users more familiar with a text-based means of creating and
reviewing requirements. These users may include business professionals and managers who might not
have expertise in model development.
What the Specification Manager provides is a means to enter and edit entries in a simple semi-tabulated
text form. It is also an interactive reporting tool that is capable of indicating what other metadata is
associated with requirements, and launching dedicated editors for such metadata. For example, you can
inspect a requirement entry and instantly see whether it has associated test cases. If so, you can simply
click an icon beside the requirement, which will invoke Enterprise Architect's Test Management window
– ready for you to view and edit those test cases.
Some common features to use in conjunction with the Specification Manager include:
• Tagged Values view
• Relationships view
• Traceability view
• Discussions view
• Project Management Resource view
Requirements modeling
For a more formal diagram-based representation, requirements can be shown diagrammatically with
their relationships (see Error: Reference source not found). The core information behind any one
requirement is defined in the properties section (see Figure 5), user-defined “Attributes” can be created
using Tagged Values and Profiles (see Predefining Tagged Value Types for Requirements).
For other options and more details on using these see the Create Requirements Help topic.
Requirement Attributes
Every element, including a requirement element, that is part of a model has properties or Attributes. In
Enterprise Architect these are assigned in the properties sheet. (Double-click on the Requirement).
Enterprise Architect has built-in requirements Attributes such as status, difficulty, priority, and type.
Figure 5 shows an example of the properties for a requirement.
For a more permanent docked view of the element’s properties you can have open the Element
Properties view (Alt+1) and the Notes View (Ctrl+Shift+1).
If you use Tagged Values often, consider leaving the window open and docked.
The predefined Tagged Value types can include a number of standard formats, such as date/time,
calendar view and drop-down lists.
These extended Attributes can also be viewed directly on the element in the diagram. To set this
mode for a specific diagram, right-click on the diagram, and in the context menu, select: Properties |
Elements | Show Compartments | [] Tags. Below is the same element in Figure 7 viewed in this
mode.
For more information on extending requirement Attributes using Tagged Values see: Defining
Requirement Attributes using a Profile.
The following two sections explain the different advantages of each of these mechanisms.
List Numbering
List Numbering numbers the element in a 1.1.1 format based on the element's position in the tree. It
is an impermanent system-based numbering, so any movement of the element in the tree will
update the numbering according to the element's new position. List Numbering can be used in the
different views, such as the Specification Manager, and can be reported.
Note: This feature can be set on any package and applies to the elements
contained in the root of that package (it does not apply to child packages).
Figure 10 is an example an element hierarchy viewed from the Project Browser with Level
Numbering set on.
Note: This numbering can be reported in the RTF report generator using the
Element Section – “LevelNumber” field: {Element.LevelNumber}
Auto Naming
With Auto Naming, you can configure Enterprise Architect to automatically name and number
requirements as they are created. It is more permanent, but can be updated. Auto Naming is
particularly useful with requirements as they often require a unique reference for external checking.
Figure 11 is an example of configuring an auto name counter.
Figure 11: The auto naming window showing how to set the counters for a requirement
For more information on setting the auto-counters see the Set Auto Name Counters Help topic.
Where Auto-Naming is the preferred option the numbering in the name can be re-set using the
package context menu option: right-click on a Package | Apply Auto-Naming to elements.
This feature can also be used for naming existing elements that are not yet Auto Named.
For information on using the auto-naming feature see the Auto-Naming Help topic.
Tips
To keep your requirement names separate from your requirement identifier it is best to use the Alias
field for your Auto-Naming
Aggregation
Requirements linked by Aggregation relationships form a composition hierarchy. High level
requirements may be composed of lower level requirements, which in turn are made up of finer and
more specialized requirements. This hierarchical structure helps manage the complexity of large systems
with thousands of requirements and many elements being employed to implement the requirements.
Realization
Requirements are implemented by model elements, such as Use Cases and Classes. You can specify this
relationship using the Realization link. A model element is marked as 'Realizing' a requirement. Once
this link exists, Enterprise Architect will display the requirement in the element responsibilities tab, in
the requirement Traceability view, and in the dependency and implementation reports, as well as the
standard RTF output (See Requirements Documentation (Reports) below for more information on
reports).
Note: The properties of this diagram have been set to display the diagram source
(using the Diagram Properties: [] Highlight Foreign Objects).
Figure 14: A Relationship Matrix view connections between Elements from different packages
For more details on adding a Relationship between requirements using the Relationship Matrix see the
Creating and Deleting Relationships Help topic.
Figure 15: The Traceability window showing this Use Case's requirement relationships
Common uses
Often a diagram is deliberately drawn to show only one aspect, or part, of the underlying model.
The Traceability window is particularly useful to show the related elements that are not visible
on the diagram.
To get a quick snapshot of how a requirement (or any other element) relates to other elements in
the model.
To access the Model Validation feature see the Model Validation Help topic.
Change Control
Enterprise Architect supports features for monitoring changes to requirement definitions. These include
Auditing, managing Baselines, Element Change requests and Issue logging.
Auditing
The Audit feature enables you to record model changes in Enterprise Architect. It records details of who
changed an element, when and what was changed, and the prior state of the model. This can be
particularly useful for recording a history of changes to requirements models.
Figure 17 is an example of viewing alterations to an element directly in the Audit View. This shows a
number of alterations with the first selected to show the details on the right pane.
Figure 17: Audit view showing a list of alterations with the details of a Name change shown
With the Auditing View enabled the System Output | Audit History window can be used to show the list
of changes for the selected element. Figure 18 shows a requirement selected in the Specification
Manager and a set of alterations to this element logged in the Audit History view.
The System Output view can be accessed from the main menu View | System Output (Ctrl+Shift+8).
Figure 18: Audit History view open to highlight a change in the Specification Manager
For more information on using the Auditing features see the Auditing Help topic.
Using Baselines
The auditing feature outlined above provides continuous tracking and logging of changes to
requirements. The Baseline Management feature provides additional support for comparing and
merging changes. It allows Baselines of a model to be created on a periodic basis (such as by month,
phase, version or build). Baselines can then be compared to the current model and changes selectively
rolled back.
Baselines can also be used for 'Branching' by creating a duplicate repository (a Branch). After updating
the requirements model in the Branch repository the changes can be merged back to the source
repository using the 'Load other Baselines' feature.
For more information on setting up baselines and viewing differences see the Package
Baselines Help topic.
The Maintenance window can be accessed from the main menu using: Element | Maintenance or
(Alt+4). Figure 19 is an example of a set of changes listed for an element:
The common use of the Maintenance window in Requirements Management is for logging - internal
to the requirement element – any detailed Requirement-Issues and Change-Requests. These can also be
logged by linking to external elements of these same types.
RE Q 0 1 4
-Sho pp i n gBa sket
REQ01 2 - Pro vid e
On li n e Sal es
Iss0 01 - Co m p an y
re qu i res b an k
transa ctio n
Internal Requirements
As an alternative to using requirement elements, Enterprise Architect allows you to enter requirements
within an individual UML element. At this level these requirements can best be thought of as the
‘responsibility’ of the element.
Multiple internal requirements may be defined within any element from the properties window (double-
click the element). Figure 21 displays a single requirement defined within a Use Case element.
Internal requirements can be externalized (see the Move External button above). This will create a
new external requirement element with a Realization relationship back to the original element (in this
scenario – a Use Case element).
The definition of internal requirements within elements, such as Use Cases, gives a simple
introduction into the more complex requirements definitions using external requirements.
This feature became a trend very early in UML modeling. Although the use of external requirements
on a higher level of abstraction to use cases has become more popular, the internal requirements can
still be a useful feature.
Tips and tricks
Even if the element doesn’t have internal responsibilities, it will typically have external
requirements. These will be displayed in the list, with the column ‘External’ displaying ‘Yes’.
As stated above, while working with an element you may define an important internal
requirement. To ensure that this is captured and included, you can optionally move the
requirement external (by using the Move External button). This creates a custom requirement
type and will request a package that the new requirement should be placed in.
To copy an existing document template for editing see the New option under Manage your Custom
templates on the RTF Templates Help page.
Implementation report
The Implementation report shows:
• Lists of elements that can be realized by other elements in the model, and
• Other model elements that realize them.
To access the Implementation report, select from the main menu Project | QA Reports & Metrics and
click on the Implementation Details tab.
Common uses
To locate all elements that should have realizations.
© Sparx Systems 2014 Page 25
Requirements Management with Enterprise Architect
Enterprise Architect
Visual Modeling Tool
http://www.sparxsystems.com/
Dependency report
The Dependency report lists the elements that have a dependency on another element. This is very useful
for checking the dependencies placed on requirements. To access this, select from the main menu Project
| QA Reports & Metrics and click on the Dependency Details tab.
Ensure the View notes option is set using the View Notes icon:
Using the context menu there are also options to create RTF reports or directly print text reports from the
Package Browser.
Use this for complying with an industry, organization, project process, or standard that
prescribes a list of requirement types. For example, the IEEE’s Guide to Software Requirements
Specifications.
Common Uses
Gives a clear diagrammatic view of the status that each requirement has reached.
When a project member starts to create new elements in the analysis or design disciplines, it is
useful to use this technique to ensure the new elements have a purpose in the model, and are
being built because they realize some requirement.
Once completed, this spreadsheet is saved as a CSV format file. For example, if you are using Excel as
the spreadsheet application, you would simply select File | Save As, in the field – Save as Type: Select
*.CSV.
Import into Enterprise Architect
To import the file into Enterprise Architect, you need to create a CSV import structure that corresponds
to the columns in the CSV file. To do this, select from the main menu Project | Model Import/Export |
CSV Import/Export Specifications.
This will return the following window:
Note: The order of the elements in the file specification must match the order of
the columns in the spreadsheet.
Assuming the spreadsheet has been saved to a CSV format, you can now import it into Enterprise
Architect. It is recommended to first create a new package in Enterprise Architect that will contain the
imported elements.
To start the import process, select from the main menu Project | Model Import/Export | CSV
Import/Export. This invokes the following window ready for you to enter information needed to perform
the import.
To run the import, you need to fill in the fields as shown in Figure 26:
o Specification: The CSV format that was defined above should now be selectable from this
drop-down field.
o File: Insert the file location of the CSV file created from the spreadsheet.
o Action: Set the action to import.
Select Run to start the import process.
The data imported will be placed in the currently selected package. Figure 27 is a Project Browser view
of the data imported (via CSV) from the spreadsheet above.
Once imported, the requirements can then be placed in different packages by dragging the elements in
the Project Browser to their correct package.
To import a hierarchy, in the CSV specification you need to tick the: [x] Preserve hierarchy option as
shown in Figure 28:
The table below contains sample data that reflects the text-formatting used with the above specification:
Figure 29 is a Project Browser view of the hierarchy imported using the above CSV file.
Tip: The above text-table can be copied to a spreadsheet and used as a starter
for a hierarchical requirements document. The final spreadsheet needs to be
saved in .csv format ready for import into Enterprise Architect.
Where there needs to be a more automated means of importing requirements in CSV format, supplied
with Enterprise Architect are base-level scripts that provide a foundation for your own user-defined
method of importing in a CSV format. For more details see the Scripting view (Tools | Scripting)
EAScriptLib | Jscript-CSV
Figure 30: Scripts available for automating your own CSV import/export
To do this you simply block the header and text in the external application and drag this onto a
Requirement diagram to create a Requirement element. The first line of text is passed to the element
name. Any other lines of text are passed to the notes.
Figure 31 shows an example of an element created from a text document (green), along with the steps
for dragging text from an external document onto a diagram to create new requirement elements (orange
line).
This is very useful for selectively importing text from a document with requirements grouped amongst
other detail not required in the model.
You can then select appropriate keywords in the Document Artifact (or Linked Document) and create
Analysis or Requirement elements directly, using the context menu. In this way, you also achieve
traceability between the original requirements document and the model.
This process of dynamically creating elements from text establishes a hyperlink from the entry in the
document to the corresponding element in the model hierarchy. The hyperlink allows you to trace
directly from the text-based definition to the associated meta-data that are subsequently defined in the
semantic model (such as detailed notes, constraints and status). Figure 32 is an example of the source
text in a Linked Document and the elements created from, and linked to the text.
To create an Element from your text simply block select some text, right-click and in the context menu,
select: Create | New – then select an Element-type from the list of element type options.
Options two and three above allow for external documents to be imported using the Linked Document
editor menu. This import option is accessible by using a right-click on the body of the document and
selecting: File | Import.
Common uses
To attach a textual document that describes the requirement or Use Case. Organizations often
require Use Cases to be described using text. In these situations it is beneficial to make the
document available by attaching it from within Enterprise Architect.
Formal business specifications including regulatory constraints and legal requirements may be
attached as files making them available for all project members to view.
Staff Member
Manage Contacts
Figure 33: Use case diagram showing actors and use cases.
To define the people and other systems that will use the system
To document the way the business process is performed, and
To provide the basis for the user documentation, help system or manuals.
Defining Scenarios
The use case Properties dialog allows you to specify Attributes that apply to the use case as well as
detailing the scenarios. Double clicking on a use case element and selecting the Rule | Scenarios page
allows you to define a structured specification of the scenarios covering a use case.
Figure 34 shows an example of the Basic Path for a Use Case Scenario.
For more details on using the Structured Scenarios see the Scenarios Help page.
Figure 35: Element notes showing a reference to a glossary term and the
glossary entry of this term.
Common uses
Provide definition of process-related terms, such as the definition of a formal requirement or a
process worker.
Tips and tricks
Consider reusing the glossary from a previous or related project. The common terms that relate
to your domain can be included in a base project (this can be exported from one repository and
imported into another repository using the option on the main menu Project | Model Import
Export | Export Reference Data and Project | Model Import Export | Import Reference data).
When creating new reports using the RTF generator consider adding the glossary as an appendix
to some of the key documents to be generated.
For more details see the Project Glossary and the Notes Help pages.
In the example above, the Tagged Value selected, called 'Review Status', uses a predefined type to
display a drop-down list of selectable options. In the detail area it contains:
Type=Enum;
Values=Not Reviewed,Accepted,Rejected;
Default=Not Reviewed;
Figure 37 shows this as viewed in the Tagged Values window as a drop-down option box.
There are numerous standard types available, such as numeric and string types, Enumerated lists (see
above), Date-Time, Boolean and Memo.
For more information on setting up the standard types, and a list of types available see the Predefined
Structured Types Help page.
Defining a Profile
Profiles allow you to define a set of extensions to standard UML elements using your own predefined
Tagged Values. Using a Profile you can define multiple requirement types each with its own set of
Tagged Values.
To define a new element type we use a Profile, created using the Profile Helpers. For more detail on
using these see the Using Profile Helpers Help topic.
Figure 38 shows a simple Profile for creating an element type that includes Tagged Values. Two of
these are drop-down selections (Priority and ReviewStatus).
To define the drop-down selections this profile includes two Enumeration elements (Priority and
ReviewStatus). These are referred to within the Element.Attributes of SystemRequirement.
These Attributes are rendered as Tagged Values, as shown in Figure 39.
Figure 39: A SystemRequirement (see Figure 38), showing the Tagged Values
A new toolbox with the name of your profile package will be added to Toolbox | More Tools.
For details on implementing this as an MDG technology across multiple repositories see the MDG
Technologies SDK Help topic.
Glossary of terms
There are several terms used in this document which you may not be familiar with. The following is a
list of terms, and how they relate to Requirements Management and Enterprise Architect.
• Element – A generic term referring to a singular object in a model. Some of the common
elements you will come across include requirements, actors and systems.
• External requirement – A requirement that is modeled as an element.
• Internal requirement – A requirement that is modeled as the 'responsibility' of an existing
element.
• Model – A representation of a particular system, such as a business process or a database.
• Diagram – A common way of representing the way in which models and elements interact.
The currently open diagram is usually located in the center of the Enterprise Architect
interface.
• Attributes – Data fields containing information within requirement elements.