98 Patterns: Implementing Self-Service in an SOA Environment
3. Architectural design
The next step is to create a design model to define the architecture and
implementation choices for the application. The design model builds on the
analysis model by adding details about the system structure and how
implementation will occur. Classes that were identified in the analysis model
are refined to include the implementation constructs.
You can use a variety of diagrams for this purpose, including sequence, state
machine, component, and deployment diagrams. It is during this stage that
you can apply proven design patterns and automated model-to-model
transformations.
򐂰 Implementation
Developers transition from design to implementation by using automated
transformations to convert the model to code (such as Java, EJB, or C++)
and by continuing to develop and deploy the application by using software
and Web development, debugging, testing and deployment capabilities.
The Modeling perspective is the primary workbench interface for working with
models.
5.5.4 Asset-based development
As business needs are increasingly solved using more and more complex
software solutions, it has become apparent that many of these solutions are
created using the same integral key components structured in a similar manner.
The idea that the same actions can be performed over and over in a variety of
ways to create a solution has given rise to many of the fundamental concepts
used in software development today, namely the use of patterns to structure
solutions, and the reuse of assets within a context to build the key components of
a solution.
Asset-based development embodies the idea of developing solutions by reusing
defined and documented assets. These assets are made up of software artifacts
that detail the requirements, design elements, development and testing process,
and deployment requirements. Reusing these assets streamlines the
development process and leverages previous investments.
The success of asset-based development within a department, organization, or
on a more widespread basis, the community, lies in the ability to identify potential
assets for reuse. Once a potential asset is identified, often through repeated
experiences during development and deployment processes, it must be defined
and made available for reuse by storing it in a central repository.
Chapter 5. Product mappings and product overview 99
Potential consumers browse the repository for assets they can use.
Documentation, an integral part of each asset, is key to the successful use
effectiveness of an asset. The documentation details not only how the asset is to
be used, but should give enough information that a potential consumer knows if
the asset is appropriate for their use.
As a final step, feedback to the managers of the asset will help in tracking the
effectiveness and value of the asset.
Figure 5-6 Asset-based development cycle
The following platforms deliver asset-based development:
򐂰 Rational Unified Process (RUP) has defined processes for producing and
consuming assets.
򐂰 The IBM Software Development platform has incorporated asset-based
development capabilities into its products. Rational Software Architect and
Rational Software Modeler both contain tools for producing, consuming, and
managing assets.
The Reusable Asset Specification (RAS) defines a standard way to package
assets and describe their contents. Rational Software Architect provides a
reusable asset (RAS) perspective for working with reusable assets.
Asset
Production
Asset
Identification
Asset
Consumption
Asset
Management
Asset
Repository
Asset
Artifact
Artifact
Asset
Artifact
Artifact
Asset
Artifact
Artifact
Candidate Asset
Feedback
Feedback

Get Patterns: Implementing Self-Service in an SOA Environment now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.