INFT 821: Software Architecture - Objectives
By the end of this course, students should be able to
- Recognize major architectural styles used in existing systems
- Use techniques for describing architectures
- Understand and reason about formal architecture descriptions
- Understand techniques for assessing architectural alternatives
- Understand the way domain specific architectures work
INFT 821: Software Architecture - Mechanics
- Seminar
- Readings - DONE BEFORE CLASS
- Grading:
- Homeworks (every other week): 20%
- Paper/Project: 50%
- Presentation: 20%
- Class Participation: 10%
INFT 821: Software Architecture - Resources
- Course information will be kept at:
http://www.cs.gmu.edu/~white/INFT821
- M. Shaw, D. Garlan Software Architecture: Perspectives on
an Emerging Discipline, Prentice-Hall, 1996.
- L. Bass, P. Clements, R. Kazman Software Architecture in Practice,
Addison-Wesley, 1998.
- Most of the papers will be available on the web (on campus access) through
the GMU library.
http://library.gmu.edu/resources/databases.html
Building systems out of parts
- The Dream:
Plug and Play
- Reality:
A part with the currect functionality may be difficult to find - one
with functionality that can interact with the rest of the system is
virtually impossible.
D. Garlan, R. Allen, J.Ockerbloom, Architectural Mismatch or Why it's hard
to build systems out of existing parts, 17th ICSE, 1995.
Consider Aesop

- The Plan: Much of infrastructure by building on existing software: OO database, GUItoolkit, event-based integration mechanism, RPC mechanism.
- The Problems: excessive code size, poor performance, need to
modify external packages, need to reimplement existing functions, tools
had to be unnecessarily complicated, error-prone contruction
- The Cause?
- Assumptions about the nature of components
- Assumptions about the nature of connectors
- Assumptions about the global structure
- Assumptions about the construction process
Software Architecture
- High-level abstraction of system - Programming in the large
- Consider Building Architecture
- Views - different drawings for different system
- Load-bearing vs. non-essential
- Materials
- Scale
A Typical "Architecture"

Lots of details left out!
How it works (usually)

Parser has main thread of control. Lexical analyzer is called when
a new token is needed ( get_next_token). Lexical analyzer
calls I/O routines when it needs to see the next character on the input.
Shaw and Garlan
- Components: functionality or computation
Ex: databases, ADTs, filters, . . .
- Connectors: interaction between components
Ex: procedure call, pipes, events, rendezvous, . . .
- Configuration: assemble components and connections according to rules
Bass, Clements, Kazman
- Architecture Business Cycle (ABC) - Architecture influenced by
stakeholders (customers, end-users, developers, developing organization, . . . ), technological factors, previous experience. Architecture influences organizational structure, enterprise goals, developers
- Multiple architectures associated with a system (physical, module, class, dataflow) - runtime and non-runtime
- Reusability - components and architectures
Perry,Wolf
D. Perry, A. Wolf,
"Foundations for the study of software architecture"
Proceedings of ACM SIGSOFT, Vol. 17, No. 4, October 1992, pp.40-52.
Issues
- How to express?? Tradeoffs between formal and informal.
- Scale - How to deal with large numbers of components and connections
- How to evaluate alternatives architectures
- Performance
- Security
- Extensibility
- . . .
- Architectural Styles and constraints on style
- Maintainability, Architectural erosion, Architectural drift
- Integration, Testing
Benefits of Studying Software Architecture
- Greater understanding
- Reuse
- Evolution
- Analysis
- Management
Research in Software Architecture
- Architecture Description Languages
- Formal underpinnings and models
- Architectural analysis and its role in the SW process
- Recovery and reengineering
- Development Guidance
- Tools and Environments
- Case Studies
Gameplan:
- Week 2: MILs (papers), Talk about project/paper
- Week 3: Architectural Styles (SG 2, BCK 5,6)
- Week 4-5: ADLs
- Week 6-7: Case Studies
Followed by:
Architectural Design, Architectural Analysis, Tools, Reusable Architectures,
DSSAs, Architectural Testing, Dynamic Architectures
Next Class (Sept. 13): MILs
Module Interconnection Languages (MILs) give insight into
the foundations of Software Architecture
- F. DeRemer and H. Kron, ``Programming-in-the-large versus
programming-in-the-small'' IEEE Transactions on Software Engineering, vol. 2, no. 2, June 1976, pp. 80-86.
- J. Purtilo, ``The Polylith software bus'' ACM Transactions on Programming Languages and Systems, vol. 16, no. 1,J anuary 1994, pp. 151-174.