New Semester
Started
Get
50% OFF
Study Help!
--h --m --s
Claim Now
Question Answers
Textbooks
Find textbooks, questions and answers
Oops, something went wrong!
Change your search query and then try again
S
Books
FREE
Study Help
Expert Questions
Accounting
General Management
Mathematics
Finance
Organizational Behaviour
Law
Physics
Operating System
Management Leadership
Sociology
Programming
Marketing
Database
Computer Network
Economics
Textbooks Solutions
Accounting
Managerial Accounting
Management Leadership
Cost Accounting
Statistics
Business Law
Corporate Finance
Finance
Economics
Auditing
Tutors
Online Tutors
Find a Tutor
Hire a Tutor
Become a Tutor
AI Tutor
AI Study Planner
NEW
Sell Books
Search
Search
Sign In
Register
study help
computer science
software architecture in practice
Software Architecture In Practice 4th Edition Len Bass, Paul Clements, Rick Kazman - Solutions
Other common architectural patterns that can increase a system’s modifiability include blackboard, broker, peer-to-peer, model-view-controller, and reflection. Discuss each in terms of the modifiability tactics it packages.
“Every system has real-time performance constraints.” Discuss. Can you provide a counterexample?
Write a concrete performance scenario that describes the average on-time flight arrival performance for an airline.
Write several performance scenarios for an online auction site. Think about whether your major concern is worst-case latency, average-case latency, throughput, or some other response measure. Which tactics would you use to satisfy your scenarios?
Web-based systems often use proxy servers, which are the first element of the system to receive a request from a client (such as your browser). Proxy servers are able to serve up often-requested web pages, such as a company’s home page, without bothering the real application servers that
A fundamental difference between interaction mechanisms is whether interaction is synchronous or asynchronous. Discuss the advantages and disadvantages of each with respect to each of these performance responses: latency, deadline, throughput, jitter, miss rate, data loss, or any other required
Find physical-world (that is, non-software) examples of applying each of the manage resources tactics. For example, suppose you were managing a brick-and-mortar big-box retail store. How would you get people through the checkout lines faster using these tactics?
List 10 computer-controlled devices that are part of your everyday life right now, and hypothesize ways that a malicious or malfunctioning system could use them to hurt you.
Write a safety scenario that is designed to prevent a stationary robotic device (such as an assembly arm on a manufacturing line) from injuring someone, and discuss tactics to achieve it.
The U.S. Navy’s F/A-18 Hornet fighter aircraft was one of the early applications of fly-by-wire technology, in which onboard computers send digital commands to the control surfaces (ailerons, rudder, etc.) based on the pilot’s input to the control stick and rudder pedals. The flight control
According to slate.com and other sources, a teenage girl in Germany “went into hiding after she forgot to set her Facebook birthday invitation to private and accidentally invited the entire Internet. After 15,000 people confirmed they were coming, the girl’s parents canceled the party,
Write a safety scenario to protect the unfortunate girl in Germany from Facebook.
On February 25, 1991, during the Gulf War, a U.S. Patriot missile battery failed to intercept an incoming Scud missile, which struck a barracks, killing 28 soldiers and injuring dozens. The cause of the failure was an inaccurate calculation of the time since boot due to arithmetic errors in the
Author James Gleick (“A Bug and a Crash,” around.com/ariane.html) writes that “It took the European Space Agency 10 years and $7 billion to produce Ariane 5, a giant rocket capable of hurling a pair of three-ton satellites into orbit with each launch. … All it took to explode that rocket
Discuss how you think safety tends to “trade off” against the quality attributes of performance, availability, and interoperability.
Discuss the relationship between safety and testability.
What is the relationship between safety and modifiability?
With the Air France flight 447 story in mind, discuss the relationship between safety and usability.
Create a list of faults or a fault tree for an automatic teller machine. Include faults dealing with hardware component failure, communications failure, software failure, running out of supplies, user errors, and security attacks. How would you use tactics to accommodate these faults?
Write a set of concrete scenarios for security for an automobile. Consider in particular how you would specify scenarios regarding control of the vehicle.
One of the most sophisticated attacks on record was carried out by a virus known as Stuxnet. Stuxnet first appeared in 2009, but became widely known in 2011 when it was revealed that it had apparently severely damaged or incapacitated the high-speed centrifuges involved in Iran’s uranium
Security and usability are often seen to be at odds with each other. Security often imposes procedures and processes that seem like needless overhead to the casual user. Nevertheless, some say that security and usability go (or should go) hand in hand, and argue that making the system easy to use
List some examples of critical resources for security, which a DoS attack might target and try to exhaust. Which architectural mechanisms could be employed to prevent this kind of attack?
Which of the tactics detailed in this chapter will protect against an insider threat? Can you think of any that should be added?
In the United States, Netflix typically accounts for more than 10 percent of all Internet traffic. How would you recognize a DoS attack on Netflix.com? Can you create a scenario to characterize this situation?
The public disclosure of vulnerabilities in an organization’s production systems is a matter of controversy. Discuss why this is so, and identify the pros and cons of public disclosure of vulnerabilities. How could this issue affect your role as an architect?
Similarly, the public disclosure of an organization’s security measures and the software to achieve them (via open source software, for example) is a matter of controversy. Discuss why this is so, identify the pros and cons of public disclosure of security measures, and describe how this could
A testable system is one that gives up its faults easily. That is, if a system contains a fault, then it doesn’t take long or much effort to make that fault show up. In contrast, fault tolerance is all about designing systems that jealously hide their faults; there, the whole idea is to make it
What other quality attributes do you think testability is most in conflict with? What other quality attributes do you think testability is most compatible with?
Many of the tactics for testability are also useful for achieving modifiability. Why do you think that is?
Write some concrete testability scenarios for a GPS-based navigation app. What tactics would you employ in a design to respond to these scenarios?
Write a concrete usability scenario for your automobile that specifies how long it takes you to set your favorite radio stations. Now consider another part of the driver experience and create scenarios that test other aspects of the response measures from the general scenario table (Table 13.1).
One of our tactics is to limit nondeterminism, and one method is to use locking to enforce synchronization. What impact does the use of locks have on other quality attributes?
Suppose you’re building the next great social networking system. You anticipate that within a month of your debut, you will have half a million users. You can’t pay half a million people to test your system, yet it has to be robust and easy to use when all half a million are banging away at it.
Suppose you use executable assertions to improve testability. Make a case for, and then a case against, allowing the assertions to run in the production system as opposed to removing them after testing.
How might usability trade off against security? How might it trade off against performance?
Pick a few of your favorite websites that do similar things, such as social networking or online shopping. Now pick one or two appropriate responses from the usability general scenario (such as “anticipate the user’s need”) and an appropriate corresponding response measure. Using the response
Why is it that in so many systems, the cancel button in a dialog box appears to be unresponsive? Which architectural principles do you think were ignored in these systems?
Why do you think that progress bars frequently behave erratically, moving from 10 to 90 percent in one step and then getting stuck on 90 percent?
Research the crash of Air France flight 296 into the forest at Habsheim, France, in 1988. The pilots said they were unable to read the digital display of the radio altimeter or hear its audible readout. In this context, discuss the relationship between usability and safety.
The Kingdom of Bhutan measures the happiness of its population, and government policy is formulated to increase Bhutan’s GNH (gross national happiness). Read about how the GNH is measured (try grossnationalhappiness.com) and then sketch a general scenario for the QA of happiness that
Discuss how you think development distributability tends to trade off against the QAs of performance, availability, modifiability, and integrability.
Research some QA lists for things that are not software systems: qualities of a good car, for example, or a good person to be in a relationship with. Add qualities of your own choosing to the list or lists that you find.
Development-time tactics have to do with separating and encapsulating responsibilities. Performance tactics have to do with putting things together. That is why they are perpetually in conflict. Must it always be so? Is there a principled way of quantifying the tradeoffs?
Is there a taxonomy of tactics? Chemists have the periodic table and laws of molecular interaction, atomic physicists have their catalogs of subatomic particles and laws for what happens when they collide, pharmacologists have their catalogs of chemicals and laws for their interactions with
Security is a QA that is especially sensitive to processes that take place in the physical world outside the computer: processes for applying patches, processes for choosing and safeguarding your passwords, processes for physically securing the installations where computers and data live, processes
What is the relationship between each pair of QAs in the following list?• Performance and security• Security and buildability• Energy efficiency and time to market
Describe the interface to a dog, or another kind of animal with which you are familiar. Describe its operations, events, and properties. Does a dog have multiple interfaces (e.g., one for a known human and another for a stranger)?
Document the interface to a light bulb. Document its operations, events, and properties. Document its performance and resource utilization. Document any error states it may enter and what the result will be. Can you think of multiple implementations that have the same interface you just described?
Under what circumstances should performance (e.g., how long an operation takes) be a part of an element’s published interface? Under what circumstances should it not?
Suppose an architectural element will be used in a high-availability system. How might that affect its interface documentation? Suppose the same element will now be used in a high-security system. What might you document differently?
The section “Error Handling” listed a number of different error-handling strategies. For each, when is its use appropriate? Inappropriate? What quality attributes will each enhance or diminish?
What would you have done to prevent the interface error that led to the loss of the Mars Climate Orbiter, as described at the beginning this chapter?
On June 4, 1996, an Ariane 5 rocket failed quite spectacularly, only 37 seconds after launch. Research this failure, and discuss what better interface discipline could have done to prevent it.
A database schema represents an interface between an element and a database; it provides the metadata for accessing the database. Given this view, schema evolution is a form of interface evolution. Discuss ways in which a schema can evolve and not break the existing interface, and ways in which it
Create a LAMP container using Docker. Compare the size of your container image to one you find on the Internet. What is the source of the difference? Under what circumstances is this a cause of concern for you as an architect?
Calculate the cost of an ATAM-based evaluation for a large enterprise-scale system’s architecture. Assume a fully burdened labor rate of $250,000 per year for the participants. Assuming that an evaluation uncovers an architectural risk and mitigating this risk saves 10 percent of project costs,
Find a commonly accepted definition of system architecture and discuss what it has in common with software architecture. Do the same for enterprise architecture.
If you remember nothing else from this book, remember . . . what? Extra credit for not peeking
For each of the 13 reasons why architecture is important articulated in this chapter, take the contrarian position: Propose a set of circumstances under which architecture is not necessary to achieve the result indicated. Justify your position.
This chapter argues that architecture brings a number of tangible benefits. How would you measure the benefits, on a particular project, of each of the 13 points?
Suppose you want to introduce architecture-centric practices to your organization. Your management is open to the idea, but wants to know the ROI for doing so. How would you respond?
Do you suppose that the set of tactics for a quality attribute is finite or infinite? Why?
Enumerate the set of responsibilities that an automatic teller machine should support and propose a design to accommodate that set of responsibilities. Justify your proposal.
Choose an architecture that you are familiar with (or choose the ATM architecture you defined in question 3) and walk through the performance tactics questionnaire. What insight did these questions provide into the design decisions made (or not made)?Data from in Question 3Enumerate the set of
Write a set of concrete scenarios for availability using each of the possible responses in the general scenario.
Write a concrete availability scenario for the software for a (hypothetical) driverless car.
Write a concrete availability scenario for a program like Microsoft Word.
Redundancy is a key strategy for achieving high availability. Look at the patterns and tactics presented in this chapter and decide how many of them exploit some form of redundancy and how many do not.
How does availability trade off against modifiability and deployability? How would you make a change to a system that is required to have 24/7 availability (i.e., no scheduled or unscheduled down time, ever)?
Consider the fault detection tactics (ping/echo, heartbeat, system monitor, voting, and exception detection). What are the performance implications of using these tactics?
Which tactics are used by a load balancer when it detects a failure of an instance?
How does the container management system know that only one layer has been changed so that it needs to transport only one layer?
We have focused on isolation among VMs that are running at the same time on a hypervisor. VMs may shut down and stop executing, and new VMs may start up. What does a hypervisor do to maintain isolation, or prevent leakage, between VMs running at different times? Hint: Think about the management of
What set of services would it make sense to group into a Pod (as was done with service meshes) and why?
What are the security issues associated with containers? How would you mitigate them?
What are the concerns associated with employing virtualization technologies in embedded systems?
What class of integration and deployment errors can be avoided with VMs, containers, and Pods? What class cannot?
A load balancer is a type of intermediary. Intermediaries enhance modifiability but detract from performance, yet a load balancer exists to increase performance. Explain this apparent paradox.
A context diagram displays an entity and other entities with which it communicates. It separates the responsibilities allocated to the chosen entity from those responsibilities allocated to other entities, and shows the interactions needed to accomplish the chosen entity’s responsibilities. Draw
Sketch the set of steps to allocate a VM within a cloud and display its IP address.
Research the offerings of a major cloud provider. Write a set of rules that would govern the autoscaling for a service that you would implement on this cloud.
Some load balancers use a technique called message queues. Research message queues and describe the differences between load balancers with and without message queues.
Which architectural choices would you make to design a system that could tolerate complete loss of power and have the ability to restart where it left off without compromising the integrity of its data?
What are the architectural issues involved in network transitions, such as starting a file transfer over Bluetooth and then moving out of Bluetooth range and switching over to Wi-Fi , all the while keeping the transfer seamlessly proceeding?
Determine the weight and size of the battery in one of your mobile systems. What compromises do you think the architect made because of the size and weight?
Which types of problems can a CSS testing tool find? Which does it miss? How do these considerations affect the testing of mobile devices?
Consider an interplanetary probe such as those used in NASA’s Mars exploration program. Does it meet the criteria of a mobile device? Characterize its energy characteristics, network connectivity issues (obviously, none of the network types discussed in Section 18.2 are up to the task),
Consider mobility not as a class of computing system, but rather as a quality attribute, like security or modifiability. Write a general scenario for mobility. Write a specific mobility scenario for a mobile device of your choosing. Describe a set of tactics to achieve the quality attribute of
Interview representative stakeholders for a business system in use at your company or your university and capture at least three business goals for it. To do so, use PALM’s seven-part business goal scenario outline, referenced in the “For Further Reading” section.
Based on the business goals you uncovered for question 1, propose a set of corresponding ASRs.Data from Questions 1Interview representative stakeholders for a business system in use at your company or your university and capture at least three business goals for it. To do so, use PALM’s
Create a utility tree for an ATM. (Interview some of your friends and colleagues if you would like to have them contribute QA considerations and scenarios.) Consider a minimum of four different QAs. Ensure that the scenarios that you create at the leaf nodes have explicit responses and response
Find a software requirements specification that you consider to be of high quality. Using colored pens (real ones if the document is printed; virtual ones if the document is online), color red all the material that you find completely irrelevant to a software architecture for that system. Color
What are the advantages of following an established method for design? What are the disadvantages?
Is performing architectural design compatible with an agile development methodology? Choose an agile method and discuss ADD in that context.
What is the relationship between design and analysis? Are there some kinds of knowledge that you need for one but not the other?
If you had to argue for the value of creating and maintaining architectural documentation to your manager during the design process, what arguments would you put forward?
How would your realization of the steps of ADD differ if you were doing greenfield development versus brownfield development?
Think of a software system that you’re working on. Prepare a 30-minute presentation on the business goals for this system.
If you were going to evaluate the architecture for this system, who would you want to participate? What would be the stakeholder roles, and who could you get to represent those roles?
Showing 200 - 300
of 329
1
2
3
4
Step by Step Answers