Much of the literature on requirements development talks of 'gathering' requirements, which implies that the analyst is walking through an orchard picking low hanging fruit. In practice the process is quite the opposite and the requirement analyst needs to have all the skills and tenacity of a detective to discover the sources of requirements. The requirement sources and the documents and artifacts that are discovered are first class citizens and can be modeled in Enterprise Architect to provide a register of the requirement sources. This is a list of common requirements sources:
- Interviews with users and other stakeholders
- Observations of users performing tasks
- Business Case or Proposal
- Concept of Operation or Vision document
- Procedure manuals and user task lists
- Enhancement Requests for the existing system
- Marketing material and product definitions
- Analysis of a market leader or competitor's products
Modeling Requirement Sources
Requirement sources are typically documents or other file based artifacts and are best modeled as UML Artifacts using Tagged Values to add metadata to the element to record such information as its type, location, who it is governed by and any other relevant properties. The document and files will typically be stored in a variety of places across an organizations networks, but so long as there is a file path or a URL they can be opened from within Enterprise Architect by a single key stroke. The artifact will be opened either inside or outside Enterprise Architect using the appropriate editor for the file type.
Creating artifacts to model requirement sources
Ensure you have a diagram open that will be the canvas where you will create the elements. Open a file system browser such as MS Windows Explorer and drag-and-drop the file to the diagram canvas.
A window will be displayed.
Select Artifact (External) from the window.
Enterprise Architect will add a new Artifact to the diagram and prompt you to enter a name.
Enter an appropriate name for the requirement source or leave blank to use the file name for the element name.