Theory questions Software Architecture

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

What is a quality attribute scenario?

A quality attribute scenario describes a specific quality requirement that a final system should have in such a way that it can be tested/evaluated. A quality attribute scenario is described by source of stimulus, stimulus, an artifact, the environment, response and a response measure.

What is the difference of a Sensitivity and an Tradeoff point?

A sensitivity-point describes how a design decision will affect only one quality attribute (usually positively), while a tradeoff point describes how several quality attributes are affected both positively and negatively.

What is a software product line?

A software product line is an architecture or approach that makes it possible to easily create a lot of variation of a product from the same software core with little effort.

Name one Behavioral design pattern.

Behavioral: Observer, State, Strategy, Template

Give examples of typical response measures for testability.

Effort to find faults Effort for test coverage Probability to detect faults Time to perform tests Length of longest dependency chain in tests Time to prepare test environment

Motivation for software architecture? Five reasons!

Enable a system's driving quality attributes, enable reasoning about and manage change of the system, prediction of a system's qualities, enhanced communication among stakeholders, carrier of the most fundamental - hardest to change design decisions, defines a set of constraints, dictates the structure of an organization and vice versa, basis for evolutionary prototyping, enabling reasoning about cost and schedule, focuses on assembly of components rather than simply on their creation, reducing design and system complexity, and foundation for training.

Why can it be necessary to reconstruct a software architecture?

Enable maintenance/integration/expansion/reuse of legacy system, enable comparison of different systems, check conformance against as-design architecture.

What is fps in a game and what parts of the game software affects the fps?

FPS is Frames per second - the number of screens a program can produce (render) in a second. Any game logic affects FPS, e.g. CPU heavy computations, AI computation, collision detection, graphical computations, sound computations etc. As long as it takes time to compute, it will affect the FPS.

Explain why this statement is either true or false: "Every complex software system has a software architecture"

True: All complex software systems have some internal structure, although it might not be planned or documented.

What is an idiom related to design patterns?

Low-level pattern specific to a programming language.

What are the main influences on an architect design SWA according to textbook?

Main influences on an architect: Stakeholders (Business, Technical and Project) and Professional.

What is a pattern language in the context of design patterns?

A pattern language is a collection of patterns that build on each other to generate a system. A pattern in isolation solves an isolated design problem, while a pattern language builds a system.

What is an architectural pattern and give one example?

* Description of element and relation types together with a set of constraint on how they may be used. * Package of design decisions that is found repeatedly in practice * Reusable structures that can be applied on construction of systems * Defines the element types and their forms of interaction used in solving the problem.

Give five examples of imporrtant architectural drivers for MMORPG WOW.

- Performance: Huge amount of simultaneous users (players) - high server demands - Performance: Low response times for players (network play) - high server/network demands - Availability: Downtime on servers will cause player losses and thus business losses - Availability: Players must rolled back to a consistent state if the server crashes - Security: The game must withstand cheating or hacking the game's state values (levels, attributes, currency etc.) - Modifiability: It should be possible to update servers without disturbing the players as little as possible.

Describe four steps of reconstructing software architecture

1. Information extraction: Extract information from various sources (e.g. source files, file directories, design documents etc). 2. Database construct: Covert information from step 1 to a database format 3. View fusion: Combine information in database to improve data 4. Reconstruction: Build abstractions and various representations (views).

What is a design pattern?

A design pattern is a reusable solution or experience of a known problem.

What is the difference between a reconstructed and a designed software architecture?

A designed architecture is a planned architecture (as-design architecture), while a reconstructed architecture is the architecture as the system was implemented (as-is architecture)

How can the architecture of the game loop affect the framerate of a game?

A game loop where the drawing of frame is not done until the AI and collisions are calculated is likely to have a unstable frame-rate depending on the number of enemies and the situation in the game, compared to a game-loop with full decoupling of the AI and collision calculations.

What is Attribute-Driven Design (ADD)?

ADD is an approach to defining a software architecture that bases the decomposition process on the quality attributes the software has to fulfill. It is a recursive decomposition process where, at each stage, tactics and architectural patterns are chosen to satisfy a set of quality scenarios and then functionality is allocated to instantiate the module types provided by the pattern 1. Choose the module to decompose 2 Refine the module: 2a) Choose architectural drivers 2b) Choose/create architectural pattern satisfying the drivers 2c) Instantiate modules and allocate functionality 2d) Define interfaces of the child modules 2e) Verify and refine use cases and quality scenarios 3 Repeat steps above for every module requiring further decomposition

What is ATAM an abbrevation for?

ATAM: Architecture Trade-off Analysis Method

Describe the singleton patterns and its advantages.

Advantages: Advantage of using Singleton is that you can control the number of instances for a specific class (e.g. classes that hold the state of one system or information that must be correct across the system).

