Presentation on theme: "1 Reconstructing Software Architectures CSSE 477 (SAD Two*) Software Architecture Week 4, Day 4, including Ch 10 in Bass’s book."— Presentation transcript:
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 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 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. http://www.uu.nl/uupublish/homeuu/homeenglish/1757main.html
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 http://www.rigi.csc.uvic.ca/ for more info!http://www.rigi.csc.uvic.ca/ 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?