Want to make creations as awesome as this one?

Transcript

Worksheet Answers

  1. Hayden Simpson
  2. Alex Pallan
  3. Nathan Perkins
  4. Joseph Hennings

WK9_MON_DESIGN

Modular design means organizing code into modules so that each module has high cohesion and that modules have low coupling between them.

Define Modular Design:

Cohesion is a measure of how focused and strongly-related the responsibilities of a single module are.An element with low cohesion does many unrelated things

What is Cohesion?

Low coupling means not many interconnections. This is a good thing.

What does it mean for a module to have low coupling?

  1. Budget Management
    1. minimizing time spent fixing bugs
  2. Maintainability
    1. easier to pinpoint bugs
  3. Readability

What are the 3 main reasons modular design is important?

You will know your design is modular if you can:(1) identify modules and (2) test each module INDEPENDENTLY of the rest of the code.

How will you know if your design is modular?

Layering is a special case of modular design. Modules are organizedinto layers. Modules in an upper layer areallowed to use the modules in the lower layer below it.

What do you understand by layered design?

  1. Operating Systems
  2. Networking Systems

Give two examples of layered design in real-life complex software.

Layered design is an important tool for managing complexity. One canunderstand the functionality of one layer at a time. - portability. maintainability. reusability. - change in a layer can be hidden behind its interface- a layer can be substituted by another implementation of the layer.- a layer can be reused in some other system. - a blueprint for constructing the system - too many modules etc -> layering helps focus on a specific part- development can proceed a layer at a time.- specialized teams can be assigned to layers (skilled GUi developersto GUI layer)

What are a few outstanding benefits of using layered design?