Describe the views in the textbook: Allocation, Component-and-connector, Module.

Allocation structures describe how the system will relate to non-software structures in its environment (such as CPUs, file systems, networks, development teams, etc.). Component-and-connector structures describe how the system is to be structured as a set of elements that have runtime behavior (components) and interactions (connectors). Module structures describe how the system is to be structured as a set of code or data units that have to be constructed or procured.

Difference between architectural pattern, design patterns and idioms?

An architectural pattern is a general reusable solution to a architecture wide problem, and thus affects a large part of the architecture. A design pattern solves a problem for a more specified part of the architecture. An idiom is further specified as it specific to the programming language used. NOTE: Some patterns can be used both as arch. and design patterns. For example Pipe & Filter

What analytic models are used for modeling availability?

Analytics models for availability: Markov and statistical models

What is architectural erosion

Architectural erosion: Gap observed between the planned and the actual architecture as realized in its implementation.

Give examples of typical response measures for availability.

Availability response measures: Time interval the system must be available, availability time, % of uptime, Repair time, Maximum failure time, etc

Name the three groups of availability tactics.

Availability tactics: Detect faults (ping/echo, monitor, heartbeat, timestamp, voting, self-test...), Recover from Faults (Active redundancy, spare, exception handling, rollback, software upgrade, shadow...), Prevent Faults (Transactions, Predictive Model, Exception Prevention, Removal from Service...)

Explain difference between business, architecture and system quality.

Business quality is characteristics related to business goals of the system such as time to market, cost, system lifetime, targeted marked, rollout schedule, integration with legacy systems. Architecture quality is characteristics of the architecture itself such as conceptual integrity, correctness, completeness and buildability. System quality is characteristics about the software system.

What is the main difference between ATAM and CBAM?

CBAM includes an economical analysis and is used to find the architectural decisions within the resources available.

Briefly describe the CBAM process.

CBAM process: Collate scenarios Refine scenarios (worst, best, current, desired) Prioritize scenarios Assign utility to current and desired levels Develop architectural strategies and determine quality attribute response levels Determine expected utility value of architecture strategy using interpolation Calculate total benefit for architectural strategy Chose architectural strategies based on Value for Cost Confirm results with intuition.

Name the three main parts needed to describe a design pattern.

Context, Problem, Solution

Name the two groups of performance tactics.

Control resource demands: (Manage sampling rate, prioritize events, increase resource efficiency, etc.) Manage resources: (Increase resources, Introduce concurrency, caching, etc.)

Name one Creational design pattern.

Creational: Factory, Singleton

What is the purpose of the development view in 4+1 view model?

Development view 4+1 view model: Static organization of software in its development environment to make it easier to distribute work assignments to programmers and coordinate development carried out in parallel.

What are the differences between a crowd-sourced and open source system?

Differences between crowd-sourced and open source systems (Edge): Crowdsourced the users mainly contributes with content while for open source users also contributed with source code (even source code for the core).

How does various stakeholders influence the software architecture?

Different stakeholders have different needs related to the system addressed in the software architecture. Developer: easy to implement; Marketing: features, time-to-marked, low cost; Customer: Low cost, on time; End-user: easy to use, stable; and Maintainer: easy to modify.

How can software architecture benefit from design patterns?

Don't need to reinvent the wheel - use existing solutions to common problems. Promotes design of reusable, maintainable and/or extensible code and improving portability, flexibility and transparency. Is also good for easier communication of how the architecture is built up.

What is an architecturally significant requirement (ASR) (architectural driver)?

Functional, quality and/or business requirements that will have major impact on the software architecture (the structure of the system).

What is the relationship between functionality and quality attributes?

Functionality describes what a system can do, quality attributes describe how well the system does this. A functionality can be to press a button to get to the settings page. The quality attributes can be how quickly the system responds to the button click (performance), how often the button fails to send you to the settings page (availability) or how easy it is to find and use the button (usability).

Why is graphics hardware abstraction important in game architectures?

Hardware abstractions make it possible to create pretty much the same software to run on various hardware independent of graphics resolution, number of colors, use of sprites etc. The main benefit is reuse!

How to design architecture to support variations in product line?

High priority when designing software architecture for a software product line: Identify the stable parts and the variation parts in the product line. Support the variation points. Variation may vary in behavior, quality attributes, platform, network, physical configuration, middleware, scale factors etc. Variation points in a product line can be supported in a software architecture by several approaches. One approach is to provide sub-classing, where you have a general class covering the main functionality, and sub-classes for each specific product. Another approach is to use virtual machines that provide the same interface into the system, but can support various interfaces outside the system. Other possible options here can be to use design patterns like template method, abstract-factory, etc.

Explain how four contexts Technical, Project life cycle, Business and Professional affect architecture.

