Software Engineering Chapter 6

Ace your homework & exams now with Quizwiz!

What are some advantages of a layered architecture pattern?

allows replacement of entire layers as along as the interface is maintained redundant facilities can be provided in each layer to increase dependability (like authentication at each layer)

What are some advantages of the MVC pattern?

allows the data to change independently of its representation and visa versa supports presentation of data in different ways with changes made in one representation shown in all of them

What is the output of the architectural design process?

an architectural model that describes how the system is organized as a set of communicating components

What is generic application architecture?

an architecture for a type of software system that may be configured and adapted to create a system that meets a specific requirement. general market template.

What is a syntax tree?

an internal structure representing the program being compiled.

What are event processing systems?

applications where system actions depend on interpreting events from the system's environment

what are language processing systems?

applications where the user's intentions are specified in a formal language that's processed and interpreted by the system

What is an ADL? Are they widely used?

architectural description language. They have been developed, but are not widely used.

What is architecture in the small concerned with?

architecture of individual programs and their components

What are some uses for application architectures?

as a starting point for architectural design as a design checklist as a way of organizing the work of the dev team as a means of addressing components for reuse as vocabulary for talking about application types

What are some disadvantages of the MVC pattern?

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

What is a syntax analyzer?

checks the syntax of the language being translated.

What are some advantages of repository architecture?

components can be independent changes made by one component can be propagated to all components data can be managed consistently

what are transaction processing applications?

data centered applications that process user requests and update information in a system database

What are data processing applications?

data driven applications that process data in batches without explicit user intervention during the processing

What are some examples of application types?

data processing applications transaction processing applications event processing systems language processing systems

What are some common architectural design decisions that span all design processes?

decisions on the type of application, distribution of the system, and the architectural styles to be used Examples: Can a generic application architecture act as a template for the system? What will be the fundamental approach used to structure the system? How will the structural components in the system be decomposed into sub components? How will the system be distributed across hardware cores or processors? What architectural organization is best for delivering the non-functional requirements of the system? What architectural patterns or styles might be used? What strategy will be used to control the operation of the components in the system? How should the architecture of the system be documented?

architectural design is the link between __________ and __________ because it identifies the main structural components in a system and the relationships between them

design requirements engineeering

What is client-server architecture?

distributed system model which shows how data and processing is distributed across a range of components

What are some disadvantages of the client-server model?

each service is a single point of failure so it's susceptible to denial of service attacks or server failure performance may be unpredictable because it depends on the network as well as the system may be management problems if servers are owned by different organizations

What are some advantages of pipe and filter architecture?

easy to understand supports transformation reuse workflow style matches the structure of many business processes evolution by adding transformers is straightforward can be implemented as sequential or concurrent system

true or false: block diagrams show the visible properties of entities in the architecture

false

true or false: pipe and filter architecture is appropriate for interactive systems

false not suitable for interactive systems

true or false: with architecture re-use, systems in the same domain usually have very different architectures to reflect different domain concepts

false Systems in the same domain often have similar architectures that reflect domain concepts.

true or false: client-server architecture has to be implemented on multiple computers

false can be implemented on a single computer

true or false: a low level architectural view of a system is useful for communication with stakeholders and project planning

false high level architectural view is useful for this because it's not cluttered with detail. They can discuss the system as a whole this way.

true or false: the web server is only responsible for part of all user communications (via use of the web browser) in web based information systems

false responsible for ALL user communications

true or false: the layered model is the most commonly used model for systems when large amounts of data are to be shared

false the repository model is used. it's an efficient data sharing mechanism.

true or false: it's generally accepted that an early stage of agile process is to design the specific system architecture

false to design an overall systems architecture

What is pipe and filter architecture?

processing of the data in a system is organized so that each filter is discrete and carries out one type of data transformation. Data flows from one component to another before processing.

How is architecture designed with architecture re-use?

products are built around a core architecture with variants that satisfy customer requirements. It may also be designed around one or more architectural patterns or styles.

What are some disadvantages of a layered architecture pattern?

providing clear separation between layers is difficult in practice performance can be a problem because multiple levels of interpretation is processed at each layer

What are some advantages of the client-server model?

servers can be distributed across a network general functionality is available to all clients and does not need to be implemented by all services

How can sub-systems exchange data in repository architecture?

shared data is in a central database or repository and may be accessed by all subsystems each subsystem maintains it sown database and passes data to other subsystems

What is the process view of architecture?

shows how, at run time, the system is composed of interacting processes

What is the logical view of architecture?

shows the key abstractions in the system as objects or classes

What is the physical view of architecture?

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

What are 3 advantages of explicit architecture?

