|
From: Frank V. C. <fr...@co...> - 1999-12-13 14:38:33
|
Following is the process that will be used by CoreLinux++ in regards to Requirements moving into Analysis, as well as what the analysis will achieve. I will follow this in latter posts with From Analysis to Design and From Design to Implementation. THIS IS OPEN FOR DISCUSSION!!! I just felt we needed to start drawing the lines in the sand as to the rules of engagement (ROE). Following any changes to this, I will begin to add this to the CoreLinux++ OOA/OOD document. From Requirement to Analysis ======================= 1. All things start with a Requirement statement (e.g. CoreLinux++ should have a Thread class) regardless of the origin. If it is not entered into the Source Forge CoreLinux++ Requirements Forum, it will be placed there and assigned a Requirement ID (the Requirement Forum message identifier). 2. All Requirements will be discussed for acceptance (review). 3. If we decide that NO, it is not a valid requirement (scope exceeds the goals of the Project for example), it will be marked as INVALID with an explanation. 4. Requirements that are accepted will need a Requirement document. I will detail this in a later post. 5. Once a requirement has been checked in it will move into the Analysis queue and assigned a Task Identifier from the CoreLinux++ Analysis task control in Source Forge. 6. A directory will be created with the Task Identifier as part of the name (TBD) and captured in CVS. 7. Analysis will proceed starting with Use-Case Modeling. In use-case modeling, the system is looked upon as a "black box" that provides use cases. How the system does this, how the use cases are implemented, and how they work internally is not important. In fact, when the use-case modeling is done early in the project, the developers have no idea how the use cases will be implemented Use case objectives are A. To decide and describe the functional requirements of the system, resulting in an agreement between the team members. B. To give a clear and consistent description of what the system should do, so that the model is used throughout the development process to communicate to all developers those requirements, and to provide the basis for further design modeling that delivers the requested functionality. C. To provide a basis for performing system tests that verify the system. For example, asking, does the final system actually perform the functionality initially requested. D. To provide the ability to trace functional requirements into actual cases and operations in the system. To simplify changes and extensions to the system by altering the use-case model and then tracing the use cases affected into the system design and implementation. 8. The actual work required to create a use-case model involves defining the system, finding the actors and the use cases, describing the use cases, defining the relationship between use cases, and finally validating the model. 9. The use-case model consists of use-case diagrams (tool TBD) showing the actors, the use cases, and their relationships. These diagrams give an overview of the model, but the actual descriptions of the use cases are typically textual. Both are important! 10. The use-case model will be used to realize the use case. The UML principles for realizing use cases are: A. A use case is realized in a collaboration: A collaboration shows an internal implementation-dependent solution of a use case in terms of classes/objects and their relationship (called the context of the collaboration) and their interactions to achieve the desired functionality (called the interaction of the collaboration). B. A collaboration is represented in UML as a number of diagrams showing both the context and the interaction between the participants in their collaboration. Participating in a collaboration are a number of classes (and in a collaboration instance: objects). The diagrams are collaboration, sequence, and activity. The type of diagram to use to give a complete picture of the collaboration depends on the actual case. In some cases, one collaboration diagram may be sufficient, in other cases, a combination of different diagrams may be necessary. C. A scenario is an instance of a use case or a collaboration. The scenario is a specific operation path (a specific flow of events) that represents a specific instantiation of the use case. When a scenario is viewed as a use case, only the external behavior toward the actor is described. When a scenario is viewed as an instance of the collaboration, the internal implementation of the involved classes, their operations, and their communication is described. --- Frank V. Castellucci http://corelinux.sourceforge.net OOA/OOD/C++ Standards and Guidelines for Linux http://www.colconsulting.com Object Oriented Analysis and Design |Java and C++ Development |