Software Engineering Exam 1 Ch.6

Réussis tes devoirs et examens dès maintenant avec Quizwiz!

Conceptual View

abstract view of the system that can be the basis for decomposing high-level requirements into more detailed specifications; developed during the design process

Software Architecture

affects the performance, robustness, distributability, and maintainability of a system; dominant influence on the non-functional system characteristics

Safety Critical Requirement

architecture should be designed so that safety-related operations are co-located in a single component or in a small number of components

Availability Critical Requirement

architecture should be designed to include redundant components so that it is possible to replace and update components without stopping the system

Performance Critical Requirement

architecture should be designed to localize critical operations within a small number of components, with these components deployed on the same computer rather than distributed across a nework; may mean using few relatively large components rather than small, finer-grain components

Model-View-Controller Pattern

basis of interaction management in many web-based systems and is supported by most language frameworks;Seperates presentation and interaction from the system data, system is structured into three logical components that interact with each other; Used when there are multiple ways to view and interact with data, also when the future requirements for interaction and presentation of data are unknown; Supports presentation of the same data in different ways; May involve additional code and code complexity when the data model and interactions are simple

Architecture in the Large

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

Architecture in the Small

concerned with the architecture of individual programs; concerned with the way that an individual program is decomposed into components

Architectural design

concerned with understanding how a software system should be organized and designing the overall structure of that system; is the first stage in the software design process; is the critical link between design and requirements engineering; identifies the main structural components in a system and the relationships between them

Transaction Processing Applications

database-centered applications that process user requests for information and update the information in a database

Vocabulary for Discussion

if discussing a specific application or trying to compare applications, then you can use the concepts identified in the generic architecture to talk about these applications

Design Checklist

if the architectural design is developed for an application system, you can compare this with generic application architecture; can check that your design in consistent with the generic architecture

Starting Point

if unfamiliar with the application that is being developed, base intial design on a generic application architecture, then specialize for the specific system being developed

Assessing Components for Reuse

if you have components you might be able to reuse, you can compare these with the generic structures to see whether there are comparable components in the application architecture

Client-Server Architecture

illustrates a commonly used runtime organization for distributed systems; important benefit is sepration and independence;most important advantage is that it is a distributed architecture; system is presented as a set of services, with each service delivered by a seperate server; used when data in a shared database has to be accessed from a range of locations; principal advantage of this model is that servers can be distributed across a network, general functionality can be available to all clients and does not need to be implemented by all services; each service is a single point of failure and so is susceptible to denial-of-service attacks or server failure

4+1 View Model

suggests that there should be four fundamental architectural views; logical view, process view, development view, physical view

Maintainability Critical Requirement

system architecture should be designed using fine-grain, self contained components that may readily be changed

Two Levels of Abstractions in Software Architectures

Architecture in the Small, Architecture in the Large

Three Advantages of Documenting System Architecture

Stakeholder Communicaion, System analysis, Large-scale resuse

Organizing Work

Application architecture identify stable structural features of the system arcchitecture, and in many cases, it is possible to develop these in parallel; can assign work to group members to implement different components in the application architecture

Use of Models of Application Architectures

As a Starting Point for Architectural design process, As a design checklist, As a way of organizing the work of the development team, As a means of accessing components for reuse, As a vocabulary for talking about discussions

Two ways in which an Architectural Model is Used

As a way of encouraging discussions about the system design, As a way of documenting an architecture that has been designed

Three Tier Layered Web Application Architecture

Display- user interface implemented using a web browser, Business Logic - responsible for implementing application specific logic as well as information storage and retrieval requests, Database - moves information to and from the database and handles transaction management

Critical Non-Functional Requirements

Performance, Security, Safety, Availability, Maintainability; have a close relationship with system architecture; architectural style and structure dependent on this;

Application Architectures

Transaction Processsing Applications, Language Processing Systems

Repository Architecture Pattern

describes how a set of interacting components can share data; suited to applications where in which data is generated by one component and used by another; all data in the system is managed in a central place that is only accesible to all system components; you should use this pattern when you have a system in which large volumes of information are generated that has to be stored for a long time; components can be independent, they do not need to know of the existence of other components; repository is a single point of failure so problems in the repository affect the whole system

Architectural Pattern (or Style)

description of a system organization, such as a client-server or layered architecture; captures the essence of an architecture that has been used in different software systems;stylized abstract description of good practice, which has been tried and tested in different systems and environments

Security Critical Requirement

layered strucuture for the architecture should be used, with the most critical assets protected in the inntermost layers and a high level of security validation applied to these layers

Pipe and Filter Architecture

runtime organization of a system where functional transformations process their inputs and produce outputs; data flows from one to another and is transformed as it moves through the sequence; processing of the data in a system is organized so that each processing component (filter) is discrete and carries out one type of data transformation. The data flows (as in a pipe) from one component to another for processing; commonly used in data-processing applications (both batch and transaction-based) where inputs are processed in seperate stages to generate related outputs; easy to understand and supports transformation reuse; format for data transfer has to be agreed between communicating transformations

Development View

shows how the software is decomposed for development, shows the breakdown of the software into components that are implemented by a single developer or development team

Process View

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

Physical View

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

Layered Architecture Pattern

system functionality is organized into seperate layers, and each layer only relies on the facilities and services offered by the layer immeditaely beneath it; another way of achieving seperation and independence; supports the incremental development of systems; changeable and portable; used when building new facilities on top of existing systems; allows replacements of entire layers as long as the interface is maintained; providing a clean seperation between layers is often difficult, performance can also be a problem because of multiple layers of interpretation

Language Processing Systems

systems in which the user's intentions are expressed in a formal language, such as a programming language; compilers and markup languages such as XML

Logical View

which shows the key abstractions in the system as objects or object classes; should be possible to relate the system requirements to entities in this view


Ensembles d'études connexes

BIO 3100 CH 7 PreClass Assignment 2

View Set

3/25 Budgeting and Managing Resources

View Set

Chapter 15 Operating System Basics

View Set

MedTerm 10.02 (Mental Health Specialties)

View Set

10. GPCR-adenylyl cyclase-cAMP-protein kinase A (pathway)

View Set