topical media & game development
This chapter explored
the notion of software architecture,
and in particular how both problem-related issues
and technological constraints determine the adoption
of a particular architectural style.
- processing elements -- transformation on data
- data elements -- contain information
- connections -- glue that holds elements together
slide: Section 7.1: Elements of architecture
In section 1,
we looked at a number of definitions of
the notion of software architecture,
including the definition given in [Practice].
We also looked at the technological infrastructure
underlying client/server architectures and discussed
some selected distributed object patterns.
- feature grammar -- structure
- embedded logic -- rules for recognition
- architecture -- multimedia information system
slide: Section 7.2: Case study -- multimedia feature detection
In section 2,
we looked at an experimental musical feature
detector, as an example architecture, that uses both a grammar to describe
the structural properties of the media items involved,
and (embedded) logic to express the rules
governing the determination of properties
and the retrieval of specified media items.
- embedded logic -- crossing the paradigm boundary
- native objects -- crossing the language boundary
- combining Java and C++
slide: Section 7.3: Crossing boundaries
In section 3,
we discussed some of the implications of
the architecture sketched in section 2.
We looked at embedded logic, as an example
of crossing paradigm boundaries, and native objects,
as an example of crossing language boundaries.
In addition, some of the technical details
involved in coupling (native) C++ objects to
Java objects were presented.
- technology matrix -- from technology to style
- case study -- visualization perspectives
slide: Section 7.4: Architectural patterns and styles
In section 4, we discussed how
to decide which architectural style to adopt,
based on technological constraints on the one hand
and application requirements on the
As an illustration, we discuss the alternatives that
may arise when realizing an extension to a distributed
- from Unix to Windows -- AT&T U/Win, Cygnus GNU-win32
- from Windows to Unix -- Wind/U, Mainwin
slide: Section 7.5: Cross-platform development
Finally, in section 5 we discussed some of the solutions
that are available for platform-independent and
- What are the elements of a software architecture?
What role does a software architecture description play in development?
- Give a definition of software architecture.
Can you think of alternative definitions?
- What kind of patterns can you think of for distributed object architectures?
- Give an example of a complex software architecture.
Can you relate the description of the architecture to
the definition given earlier?
- Discuss the possible motivations for deploying
- How would you extend a given imperative or
declarative language with objects?
- Discuss the Java Native Interface.
Does it provide a solution for the problem
posed in the previous question? Explain.
- What determines the choice for an architectural style?
Give an example!
An excellent book on software architectures is [Practice].
You may also want to visit the SEI architecture site at
provides definitions, and a wealth of other
As a discussion of the software engineering implications
of CORBA, you may want to read [CorbaPatterns].
If you are interested in multimedia information systems,
read [MM]. For more information on ACOI,
visit the ACOI website on www.cwi.nl/~acoi .
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.