Before defining Reference Architecture, it is better to have some idea about software architecture. Software architecture has various definitions which are derived from different sources. It ranges from designing, creating and maintaining all the code of large computer systems to incorporating all the functioning of the physical and logical components of enterprise systems as well. It is a combination and interaction of all the components (software and hardware) to make a complete system specific to different business needs.
The Reference Architecture and Fit/Gap analysis is a short of document stating the Reference Architecture to be used as the basis for the current project’s architecture and including the rationale for this decision. It is also a analysis process to understand the reference architecture and its implementation.
A Reference Architecture is a predefined architectural pattern designed for use in particular business and technical contexts.
Source of Reference Architectures within an organization can be any proven framework and asset used in earlier projects. The work product is generic and applies equally to selection of Reference Architectures from other sources.
The most important part of a Reference Architecture is to understand the fitness and gaps found during analysis.
A Reference Architecture Fit/Gap Analysis tabulates the key factors involved in selecting a Reference Architecture:
- Business scenarios
- Business drivers
- Architecture characteristics
Asset selection involves tradeoffs. Reference Architecture Fit/Gap Analysis documents the differences between the desired project architecture and the reference architecture in a statement-of-fit and identifies modifications required for the project.
Now let us check the purposes Fit/Gap analysis in Reference Architecture model. The Reference Architecture Fit/Gap Analysis are used for the following
- To assist in determining the scope of a proposed solution development project
- As an input to other architecture work products. Depending on the size of the gaps, the chosen Reference Architecture and associated fit/gap analysis may form the basis for the whole architecture.
- To highlight any gaps where the Reference Architecture does not fit project requirements. These indicate areas of risk or substantial architectural work required in the project. It also helps to select the reference architecture for the proposed project.
Impact of Not Having Reference Architecture
Selecting a Reference Architecture reduces the risk by reusing proven, best-practice solutions. Not applying a standard Reference Architecture increases project effort and cost, and increases the risk of project failure.
The best way to use architectural assets is to start by selecting a Reference Architecture. This will form the context for a more detailed selection of assets and guidance.
Reasons for Not Using Reference Architecture
On asset-based projects, this product should always be produced.
If appropriate Reference Architectures are not available to a project or a project decides not to use a Reference Architecture, then at most the Executive Summary, including reasons why a Reference Architecture was not selected, should be completed. Often even this is unnecessary. A note can be added to the documentation of the choice of work products.
How Fit/Gap analysis is documented
A Reference Architecture Fit/Gap Analysis is basically textual document, with tables assessing the requirements characteristic profile and subject area coverage. The tabular form describes all the required points to get a clear picture of the referred architecture and its fitness in the proposed project.
Executive Summary: Brief statement of selected Reference Architecture and any major issues/risks.
Introduction: Introductory comments about the reference architecture.
Key Drivers: A brief statement of the business objectives or constraints.
Architecture Requirements Checklist: The document consists of a standard set of questions and potential answers regarding architectural requirements, which allows a systematic collection of the architectural requirements for the project. This set is used as a checklist to prompt for customer architectural requirements and associated issues, which are documented in a table, as below. This is a sample table and it can be of a different format according to the standard of the organization.
|Requirement||Reference Architecture Characteristic||Required Value for Project||Risks/Issues/Comments Points to Investigate|
|Requirement name||Relevant range of values for this architecture||Range applicable to the customer||Any gaps, risks, likely future issues, topics for subsequent analysis|
Subject Area Checklist:Each Reference Architecture encompasses several subject areas (sometimes referred to as “domains”). Subject areas are specific areas of concern, for example, the web based delivery channel is a subject area consisting of Web browsers, domain name servers, etc. A simple and clear way of examining the “fit” of a Reference Architecture to customer requirements is to compare it to the subject area coverage. Following is a table for capturing the details.
|Present in Architecture?||Required by Customer?||Issues/Risks/Notes|
|Name of subject area||Yes/No||Yes/No|
Statement of Fit:A summary of the extent of “fit” between the Reference Architecture and customer requirements. Each Reference Architecture is described at several levels of abstraction, and guidance is provided at each level on the characteristics supported. For each area where the Reference Architecture does not meet requirements, describe briefly:
- The unmet requirement. This is very important for selecting the reference architecture.
- The type and extent of delta that would be requisite for the Reference Architecture to meet the requirement. Also mention if it needs to be extended, modified, or receive a new subject area?
- An estimate of the cost and risk of the delta
The following steps should be taken in generating this work product:
- Identify the most likely Reference Architecture candidate. As there are a small number of Reference Architectures, each with a well-defined focus, it should be simple to identify one or two as relevant to the customer’s project goals and future business model.
- Review the description of the asset context, which is provided in both textual and illustration form, with the customer to assess fit. The illustrations, in particular, are a powerful way of checking customer understanding of the proposed approach. During this process, the customer may decide to modify his previously stated requirements, for example, through recognition that the architectural pattern provided by the Reference Architecture is superior to the one he had previously envisaged.
- Use Business Drivers, IT Principles and Requirements lists to characterize customer requirements Check with the customer on whether there are any other important requirements that have not been covered by the standard characteristics.
- Examine the fit of the requirements with the characteristics provided by the Reference Architecture at various levels of abstraction.
- From the asset base, identify the subject areas covered by the Reference Architecture. Compare these with the subject areas required by the customer.
- Analyze the fit between the Reference Architecture and the customer requirements. Document all gaps, and make initial assessments with the customer on how these shortcomings will be resolved. This may involve:
- Extending the architecture (e.g., linking to an additional subject area)
- Modifying the Reference Architecture (i.e., changing its internal structure or behavior)
- Document the rationale for each of these decisions in terms of assumptions, business justification, risks, etc.
- Make an overall assessment of viability and risk based on the information available at this point.
Validation and Verification
Perform the following checks:
- Verify that the customer has approved the criteria used to compare and choose the Reference Architectures.
- Verify that all major requirement areas of the customer have been considered.
- Verify that critical dependencies of the architecture in the target environment can be met.
- Validate any tradeoffs being made with the customer and Asset Providers with the following criteria.
- Verify that the architecture is resilient to anticipated changes.