Chapter 3 2 min read
Save

Software Design

Software Engineering · BCA · Updated Apr 23, 2026

Table of Contents

Software Design

Software design transforms requirements into a blueprint for construction. It defines the architecture, components, interfaces, and data structures of a system.

Design Principles

Good design follows principles: abstraction (hiding complexity), modularity (dividing into independent units), information hiding (encapsulating decisions), separation of concerns, and SOLID principles (Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, Dependency Inversion).

Architectural Design

Software architecture defines the high-level structure. Common patterns: layered (presentation, business, data), client-server, microservices, pipe-and-filter, event-driven, and MVC (Model-View-Controller). Architecture choices affect performance, scalability, and maintainability.

Coupling and Cohesion

Coupling measures interdependence between modules — lower is better. Types from best to worst: data, stamp, control, external, common, content. Cohesion measures relatedness within a module — higher is better. Types from best to worst: functional, sequential, communicational, procedural, temporal, logical, coincidental.

Design Patterns

Design patterns are reusable solutions to common problems. Creational: Singleton, Factory, Builder. Structural: Adapter, Decorator, Facade. Behavioural: Observer, Strategy, Command. Patterns improve communication and code quality.

UML Diagrams

UML (Unified Modeling Language) provides standard notation. Structural: class diagrams, component diagrams, deployment diagrams. Behavioural: use case diagrams, sequence diagrams, activity diagrams, state diagrams. UML visualises design decisions.

User Interface Design

UI design follows principles of consistency, feedback, error prevention, and user control. Wireframes sketch layout; mockups add visual detail; prototypes add interaction. Usability testing validates the design with real users.

Summary

Software design bridges requirements and implementation. Mastering architectural patterns, design principles, coupling/cohesion analysis, design patterns, and UML enables building maintainable, scalable systems.

Related Notes

Discussion

0 comments

Join the discussion

Log in to share your thoughts and help fellow students.

Log in to comment

No comments yet. Be the first to share your thoughts!