Flashcards
ProgArk

Flashcards do conjunto (99)
- 1Discuss: "Every software system has a software architecture"True, as every system can be shown to consist of elements and relations among them to support some type of reasoning, even though the system might not have software architectural documentation.
- 2Give five examples of important 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. - 3Shortly 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. - 4What is a hypervisor in cloud computing?Operating system to create and manage virtual machines.
- 5What is multi-tenancy in cloud computing?Same application used by many different consumers.
- 6Definition Software Architecture?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.
- 7What is an architectural driver/ASR? Give examples.Functional, quality and/or business requirements that will have major impact on the software architecture (the structure of the system). Examples of architectural drivers can be the system must be developed in XNA, the system should be easy to extend new functionality, the system must be implemented in 10 weeks, etc.
- 8What is architectural drift?Implementation drifts away from the architectural documentation.
- 9What is architectural erosion?Gap observed between the planned and the actual architecture as realized in its implementation.
- 10Make a sketch (illustration) of the Metropolis model (you do not have to explain with text).

- 11What are the differences between a crowd-sourced and open source system?Crowdsourced the users mainly contributes with content (Wikipedia, Youtube, Facebook), while for open source users also contributed with source code (even source code for the core) (Eclipse, Firefox, Linux).
- 12What is important in the architectural design of an edge dominant system?Highly modular, highly robust with respect to errors, documented APIs, discovery service, complicated error detection, scalable.
- 13Draw a sketch and explain the principle of decoupled game loop.The game loop checks the controls and calculates AI at a fixed frequency. If the CPU is not occupied with calculating AI, then it draws a frame (drawing frame whenever have time).

- 14How 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 an 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.
- 15Shortly describe the steps for creating a game architecture according to Rollings & Morris.1) Find Tokens, 2) Analyze interactions and events, 3) Create logical view using tokens.
- 16What is a token in the analysis of a game architecture?Tokens are discrete elements that are directly or indirectly manipulated by the player in a game.
- 17What 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.
- 18Why 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!
- 19Explain how four contexts Technical, Project life cycle, Business and Professional affect 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. - 20How 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.
- 21How 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.
- 22Make a sketch (illustration) describing the architecture influence cycle as presented in the textbook.

