Software architecture design principles

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

What is the primary input for an architecture design activity?

  • Source code.
  • Software Architecture Document (SAD).
  • Detailed design documents.
  • SRS document. (correct)

What is the main output of the architecture design activity?

  • A complete set of test cases.
  • The final user manual.
  • An abstract specification of the software. (correct)
  • A detailed project budget.

Which of the following BEST describes the role of architectural design in the software development lifecycle?

  • It primarily deals with the project's financial aspects.
  • It focuses solely on coding the software application.
  • It creates a blueprint for the software's structure, components, and their relationships. (correct)
  • It handles user interface design exclusively.

In architecture design, what does the term "specification of the solution" primarily refer to?

<p>The major components, their responsibilities, properties, relationships, and collaboration. (C)</p>
Signup and view all the answers

Why is it difficult to cleanly separate architectural design activity from SRS analysis and detail design activities?

<p>Of the 4 design principles: Feasibility, Adequacy, Changeability and Economy. (A)</p>
Signup and view all the answers

During product design, assessing the viability of a particular architecture is related to which design principle?

<p>Feasibility. (B)</p>
Signup and view all the answers

What does the design principle of 'Adequacy' refer to in the context of architectural design?

<p>The need to &quot;prove&quot; the sufficiency of the solution and need to create an architectural prototype. (B)</p>
Signup and view all the answers

In architectural design, what does 'Changeability' primarily address?

<p>May need to make trade-offs of requirements based on the design architecture. (B)</p>
Signup and view all the answers

When evaluating the 'Economy' of a design architecture, what factors are considered?

<p>Schedule, cost, and resource impact based on the design architecture and some detail design. (B)</p>
Signup and view all the answers

What contributes to the variations observed in architectural designs?

<p>Level of abstraction, number of components and description of each component. (A)</p>
Signup and view all the answers

How does the problem context influence the level of abstraction in an architectural design?

<p>The larger the problem, the more levels of abstraction are needed. (A)</p>
Signup and view all the answers

How does the organizational context influence architectural design?

<p>More experienced organizations may have more pre-determined preference or constraints on the architectural design. (A)</p>
Signup and view all the answers

Which of the following BEST describes the initial steps in the architectural design process based on the diagram?

<p>SRS, Design Analysis, Architectural Design, then Detail Design. (B)</p>
Signup and view all the answers

According to the diagram, what process happens after "Analyzed SRS"?

<p>Develop Architectural Alternatives (C)</p>
Signup and view all the answers

What is the final step in the architectural design process depicted in the diagram?

<p>Finalize Software Architectural Document to produce SAD. (B)</p>
Signup and view all the answers

What is the purpose of the Software Architecture Document (SAD)?

<p>To outline the software’s architecture, models, and design rationale. (B)</p>
Signup and view all the answers

Which of the following elements are commonly included in a Software Architecture Document (SAD)?

<p>Product overview, architectural models, mapping between models, and architectural design rationale. (D)</p>
Signup and view all the answers

What information does the 'Product Overview' section of a Software Architecture Document (SAD) typically provide?

<p>The overall product description, stakeholders, target market, assumptions, constraints, and basic business requirements (refer to SRS). (C)</p>
Signup and view all the answers

What is the primary purpose of 'Architectural Models' in a Software Architecture Document (SAD)?

<p>Presents the architecture in terms of models of data, functional decomposition and functional activities, and system states and transitions. (D)</p>
Signup and view all the answers

What is the significance of 'Mapping between Models' in a Software Architecture Document (SAD)?

<p>Presents and explains how the different models are related. (D)</p>
Signup and view all the answers

What does the 'Architectural Rationale' section of a Software Architecture Document (SAD) explain?

<p>The reasons behind specific architectural choices, alternatives considered and main criteria. (B)</p>
Signup and view all the answers

How are major functional requirements typically addressed in architectural design?

<p>They are directly mapped into key architectural components. (C)</p>
Signup and view all the answers

What are the two main categories of quality attributes in software architecture?

<p>Operational and developmental attributes. (C)</p>
Signup and view all the answers

What do 'Operational Attributes' primarily describe?

<p>Qualities related to the software's runtime behavior and user experience. (D)</p>
Signup and view all the answers

Which of the following is an example of an 'Operational Attribute'?

<p>Performance. (C)</p>
Signup and view all the answers

In the context of software architecture, what does 'Availability' refer to?

<p>The readiness for use. (B)</p>
Signup and view all the answers

In software architecture, what does 'Security' primarily ensure?

<p>Resistance or protection from harm. (A)</p>
Signup and view all the answers

