Reconstructing Software Architectures

14
1 Reconstructing Software Architectures CSSE 477 (SAD Two*) Software Architecture Week 4, Day 4, including Ch 10 in Bass’s book

description

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!) - PowerPoint PPT Presentation

Transcript of Reconstructing Software Architectures

Page 1: Reconstructing Software Architectures

1

Reconstructing Software ArchitecturesCSSE 477 (SAD Two*)Software Architecture

Week 4, Day 4, includingCh 10 in Bass’s book

Page 2: Reconstructing Software Architectures

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.

Page 3: Reconstructing Software Architectures

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

Page 4: Reconstructing Software Architectures

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

Page 5: Reconstructing Software Architectures

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.

Page 6: Reconstructing Software Architectures

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

Page 7: Reconstructing Software Architectures

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

Page 8: Reconstructing Software Architectures

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

Page 9: Reconstructing Software Architectures

9

Ch 10 – Reconstructing Software Architectures

Here’s an image of the four steps in Ch 10’s process --

Page 10: Reconstructing Software Architectures

10

Ch 10 – Reconstructing Software Architectures

Exasperatingly – it all looks like much lower level stuff than what you want --

Quiz Q 5

Page 11: Reconstructing Software Architectures

11

Ch 10 – Reconstructing Software Architectures

And the static view of it doesn’t even tell you everything! --

Page 12: Reconstructing Software Architectures

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…

Page 13: Reconstructing Software Architectures

13

Ch 10 – Reconstructing Software Architectures

Even fairly “organized” data is interwoven --

Page 14: Reconstructing Software Architectures

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?