prototyping, and modeling
Requirements engineering is more difficult now, because all systems that were easy to specify have been built some time ago.
T. DeMarco [DeMa01]
In this chapter, we explain why the definition of requirements can be a very critical aspect of any project. Recognizing its limitations and pitfalls, and taking the proper precautions, can reduce the risks of any development project. For this, more than any other activity, a purely technical view is not sufficient.
2.1 Definitions and importance
Requirements definition is the process that determines the properties a particular system should have. The requirements process generates the information on which the design will be based. For this, you have to know where a system is to be used, by whom, and what services it should provide. It is also important to determine what trade-offs can be made in case of conflicting requirements. We assume that each system has a set of useful functions that are crucial for its success.
The concern for the importance of requirements definition arose rather late in our industry. Firstly, there was the concern for implementation languages, then for verification and testing, and finally for design and requirements definition. This corresponds to the personal evolution of most people. Only after they feel that they have the final activities under control do they look for potential problems in the early activities. As biologists say, ‘Ontogeny repeats phylogeny’, the development of the individual repeats that of the species.
The parties participating in the requirements definition process are collectively referred to as stakeholders. If the system is being built for a known customer, requirements may be the basis for a development contract. If the customer is initially unknown, the marketing organization may assume this function. At first, requirements are discussed at the application level. It is
Definitions and importance
not always initally clear whether they will be implemented in hardware or in software, or performed by humans. Requirements should therefore always be considered as system requirements. Software requirements are only a part of them. They are determined after the system requirements, or derived from them. The results of the requirements definition process are documented in the requirements specification. Sometimes the term ‘objectives’ is used for this document. The requirements definition process is frequently referred to as ‘systems analysis’ or ‘requirements engineering’. Prototyping is an activity intended to build a partial replica of a system comprising a subset of functions and using methods and materials that may be inappropriate for the final product. A prototype is executable and will usually accept the same type of inputs as the actual system and will produce the expected output. The development of a prototype should be considerably faster and less expensive than the actual product. Therefore the term rapid prototyping is used frequently. If developed, it should be available much earlier than the actual product. A prototype should not be confused with a pilot. Pilot projects are normally done to gain experience with a new methodology, such as object-oriented design or a new programming language. A pilot project may or may not involve a prototype. Modeling is a method to describe a system in a way that makes particular properties visible or allows some automated analysis. To use an economist’s definition [Baum01]: ‘A model is a representation of a theory or part of theory, often used to gain insight into cause and effect’. If we are unable to build a model, then our theory about how things relate or interact is inadequate. For an artifact still in the process of being created, the model depends on how we think the artifact should be. The quality of a model depends on how close it comes to reality and how well it explains the properties in...
Please join StudyMode to read the full document