stakeholder communication - may be used as a focus of discussion system analysis - analysis of whether the system can meet its non-functional requirements large scale re-use - architecture may be reusable across a range of systems`

What has to happen in repository architecture?

sub-systems have to exchange data

true or false: the different architectural patterns and styles used in architecture re-use capture the essence of an architecture and can be instantiated in different ways

true

true or false: variations of pipe and filter architecture are common

true

What are some layer examples in information systems architecture?

user interface user communications information retrieval system database

What are web based information systems?

user interfaces are implemented using a web browser

what is a semantic analyzer?

uses information from the syntax tree and the symbol table to check the semantic correctness of the input language text.

How are all the views of architecture related?

using use cases or scenarios

When should the layered architecture pattern be used?

when building new facilities on top of existing systems when development is spread across several teams with each team responsible for a layer of functionality when there is a requirement for multi-level security

When should a client-server architecture be used?

when data in a shared database has to be accessed from many locations when the load on a system is variable (servers can be replicated so this model is flexible)

When is the MVC architecture used?

when there are multiple ways to view and interact with data when the future requirements for interaction and presentation of data are unknown

What information should architectural design patterns include?

when they are and are not useful

What is a code generator?

'walks' the syntax tree and generates abstract machine code.

describe availability as it relates to architecture

Include redundant components and mechanisms for fault tolerance.

describe safety as it relates to architecture

Localize safety-critical features in a small number of sub-systems.

describe security as it relates to architecture

Use a layered architecture with critical assets in the inner layers.

describe maintainability as it relates to architecture

Use fine-grain, replaceable components.

What is software architecture?

a description of how a software system is organized

What is information systems architecture?

a layered architecture that is transaction based and utilizes databases.

What are architectural patterns?

a means of representing, sharing, and reusing knowledge. a stylized description of good design practice.

What 3 components make up client-server architecture?

a set of stand alone servers that provide specific services (like printing, data management, etc) a set of clients who call on those services A network which allows clients to access servers

Why is refactoring the system architecture usually expensive?

because it affects so many components of the system

When are box and line diagrams useful?

for communication with stakeholders and project planning

What is a symbol table?

holds information about the names of entities (variables, class names, object names, etc.) used in the text that is being translated.

What is architectural design?

how a software system should be organized and designing the overall structure of that system

What might an architectural model show? What are some different "views" of the system it might illustrate?

how a system is decomposed into modules how the runtime processes interact different ways the system components are distributed across a network

what is the development view of architecture?

how the software is decomposed for development

What is the application server responsible for in web based information systems?

implementing application specific logic information storage retrieval requets

when should a repository architecture be used?

in a system with large volumes of information are being generated and stored for a long time in data driven systems where the inclusion of data in the repository triggers an action or tool

When is pipe and filter architecture used?

in data processing applications (batch and transaction based)

When is a language processing system used?

in situations where the easiest way to solve a problem is to describe an algorithm or describe the system data IE, meta-case tools, process tool descriptions, method rules

Why might UML not be appropriate for describing and documenting system architecture?

it does not include abstractions appropriate for high level system description

What are the different compiler components?

lexical analyzer symbol table syntax analyzer syntax tree semantic analyzer code generator

describe performance is it relates to architecture

localize critical operations and minimize communication. use large rather than fine grain components.

What are the 4 different architectural views?

logical physical development process

What is the MVC pattern?

model view controller pattern seperates presented and interaction from the system data.

What does the database server do in web server applications?

moves information to and from the database and handles transaction management

What are web based information systems usually implemented as?

multi-tier client server/architectures

What are the 5 architecture and system characteristics?

performance security safety availability maintainability

How are architectural patterns represented?

tabular and graphical descriptions

What do language processing systems do?

take in a natural or artificial language and generate some other representation of that language

What is a lexical analyzer?

takes input language tokens and converts them to an internal form

What is architecture in the large concerned with?

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

What are some disadvantages of the pipe and filter pattern?

the format for data transfer has to be agreed upon between communicating transformations each transformation must parse its input and unparse its output to the agreed form. this increase system overhead. may be impossible to reuse functional transformations that use incompatible data structures

What are the 3 components of a MVC pattern?

the model - manages system data and associated operations on that data the view - defines and manages how data is presented to the user the controller - manages user interaction and passes those interactions to the view and the model

What are application architectures?

they are designed to meet an organizational need.

Why are box and line diagrams very abstract?

they don't show the nature of component relationships or the externally visible properties of the sub-systems

What do the different layers (or sub-systems) of layered architecture do?

they each provide a set of services

Why have block diagrams of architecture been criticized despite being the most commonly used diagram?

they lack semantics and don't show the types of relationships between entities

What 2 ways are architectural models usually used?

to facilitate discussion about the system design as a way of documenting architecture that has been designed

What is layered architecture used for?

to model the interfacing of sub-systems

What are the two most commonly used application types?

transaction processing systems (e commerce) language processing systems (compilers)

true or false: architectural design is a creative process so the process differs depending on the type of system being developed

true

true or false: architectural design patterns have been tried and tested in different environments

true

true or false: architectural patterns can be used to describe an architecture's advantages and disadvantages

true

true or false: businesses have a lot in common so their application systems also tend to have common architecture

true

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

true

true or false: for design and documentation, you need to present multiple views of the software architecture

true

true or false: in a transaction processing system, users can make asynchronous requests for service which are then processed by the transaction manager

true

true or false: models of application systems architecture help us understand and compare applications, validate application systems designs, and asses large scale components for re-use

true


Related study sets

Stats study sets 2.3-4.6 and 6.7

View Set

CHAPTER 1: FOUNDATIONS AND MODELS

View Set

Chapter 15.1: WI Life & Health State Laws

View Set

Exercise 5; Seed Plants: Gymnosperms & Angiosperms

View Set