Reconstructing Software Architectures CSSE 477 SAD Two Software

  • Slides: 14
Download presentation
Reconstructing Software Architectures CSSE 477 (SAD Two*) Software Architecture Week 4, Day 4, including

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

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

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/Home. D/produ kte/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

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

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/1757 main. html. 5

SA Ch 10 – Reconstructing Software Architectures Reasons for reconstructing (p. 232) – To

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

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

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 – 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

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

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

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 Even fairly “organized” data is interwoven -- 13

Ch 10 – Reconstructing Software Architectures Getting pictures like this out of the information

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