Architectural Design Flashcards

1
Q

What is software architecture?

A
  • The design process for identifying the sub-systems making up a system and the framework for sub-system control and communication is architectural design.
  • The output of this design process is a description of the software architecture.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is architectural design?

A
  • An early stage of the system design process.
  • Represents the link between specification and design processes.
  • Often carried out in parallel with some specification activities.
  • It involves identifying major system components and their communications.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Why architecture?

A

• 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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Why is architecture important?

A
  • Representations of software architecture are an enabler for communication between all parties (stakeholders) interested in the development of a computer-based system.
  • The architecture highlights early design decisions that will have a profound impact on all software engineering work that follows and, as important, on the ultimate success of the system as an operational entity.
  • Architecture “constitutes a relatively small, intellectually graspable mode of how the system is structured and how its components work together”
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are the advantages of explicit architecture?

A
  • Stakeholder communication
  • System analysis
  • Large-scale reuse
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What does the system architecture affect?

A
  • performance,
  • robustness,
  • distributability, and
  • maintainability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is system structuring?

A
  • Concerned with decomposing the system into interacting sub-systems.
  • The architectural design is normally expressed as a block diagram presenting an overview of the system structure.
  • More specific models showing how sub-systems share data, are distributed and interface with each other may also be developed.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

How can architecture be used to improve system quality?

A

•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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is 4+1 view model of software architecture?

A
  • A logical view, which shows the key abstractions in the system as objects or object classes.
  • A process view, which shows how, at run-time, the system is composed of interacting processes.
  • A development view, which shows how the software is decomposed for development.
  • A physical view, which shows the system hardware and how software components are distributed across the processors in the system.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are three most used system organization styles?

A

–A shared data repository style;
–A shared services and servers style;
–An abstract machine or layered style.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is an architectural pattern?

A
  • Patterns are a means of representing, sharing and reusing knowledge.
  • An architectural pattern is a stylized description of good design practice, which has been tried and tested in different environments.
  • Patterns should include information about when they are and when the are not useful.
  • Patterns may be represented using tabular and graphical descriptions.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is layered architecture?

A
  • Used to model the interfacing of sub-systems.
  • Organizes the system into a set of layers (or abstract machines) each of which provide a set of services.
  • Supports the incremental development of sub-systems in different layers. When a layer interface changes, only the adjacent layer is affected.
  • However, often artificial to structure systems in this way.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is a repository model?

A

•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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What are pros and cons of the repository model?

A

•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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is a client-server model?

A
  • Distributed system model which shows how data and processing is distributed across a range of components.
  • Set of stand-alone servers which provide specific services such as printing, data management, etc.
  • Set of clients which call on these services.
  • Network which allows clients to access servers.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are pros and cons of the client-server model?

A

•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.

17
Q

What is pipe and filter architecture?

A
  • Functional transformations process their inputs to produce outputs.
  • May be referred to as a pipe and filter model (as in UNIX shell).
  • Variants of this approach are very common. When transformations are sequential, this is a batch sequential model which is extensively used in data processing systems.
  • Not really suitable for interactive systems.
18
Q

What are transaction processing systems?

A

•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.