Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Need help with this question. Need to know which architectural style apply to wh

ID: 3760712 • Letter: N

Question

Need help with this question. Need to know which architectural style apply to which design principles.

These are the design principles:

Design for change

Separation of concerns

Information Hiding

High Cohesion

Low Coupling

Keep it simple and stupid

And these are the architectural style: N tier, event driven system, main program and subroutines, persistence framwork, client-server, peer-to-peer, and blackboard.

Need to know which architectural style apply to which design principle. Please help me with this question.

Explanation / Answer

>The most important principle in Software Engineering is the Separation of Concerns (SoC): The idea that a software system must be decomposed into parts that overlap in functionality as little as possible. It is so central that it appears in many different forms in the evolution of all methodologies, programming languages and best practices.
>“separation of concerns … even if not perfectly possible is yet the only available technique for effective ordering of one’s thoughts”
>Information Hiding,focuses on reducing the dependency between modules through the definition of clear interfaces. A further improvement was Abstract Data Types (ADT),which integrated data and functions in a single definition.
>Since the first software systems were implemented, it was understood that it was important for them to be modular. It is necessary to follow a methodology when decomposing a system into modules and this is generally done by focusing on the software quality metrics of coupling and cohesion, originally defined by Constantine
1.Coupling: The degree of dependency between two modules. We always want low coupling.
2.Cohesion: The measure of how strongly-related is the set of functions performed by a module. We always want high cohesion.

>Information Hiding reduces coupling by isolating the details of the implementation of state. ADTs reduce coupling by defining clear and abstract interfaces. An ADT that specifies in a single definition the set of functions that can be executed on a type is certainly more cohesive than a global data structure that is modified by external functions
>Design:
When evaluating and comparing our own design alternatives, it is always useful to think in terms of coupling and cohesion. Sometimes a design seems to be more complex than others, but this may be a consequence of a better separation of concerns, with fewer dependencies between modules through the definition of additional layers. Another design may at first appear to have too many classes, but this may be an advantage if each class becomes more cohesive.