Information Technology Reference
In-Depth Information
Figure 7.4
Dependencies Between High-Level Tasks in Software Development
2
Systems
development
Systems
use
System
1
Requirements
development
Coding,
testing, etc.
Requirements
Note: Solid lines indicate decomposition of a task into subtasks. Dotted lines indicate a flow of resources and
therefore a producer-consumer dependency.
a buser can be paged when the table has been vacated and is waiting to be bused. These changes
can be employed in combination: for example, in a restaurant that employs runners, the waitstaff
can be paged to meet the runner at tableside to make the final presentation of the food, thus main-
taining the appearance of a single server.
In summary, this example illustrates the main uses of CT. A process can be analyzed in terms
of the dependencies among resources and tasks and the current coordination mechanisms identi-
fied. This analysis can then be used to suggest alternative processes, created by substituting one
coordination mechanism for another.
EXAMPLE: COORDINATION IN SOFTWARE REQUIREMENTS ANALYSIS
As a second more substantive example, we present a coordination theory analysis of the software
requirements analysis process, drawn from Crowston and Kammerer (1998). Requirements analy-
sis is the stage in the software development process of determining what functionality and inter-
faces a new system should have. Figure 7.4 places the requirements analysis process in the context
of the overall software development process. This stage is especially important because it estab-
lishes the framework for the rest of the development effort. Early mistakes become increasingly
more difficult and expensive to fix later in the process, so an inadequate requirements definition
will have adverse effects throughout the development process and beyond (Pressman, 1982).
Dependencies in Software Requirements Analysis
A CT analysis involves identifying the dependencies that arise in this process and the coordina-
tion mechanisms being used to manage them. The primary tasks in requirements analysis are
translating domain knowledge, such as customers' statements of their needs or descriptions of
interacting systems, into requirements that can be used to develop software. In addition, these
requirements need to be checked to ensure they are complete and consistent both with each other
and with prior decisions about the system. Resources include the knowledge and effort of the ana-
lysts, other people whom the analysts consult and other sources of information. Between these
tasks and resources, numerous dependencies are possible.
Search WWH ::




Custom Search