What is software architecture?
What is architectural design?
Why architecture?
• The architecture is not the operational
software. Rather, it is a representation that
enables a software engineer to:
– (1) analyze the effectiveness of the design in
meeting its stated requirements,
– (2) consider architectural alternatives at a stage
when making design changes is still relatively easy,
and
– (3) reduce the risks associated with the
construction of the software.
Why is architecture important?
What are the advantages of explicit architecture?
What does the system architecture affect?
What is system structuring?
How can architecture be used to improve system quality?
•Performance
–Localisecritical operations and minimisecommunications. Use large rather than fine-grain components.
•Security
–Use a layered architecture with critical assets in the inner layers.
•Safety
–Localisesafety-critical features in a small number of sub-systems.
•Availability
–Include redundant components and mechanisms for fault tolerance.
•Maintainability
–Use fine-grain, replaceable components.
What is 4+1 view model of software architecture?
What are three most used system organization styles?
–A shared data repository style;
–A shared services and servers style;
–An abstract machine or layered style.
What is an architectural pattern?
What is layered architecture?
What is a repository model?
•Sub-systems must exchange data. This may be done in two ways:
–Shared data is held in a central database or repository and may be accessed by all sub-systems;
–Each sub-system maintains its own database and passes data explicitly to other sub-systems.
•When large amounts of data are to be shared, the repository model of sharing is most commonly used.
What are pros and cons of the repository model?
•Advantages
–Efficient way to share large amounts of data;
–Sub-systems need not be concerned with how data is produced Centralised management e.g. backup, security, etc.
–Sharing model is published as the repository schema.
•Disadvantages
–Sub-systems must agree on a repository data model. Inevitably a compromise;
–Data evolution is difficult and expensive;
–No scope for specific management policies;
–Difficult to distribute efficiently.
What is a client-server model?
What are pros and cons of the client-server model?
•Advantages
–Distribution of data is straightforward;
–Makes effective use of networked systems. May require cheaper hardware;
–Easy to add new servers or upgrade existing servers.
•Disadvantages
–No shared data model so sub-systems use different data organisation. Data interchange may be inefficient;
–Redundant management in each server;
–No central register of names and services -it may be hard to find out what servers and services are available.
What is pipe and filter architecture?
What are transaction processing systems?
•Process user requests for information from a database or requests to update the database.
•From a user perspective a transaction is:
–Any coherent sequence of operations that satisfies a goal;
–For example -find the times of flights from London to Paris.
•Users make asynchronous requests for service which are then processed by a transaction manager.