How contexts affect the software architecture: * Technical context: Set of quality attributes highly affect the software architecture, but the architecture is affected also by current technical environment, and the technology and framework used such as web, object-oriented, service-oriented, mobility-aware, cloud-based, social-network friendly. * Project-life cycle context: The architecture will limit or dictate what kind of life-cycle model that can be used and vice-versa (e.g. incremental development vs. waterfall vs. scrum etc.) * Business context: The business goals will highly affect the software architecture and vice-versa, such as time-to-market, roll-out schedule, changing business environment, time-to-launch etc. * Professional context: Software architecture is highly affected by knowledge and skills of the architects such as managerial skills, communication skills, knowledge of patterns, frameworks etc.

What is a hypervisor in cloud computing?

Hypervisor: Operating system to create and manage virtual machines.

Explain how arch choices to obtain modifiability and performance affect each other.

If modifiability has the main focus in a software architecture, it can lead to inefficient performance due to usage of many layers, and/or that the system has to go through many components to process or get information.

What is architectural drift?

Implementation drifts away from the architectural documentation

What is important in the architectural design of an edge dominant system?

Important in architectural design for an edge dominant system: Highly modular, highly robust with respect to errors, documented APIs, discovery service, complicated error detection, scalable.

How can information be extracted for reconstructing SWA?

Information can be extracted by reading requirement and design documentation, talking to developers and architects, reading code, using tools to generate call-graphs from code, looking at file structure of source code, analyzing run-time system, analyzing inputs and outputs from the system etc.

Explain the quality attribute interoperability.

Interoperability: The degree to which two ore more systems can usefully exchange meaningful information.

Name patters that fit into module, component-and-connector, and allocation.

Module: Layered pattern. Component-and-connector: Broker, Model-view-controller, Pipe-and-Filter, Client-Server, Peer-toPeer, Service-Oriented architectural, Publish-Subscribe, or Shared-Data pattern. Allocation: Map-reduce or Multi-tier pattern

What is multi-tenancy in cloud computing?

Multi-tenancy: Same application used by many different consumers.

What is the problem with too narrow or too broad scope for product line?

Narrow scope: Too few variants of the product can be produced to justify investment. Broad scope: The effort in making a new product will be too big (product line too generalized).

Which architectural view describes in detail how a module is coded?

None.

Give examples of typical response measures for performance.

Number of simultaneous users, transactions per second, latency, frame rate

Name five outputs of the ATAM?

Output ATAM: Concise presentation of architecture, Definition of business goals, Utility tree, mapping of architectural decisions to quality requirements, Sensitivity points, tradeoff points, Risk, Non-risks, Risk themes.

What parameters (inputs) are used in models analyzing performance?

Parameters (inputs) for analytic modeling of performance (candidates): Arrival rate of events, queuing discipline, scheduling algorithm, service time for events, network topology, network bandwidth, routing algorithm etc

Write fully specified quality attribute scenario for availability.

Quality attribute scenario for availability Source: Hardware Stimulus: Failure Artifact: Hard disk on server Environment: Normal operation Response: Backup-server takes over without any lost data Response measure: Back to normal operation within 30 seconds

What are quality attributes?

Quality attributes give an indication of how well the system performs a task (the task it self is a functional requirement). This can be how quickly a task is performed (performance), how often it fails (availability), how quickly you can learn to perform the task (usability) etc.

Name the four groups of modifiability tactics.

Reduce size of a module, Increase cohesion, Reduce Coupling, Defer binding.

What quality areas are related to scalability?

Scalability is mainly related to performance, as a scalable system is possible to e.g. handle more simultaneous user without getting long response times. In addition, scalability is partly related to modifiability, as a scalable system is modifiable in terms of performance.

What can be used to analyze the quality attribute security in a software architecture?

Security checklists can be used to analyze the quality attribute security.

Name the four main groups of security tactics?

Security tactics groups: Detect attacks, Resist attacks, React to attacks, Recover from attacks.

Shortly describe the three basic service models of cloud computing.

Software as a Service (Saas): Consumer applications running on a cloud. Platform as a Service (Paas): Development and deployment platform for the cloud. Infrastructure as a Service (IaaS): Virtual machine for the developer or system administrator.

Describe the six parts of a quality attribute scenario, each with one sentence.

Source of stimulus: Actor that generates the stimulus. Stimulus: Condition that will trigger something in the system. Environment: The condition the system is in when the stimulus happens. Artefact: The part of the system being affected. Response: The activity that will take place after arrival of the stimulus. Response measure: When the response occur, it should be measured so that the requirement can be tested.

Shortly describe the steps for creating a game architecture according to Rollings & Morris.

Steps for creating game architecture: 1) Find Tokens, 2) Analyze interactions and events, 3) Create logical view using tokens.

Name on Structural design pattern.

Structural: Composite, Proxy, Façade

Give examples of typical response measures for usability.

