Message:
There doesn't seem to be a 'presentation' theme. Try dropping the suffix from the requested page name to use the default theme.
Project presentation
"Mine is an architecture documentation project"
I started with the goal of completing what I called a 'case study'.
Something was missing
What I came up with is a general model for writing architecture documentation.
Early in the semester we were asked to read the prologue to the book "Documenting Software Architectures: Views and Beyond", which presented this list of 'Rules for sound documentation':
Documentation should:
Are these rules enough?
From the same reading assignment we have this definition
Architecture is what makes the sets of parts [of a system] work together as a successful whole. Architecture documentation is what tells the developers how to make it so.
We are told that architecture documentation should be:
And that it should serve as:
The "IEEE Recommended Practice for Architecture Description and Software-Intensive Systems" (IEEE Std 1471-2000)
presents four scenarios "intended to suggest the range of uses of the recommended practice"
These scenarios...
This is my list of critically important concepts:
All of these figure prominently into my approach and the resulting model.
If one thing is clear from what we've discussed in this class it's that the work we set out to do is difficult and it isn't getting any easier.
For all of the problems we had with the autonomous computing paper, here is a quote from the article that no one was bothered by enough to refute:
Computing systems' complexity appears to be approaching the limits of human capability, yet the march toward increased interconnectivity and integration rushes ahead unabated.
Though not the answer to all of our software complexity woes, we can
by improving the tools and techniques we use to document software systems.
Easier doesn't necessarily mean easy.
We have few well established patterns for dealing with documentation.
There are many questions that must be answered before we can hope to do an adequate job with architecture documentation.
These are not the only challenging questions.
The existence of multiple documents
It is not uncommon to find ourselves in a situation where we have multiple and competing documents, or multiple versions of the same document.
A one document approach may be interpreted as a single task.
Writers of technical documentation are often detached or isolated from the development groups.
Although the architecture documentation is intended to prescribe how a system should work, if it does not adequately describe the current behavior, it may be regarded as irrelevant
We are often unrealistic about the investment required and as a result do not set aside adequate resources for documentation.
The ability to write documentation well is a skill that not everyone involved in the development of software possesses, or practices.
We said early in the semester that software development is essentially linear, and that this may contribute to our inability to properly specify complex architectures.
Lastly, we may want to question some of the the assumptions that underlie the stated goals of architecture documentation.
How might we address some of these problems?
In my estimation must be able to:
Each documentation component is essentially a package of progressively more detailed versions of the documentation for one element of the architecture.
These include a wide variety of architectural elements related to the architecture
Anything we want to
Imagine that all of these documentation components arranged in a grid
The browser allows us to:
The browser does not show connections between documentation components.
We need another interface for composing views.
When we select any view (from an collection of views available in the browser), The documentation components of that view are highlighted.
If we choose to compose the view the browser's grid drops away.
By connecting the documentation components, we specify relationships among the documentation, in a way that is similar to what you might think of doing with an abstract ADL.
A view is a physical document in the sense that it can be printed, copied and shared.
The model supports two approaches to documenting relationships in the architecture.
This is a decision for the architect
They may be roles, or individuals (i.e. specific people) involved with the architecture.
Is it possible to anticipate the needs of all of these stakeholders?
They are reusable.
Is everything a documentation component?
The approach is intended to be nonlinear, flexible, and adaptive.
To this end it:
After reading the Rapide paper, the class talked about whether the strategy epitomized by that language is adoptable
Can we pursue architecture-based approaches without architects?
In comparison, I believe that the modest idea I'm proposing is adoptable now because it reflects the developer-driven organizational style that currently dominates software projects.
Because it is a documentation model it does not place any restrictions on or make any assumptions about the system itself.
Documentation can serve as a path toward architectural change.
Documentation bridges architecture and implementation level details, serving as a medium for communication between stakeholders.
The model addresses common logistical issues related to maintenance of documentation.
The model introduces only a minimal amount of overhead.
Information that is not included in the documentation takes on an active meaning.
I'm continuing to refine the model by building a 'prototype' that works roughly as described.
Ultimately the end result of this may be the development of a set of tools for creating, manipulating and presenting architecture documentation in a way that is consistent with the model as described.
Thank you