Don't forget to hit the ⭐ if you like this repo.
Link to lecture notes: here
- 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. ⚙️
- Involves developing several system models. 📐
- Requires a significant effort in terms of development and maintenance. 🧰
- Design models are important communication mechanisms. 🗣️
- Well-formed class:
- Complete : Has all necessary components (data and methods) ✅
- Sufficient : Has only necessary components (no excess) ✅
- Cohesive : Related components that work together ✨
- 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 ⚙️
- Can be achieved if most of the interaction is within subsystems, rather than across subsystem boundaries
- Can be achieved if a calling class or interface does not need to know anything about the internals of the called class
- 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
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.