C6: Architectural Design Flashcards

1
Q

Software architecture

A

The style of design of the structure of the system including the interacting and interaction among its major components.

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

Software architectural design

A

A decision making process to determine the software architecture for the system under development.

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

Architectural Design Process

A
  1. Determine design objectives
    Overall design objects are identified and specified.
  2. Determine type of system or subsystem
  3. Apply an architectural style or perform custom architectural design
  4. Specify subsystems functions, interfaces, and interaction behaviour
    Interfaces between the subsystems are defined and the interaction behaviour between the subsystems are specified.
  5. Review the architectural design
    Review to ensure that it satisfies the requirements, design objectives and software principles.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Determine Architectural Design Objectives

A
  1. Ease of change and maintenance
    Does the application requires frequent changes to the system to respond to changes in the application such as a response to requirement change?
  2. Use of commercial off the shelf parts
    Does the project require or prohibit the use of COTS?
  3. System performance
    Does the application require high performance?
  4. Reliability
    To what extent does application required system to correctly perform its intended functions under the assumed conditions?
  5. Security
    What is the extent of protection of data and programs resources required by the application?
  6. Software fault tolerance
    To what extent does the application enquiry system to continue operation when a software problem occurs?
  7. Recovery
    to what extent does the application required the system to return to a previous state after a system crash?
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Determine System Type

A
  1. Interactive system
  2. Event-Driven Systems
  3. Transformational systems
  4. Object persistence systems
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Applying Architectural Styles

A
  1. N-tier Architecture
  2. Client-server architecture
  3. Main program and subroutines architecture
  4. Event driven system architecture
  5. Persistence framework architecture
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Software Design Principles

A

Widely accepted guiding rules for the software design - correctly applying these principle can significantly improve software quality.

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

Guidelines for Architectural Design

A
  1. Adapt on architectural when possible
  2. Apply software design principles
  3. Apply design patterns
  4. Check against design objectives and design principles
  5. Iterate the steps if needed
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Applying Agile Principles

A

● Value working software over comprehensive documentation.

● Apply the 80 - 20 rule, that is, good is good enough.

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