- 23Motivation for software architecture? Five reasons!Enable a system’s driving quality attributes, enable reasoning about and manage change of the system, enable evaluation of system before implemented, 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 on implementation, 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, provide a reusable model that can form a product line, and foundation for training.
- 24What are the main influences on an architect design SWA according to textbook?Stakeholders (Business, Technical and Project) and Professional.
- 25Why useful to describe architecture through different views?*Makes it possible to address concerns of different stakeholders with varying interests. It is also impossible to cover all the complexity of a software architecture in one single view.
*By using different views and viewpoints, it is possible to concentrate on specific aspects of the system one at a time. Most systems are too complex to be captured in only one view, and by using multiple views, you get a less complex vision of the system. In addition, the different views address different concerns of the various stakeholders of the system. - 26Advantages 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.
- 27Briefly describe the 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. - 28Name five outputs of the 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.
- 29What is a tradeoff point in ATAM?An architectural decision that will affect two or more quality attributes at the same time (both positive and negative effects)
- 30What is ATAM an abbrevation for?Architecture Trade-off Analysis Method
- 31What 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.
ADD: Two alternatives. Textbook:
1. Choose an element of the system to design
2. Identify the ASRs for the chosen element
3. Generate a design solution for the chosen element
4. Inventory remaining requirements and select the input for next iteration
5. Repeat steps 1-4 until all ASRs have been satisfied
Slide approach:
1. Choose module to decompose
2. Refine module:
a. Choose architectural drivers
b. Choose/Create architectural patterns satisfying drivers
c. Instantiate modules and allocate functionality
d. Define interfaces of child modules
e. Verify and refine use cases and quality scenarios
3. Repeat steps above - 32What is the difference of a Sensitivity and a 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.
- 33What is the main difference between ATAM and CBAM?Main difference between ATAM and CBAM is that CBAM computes the return-on investment of several possible tactics to choose the best one, while ATAM focus on a set of selected tactics. Also the CBAM scenarios describe several possible response levels. CBAM includes an economical analysis and is used to find the architectural decisions within the resources available.
- 34What 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.
- 35What 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).
- 36What 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.
The purpose of IEEE1471 is to describe what is required to produce a sufficient software architectural documentation and it describes all the elements that are required. - 37What 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. A utility tree, with quality requirements described as a prioritized collection of scenarios, is one of the outputs of ATAM.
- 38What techniques exist to keep code and 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
- 39Where 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.
- 40Which architectural view describes in detail how a module is coded?None.
- 41Write fully specified 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 - 42Describe Abstract Factory and advantages.A family of related classes can have different implementation details and through the abstract interface the client does not need to know anything about which variant it is using. Advantages: The client does not know what variant it uses and this pattern is intended to support a family of related classes that can have different implementation details.
- 43Describe 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. Advantage: The Composite pattern makes is possible to handle single objects and objects that consists of several sub-objects in the same way.
- 44Describe 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.
- 45Describe the Singleton patterns and its advantages.The Singleton pattern makes a class itself responsible for keeping track of its sole instance. The class can ensure that no other instance can be created (by intercepting requests to create new objects), and it can provide a way to access the instance. 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), and to avoid misuse.
- 46Describe the template method pattern and its advantages.Defines the program skeleton of an algorithm in an operation, deferring som steps to subclasses. Let subclasses implement (through method overriding) behaviour that can vary. It lets one redefine certain steps of an algorithm without changing the algorithm’s structure.
- 47Difference between architectural pattern, design patterns and idioms?The abstraction level is different. Idioms are typically built into a programming language, design patterns are known solutions to recurrent problems refining a software component, and architectural pattern are typically known structures with known quality attributes.
- 48How can software architecture benefit from design patterns?Design patterns contribute as tactics to achieve qualities in certain areas. The design pattern ensure that the architecture achieve the quality on the design level.
- 49Name one Creational design pattern.Factory, Singleton
- 50Name one Structural design pattern.Composite, Proxy, Façade
- 51Name patters that fit into module, component-and-connector, and allocation.Module: Layered
C&C: Broker, MVC, Pipe and filter, Client-server, Peer-to-peer, SOA, Publish-subscribe, Shared-data
Allocation: Map-reduce, Multi-tier, - 52Name the three main parts needed to describe a design pattern.Context, Problem, Solution.
- 53What is a design pattern?A design pattern is a reusable solution or experience of a known problem.
- 54What is a pattern language in the context of design patterns?A pattern language is a structured collection of patterns that build on each other to transform needs and constraints into an architecture.
- 55What is an architectural pattern and give one example?* 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.
Description of element and relation types together with a set of constraint on how they may be used. Client server is one example of an architectural pattern. - 56What is an idiom related to design patterns?An idiom is a low-level reusable pattern specific for a particular programming language.
- 57What is the relationship between tactics and architectural patterns?Architectural patterns consist of a collection of tactics to achieve certain qualities
- 58Name one Behavioral design pattern.Observer, State, Strategy
- 59How to design architecture to support variations in product line?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.
- 60Under 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.
- 61What 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.
- 62What 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.
- 63What is the problem with too narrow or too broad scope for product line?Too narrow: Insufficient number of products will be derived to justify investment (too specific) - too few variants of the product can be produced. Too broad: Effort to develop individual products will be too grate (too general).
- 64Describe 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. - 65Explain 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.
- 66Explain how architectural 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.
- 67Explain 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.
- 68Explain the quality attribute interoperability.The degree to which two or more systems can usefully exchange meaningful information.
- 69Give examples of typical response measures for availability.Time interval the system must be available, availability time, % of uptime, Repair time, Maximum failure time, etc
- 70Give examples of typical response measures for performance.Number of simultaneous users, transactions per second, latency, frame rate
- 71Give examples of typical response measures for testability.Effort to find a fault or class of faults, effort to achieve a given percentage of state space coverage; probability of fault being revealed by the next test; time to perform tests; effort to detect faults; length of longest dependency chain in test; length of time to prepare test environment; reduction in risk exposure (size(loss) * prob(loss))
- 72Give 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.
- 73Name the four groups of modifiability tactics.Reduce size of a module, Increase cohesion, Reduce Coupling, Defer binding.
- 74Name the four main groups of security tactics?Detect attacks, Resist attacks, React to attacks, Recover from attacks.
- 75Name the three groups of 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...)
- 76Name the two groups of performance tactics.Control resource demand, manage resources
- 77What analytic models are used for modeling availability?Markov and statistical models
- 78What analytic models are used for modeling performance?Queuing model and real time-scheduling
- 79What are quality attributes?A quality attribute (QA) is a measurable or testable property of a system that is used to indicate how well the system satisfies the needs of its stakeholders. You can think of a quality attribute as measuring the “goodness” of a product along some dimension of interest to a stakeholder. Ex: availability, modifiability
- 80What can be used to analyze the quality attribute security in a software architecture?Security checklists can be used to analyze the quality attribute security.
- 81What 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.
- 82What is the relationship between functionality and quality attributes?None. Functionality and quality attributes are orthogonal.
- 83What parameters (inputs) are used in models analyzing performance?Arrival rate of events, queuing discipline, scheduling algorithm, service time for events, network topology, network bandwidth, routing algorithm
- 84What 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.
- 85Describe 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). - 86How 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.
- 87What 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)
- 88What is view fusion?View fusion is to combine information in a database to create new views in order to reconstruct a database.
- 89What 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)
- 90Why can it be neccesary to reconstruct a software architecture?Enable maintenance/integration/expansion/reuse of legacy system, enable comparison of different systems, check conformance against as-design architecture.
- 91Why neccesary to reconstruct?The software architecture might never have been documented, the architecture might be outdated, the architecture might be lost, key persons of a system might have left the company, etc.
- 92Describe 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.
- 93What is the purpose of the development view in 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.
- 94(Ikke teori) What is important in the design of the core architecture of an Edge-dominant system?The core must be highly modular, layered, highly robust with respect to errors,
well documented APIs, high security, provide discovery service, efficient
processing, constructed by a small tight-knit team, etc. - 95(Ikke teori) Economic justification for cloud-based computingEconomies of scale (power costs, infrastructure labor, security & reliability, hardware cost), Utilization of equipment (time of day, time of year, resource usage patterns, uncertainty), Multi-tenancy (single application for multiple consumers – save help desk support, upgrade all, single version)
- 96(Ikke teori) Basic mechanisms needed to provide cloud serviceHypervisor (OS to create and manage virtual machines)
Virtual Machine (software abstraction of hardware)
File system (multiple users, multiple storage)
Network (IP address handling). - 97(Ikke teori) Private, public, community and hybrid cloud?Private cloud: The cloud infrastructure owned/operated by a single organization.
Public cloud: The cloud infrastructure available to the general public or a large industry group.
Community cloud: The cloud infrastructure is shared/supported by several organizations.
Hybrid cloud: The cloud infrastructure is a composition of two or more clouds types. - 98(Ikke teori) Characteristics of edge-dominant system?Characteristics can be built-in social media functionality, easy to add functionality and services, parts or the whole system might be open-source, core software developed by small group of developers, many users & prosumers.
- 99(Ikke teori) QAS: Environments?Availability: normal operations
Interoperability: normal mode
Modifiability: design time
Performance: normal operations
Security: normal operations
Testability: during development
Usability: runtime
Informações
- Descrição
- FlashCards sobre ProgArk, criado por Rakel Andreassen em 16-05-2018.
- Criado por
- Rakel Andreassen
- Visualizações
- 0
- Avaliação