Title: SEng 5861 Introduction to Software Architecture
1SEng 5861Introduction to Software Architecture
2Agenda
- Group exercise on contemporary topics in Software
Architecture - Group Discussion on exercise
- Discussion of Medvidovic Taylor paper as it
relates to the group exercise - Discussion of Williams Smith paper as it
relates to rest of class guest speakers - Discussion and clarification of group project
phase 4 with in-class work time if time allows
3Contemporary Topics in Software Architecture
4Group Exercise
- Each group gets a short paper some discussion
suggestions. - Groups will have 40 minutes to read through the
paper and put together a short (10 minute)
overview and presentation for the rest of the
class. - After all groups have presented and weve
discussed individually, well have a class
dicussion on the set of topics as a whole
5Papers for Group Exercise
- The Economics of Architecture First by Grady
Booch (IEEE Software, Sept/Oct 2007) - The Past, Present and Future of Software
Architecture by Philippe Kruchten, Henk Obbink
and Judith Stafford (IEEE Software, Mar/Apr 2006) - The Accidental Architecture by Grady Booch
(IEEE Software, May/June 2006)
6Papers for Group Exercise (2)
- Dealing with Change Components versus Services
by Ahmed Elfatatry (Communications of the ACM,
50(8)) - Sofware Architecture-Centric Methods and Agile
Development by Robert L. Nord and James E.
Tomayko (IEEE Software, Mar/Apr 2006)
7Discussion of papers as a wholeSome Key
Discussion Points
- What are the common themes?
- How does what we learned about architecture in
the course play into the future of software
architecture?
8Separating Fact from Fiction in Software
Architecture
9What is architecture good for?
- Large scale, distributed applications
- Facilitate communication
- Separation of computation from interaction
- Coarse-grained evolution
- Separation from implementation
- Style development domain specific software
architectures
10What is software architecture not good for?
- Fine-grained evolution
- Guaranteeing the properties of the implemented
system - Source code optimization
- Guaranteeing the implementation of a development
process - Introduces another artifact to trace to/from
11Discussion Points
- Where are the architecture description languages
that Medvidovic and Taylor talk about? - How do the contemporary topics we discussed
relate to whats good and not good about software
architecture?
12Performance Evaluation of Software Architectures
13Case Study ICAD
- Computer-aided design activites
- Stores objects in a relational database
- Consists of Nodes and Elements
- Elements may be
- Beams (binary joint of two nodes)
- Triangles (connects three nodes)
- Plates (connects four or more nodes)
14Architecture 1 Class Diagram
15Architecture 1 Sequence Diagram
16Architecture 1 Process View
17Architecture 1 Physical View
18Architecture 2
- Applies the Flyweight pattern model contains
only one instance of nodes and various types of
elements. Used when - of objects is large
- Cost of using objects is high
- Separate objects contain a lot of duplicated
state
19Architecture 2 Class Diagram
20Architecture 3
- Build on Architecture 2 class diagram
- Modify DBMS to be able to retrieve a block of
data instead of objects 1 by 1 - Reduces the number of DBMS accesses
21Architecture 3 Scenario Diagram
22Summary of Results
- Raw Performance Results
- Architecture 1 992.33s
- Architecture 2 992.27s
- Architecture 3 8s
- After simulation with Architecture 1
- Of the 992s, 990s are used for resource
utilization - Therefore, DBMS improvement is obvious choice
- Point These kind of techniques can locate the
bottlenecks