Se 3
Se 3
Design process and design quality, design concepts, the design model. Creating an architectural
design: software architecture, data design, architectural styles and patterns, architectural
design, conceptual model of UML, basic structural modeling, class diagrams, sequence
diagrams, collaboration diagrams, use case diagrams, component diagrams.
Concept Description
Information Hiding Hide inner details of a module, only show what's needed.
📌 Design Elements:
1. Data/Class Design – Structures to store and manage data.
○ Internal modules
✅ Purpose:
● Defines the organization, communication, and control flow between components.
✅ Representation:
● Uses models like:
○ Block Diagrams
○ Flowcharts
○ UML Diagrams
✅ Goals:
● Understand system structure
💾 2. Data Design
✅ What is it?
● It defines data structures and how data is accessed, processed, and stored.
✅ Key Concepts:
● Data Structures: Arrays, Lists, Trees, etc.
🏛️ 3. Architectural Styles
✅ What is an Architectural Style?
● A design pattern for organizing components and their interactions.
✅ Common Styles:
Style Description
Data-Centered Uses a central data store (e.g., database). Example: Repository pattern
Call and Return Control is passed via function/procedure calls. Example: Main program
+ subroutines
Layered System is divided into layers, each built on top of the other. Example:
OSI Model
Client-Server Server provides services, client requests them.
🧩 4. Architectural Patterns
✅ What is a Pattern?
● A reusable solution to a recurring architectural problem.
✅ Examples:
● Model-View-Controller (MVC):
○ View: UI
● Microservices:
● Event-Driven Architecture:
● Broker Pattern:
🧱 Architectural Design
✅ What is Architectural Design?
● It's the first step in designing the system.
● It's a visual modeling language used to design and document software systems.
✅ Benefits:
● Helps visualize and analyze system structure.
✅ Main Elements:
● Classes
● Objects
● Relationships
● Packages
✅ Key Components:
● Class: Represented by a rectangle divided into three parts:
○ Class name
○ Attributes (variables)
○ Operations (methods)
● Relationships:
⏳ 2. Sequence Diagram
✅ Purpose:
● Shows how objects interact over time.
✅ Key Elements:
● Lifelines – Object instances (vertical dashed lines)
✅ Key Elements:
● Objects with links
✅ Key Elements:
● Actors – Users or external systems (stick figures)
● Use Cases – Functions/services the system provides (ovals)
🧩 5. Component Diagram
✅ Purpose:
● Shows the physical components of the system (like files, libraries, modules).
✅ Key Elements:
● Components – Represent software parts (e.g., a class, package, or system file)