The document discusses structuring use case models to enable component reuse. It states that identifying reusable use case components early allows building application systems faster by expressing requirements, analysis, design, and implementation models in terms of corresponding components. Reusing use case components provides benefits like effectiveness, quality, predictability, uniformity, and rapid learning. Component systems should provide well-designed use case components with consistent terminology to help stakeholders capture requirements and engineers develop systems.
The document discusses structuring use case models to enable component reuse. It states that identifying reusable use case components early allows building application systems faster by expressing requirements, analysis, design, and implementation models in terms of corresponding components. Reusing use case components provides benefits like effectiveness, quality, predictability, uniformity, and rapid learning. Component systems should provide well-designed use case components with consistent terminology to help stakeholders capture requirements and engineers develop systems.
The document discusses structuring use case models to enable component reuse. It states that identifying reusable use case components early allows building application systems faster by expressing requirements, analysis, design, and implementation models in terms of corresponding components. Reusing use case components provides benefits like effectiveness, quality, predictability, uniformity, and rapid learning. Component systems should provide well-designed use case components with consistent terminology to help stakeholders capture requirements and engineers develop systems.
STRUCTURING THE USE CASE MODEL TO ENSURE COMPONENT REUSE To ensure component based development at all stages, from requirements capturing to implementation, it is critical to identify the most feasible components to reuse. If we want to get high levels of reuse, we want the requirements to match the available use case components. Contd.. We will also need to structure the application use case model carefully to match the use case components. The sooner we can identify a component and integrate it into an appropriate model of the application system, the faster and more accurately we can build the target system. The reuse business does this by providing reusable use case components within the component systems. Contd. If start by reusing use case components to build the use case model, we set the stages for later being able to more easily express analysis, design and implementation models in terms of corresponding components that are known to work together. On the other hand, if we do not express our specific use case model in terms of the use case components, we will find it harder to reuse object components in the later models. HOW USE CASE MODEL SHAPES THE SYSTEM The use case model defines what a system should do for its users. The use case model is used during requirement capturing by the stake holders as they decide what the system should do. It gives the behavioral representation of the system. Contd In use case model, users of the systems are known as actors. Each actor defines a distinct role assumed by a person or a machine interacting with the system. Each way an actor uses the system is a distinct use case. Each use case defines a set of interactions with the system.
Components of use case model Actors Use cases Relationships ( interactions and connections) Contd.. The use case model must define how responsibilities are allocated to actors and use cases. A responsibility is something that an actor or use case needs to do or keep track of as the system is used. Examples of use cases: User login Withdraw money Example: UCD for ATM
REUSING COMPONENTS TO BUILD THE USE CASE MODEL Use case components can be reused during requirements capture by treating the component systems as a toolbox of reusable model elements. Each use case component defines some system responsibilities in problem oriented terms. If a particular use case component is reused, then its corresponding type and class components should be considered for reuse in later development phases. Contd.. There are several reasons to reuse use case components. By this a stakeholder will gain following benefits: Effectiveness Quality Predictability Uniformity Rapid learning Effectiveness: The use case components can be used as a toolbox expressing system functionality. Stake holders can capture requirements faster and more accurately by picking and choosing among predefined use case components. Quality Stakeholders can improve the quality of the requirements captured by reusing certified use case components.
Predictability Project estimates can be improved by reusing use cases, since more will be known about how to implement them. Most use case components come with mappings to the analysis, design and implementation models. Uniformity By reusing the same use case components in several application systems the engineers will design systems in a uniform way. The use case components provide a common shape and set of functionality for each application system. Rapid learning The use case provide usage-oriented documentation of the component system. This documentation allows new engineers to learn more quickly how to design applications from the component system. They can see how the component system is intended to be used by looking at the use cases. DESIGNING THE USE CASE COMPONENTS FOR EFFECTIVE REUSE When we engineer a component system, we must ensure that we really meet the needs of the component reusers. By identifying use case components the component engineers can build the right object models for the component system. Contd.. The terminology used to describe the actors and use cases is very important. A common and consistent glossary of terms used to describe the problem requirements and features should be developed as component systems are created, and also used as application systems are engineered.
Contd. Careful use of the terms help reusers distinguish and relate variants. Each component should have its own glossary of terms. Some of those terms will be used to describe the components exported from the component system, and will help reusers understand how to use it. Domain dictionary A subset of the glossary is described in one of the documents attached to the faade, this glossary will be known as domain dictionary if we are doing domain engineering. In the case of multiple facades, each faade might provide a separate document of key terms.
Contd.. This glossary is also useful later when developing object models of a system. The use of standard terms to name components and variants will help reusers to relate the components to the use case models and requirements. When developing the analysis, design, implementation, or testing models of a component system, use cases serve just as they do for application system.