Task time, Number of errors, Number of problem solved, User satisfaction, Gain of user knowledge, Ration of successful operations of total operations, Amount of time/data lost.

What techniques exist to keep code and architecture consistent?

Techniques to keep code and software architecture consistent: Embed design in code, Use frameworks, Use code templates, Use tools to enforce architectural constraints, Mark documents when out of date, Schedule documentation/code synchronization times

Describe the composite pattern and advantages.

The Composite pattern is used to obtain a transparent treatment of single and multiple objects that simplifies the client code and allows arbitrary grouping of elements and uniform treatment of groups and primitives. http://prntscr.com/jgl72b Advantages: The Composite pattern makes is possible to handle single objects and objects that consists of several sub-objects in the same way.

Describe the Observer pattern and advantages.

The Observer pattern is used where you need to update several objects when one object is changed. This pattern is used to solve issues related to high coupling. http://prntscr.com/jgl3qm

Where does architectural design fit into waterfall process?

The architectural design should be started after the requirement phase is completed and before the detailed design is started: Thus after requirement phase and before or part of the initial stage of the design phase.

Draw a sketch and explain the principle of decoupled game loop.

The game loop checks the controls and calculates AI at a fixed frequency. If not the CPU is not occupied with calculating AI, then it draws a frame (drawing frame whenever have time). http://prntscr.com/jgki5v

Advantages using using ATAM.

The main advantages of using ATAM is that assurance that the architecture (masterplan) is correct, better to find problems early than late, unsuitable architecture will be a disaster for a project, force stakeholders to meet, evaluate that the system meet user quality requirements.

How can architecture be influenced by how company is organized?

The organization of the company reflects how the architecture of the system is structured to reflect what parts that can be implemented in parallel; the knowledge of departments and how many that should work on different part of the system

What is a variation point in a software product line?

The part of the software architecture of a software product line that varies from one product to the other.

What is the purpose of the IEEE1471?

The purpose of IEEE1471 standard is to describe what you should put into an architectural documentation without saying anything about the diagram language used.

Why useful to describe architecture through different views?

The purpose of architectural views is that it makes it possible to address concerns of different stakeholders with varying interests and needs. It is also impossible to cover all the complexity of a software architecture in one single view.

What is the purpose of evaluating software architecture?

The purpose of evaluating a software architecture is to be sure that the architecture serves the purpose according to the quality you want to obtain (insurance).

What is the purpose of CBAM?

The purpose of the CBAM is to evaluate what tactics give most benefit from the given cost (find the tactics with highest return-on-investment.

What is Bass, Clements and Kazman's definition of Software Architecture (the definition in the textbook)?

The software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both.

What is the purpose of the utility tree and how is it used in ATAM?

The utility tree is a way of organizing quality requirements into different quality attributes as well as it shows difficulty in achieving requirements and the importance of the quality attributes. Gives a structured overview of the quality requirements organized according to quality attributes.

What is a token in the analys of a game architecture?

Tokens are discrete elements that are directly or indirectly manipulated by the player in a game.

What is a tradeoff point in ATAM?

Trade-off point in ATAM: An architectural decision that will affect two or more quality attributes at the same time (both positive and negative effects)

What typical relations can you extract when reconstructing SWA?

Typical relations that can be extracted are file include file, file contains function, file defines variables, directory contains directory, directory contains files, function calls function, function access variables (both read and write). Useful information for reconstruction of software architecture can be static relationship information like file-file, file-function, file-variable, directory-directory, directory-file, function-function (call), function-variable (read), function-variable (write), build sequence, design models. Also runtime information can be used such as polymorphism, function pointers, runtime parameterization etc.

Explain how usability can be related to software architecture.

Usability can be related to software architecture in terms of usability issues that will impact the structure of components in the system, such as undo/redo functionality, keeping model of the user, the program state, etc

What is view fusion?

View fusion is the process in reconstruction where name clashes are found and disambiguated. Works as a cleaning step so the architecture can be easier to reconstruct.

Under what circumstances would a software product line be used?

When you want to develop software for many similar products with some variations but that share some common reusable features.

Make a sketch (illustration) describing the architecture influence cycle as presented in the textbook.

http://prntscr.com/jfa9ss

Make a sketch of the Metropolis model (no text explanation needed)

http://prntscr.com/jfab5s

Describe the template method pattern and its advantages.

http://prntscr.com/jfagvo Avoids duplication in the code. Can control what parts of the template that can be overridden.

Describe Abstract Factory and advantages.

http://prntscr.com/jfaldm Abstract factory advantage is that the client should not know anything about which variant they are using.


Ensembles d'études connexes

Health-Section 16.1-16.4 (Tobacco)

View Set

Inclined Plane, Wedge, and Screw

View Set

Chap. 13 Microbe-Human Interactions

View Set