What aspect of software quality does 'Reliability' address?

<p>Error resistance and performing to requirements. (C)</p>
Signup and view all the answers

Which quality attribute focuses on how easy the software is to understand and navigate?

<p>Usability. (C)</p>
Signup and view all the answers

What is the primary focus of 'Developmental Attributes' in software architecture?

<p>The qualities that enhance the software development process. (B)</p>
Signup and view all the answers

Which of the following is a 'Developmental Attribute'?

<p>Maintainability. (B)</p>
Signup and view all the answers

What does 'Reusability' primarily refer to as a developmental attribute?

<p>The extent to which software components can be used in other projects. (C)</p>
Signup and view all the answers

In the context of the Fingerprint Matching example, what operational attribute is most directly related to the requirement of the system to "respond quickly"?

<p>Performance (B)</p>
Signup and view all the answers

For the Fingerprint Matching system, the requirement that it "must be available the entire time" is primarily related to which operational attribute?

<p>Availability (B)</p>
Signup and view all the answers

Which operational attribute is MOST relevant to the Fingerprint Matching system continuously performing "matching at a reliable rate?"

<p>Reliability (D)</p>
Signup and view all the answers

If the Fingerprint Matching system "must resist attackers", which operational attribute is the focus?

<p>Security (B)</p>
Signup and view all the answers

In the context of the Fingerprint Matching system, which aspect relates most closely to the architectural concern of 'Cohesion'?

<p>Verifying that each module performs single, related functions, such as input. (A)</p>
Signup and view all the answers

What is the primary focus when considering organizational context in architectural design?

<p>The experience level, existing standards, and tools available within the organization. (C)</p>
Signup and view all the answers

What is a key aspect of architectural design rationale when deciding on architectural choices?

<p>Explaining the criteria, alternatives, and reasoning for making particular design. (C)</p>
Signup and view all the answers

Flashcards

Architecture Design

A problem-solving activity with the SRS document as input and an 'abstract' specification of software as output.

Architecture Design (continued)

Specifies major components, responsibilities, properties, and relationships among them.

Architectural Design Activity

It cannot be cleanly separated from SRS Analysis and Detail Design Activities.

Feasibility in Design

Understanding the possibility of creating an architecture.

Signup and view all the flashcards

Adequacy in Design

Proving the solution's correctness with an architectural prototype.

Signup and view all the flashcards

Changeability in Design

Making trade-offs based on the design architecture.

Signup and view all the flashcards

Economy in Design

Exploring schedule, cost, and resource impact based on design.

Signup and view all the flashcards

Variations in Architectural Design

Variations among designs depend on the level of abstraction, number of components, and relationships.

Signup and view all the flashcards

Problem Context

The larger the problem, the more levels of abstraction and components.

Signup and view all the flashcards

Organizational Context

Experienced organizations have more standards and constraints on design.

Signup and view all the flashcards

Product Overview (in SAD)

Summarizes product description, stakeholders, assumptions, constraints, and business requirements.

Signup and view all the flashcards

Architectural Models (in SAD)

Presents architecture in data models, decomposition, activities, states, and transitions.

Signup and view all the flashcards

Mapping between Models (in SAD)

Presents how different architectural models relate to each other.

Signup and view all the flashcards

Architectural Rationale (in SAD)

Explains design criteria and justification/rationale for choices.

Signup and view all the flashcards

Performance (Operational Attribute)

Time limits, space capacity, and transaction limits.

Signup and view all the flashcards

Availability (Operational Attribute)

Readiness for use; how quickly the system becomes available.

Signup and view all the flashcards

Security (Operational Attribute)

Resistance or protection from harm.

Signup and view all the flashcards

Reliability (Operational Attribute)

Error resistance and performing to requirements.

Signup and view all the flashcards

Usability (Operational Attribute)

Easy to understand and navigate.

Signup and view all the flashcards

Maintainability (Development Attribute)

Easy to understand and modify.

Signup and view all the flashcards

Reusability (Development Attribute)

Portable, easy to modify, and loosely coupled.

Signup and view all the flashcards

"Respond Quickly" Attribute in Fingerprint Matching

The fingerprint matching program should respond to inputs quickly.

Signup and view all the flashcards

"Must Be Available the Entire Time" Attribute in Fingerprint Matching

The fingerprint matching program should be available all the time.

Signup and view all the flashcards

"Must Perform Matching at a Reliable Rate" Attribute in Fingerprint Matching

Input checking must not accept incomplete or smeared finger prints to ensure reliable matches.

Signup and view all the flashcards

