reconstructing software architectures
Post on 11-Jan-2016
70 Views
Preview:
DESCRIPTION
TRANSCRIPT
1
Reconstructing Software ArchitecturesCSSE 477 (SAD Two*)Software Architecture
Week 4, Day 4, includingCh 10 in Bass’s book
2
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.
Today –
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.
3
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
SA Ch 10 – Reconstructing Software Architectures
Most freedom – Lacks constraints imposed by prior work
Least freedom – All constrained by prior work, but hard to figure out how!
Quiz Q 1
4
Example from another world – Utrecht, The Netherlands
• If anything happens to any of the old city, they have the plans for all of it.
Where’s that?
A great restaurant I’ve been to…
Quiz Q 2
5
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.
6
Reasons for reconstructing (p. 232) –
To re-document architectures for some reasonE.g.,
Show conformance to standardsCapture business knowledge
To understand architectural dependenciesE.g.,
Leading to a new systemDecide if you can add on some new pieceTo 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?
SA Ch 10 – Reconstructing Software Architectures
In CSSE 375 one year, a team did this, for an open source system that had no documentation. Why?
}
Quiz Q 3
7
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 --
The “Database” here is something you build from all the artifacts, as the basis for analyzing them systematically.
What’s that?
Quiz Q 4
8
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!
Ch 10 – Reconstructing Software Architectures
9
Ch 10 – Reconstructing Software Architectures
Here’s an image of the four steps in Ch 10’s process --
10
Ch 10 – Reconstructing Software Architectures
Exasperatingly – it all looks like much lower level stuff than what you want --
Quiz Q 5
11
Ch 10 – Reconstructing Software Architectures
And the static view of it doesn’t even tell you everything! --
12
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…
13
Ch 10 – Reconstructing Software Architectures
Even fairly “organized” data is interwoven --
14
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?
top related