Software Engineering Chapter 6
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