Computer Science Chapter 6 - Architectural Design

WellEstablishedBildungsroman avatar
WellEstablishedBildungsroman
·
·
Download

Start Quiz

Study Flashcards

10 Questions

What is one of the consequences of incompatibility between the architecture and the developing system?

Re-work or redesign is needed

What is a key aspect of system architecture?

Understanding how a system should be organized

Why is software architecture important?

Because it affects the system's performance

What kind of requirements depend on the system architecture?

Non-functional requirements

What are some non-functional requirements that depend on the architectural style and structure of the system?

Performance, security, safety, availability, and maintainability

What is architectural design?

A creative process

Why is it important to hire a system architect for a new project?

Because of the background and experience of the system architect

What do system architects have to make during the architectural design process?

Structural decisions

What are some key points to justify the hiring of a system architect for a new project?

The background and experience of the system architect

What is a consequence of not having a system architect?

The system will have performance issues

Study Notes

Application Architectures

  • Application systems are designed to meet an organizational need.
  • They tend to have a common architecture that reflects the application requirements.

Generic Application Architectures

  • Can be used as a starting point for architectural design.
  • Can be used as a design checklist.
  • Can be used to organize the work of the development team.
  • Can be used to assess components for reuse.
  • Can be used as a vocabulary for talking about application types.

Examples of Application Types

  • Data processing applications:
    • Data-driven applications that process data in batches without explicit user intervention during the processing.
  • Transaction processing applications:
    • Data-centred applications that process user requests and update information in a system database.
  • Event processing systems:
    • Applications where system actions depend on interpreting events from the system's environment.
  • Language processing systems:
    • Applications where the users' intentions are specified in a formal language that is processed and interpreted by the system.

Language Processing Systems

  • Accept a natural or artificial language as input and generate some other representation of that language.
  • May include an interpreter to act on the instructions in the language that is being processed.
  • Used in situations where the easiest way to solve a problem is to describe an algorithm or describe the system data.

Architecture of a Language Processing System

  • Includes a lexical analyzer, which takes input language tokens and converts them to an internal form.
  • Includes a symbol table, which holds information about the names of entities (variables, class names, object names, etc.) used in the text that is being translated.
  • Includes a syntax analyzer, which checks the syntax of the language being translated.
  • Includes a syntax tree, which is an internal structure representing the program being compiled.
  • Includes a semantic analyzer that uses information from the syntax tree and the symbol table to check the semantic correctness of the input language text.
  • Includes a code generator that 'walks' the syntax tree and generates abstract machine code.

Compiler Components

  • Lexical analyzer
  • Symbol table
  • Syntax analyzer
  • Syntax tree
  • Semantic analyzer
  • Code generator

Architectural Design Decisions

  • Include decisions on the type of application, the distribution of the system, and the architectural styles to be used.
  • Architectural design decisions affect the performance, robustness, distributability, and maintainability of a system.

Architectural Patterns

  • Are a means of reusing knowledge about generic system architectures.
  • Describe the architecture, explain when it may be used, and describe its advantages and disadvantages.

Key Points

  • A software architecture is a description of how a software system is organized.
  • Architectural patterns are used to describe the architecture, explain when it may be used, and describe its advantages and disadvantages.
  • Models of application systems architectures help us understand and compare applications, validate application system designs, and assess large-scale components for reuse.
  • Transaction processing systems are interactive systems that allow information in a database to be remotely accessed and modified by a number of users.
  • Language processing systems are used to translate texts from one language into another and to carry out the instructions specified in the input language.

This quiz covers the fundamental concepts of architectural design, including design decisions, views, patterns, and application architectures in software systems.

Make Your Own Quizzes and Flashcards

Convert your notes into interactive study material.

Get started for free

More Quizzes Like This

Software Architecture Fundamentals
16 questions
Application Architectures
40 questions

Application Architectures

WellEstablishedBildungsroman avatar
WellEstablishedBildungsroman
Cloud Architecture Design Principles
8 questions
Use Quizgecko on...
Browser
Browser