1 Reconstructing Software Architectures CSSE 477 (SAD Two*) Software Architecture Week 4, Day 4, including Ch 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 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 produkte/IG/airship.htm 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
6 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? 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 for more info! Ch 10 – Reconstructing Software Architectures
9 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?