"Must Resist Attacker" Attribute in Fingerprint Matching

The system must be physically protected and separated to effectively resist attackers.

Signup and view all the flashcards

Study Notes

  • Architecture design is problem-solving that uses the SRS document as input.
  • The output of architecture design is the abstract specification of software, with the aim of realizing the desired characteristics.
  • The architecture design specifies the solution's components, their responsibilities, properties, relationship, and collaboration.
  • Architectural design activity overlaps with SRS Analysis (Product Design) and Detail Design Activities.
  • Overlap occurs because of the 4 design principles: Feasibility, Adequacy, Changeability, and Economy.

Feasibility

  • During product design, feasibility of specific architecture may need understanding.

Adequacy

  • To demonstrate the sufficiency of the solution, creation of an architectural prototype during Product Design or Design Analysis time may be needed.

Changeability

  • Trade-offs of requirements may need to be based on the design architecture.

Economy

  • May be necessary to explore schedule, cost, and resource impact based on the design architecture along with some detail design.
  • All architectural designs vary in terms of their level of abstraction.
  • Designs can vary in the number of components, description of components, and component relationships.
  • Deciding on the correct level of architectural depth is a common problem.

Considerations

  • Problem Context: The more the problem's size, the more of abstraction levels, components, and relationships among components are needed.
  • Organizational context: More experienced and sophisticated organizations typically have more standards, tools, and skills, which can lead to predetermined design preferences or constraints in the architectural design,.

Architectural Design Process

  • The Swift Engineering Design process begins with SRS.
  • This leads to design analysis, then architectural design and detail design.
  • This transforms into design documentation.
  • The architectural design process involves developing and evaluating architectural alternatives.
  • It also requires selecting an architectural resolution before finalizing the software architecture document (SAD).

Software Architecture Document (SAD)

  • The SAD Template includes a product overview, architectural models, and mapping between models.
  • Architectural design rationale is also included in the SAD.

Product Overview

  • Summarizes the product, stakeholders, target market, assumptions, constraints, and basic business requirements.

Architectural Models

  • Presents the architecture in terms of data models, functional decomposition, activities, system states, and transitions.
  • It represents the aspects or views, often using the DeSCRIPTR framework as a guide.

Mapping between Models

  • Presents and explains how the different models relate to each other.

Architectural Rationale

  • It explains design decision criteria, investigated alternatives, and reasons for the architectural choice.

Non-Functional Requirements

  • Functional requirements can be mapped into key architectural components.
  • Non-functional requirements are quality attributes which include: operational attributes and development attributes.

Operational Attributes

  • Performance includes time limits, space capacity, and transaction limits.
  • Availability is the readiness for use.
  • Security encompasses resistance to and protection from harm.
  • Reliability is error resistance and performing to requirements.
  • Usability involves being easy to understand and navigate.

Developmental Attributes

  • Maintainability is easy to understand and modify.
  • Reusability includes being portable, easy to modify, and having loose coupling.

Finger Print Matching

  • An example program matches fingerprints from scanners against a database to control facility access.
  • The program has to respond quickly, be available, perform matching reliably, and resist attackers.
  • Input validation and fingerprint validation are key components.

Non-Functional Attribute Implementation

Performance

  • "Respond quickly" is a performance attribute consideration.
  • It must be determined which functionality, such as input validation or fingerprint validation, requires review.
  • The scanner or database as a potential bottleneck must be considered.
  • The speed criteria should be specified on the activity diagram.

Availability

  • "Must be available the entire time" is an availability consideration.
  • Redundancy on the activity diagram should be specified.
  • A backup scanner needs to switch too.
  • A redundant data base is required.
  • A redundant processor would be required.

Reliability

  • "Must perform matching at a reliable rate" is a reliability consideration.
  • Input checking cannot accept incomplete or smeared fingerprints.
  • Algorithms for digitizing fingerprints and comparing the database must be accurate, considering error rates.
  • These aspects must be specified on the activity diagram.

Security

  • "Must resist attacker" is a security consideration.
  • The entire system must be physically protected without external connections.
  • Security check functionality is needed for start-up, shut-down, and access.
  • Security checking can be added as additional functionality to the activity diagram.

Cohesion

  • Cohesion relates to issues with component functions.
  • Input and fingerprint validation should each have single related functions.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Software Architecture Design
39 questions

Software Architecture Design

ReputableMusicalSaw1941 avatar
ReputableMusicalSaw1941
Software Architecture: Design and Decisions
25 questions
Software Architecture & Design
20 questions
Use Quizgecko on...
Browser
Browser