






Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
Detailed solutions to the tdt4240 software architecture exam, covering key concepts, architectural patterns, quality attributes, and design principles. It offers insights into software architecture design, including architectural drivers, tactics, and patterns, as well as process and logical views. Particularly valuable for students studying software architecture and provides a comprehensive understanding of the subject.
Typology: Cheat Sheet
1 / 11
This page cannot be seen from the preview
Don't miss anything!
Note! Students will find examination results at Studentweb. If you have questions regarding the results, you have to contact your department. Department of Computer and Information Science
Academic contact during examination: Professor Alf Inge Wang Phone: +47 9228 9577 Examination date: Friday May 31s^2013 Examination time (from-to): 09:00 – 13: Permitted examination support material:
Page 2 of 11
Answer these questions briefly : 1.1 What is Bass, Clements and Kazman’s definition of Software Architecture (the definition in the textbook)? 1.2 What is idioms when we discussion terms related to design patterns? 1.3 Describe briefly the three types of view described in the textbook: Allocation, Component-and-Connector, and Module? 1.4 What is the purpose of a utility tree, and how is it used in an ATAM evaluation? 1.5 Which architectural view describes in detail how a module is coded? 1.6 Discuss whether this statement is true or false: “Every software system has a software architecture”. 1.7 Name one example of an architectural pattern that fits into the type module , one example that fits into the type component-and-connector , and one example that fits into the type allocation. 1.8 Give five reasons why software architecture is important according to the textbook. 1.9 Briefly explain how the four contexts Technical , Project life cycle , Business, and Professional affect the software architecture according to the textbook. 1.10 Write one fully specified quality attribute scenario for availability, using the template given in the textbook. 1.11 Describe the main types of availability tactics in the textbook, and give at least one specific example of an architectural tactic for each type. 1.12 Briefly explain the quality attribute interoperability. 1.13 Describe and explain the design pattern Abstract Factory using a class diagram. 1.14 What parameters (inputs) are typically used in models for analyzing performance? 1.15 What is an architectural pattern? 1.16 What analytic models are typically used for modeling availability? 1.17 What is a tradeoff point in an ATAM evaluation? 1.18 What is the challenge with a software product line where the scope is too narrow? 1.19 Briefly describe the steps in the Attribute-driven design method. 1.20 What techniques exist to help keep the code and the architecture consistent according to the textbook? References:
Page 4 of 11 1.12 Interoperability: The degree to which two ore more systems can usefully exchange meaningful information. 1.13 Abstract factory: 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 us- ing.^23 Abstract Factory Structure <{Product}> Concrete product Factory Concrete factory Factory (^) <{Product}> interface AbstractFactory +createAbstractProduct:AbstractProduct interface AbstractProduct ConcreteFactory ConcreteProduct +createAbstractProduct:AbstractProduct 1.14 Parameters (inputs) for analytic modeling of performance (candidates): Arrival rate of events, queuing discipline, scheduling algorithm, service time for events, network topology, network band- width, routing algorithm etc. 1.15 Architectural pattern (candidate answers):
Page 5 of 11
Nominees: a) Layered b) Broker c) Model-view-controller d) Pipe-and-Filter e) Client-Server f) Peer-to-peer g) Service-Oriented h) Publish-Subscribe i) Map-Reduce j) Multi-tier Choose the most appropriate architectural pattern (one) for the 5 descriptions below. Motivate for your choices (give reasons for choosing the pattern):
a) What is an edge-dominant system and what characteristics do edge-dominant systems have? (2 points) b) Draw and explain the metropolis structure of an edge-dominant system (3 points) c) What are the implications of edge-dominant systems for the software architecture? (3 points)
a) Explain the three Cloud Service Models described in the textbook: 1) Software as a Service,
Page 7 of 11 Solution Problem 4 4a) Cloud Service Modes:
Page 8 of 11
Read the description below and do an architectural design. Your answer must include: a) Architectural drivers – 2 points b) Architectural tactics and patterns – 3 points c) Process view – 8 points d) Logical view – 14 points e) Architectural rationale – 3 points Motivate for your choices and state your assumptions. Software for sea buoys support for navigation at sea There exists a collection of free-floating buoys that provide navigation and weather data to air and ship traffic at sea. The buoys collect air and water temperature, wind speed, and location data through a variety of sensors. Each buoy may have a different number of wind and temperature sensors and may be modified to support other types of sensors in the future. Each buoy is also equipped with a radio transmitter (to broadcast weather and location information as well as an SOS message) and a radio receiver (to receive requests from passing vessels. Some buoys are equipped with a red light, which may be activated by a passing vessel during sea-search operations. If a sailor is able to reach the buoy, he or she may flip a switch on the side of the buoy to initiate an SOS broadcast. Software for each buoy must:
Page 10 of 11 TDT4240 Software Architecture 5c) Process view (there are several possible process view, but the view must show how the system is operating while running and how the different parts of the system interact). This process view shows an activity diagram with events and shows how the different parts of the system interact and that they all are timed by a clock, which outputs a pulse. The clock synchronizes all sensors as well as the broadcasting of messages. An SOS request triggered by the Emergency Switch will cause SOS Message send by the Radio Transmitter.
Page 11 of 11 TDT4240 Software Architecture 5d) Logical view 5e) Architectural rationale The architecture has focused on modifiability, performance and availability. The Clock provides both performance by scheduling when various tasks are performed, and is used as a heartbeat to check that the system is up and running (external hardware unit). Modifiability is provided through the Task Control Architecture pattern, which makes it easy to extend and change the design, clear separation of concerns between various parts, and abstraction for common services for sensors, which makes it easy to replace sensors as well as adding new sensors in the future.