Download Software Systems Architecture: Exercises and Questions and more Exams Nursing in PDF only on Docsity! SSA questions well answered already passed Even if a formal specification does not exist, it is still correct to say every system has an architecture. - correct answer ✔✔True Scrum is one of the most popular approaches for Agile project management. The Scrum process starts by electing issues from the sprint to compose a backlog. The backlog corresponds to an iteration and it should last a pre-defined period of time, where those issues will be addressed by the project team. At the end of the sprint, unfinished issues are returned to the sprint for prioritization. The status of each activity should be updated to the Scrum board. - correct answer ✔✔False. Elect issues from backlog to compose sprint Defining a structured solution to meet all technical and operational requirements of a system while optimising its quality attributes. - correct answer ✔✔Software Systems Architecture During a standup, each development team member volunteers the status of the activities under his or her responsibility (completed, next steps, and roadblocks). - correct answer ✔✔Agile daily coordination meetings They have considerable impact on a system's quality. - correct answer ✔✔Architectural decisions It can be used to manage computational resources on supercomputers and cloud environments. - correct answer ✔✔DRMS. Distributed resource management system Upon a user's request, the DRMS will allocate resources to the user, but only if such resources are available, the resources are within the user's quota, and the user is allowed to work in that particular environment (supercomputer or cloud). - correct answer ✔✔True A monitoring tool will be able to allocate resources on the distributed system managed by the DRMS. - correct answer ✔✔False. The monitoring does not do the actual allocation When requesting resources to a DRMS, the user needs to specify exactly what he or she wants in terms of infrastructure (e.g., memory, computing, and storage). In some cases, it is also possible to specify other requirements such as operating system. All users will get exactly the same resources regardless of the environment, making the DRMS task rather simplistic in terms of resource allocation. - correct answer ✔✔False. User get's requested resources. Some of the assignment requirements (DRMS) will be similar to the requirements of Internet bankings and other web systems, at least in terms of what matters to build system architectures. - correct answer ✔✔True User Story - correct answer ✔✔A user story represents a small piece of business value that a team can deliver in an Agile iteration; must have only enough information to guide the development; then it can be incremented over time. As a <user type>, I want to <function> so that <benefit> . DRMS - correct answer ✔✔Distributed Resource Management System Main Architectural Structures - correct answer ✔✔Module - code Runtime/Component and Connector (C&C) - Interaction of structures at runtime Allocation - Mapping the structures to the system's environments: where software is created and executed (dev-ops, integration and testing) There is no such thing as an inherently good or bad architectures - correct answer ✔✔True Architectures are either more or less fit for some purpose - correct answer ✔✔True Architectures can be evaluated but only in the context of Artifact being stimulated, e.g. a collection of systems, a system, parts of a system. - correct answer ✔✔Artifact QAS structure - correct answer ✔✔SSEARR Collection of primitive design techniques that an architect can use to achieve a specified quality attribute response - correct answer ✔✔Tactics - Tactics, like design patterns, are techniques that architects have been using for years. we don't invent them. Tactics allow architects to construct a design fragment from "first principles" - correct answer ✔✔True An action taken against a computer system with the intention of doing harm - correct answer ✔✔Attack Security Characteristics - correct answer ✔✔C,I,A, Authen, Nonrep, Author A disgruntled employee from a remote location attempts to modify the pay rate table during normal operations. The attack is detected under a minute. The data is not compromised. The system maintains an audit trail and the admin is informed within a day. - correct answer ✔✔Concrete Security scenario Security Tactic Categories - correct answer ✔✔detect, resist, react, and recover. In the quality attribute security, the ability of a system to protect data and information from unauthorised access is as important as its ability to provide authorised access to system resources. Authorisation, confidentiality, integrity, availability, authentication and nonrepudiation are among the security's most important aspects. - correct answer ✔✔True Functional requirements may be related to quality attributes, but they have different applications. - correct answer ✔✔True Constraints are very important to define design decisions. However, unless they have enough information to help gathering quality attributes, they are usually irrelevant to define software systems architectures. - correct answer ✔✔False. Always relevant as architecture is built on top of constraints. Functional requirements are very important to define system functionalities. However, unless they have enough information to help gathering quality attributes, they are usually irrelevant to define software systems architectures. - correct answer ✔✔True Main reasons (2) that would lead an architect to end up with ill-defined quality attributes. - correct answer ✔✔Overlaps and the inability to test the arch specs. important to have well-defined QAS. property of software: that it is there and ready to carry out its tasks when you need it to be. - correct answer ✔✔Availability Availability builds on reliability by adding the notion of recovery (repair) - correct answer ✔✔True The heartbeat monitor determines that a server (from a cluster of servers) is non-responsive during normal operations. The system informs the operator and continues to operate with no downtime. - correct answer ✔✔Concrete Availability Scenario Availability Tactic categories - correct answer ✔✔Detect Faults, Recover from Faults (Prep & Repair, and Reintroduction), Prevent Faults ?? is about change, and our interest in it is in the cost and risk of making changes. - correct answer ✔✔Modifiability The developer wishes to change the user interface by modifying the code at design time. The modifications are made with no side effects within three hours. - correct answer ✔✔Concrete Modifiability Scenario Modifiability Tactic Categories - correct answer ✔✔Reduce Size of Modules, Increase Cohesion, Reduce Coupling, Defer Binding ?? is concerned with how easy it is for the user to accomplish a desired task and the kind of user support the system provides. - correct answer ✔✔Usability Over the years, a focus on usability has shown itself to be one of the cheapest and easiest ways to improve a system's quality -Or, more precisely, the user's perception of quality - correct answer ✔✔Usability The user downloads a new application and is using it productively after two minutes of experimentation. - correct answer ✔✔Concrete Usability Scenario Usability Tactic Categories - correct answer ✔✔Support User Initiative, Support System Initiative ?? is about the degree to which two or more systems can usefully exchange meaningful information. - correct answer ✔✔Interoperability At runtime, our vehicle information system sends our current location to the traffic monitoring system. The traffic monitoring system combines our location with other information, overlays this information on Google Maps, and broadcasts it. Our location information is correctly included with a probability of 99.9%. - correct answer ✔✔Concrete Interoperability Scenario Interoperability Tactics - correct answer ✔✔Locate, Manage Interfaces ?? is about time and the software system's ability to meet timing requirements. - correct answer ✔✔Performance Users initiate transactions under normal operations. The system processes the transactions with an average latency of two seconds. - correct answer ✔✔Concrete Performance Scenario Performance Tactics Categories - correct answer ✔✔Control Resource Demand, Manage Resources ?? refers to the ease with which software can be made to demonstrate its faults through (typically execution-based) testing. - correct answer ✔✔Testability The unit tester completes a code unit test in a component of the system during development and performs a test sequence whose results are captured and that gives 85% path coverage within 3 hours of testing. - correct answer ✔✔Concrete Testability Scenario They are very important performance tactics that belong to the manage resources category. - correct answer ✔✔False. Reducing overhead tactic is part of the Control Resource Demand category The main tactics of this quality attribute are mainly related to system analysis and design. - correct answer ✔✔Modifiability "Specialised interfaces" are used to capture or control variable values for a component. A "sandbox" can be used to isolate the system and enable experimentation. "Limit structural complexity" is related to finding all the sources of non-determinism in a system to simplify testing. They are all testability tactics. - correct answer ✔✔False. The description is for the tactic "Limit Non-determinism". "Limit structural complexity" refers to avoiding or resolving cyclic dependencies between components. All architectural structures can be classified as either module or C&C. - correct answer ✔✔False. There is a third arch structure called Allocation. "An architecture should implement all available tactics for all quality attributes that have been identified as ASRs for a system." This statement is clearly correct because tactics are essentially recipes to be followed by the architect. - correct answer ✔✔False. do not implement all tactics, only relevant?? "As a user, I want to be able to schedule jobs so that I can run complex calculations." This is a well-formed user story, which is applicable to the DRMS. - correct answer ✔✔True "As an executive, I want to be able to generate a report so that I understand which departments need to improve their productivity." This is a well-formed user story, which is applicable to the DRMS. - correct answer ✔✔False. not relevant to DRMS System requirements can be categorised in functional requirements, quality attribute requirements, and constraints. As building software systems architecture is a complex activity, all system requirements are relevant to design architectures. - correct answer ✔✔False. Maybe not all are relevant? Functional requirements is a category of system requirements. The first describes systems functionalities but they do not determine the architecture of a software system. - correct answer ✔✔True The allocation of resources by the DRMS starts with a request from the user, who should specify the desired computational resources to run their jobs. This request is analysed by the DRMS and the resources will be immediately allocated if the user is authorised to work on the environment managed by the DRMS. Once the resources aren't needed any longer, they are released and the DRMS can allocate them to another user. - correct answer ✔✔False. DRMS will verify: a) if user is allowed to use resources in this environment; b) if requested resources are within the user's quota; and c) if resources are available • If the three conditions are "TRUE", DRMS will the allocate the resources and the user will be able to run their jobs Job submission, job monitoring, and real-time scheduling are services that should be provided by the DRMS. However, as the DRMS manages resources instead of people, traditional management functionalities such as the generation of reports for analyses purposes are not required. - correct answer ✔✔False. reports for analysis are required and relevant. Documenting architectures may require a notation. Notations can be informal, semi-formal, and formal. A proper documentation will help to take full advantage of the architecture, so technical documents should adopt formal notation as often as possible. Views should also be adopted to document different aspects of a system - correct answer ✔✔False. There is no requirement to adopt formal as much as possible. What QAS? A GPS tracking system installed on a mobile can accurately send the user location to the central monitoring system. - correct answer ✔✔Interoperability What QAS? A stakeholder wants to change the user interface by redeveloping some of its functionalities during design time. The changes cost $3,000 and are deployed with no side effects within three days. - correct answer ✔✔Modifiability What QAS? The acceptance of a system by a software manufacturer only happens after running selected scripts to detect problems during 48 hours. This should identify at least 99.5% of the existing faults and failures. - correct answer ✔✔Testability Choose the user stories that are correct, complete and related to a D-RMS. As an administrator of the D-RMS, I want to view and manage the resource allocation so that I can oversee the distributed environment and act if needed. - correct answer ✔✔True is QAS correct? What Pattern has these weaknesses: - The complexity may not be worth it for simple user interfaces - The abstractions may not be good fits for some user interface toolkits - correct answer ✔✔MVC Pattern What relation associates clients and servers in a Broker Pattern - correct answer ✔✔Attachment relation What relation associates clients and servers in an MVC Pattern - correct answer ✔✔Notifies relation What relation associates clients and servers in a Client-Server Pattern - correct answer ✔✔Attachment relation What pattern has these weaknesses: - Server can be a performance bottleneck - Server can be a single point of failure - Decisions about where to locate functionality (in the client or in the server) are often complex and costly to change after a system has been built - correct answer ✔✔Client-Server Pattern What pattern has these weaknesses: - Managing security, data consistency, data/service availability, backup, and recovery are all more complex - Small ?? systems may not be able to consistently achieve quality goals such as performance and availability - correct answer ✔✔Peer-to-Peer pattern what is this solution?: Computation is achieved by a set of cooperating components that provide and/or consume services over a network - correct answer ✔✔Service Oriented Architecture Solution What pattern uses these connectors: SOAP, REST, Asynchronous messaging connector? - correct answer ✔✔Service Oriented Architecture Solution What pattern has these weaknesses: - ??-based systems are typically complex to build - You don't control the evolution of independent services - There is a performance overhead associated with the middleware, and services may be performance bottlenecks, and typically do not provide performance guarantees - correct answer ✔✔Service Oriented Architecture Solution what is this solution: Communication between data accessors is mediated by a ?? store; control may be initiated by the data accessors or the data store; Data is made persistent by the data store - correct answer ✔✔Shared Data Solution what pattern has these weaknesses: - The ?? may be a performance bottleneck - The ?? may be a single point of failure - Producers and consumers of data may be tightly coupled - correct answer ✔✔Shared Data Solution In Map-Reduce: what does the map function do? - correct answer ✔✔filters the data to retrieve those items to be combined In Map-Reduce: what does the reduce function do? - correct answer ✔✔combines the results of the map what is this solution: The execution structures of many systems are organized as a set of logical groupings of components - correct answer ✔✔Multi-Tier Solution what solution has these weaknesses: Substantial up-front cost and complexity - correct answer ✔✔Multi-Tier Solution The Service Oriented Architecture (SOA) pattern is an attempt to support interoperability of distributed components running on different platforms and written in different implementation languages, provided by different organisations, and distributed across the Internet. - correct answer ✔✔True The multi-tier pattern should be applied when a system must be split into computationally independent structures connected by some communication media. - correct answer ✔✔True Architectural patterns establish relationships among context, problem and solution. - correct answer ✔✔True When data needs to be accessed by multiple independent components, the shared-data pattern can be applied. - correct answer ✔✔True The layer pattern should be applied when software needs to be developed separately. This pattern is useful for increasing portability and performance. - correct answer ✔✔False. good for portability. bad for performance Peer-to-peer should be used when distributed computational entities need to collaborate to provide a service. In this pattern, components need to interact with each other as peers and therefore communication strategies based on request/reply must be implemented. - correct answer ✔✔True A broker is used in distributed software to allow dynamic change of binding between service providers and service consumers (clients). One of the main issues caused by adopting the broker pattern in the broker itself, which can be a single point of failure that also may add latency and be a communication bottleneck. - correct answer ✔✔True When shared resources and services need to be made available for a large number of distributed clients, the client-server pattern is recommended. This pattern improves scalability & availability by centralising the control of resources and services while distributing resources across multiple physical servers. - correct answer ✔✔True What QA does the following fall under: • Effectiveness: a measure whether the system is correct; • Efficiency: the effort and time required to develop a system; "A car crash is witnessed by a person, who informs the insurance strategy information system. This system is running on normal mode and it will assess if this information should result in an insurance strategy revision under 0.5s." This QAS could be associated with the quality attribute performance. - correct answer ✔✔True "A user is granted access to the DRMS and understands how to submit jobs to it in less than a day." This QAS could be associated with the quality attribute usability. - correct answer ✔✔True Having two or more modules of a system being affected by a single change indicates the quality attribute modifiability is not being properly addressed. - correct answer ✔✔True What can help with capacity planning during analysis and design - correct answer ✔✔Analytic models/back of the envelope analysis What can help understand potential bottlenecks during analysis and design - correct answer ✔✔Analytic models or simulation What can help determine if a mechanism is correct during analysis and design - correct answer ✔✔Checklists What can be used during the implementation process or after fielding; - correct answer ✔✔Experiments and synthetic load tests What can be used after fielding to determine actual behavior and find bottlenecks. - correct answer ✔✔Monitors What is the relationship between ASRs, QASs, and constraints? - correct answer ✔✔ASRs are determined by QASs and constraints. What are the three Design Strategy components - correct answer ✔✔Decomposition, Design to address the ASRs, generate and test. what does ADD stand for: - correct answer ✔✔Attribute-Driven Design what are the 3 parts of an ADD iteration - correct answer ✔✔- Choose a part of the system to design; - Marshal all the architecturally significant requirements for that part; - Generate and test a design for that part The Steps of ADD - correct answer ✔✔1. Confirm there is sufficient requirements Information; 2. Choose an element of the system to decompose; 3. Identify candidate architectural drivers (ASRs for the chosen element); 4. Choose a design concept that satisfies the architectural drivers; 5. Instantiate architectural elements and allocate responsibilities; 6. Define interfaces for instantiated elements; 7. Verify and refine requirements and make them constraints for instantiated elements; 8. Repeat steps 2-7 until all the ASRs have been satisfied or you have to stop. What is a URI and what does it do? - correct answer ✔✔- URI: Uniform Resource Identifier • Compact sequence of characters that identifies an abstract or physical resource; it can be further classified as a locator, a name, or both What is a URL and what does it do? - correct answer ✔✔- URL: Uniform Resource Locator • Subset of URIs that, in addition to identifying a resource, provide a means of locating the resource by describing its primary access mechanism (e.g., its network "location") What is a URN and what does it do? - correct answer ✔✔- URN: Uniform Resource Name • URN is the "globally unique" part of the identification; it's a unique name What is the difference between a URN and a URL - correct answer ✔✔URN functions like a person's name while a URL resembles that person's street address; URN defines an item's identity, while the URL provides a method for finding it What is the relation between URI and URL - correct answer ✔✔URL is a type of URI but not all URIs are URLs The URN is the "globally unique" part of the identification; it's a unique name What is the internet? - correct answer ✔✔• Internet is a global system of interconnected computer networks that interchange data by packet switching using the standardized Internet Protocol Suite (TCP/IP) • Internet is a network of networks, defined by the TCP/IP standards What is the Semantic Web - correct answer ✔✔"The Semantic Web provides a common framework that allows data to be shared and reused across application, enterprise, and community boundaries." "The Semantic Web is a web of data." What does XML stand for - correct answer ✔✔eXtensible Markup Language What is XSD? - correct answer ✔✔- A XML Schema can be described in the XML Schema Definition (XSD) • XSD is a language to describe XML Schemas What are other cloud-enabling technologies? - correct answer ✔✔- Broadband Networks and Internet Architecture - Data Center Technology - Web Technology - Multitenant Technology - Service Technology Risks & Challenges of Cloud computing - correct answer ✔✔• Increased Security Vulnerabilities • Reduced Operational Governance Control • Limited Portability Between Cloud Providers • Multi-Regional Regulatory and Legal Issues Multitenant Technology - correct answer ✔✔Multitenant application design was created to enable multiple users (tenants) to access the same application logic simultaneously. What are the security concerns in multi-tenant environments - correct answer ✔✔- Inadvertent information sharing - Virtual machine "escape" - Denial of Service attacks Cloud Delivery Models: - correct answer ✔✔IAAS PAAS SAAS Nowadays called just services rather than the above tag. Cloud Deployment Models: - correct answer ✔✔Private Clouds Public Clouds Community Clouds Hybrid Clouds Applications nowadays can be developed based on services distributed across the Internet and provided by different organisations. However, those services can be running on different platforms and/or be written in different implementation languages, which requires interoperability. An architectural pattern that intends to solve this problem is: - correct answer ✔✔Service Oriented Architecture Quality attributes are used to qualify a system. They should describe what a system should in terms of functional requirements. - correct answer ✔✔False. Qualilty attributes qualify func requirements. func requirements describe what a system should do. Some quality attributes have well-understood, time-tested analytic models which can be used to analyse architectures in relation to their ability to provide the expected quality attributes. There are models to analyse interoperability, testability, availability and performance, among others. - correct answer ✔✔True Modelling an architecture for availability requires determining the failure rates and the recovery times of its components. Back-of-the-envelope and experience-based analogy forms of analysis can be applied; both are recommended in the later stages of the SDLC (Systems Development Life Cycle). - correct answer ✔✔False. those analysis methods are applied at the beginning stages of the SDLC Several parameters are required in performance models, such as frequency of arrivals/events and the time to process messages. The only non-issue for performance is the definition of specific disciplines to manage queues. - correct answer ✔✔False. Second sentence wrong. it is a problem for performance. Checklists usually happen in the architectural development phase of the SDLC (Systems Development Life Cycle). For example, security checklists are common and they usually comprehend product and process-related requirements. - correct answer ✔✔True XML, XML Schema, RDF, RDF Schema and Ontology are used to address a very important quality attribute. This quality attribute is: - correct answer ✔✔Interoperability Module, C&C and allocation are the main architectural structures. Defining sets of them to reason about a system and identifying the corresponding relationships is a good definition for software architecture. - correct answer ✔✔True Modules are essentially related to software (code + data). C&C may also be related to software, but not to where it is stored or how it is developed. Instead, C&C is concerned about runtime behaviour. Allocation is related to environments; dev-ops is a good example of this structure. - correct answer ✔✔True Clouds could only evolve because of certain technologies, such as virtualisation, clustering, grid computing, Internet, and broadband. Another technology that could be part of this list is: - correct answer ✔✔Multitenant Technology What pattern? Support segmentation in software development, so that modules can be developed separately with little interaction among the parts to support portability, modifiability, and reuse. - correct answer ✔✔Layer. developed seperately. supports portability, modifiability, and reuse. does not support performance What pattern? Structure distributed software so that service users do not need to know the nature and location of service providers, dynamically changing bindings between users and providers. - correct answer ✔✔Broker changing bindings The layer pattern should be applied when software needs to be developed separately. This pattern is useful for increasing portability and performance. - correct answer ✔✔False Supports portability, modifiability, reuse but not performance The multi-tier pattern should be applied when a system must be split into computationally independent structures connected by some communication media. - correct answer ✔✔True Audits are very important to detect attacks. That's why keeping a record of users and systems interactions is also very important. - correct answer ✔✔False.