Chapter 6 - Architectural Design

Ace your homework & exams now with Quizwiz!

advantages of layers

allows replacement of entire layers as long as the interface is maintained

disadvantages of the MVC

can involve additional code and code complexity when the data model and interactions are simple

true or false: systems in the same domain often have very different architectures.

false: systems in the same domain usually have similar architectures that reflect the domain concepts.

process view

shows how, at runtime, the system is composed of interacting processes

logical view

shows the key abstractions in the system as objects or object classes

physical view

shows the system hardware and how software components are distributed across the processors in the system

what are architectural views?

views or perspective that are useful when designing and documenting a system architecture

what is large-scale reuse?

when the architecture may be reusable across a large range of systems

what is client-server architecture

when the functionality of the system is organized into services, with each service delivered from a separate server

availability

include redundant components and mechanisms for fault intolerance

web-based information systems

info and resource management systems

true or false: the architecture of a system may be designed around one or more architectural patterns/styles.

true: architecture can be instantiated in different ways.

maintainability

use fine-grain, replaceable components

what are MVC view objects?

- they represent user interface components. in each use case -actors interact with at least one view object - they collect info from actors that the model and controller can use

layered architecture pattern

a layer provides services to the layer above it, so the lowest-level layers represent core services that are used throughout the system

advantages of the MVC

allows the data to change independently of its representation and vice versa. aka the same data can be presented in different ways. if data in one presentation is changed, the change is supported in all of them

system analysis

analysis of whether the system can meet its functional and non-functional requirements

stakeholder communication

architecture may be used as a focus of a discussion system by stakeholders

disadvantages of layers

clean separation of layers is often difficult

large scale architecture

concerned with the architecture of complex enterprise systems that include other systems, programs, and program components

small scale architecture

concerned with the way an individual program is decomposed into components

what are the 5 architecture and system characteristics?

performance, security, safety, availability, and maintainability

true or false: designing overall system architecture is an early stage of agile development

true: architecture specification is a focal point of agile development because having to refactor the system is very expensive.

security

use layered architecture with critical assets in the inner layers

performance

localize critical operations and minimize communications

what are architectural patterns?

- a means of representing, sharing, and reusing knowledge - a stylized description of good design practice, which has been tried and tested in different environments

application architecture can be used as:

- a starting point for architectural design - a design checklist - a way of organizing work of the development team - a means of assessing components for reuse - a vocab for talking about application types

what are MVC controller objects?

- coordinates the model and view objects - have no physical counterpart irl - represent application control flows - collect info from view objects for dispatch to model objects

CHAPTER TAKEAWAYS (part 1):

- establish your system architecture in the early stages of program development. - know how to describe your architecture at both large and small scales. - learn how to draw informal block diagrams to represent your architecture. - learn how to have application product lines that can be sold to customers with similar (but slightly different) different requirements.

information systems architecture

- have a generic architecture that can be organized as a layered architecture - systems are transaction-based

CHAPTER TAKEAWAYS (part 2):

- know how to describe/give examples of each type of the 4 architectural views - represent architectural patterns with both tabular and graphical descriptions - in an MVC architecture, identify which objects are model, view, or controller - know how MVC model, view, and controller interact

how should you present MVC model objects?

- represent persistent information maintained by your application - map parts of speech ("doing", "having", "being" verbs, adjectives, etc) to model components (classes, objects, etc)

architectural design decisions

- the process differs depending on the type of system being developed - common decisions span all processes, and they affect both functional and nonfunctional characteristics - (view picture for decision examples)

what are transaction processing systems?

- they process users' requests for information from a database - asynchronous requests for services are processed by transaction manager

what are two languages that are used to represent architectural views?

UML - Unified Modeling Language ADL - Architectural description languages (might be a blanket term for different arch languages, not sure)

architectural design is the critical link between:

design and requirements engineering

pipe and filter architecture advantages

it's easy to understand and supports transformation reuse. workflow style matches structure of many business processes

safety

localize safety-critical features in a small number of sub-systems

name the 4 architectural views

logical, physical, development, and process view

pipe and filter architecture

organized so that each processing component is discrete and carries out one type of data transformation - note: NOT suitable for interactive systems

layered architecture

organizes the system into layers that provide a set of services

client-server advantages

servers an be distributed across a network, and general functionality can be available to all clients

what is the most frequently used method for documenting software architectures?

simple, informal, and very abstract block diagrams - often useful for communicating with stakeholders and project planning

client-server disadvantages

since each service is a single point, they're more susceptible to service attacks/failure

what is repository architecture?

sub-systems exchange and share data. components interact through the repository (not directly)

model-view-controller (MVC) pattern

system structured into three logical components: - model component manages the system data and associated operations on that data - view component defines and manages how the data is presented to the user - controller component manages the user interaction (ex: mouse clicks, key presses, etc.) and passes then to the view and model. (view diagram to see more interaction between the three components)

server implementation

systems that are often implemented as multi-tier client server/architectures

patterns maybe represented using either ______ or ______ descriptions

tabular; graphical

NOTE TO READERS

the first 38 flash cards are stuff that we covered in the midterm, so if you wanna study the new stuff, start after the "chapter takeaways" cards (also helpful video of this guy explaining the different types of architectures that are in this chapter: https://youtu.be/oHg5SJYRHA0)

pipe and filter architecture disadvantages

the format for data transfer has to be agreed upon between communicating transformations

what is an architectural model?

the output of architectural design process that describes how the system is organized as a set of communicating components

what is architectural design?

the overall structure and organization of a software system

what are language processing systems?

they accept either natural or artificial language as input and generate another representation of that language

architecture reuse - what are application product lines?

they are built around a core architecture with variants that satisfy particular customer requirements.

what are two very widely used generic application architectures?

transaction processing systems and language processing systems

true or false: each architectural model only shows ONE view or perspective of the system.

true. the different models are related using uses cases or scenarios.


Related study sets

The Italian States in the Renaissance (17)

View Set

Sun, Earth, Moon System OVERVIEW

View Set

AP Biology Biomolecules Test Review

View Set

HRM 460: Current Issues in HR Management

View Set

CCNA 2020: Networking Components

View Set

OSHA awnsers starting at Intro part 1

View Set

Retirement Planning Midterm Chapters 1 - 8

View Set