1、软件体系结构考试CS6075 Final Take-Home Exam Answers9:00am 3:00pm, May 19, 20131. (8%) Answer the following questions about the big idea of software architecture in software engineering:a) What are the principal insights from the discipline of building (conventional) architecture that are applicable to the c
2、onstruction of software systems? Ans:We all live in them. We know how they are built:Requirements, Design (blueprints), Construction, Use. Satisfaction of customers needs. Specialization of labor. Multiple perspectives of the final product. Intermediate points where plans and progress are reviewed.
3、Architecture is different from, but linked with the product/structure. Properties of structures are induced by the design of the architecture. The architect has a distinctive role and character. Process is not as important as architecture. Design and resulting qualities are at the forefront. Process
4、 is a means, not an end. Architecture has matured over time into a discipline. Architectural styles as sets of constraints. Styles also as wide range of solutions, techniques and palettes of compatible materials, colors, and sizes. A distinctive role and character in a project. Very broad training.
5、Amasses and leverages extensive experience. A keen sense of aesthetics. Deep understanding of the domain: Properties of structures, materials, and environments and Needs of customers. Even first-rate programming skills are insufficient for the creation of complex software applications.b) Lists 5 or
6、more differences between tasks of a software architect and a building architect. Explain your answer. Ans:The nature of software is different from that of building architecture. They are different things in different areas. Software is much more malleable than physical materials.When a building is b
7、uilt, it cant be changed. However, software can be updated and rebuilt. The two “construction industries” are very different.The two whole industries have no similarity. Software deployment has no counterpart in building architecture. Software is a machine; a building is not. Software can be easily
8、copied; a building is not. 2. (8%) Answer the following questions about the software architecture centric approach in software life cycle: a) The architecture-centric approach emphasizes that software architecture is artifact, not software development phase. Explain that if we only consider software
9、 architecture as a development phase, what the role of software architecture is in software life cycle. Explain that if we consider software architecture as development artifact, what the role of software architecture is in software life cycle. Ans:As a phase:Treating architecture as a phase denies
10、its foundational role in software development. It is more than “high-level design”. Architecture is also represented, e.g., by object code, source code,. As a artifact:The role is in the whole software life cycle, containing Requirements, Design, Implementation, Analysis and Testing, Evolution and D
11、evelopment Process. Requirements:Traditional SE suggests requirements analysis should remain unsullied by any consideration for a design. However, without reference to existing architectures it becomes difficult to assess practicality, schedules, or costs. In building architecture we talk about spec
12、ific rooms rather than the abstract concept “means for providing shelter”. In engineering new products come from the observation of existing solution and their limitations. Existing designs and architectures provide the solution vocabulary. Our understanding of what works now, and how it works, affe
13、cts our wants and perceived needs. The insights from our experiences with existing systems helps us imagine what might work and enables us to assess development time and costs. Requirements analysis and consideration of design must be pursued at the same time.Design:Traditional design phase suggests
14、 translating the requirements into algorithms, so a programmer can implement them. Architecture-centric design stakeholder issues decision about use of COTS component overarching style and structure package and primary class structure deployment issues post implementation/deployment issues.Implement
15、ation:The objective is to create machine-executable source code. That code should be faithful to the architecture. Alternatively, it may adapt the architecture. How much adaptation is allowed? Architecturally-relevant vs. -unimportant adaptations. It must fully develop all outstanding details of the
16、 application Analysis and Testing:Analysis and testing are activities undertaken to assess the qualities of an artifact. The earlier an error is detected and corrected the lower the aggregate cost. Rigorous representations are required for analysis, so precise questions can be asked and answered .Ev
17、olution:Motivation. Evaluation or assessment. Design and choice of approach Action includes preparation for the next round of adaptationDevelopment Process:Traditional software process discussions make the process activities the focal point. In architecture-centric software engineering the product b
18、ecomes the focal point. No single “right” software process for architecture-centric software engineering exists. b) Explain that, in terms of unit tests of a software system, based on the systems software architecture models, what black-box test cases can be designed? What white-box test cases can b
19、e designed? Ans:3. (20%) Answer the following questions about the concepts of software architecture:a) Give 2 or more reasons that potentially cause a software systems prescriptive and descriptive architectures mismatch?Ans:A systems prescriptive architecture captures the design decisions made prior
20、 to the systems construction. It is the as-conceived or as-intended architectureA systems descriptive architecture describes how the system has been built It is the as-implemented or as-realized architectureReasons:The nature of the components The nature of the connection The global nature of the ar
21、chitecture Construction processesb) Use one sentence to explain each of the following elements of a software systems architecture: component, connector, and configuration. Ans:Component:encapsulate processing and data in a systems architectureConnector:an architectural building block tasked with eff
22、ecting and regulating interactions among componentsConfiguration:a set of specific associations between the components and connectors of a software systems architecturec) Software architecture is a set of principle decisions on a software system in 4 aspects: structure, behavior, interaction, and no
23、n-functional properties. You are asked to design a software system for a user to manage his contact list with the following functionality: add a new contact, delete a contact, update a contact, search a contact, and view a contact. The software architecture must be based on MVC architectural pattern
24、. Draw a UML class diagram, with classes and their relationships, to show the structure of the system architecture. For each class in the diagram, just give its name and operations without signature. Draw a UML sequence diagram to show the collaborative object behaviors that implement one of the abo
25、ve operations. Describe your choice of connectors that implement communications between system components. Give one example required non-functional property of the system. Ans:Class diagramSequence diagram4. (12%) Answer the following questions about software architectural styles:a) Use one sentence
26、 to explain each of the following categories of architectural styles: layered, data flow, shared memory, interpreter, implicit invocation, and peer-to-peer.Ans:layered:Hierarchical system organization. “Multi-level client-server”. Each layer exposes an interface (API) to be used by above layersdata
27、flow:Separate programs are executed in order; data is passed as an aggregate from one program to the next.shared memory:memory that may be simultaneously accessed by multiple programs with an intent to provide communication among them or avoid redundant copiesInterpreter:Interpreter parses and execu
28、tes input commands, updating the state maintained by the interpreterimplicit invocation:a term used by some authors for a style of software architecture in which a system is structured around event handling, using a form of callback.peer-to-peer:a distributed application architecture that partitions
29、 tasks or work loads between peers.b) What is in common between virtual machine style and interpreter style? What is the deference between the two? Explain your answer.Ans:A virtual machine (VM) is a software implemented abstraction of the underlying hardware, which is presented to the application l
30、ayer of the system. Virtual machines may be based on specifications of a hypothetical computer or emulate the computer architecture and functions of a real world computer. Interpreter parses and executes input commands, updating the state maintained by the interpreterComponents: Command interpreter,
31、 program/interpreter state, user interface.Connectors: Typically very closely bound with direct procedure calls and shared state.Highly dynamic behavior possible, where the set of commands is dynamically modified. System architecture may remain constant while new capabilities are created based upon
32、existing primitives.Superb for end-user programmability; supports dynamically changing set of capabilitiesLisp and Schemec) When you use an object-oriented programming language, such as Java, to develop a software system, the system implicitly applies object-oriented architectural style. Applying any additional architectural style results in that the system architecture will be based on a combination of two or more styles. Use an example to sh
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1