Académique Documents
Professionnel Documents
Culture Documents
Code view
Many files, many kind of files Object code, binary code Multiple versions
Configuration management
Organisation of these affect the reusability of code and the build time of the system
Module view
The design of individual classes or procedures is too fine grained to be considered part of the software architecture design But the decomposition of the system and the partitioning of modules into layers is!
Execution view
The dynamic aspect How to map functional components to runtime entities? How to handle communication, coordination and synchronisation among components?
Conceptual view
Describes the system in terms of its major design elements and the relation among them Usually tied closely to the application domain Can be used to specify the software architecture of a system with some attributes to guide the mappings of the other views
Conceptual view
Identify the conceptual components and connectors Problems and solutions are viewed primarily in domain terms
How does to system fulfill the requirements? How are COST components integrated and how do they interact with the rest of the system? How is domain-specific hardware and/or software incorporated into the system? How is functionality partitioned into product releases? How does the system incorporate the products prior generations and support future generations? How can the impact of changes in requirements be minimised?
Module view
Conceptual components and connectors are mapped to subsystems and modules The architect addresses how the conceptual solution is realised with todays software platforms and technologies
How is the product mapped on to the software platform? What system support/services does it use and where? How can testing be supported? How can dependencies between modules be minimised? How can reuse of modules and subsystems be maximised? How to insulate the product from changes in COST software, in software platform, standards?
Execution view
Map the modules to the elements of the runtime platform Defines the systems runtime entities including their attributes
How does the system meet its performance, recovery and reconfiguration requirements? How can one balance resource usage?
Load balancing?
How to achieve concurrency, replication, distribution without too much additional complexity in control? How to minimise the impact of changes in the runtime platform?
Code view
Map the runtime entities from the execution view to deployment components (e.g. executables) Map modules from the module view to source components Determine how the deployment components are produced from source components
How can the time and effort for product apgrades be reduced? How should product versions and releases be managed? How can build time be reduced? What tools are needed to support the development environment? How are integration and testing supported?
Gives a systematic way of designing a software architecture Gives guidance in Tracing influencing factors and requirements through the architecture Sequencing design activities Making design trade-offs Supporting system-specific qualities like performance or reliability Supporting general qualities like buildability, portability, testability, reusability Ensuring that no aspects of the architecture are overlooked Producing documentation
Design tasks
Global analysis
Identify the external influencing factors and critical requirements that could affect the architecture Analyse them to come up with strategies for designing the architecture If all cannot be satisfied, decide which has priority, renegotiate a requirement, or change some external factor to come up with workable strategies
Influencing factors
Organisational factors
Development schedule, budget Organisational attitudes, software process Available hardware and software technology
Technological factors
Product factors
Strategis should address global concerns, but provide guidance for implementing them locally
New factors, issues or strategies can arise at any time Might be contradictiong Sort out conflicts and resolve them
Complements the risk analysis and/or requirements analysis Requirements and risk analyses might give the anlysed factors
Provides a systematc wayof identiying, accomodating and describing the affecting factors
Analysing factors
Make them explicit Step 1: Identify and describe the factors Step 2: Characterise the flexibility or the changeability of the factors Step3: Analyse the impact of the factors
Can the factors influence be localised to one component or not? During which stages of development is the factr important? Does the factor require any new expertise or skills?
Flexibility Is it possible to influence or change the factor so that it makes your task of architecture development easier? In what way can you influence it? To what extent can you influnce it? Changeability In what way could the factor change? How likely will it change during or after development? How often will it change? Will the factor be affected by changes in the other
If a factor was to change, which of the following would be affected and how:
Other factors Components Modes of operation of the system Other design decisions
Develop strategies
Step 1: Identify issues and influencing factors Step 2: Develop solutions and specific strategies Step 3: Identify related strategies
Idetify a handful of important issues that are influenced by the factor and their chageability
Design for portability High throughput req. may overload CPU Error handling and recovery
For each issue, develop strategies that address the issue and ensure the implementation changeability of the architecture design
Reduce or localise the factors influence Reduce the impact of the factors changeability on the design and other factors Reduce or localise required aread of expertise or skills Reduce overall time and effort
When a strategy belongs with more than one issue, dont repeat the strategy
Organisational factors
Constrain design choises Embedded or embodied in the product Functional features and qualities of the product
Technological factors
Product factors
Characterised the important influencing factors and Developed strategies for ensuring
IS2000 key marketing features Has a user-friendly operator environment Has a comprehensive catalog of built-in acquisiion procedues The user can define custom acquisition procedues Throughput of image acquisition 50% higher than before Image display as fast as the max. hardware spreed User defined trade-off between speed and image quality Designed for easy upgrade Open platform connectivity Can be connected to prnters, digital images,