Quiz #3 Software Engineering 1 In class we talked about three-ter architectures
ID: 3888513 • Letter: Q
Question
Quiz #3 Software Engineering 1 In class we talked about three-ter architectures being the predominant structure for many services Your reading "Introduction to Software Architectures" described a ocused on an important unifying characteristic of one of these tiers. (For this question, ignore t /visual layer since that's not really part of the service architecture.) Describe two meaningful architectural patterns by describing the unifying characteristic of each, describe an example for each; and describe why you think that service would possess those characteristics. (I expect -4 sentences total per pattern, not including the client number of different architecture patterns. These patterns usuallyf dentifying the example) 2 Describe five attributes of quality code. You may use the book's vocabulary for this, but the vocabulary doesn't interest me. I want you to describe what those attributes look lke. For example, portability Whether or not you provide that term, I want you to the attribute like "How easy it would be to run the code on a new system, like new hardware or in a new operating system" 3 Assuming you could accurately describe attributes of quality code in #2, describe here three different specific manifestations of those qualities. In other words, if I looked at quality code, specifically what sort of things would I see (or not see) in the code. For example, I would not see direct calls to underlying Windows operating system calls sprinkled throughout the code, because that would likely make the code unportable. Describe two fundamentally different processes for developing a software that read about in the summary of software development process. Pay particular attention t what the design/ requirements gathering process looks like. Provide an example of the type of product/ company that might follow that process. Describe why this process would be preferred for this project/ company type over the other. (1 expect about 10-12 sentences total, with at least 3 focused on how design occurs in the process.) youExplanation / Answer
Answer 1):
An architectural style provides a collection of building block design elements, rules and constraints for composing the building blocks, and tools for analyzing and manipulating designs created in the style. Styles generally provide guidance and analysis for building a broad class of architectures in a specific domain whereas patterns focus on solving smaller, more specific problems within a given style (or perhaps multiple styles).
A "pattern" has been defined as “an idea that has been useful in one practical context and will probably be useful in others.”. Patterns offer the promise of helping the architect identify combinations of architectural and/or solution building blocks that have been proven to deliver effective solutions in the past, and may provide the basis for effective solutions in the future.
An Architectural Pattern expresses a fundamental structural organization or schema for software systems. It provides a set of predefined subsystems, specifies their responsibilities, and includes rules and guidelines for organizing the relationships between them.
Factory Method:
The Factory pattern creates an object from a set of similar classes, based on some parameter, usually a string. An example, is the creation of a MessageDigest object in Java:
MessageDigest md = MessageDigest.getInstance("SHA-1");
If one changes the parameter to "MD5" for instance, one gets an object that calculates the message digest based on the MD5 algorithm instead. The advantage of using a parameter is that changing the algorithm does not require us to re-compile our code. Other examples of this pattern are the loading of the database connection driver in Java using
Class.forName("jdbc.idbDriver"), which admittedly is some very odd syntax, but the idea is the same.
Observer:
The Observer pattern is one of the most popular patterns, and it has many variants. Assume you have a table in a spreadsheet. That data can be displayed in table form, but also in form of some graph or histogram. If the underlying data changes, not only the table view has to change, but you also expect the histogram to change. To communicate these changes you can use the Observer pattern: the underlying data is the observable and the table view as well as the histogram view are observers that observe the observable. Another example of the Observer pattern is a button in Swing for instance: here the JButton is the observable, and if something happens to the button (usually this means it was pressed by the user) then the listener (the observer) gets notified.
Some additional examples of architectural patterns:
Per Chegg policy only one answer can be provided. Please upload other two question again. Thanks for understanding! Rate Well!
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.