Skip to content

Latest commit

 

History

History
64 lines (45 loc) · 3.7 KB

File metadata and controls

64 lines (45 loc) · 3.7 KB

Stars Badge Forks Badge Pull Requests Badge Issues Badge GitHub contributors

Don't forget to hit the ⭐ if you like this repo.

Module 7: Object-Oriented Detailed Design 🤖

Link to lecture notes: here

Understanding the Relationship Between Analysis, Design, and Implementation 💡

  • Software design is a creative activity. 🎨
  • The stages of "software design and implementation" are :
    • The process of developing an executable software system. 🏗️
  • Implementation is :
    • The process of executing the program design. ⚙️

Object-Oriented Design Process 📏

  • Involves developing several system models. 📐
  • Requires a significant effort in terms of development and maintenance. 🧰
  • Design models are important communication mechanisms. 🗣️

Understanding Object-Oriented Design Principles 🚩

  • Well-formed class:
    • Complete : Has all necessary components (data and methods) ✅
    • Sufficient : Has only necessary components (no excess) ✅
    • Cohesive : Related components that work together ✨

Design Principles

  • Encapsulation : Each object is a self-contained unit containing both data and program logic 📐
  • Object reuse : Standard objects can be used over and over again within a system ⚙️
  • Information hiding : Data associated with an object is not visible 📐
  • Navigation visibility : Describes which objects can interact with each other ⚙️
  • Coupling : Measures how closely classes are linked 📐
  • Cohesion : Measures the consistency of functions in a class ⚙️

High Cohesion

  • Can be achieved if most of the interaction is within subsystems, rather than across subsystem boundaries

Low Coupling

  • Can be achieved if a calling class or interface does not need to know anything about the internals of the called class

OBJECT-ORIENTED DESIGN MODELS USING UML

  • Design model elaborates on the analysis model with technical solutions.
  • Design model includes the same components as the analysis model, but with more fully formed artifacts and implementation details.
  • An analysis class may only be a sketch with few attributes and key operations.
  • A design class must be fully specified with all attributes and operations, including return types and parameter

Cohesion and Couping

Contribution 🛠️

Please create an Issue for any improvements, suggestions or errors in the content.

You can also contact me using Linkedin for any other queries or feedback.