Ch 10 – Reconstructing Software Architectures - Rose

advertisement
Reconstructing Software
Architectures
CSSE 477 (SAD Two*)
Software Architecture
Week 4, Day 4, including
Ch 10 in Bass’s book
1
Today –
How’s Project 3 going?
Reconstructing Archs - Chapter 10 in SA (Bass et al’s book) 
(It’s what you’ve been doing documenting yours!)
Tonight – Turn in first architecture doc draft – I’ll give feedback over
the weekend, and you then resubmit next Tuesday with final part
of Project 3.
Coming up –
Monday –
Turn in Term Paper Topic.
Project 3 - Each team explain design changes and results
(5 min. presentations like before, with demo).
Tuesday –
Project 3: Turn in results and new version of document draft.
2
SA Ch 10 – Reconstructing Software Architectures
Most freedom – Lacks constraints imposed by prior work
Ch 9 in SA was -- What the Architect Does to create
a new system from scratch.
This is something software architects love to do
– “Greenfield projects”
Middle ground – Designing something much like
what you are used to. You borrow from an existing
architecture, conceptually or wholesale! E.g.,
“another payroll system.”
Today – Ch 10 -- What happens in the “Worst case”
– the reverse – You’re stuck with a system and don’t
know its architecture?
Sometimes called “Brownfield projects”
Perfect example of a
“Greenfield project”?
“Ok, team, next, we’re going
to write the software to fly a
blimp…”
Image of Airship Industries
Skyship 500 from web site
www.greenfield.ch/HomeD/
produkte/IG/airship.htm
Least freedom – All constrained by prior work, but hard to figure out how!
Quiz Q 1
3
Example from another world –
Utrecht, The Netherlands
Where’s that?
• If anything happens to any of the old city, they have the
plans for all of it.
A great
restaurant
I’ve been
to…
Quiz Q 2
4
Where is Utrecht, exactly?
• Sort of between Uppsala and London…
Utrecht also has a great university offering CS graduate programs in English. See
http://www.uu.nl/uupublish/homeuu/homeenglish/1757main.html.
5
SA Ch 10 – Reconstructing Software Architectures
Reasons for reconstructing (p. 232) –
To re-document architectures for some reason
E.g.,
Show conformance to standards
Capture business knowledge
To understand architectural dependencies
E.g.,
}
In CSSE 375 one
year, a team did
this, for an open
source system that
had no
documentation.
Why?
Leading to a new system
Decide if you can add on some new piece
To discover why it’s not working correctly
 The first year’s software architecture class did this with the Senior Projects –
What do you think their architectures were like?
Quiz Q 3
6
SA Ch 10 – Reconstructing Software Architectures
Ch 10 emphasizes the systematic approach you’d have to take to reconstruct a
large system’s architecture, from artifacts like source code --
What’s that?
The “Database” here is something you build from all the artifacts, as the basis
for analyzing them systematically.
Quiz Q 4
7
Ch 10 – Reconstructing Software Architectures
How to represent the knowledge about the architecture that you find…
“Rigi Standard Form” –
type subject object
The Subject does relationship Type to the Object
Part of a bigger system for reconstructing things and dealing with the semantics:
“Rigi is a system for understanding large information spaces such as software
programs, documentation, and the World Wide Web. This is done through a
reverse engineering approach that models the system by extracting artifacts from
the information space, organizing them into higher level abstractions, and
presenting the model graphically…”
See http://www.rigi.csc.uvic.ca/ for more info!
8
Ch 10 – Reconstructing Software Architectures
Here’s an image of the four steps in Ch 10’s process --
9
Ch 10 – Reconstructing Software Architectures
Exasperatingly – it all looks like much lower level stuff than what you want --
Quiz Q 5
10
Ch 10 – Reconstructing Software Architectures
And the static view of it doesn’t even tell you everything! --
11
Ch 10 – Reconstructing Software Architectures
When you do get a
view of something –
It’s about what
you’d expect, from
a system that’s
been hacked for a
good long while…
12
Ch 10 – Reconstructing Software Architectures
Even fairly “organized” data is interwoven --
13
Ch 10 – Reconstructing Software Architectures
Getting pictures like this out of the information – a big win!
… But, this is what we’re looking for on the your (pre-existing) projects! How
much of a real architecture document can you recreate?
14
Download