140 likes | 312 Views
Reconstructing Software Architectures. CSSE 477 (SAD Two*) Software Architecture Week 4, Day 4, including Ch 10 in Bass’s book. 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!)
E N D
Reconstructing Software Architectures CSSE 477 (SAD Two*)Software Architecture Week 4, Day 4, including Ch 10 in Bass’s book
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.
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
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
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.
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., • 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? } In CSSE 375 one year, a team did this, for an open source system that had no documentation. Why? Quiz Q 3
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
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!
Ch 10 – Reconstructing Software Architectures Here’s an image of the four steps in Ch 10’s process --
Ch 10 – Reconstructing Software Architectures Exasperatingly – it all looks like much lower level stuff than what you want -- Quiz Q 5
Ch 10 – Reconstructing Software Architectures And the static view of it doesn’t even tell you everything! --
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…
Ch 10 – Reconstructing Software Architectures Even fairly “organized” data is interwoven --
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?