Design Process, Design Concepts,
Software Architecture, Architectural Styles and Design Topics Covered
• Design Process
Software Engineering Presentation • Design Concepts
• Software Architecture
Prepared for exam study and classroom presentation
• Architectural Styles
• Architectural Design
1. Design Process
The step where requirements are transformed into a blueprint before coding begins.
• Requirement analysis is reviewed to understand what the
Flow
system must do.
• Architectural design defines the overall structure of the system.
Requirements
• Interface design specifies interaction between modules, users,
↓
and external systems.
Architecture
• Component-level design describes the logic of each module or
↓
class.
Interfaces
• Data design defines data structures, files, and database schema.
↓
• Deployment design decides how software will be installed on
Components
hardware.
↓
• Design documents such as UML diagrams and specifications
Data & Deployment
are prepared.
↓
• The design is reviewed before implementation to reduce errors.
Review
2
2. Design Concepts
Principles that guide the creation of a good software design.
• Abstraction - focuses on essential features and hides unnecessary
detail. Good Design =
• Refinement - breaks a large problem into smaller parts step by High Cohesion + Low
step. Coupling
• Modularity - divides the system into smaller independent
modules.
• Information hiding - internal details of modules are hidden from
These concepts improve:
others. • Maintainability
• Functional independence - each module should perform one clear • Reusability
task. • Readability
• Low coupling - modules should depend as little as possible on • Testability
each other.
• High cohesion - related functions should stay together inside a
module.
• Patterns - reusable solutions to common software design
problems.
3
3. Software Architecture
The high-level organization of software components and their interactions.
Presentation
• Software architecture is the overall structure of the system.
• It defines components, connectors, interfaces, and Business Logic
constraints.
• Components are major modules or subsystems.
• Connectors represent communication between components.
Data Access
• Interfaces specify how components interact.
• Architecture helps in scalability, maintainability, and
performance.
• It provides a clear roadmap for development teams. Database
• A strong architecture reduces future system complexity.
Example layered view
4
4. Common Architectural Styles
A standard way of organizing a software system.
Layered Software is divided into layers such as UI, logic, and database.
Client-Server Clients request services and servers provide resources or data.
Pipe and Data moves through a sequence of processing stages.
Filter
MVC Separates Model, View, and Controller responsibilities.
Microservices Application is built as small independent services.
5. Architectural Design
Process of selecting the best architecture for a system.
Performance Security
• Identify the main system components and subsystems.
• Define the relationships and communication between
components. Maintainability Scalability
• Choose a suitable architectural style based on system needs.
• Specify interfaces for module interaction.
• Consider quality attributes such as performance and security.
• Evaluate the architecture for maintainability and scalability. Reliability
• Revise the design if risks or weaknesses are found.
• Use architecture diagrams to communicate the design clearly.
6
6. Conclusion
Key takeaway
Software design converts requirements into a clear implementation blueprint.
Design concepts help create well-structured modules, while software
architecture defines the high-level system organization. Architectural styles
and design decisions make the system easier to build, test, maintain, and scale.
Thank You