In: Computer Science
CS3323
Homework 4 (Week 4: Chapter 12, 13)
1. List three characteristics that can serve as a guide to evaluate design quality.
(Section 12.2.1)
2. Explain how effective modular design is achieved through functional independence of the
individual modules?
(Section 12.3.5)
3. Describe the principle of information hiding as it applies to software design.
(Section 12.3.6)
4. What are the elements that make up a software architectural style?
(Section 13.3)
5. What is an archetype?
(Section 13.6.2)
6. Explain the key differences between thin client architectures and a rich client architectures.
(Section 13.6.6)
--
Functional independence of modules is achieved by making modules single-minded (high cohesion) and preventing excessive interaction (low coupling) with other modules or system elements. Independent modules are easier to develop, maintain, and test, because the impact of side effects is reduced (as is the propagation of errors). This also makes it easier to perform parallel implementation of modules.
--
The principle of information hiding implies that modules only share information with each other on a "need to know" basis to achieve some specific software function. Hiding enforces the procedural constraints to both the module procedural detail and any data structures local to the module.
--
--
An archetype is a class or pattern that represents a core abstraction that is critical to the design of an architecture for the target system.
--
For mobile devices or web apps using thin client only the user interface layer is implemented on the device.
A rich client typical allocates the user interface layer, business layer and often the data layer too on the users device
--
All the best
please upvote