Chapter 2 (New)
Chapter 2 (New)
• If an element is reentrant
– it can be implemented by a thread or a process
• If an element is
– not reentrant and
– multiple threads or processes may need to communicate with it
-> it must be run on separate threads or processes so they can be
thread-safe
• If an element has
– high multiplicity and
– its performance is important to the global system performance,
-> an application server should be used for its implementation
Guidelines for Mapping Runtime Elements …
• If an element is assigned
– complex
– but well-defined functions similar to those of some commercial
off-the-shelf software components and
– the performance of this element is not critical
-> then it is more cost-effective to use an existing software
component to implement the element’s functions
Guidelines for Mapping Runtime Elements …
Server
Data retrieval
Data
& processing
An Agile Example to Software Architecture Design …
Application
Web Browser Web Server Data storage
Server
Conclusion
• Software architectures determine the overall structures of
software systems and have great impact on their quality
• Software architectures can be viewed from multiple
perspectives
• Each type of structure consists of elements and connectors
as well as constraint attributes for both, the elements and
the connectors; these are derived from the requirements
specification
• To minimize the impact of changing project requirements
and to maximize design and implementation reuse, an
architect should adopt an iterative process for the
architecture design