Documenting Software Architecture
Documenting Software Architecture
Presentation Topic:
Documenting Software Architecture
Represented by:
Saba Naaz
CMS # 249
Jeveria Qurat-Ul-Ain
CMS#252
Documenting Software Architecture
Software Architecture:
The software architecture of a program or computing
system is the structure or structures of the system, which
compromise the software elements, the externally visible
properties of those elements, and the relationship among
them.
Documenting Software Architecture
Introduction:
The architecture serve as a basic for both a system and the project
developing it.
It defines the work assignments that must be carried out by design and
implementation teams and it is the primary carrier of system qualities
such as performance, modifiability and security-----None of which can
be achieved without a unifying architectural vision.
Documentation is decidely not a case of “one size fits all”, it should be sufficiently
detailed to serve as a blueprint for analysis.
All of this tells us that different stakeholders for the documentation have different
needs , different kinds of information, and different treatment of information.
Documenting Software Architecture
Documentation that was easy to write but is not easy to read will not be
used, and “easy to read” is in the eye of the beholder or in this case the
stakeholder.
Documenting Software Architecture
Views:
We define a software architecture for a system as “The software
architecture of a program or computing system is the structure or
structures of the system, which compromise the software elements, the
externally visible properties of those elements, and the relationship
among them.” And we said that a view is a representation of a coherent
set of architectural elements, as written by and read by system
stakeholders. A structure is the set of elements itself, as they exist in
software or hardware.
Documenting Software Architecture
Documenting a view:
There is no industry standard template for documenting a view, but the seven
part standard organization that we suggest in this section has worked well in
practice.
First of all whatever sections you choose to include, make sure to have a
standard organization. Allocating specific information to specific sections will
help the documentation writer attack the task and recognize completion, and it
will help the documentation reader quickly find information of interest at the
moment and skip every thing else.
Documenting Software Architecture
Documenting a view
For example you may wish to show the elements and relations that come
into play during normal operation, but relegate error handling or
exceptional processing to the supporting documentation.
Documenting Software Architecture
Documenting a view
3. Context diagram shows how the system depends in the view relates
to its environment in the vocabulary of the view.
Documenting Software Architecture
Documenting a view
Documenting interfaces:
1. Interface identity: When an element has multiple interfaces, identify the individual
interfaces to distinguish them. This usually mean naming them.
2. Resources provided: The heart of an interface document is the resources that the
element provides. Define them by giving their syntax, their semantics and any
restriction on their usage.
Resource syntax: This is the resource’s signature. The signature includes
any information another program will need to write a syntactically correct
program that uses the resource.
Documenting Software Architecture
A Template for Documenting interfaces
Resource semantics: this describes the result of invoking the resource. It might
include
Assignment of values of data that the actor invoking the resource can access. It
might be as simple as setting the value of return argument or as far reaching as
updating a central database.
Events that will be signaled or messages that will be sent as result of using the
resource.
How other resource will behave in the future as the result of using this resource.
In addition, the statement of semantic should make it clear whether the resource
execution will be atomic or may be suspended or interrupted. The most
widespread notation for conveying semantic information is natural language.
Documenting Software Architecture
A Template for Documenting interfaces
8. Rationale and design issues: As with rationale for the architecture at large,
the architect should record the reasons for an element’s interface design.
Documenting Software Architecture
View Catalog:
A view catalog is reader’s introduction to the views that the architect has chosen to
include in the suite of documentation.
There is one entry in the view catalog for each view given in the documentation
suite. Each entry should give the following:
View Template:
A view template is the standard organization for a view.
It helps a writer organize the information and establish criteria for knowing
how much work is left to do.
Documenting Software Architecture
This section provides the information about the system whose architecture is
being documented, the relation of the views to each other, and an index of
architectural elements.
System Overview:
This is short prose description what the system’s function is, who its users are
and any important background and constraints.
Mapping between views:
Since all of the views of an architecture describe the same system, it stands to
reason that any two views will have much in common.
Documenting Software Architecture
What The Architecture Is
Element List:
The element list is simply an index of all of the elements that appear in any
of the views, along with a pointer to where each one is defined.
Project Glossary:
The glossary lists and defines terms unique to the system that have special
meaning. A list acronyms and the meaning of each, will also be appreciated
by stake holders.
Documenting Software Architecture
Conclusion:
An architecture is worthless if nobody can understand what it is or how
to use it. Use the stakeholder to help chose the relevant views.