Introduction
Software design is the phase of the software development life cycle (SDLC) that sits between requirements analysis (what the system must do) and implementation/coding (writing the actual program). Design answers the question "HOW will the system do it?" — it translates the what of requirements into a concrete blueprint of software structure: the modules, their responsibilities, how they interact, the data they hold, and how everything is organized.
UML (Unified Modeling Language) is the standardized, general-purpose visual modeling language used to specify, visualize, construct and document that design. Instead of prose, engineers draw standard diagrams so that the design is unambiguous and communicable across a team.
For Bangladeshi government IT exams (BCS technical, Bank IT officer, BCC/BTCL, IT officer posts), this topic is a high-yield area. Examiners repeatedly ask: the difference between analysis and design; cohesion vs coupling; the meaning of abstraction, modularity, encapsulation; who created UML; how many diagram types UML has and their two categories (structural vs behavioral); which diagram shows classes, which shows time-ordered messages, which shows user–system interaction; and the meaning of relationships like association, aggregation, composition, generalization. Master the vocabulary precisely — most questions are one-liners that reward exact definitions.
Learning objectives
After studying this lesson you should be able to:
- Define software design and place it correctly in the SDLC.
- Distinguish the levels of design: architectural (high-level) vs detailed (low-level) design.
- Explain the fundamental design concepts: abstraction, modularity, cohesion, coupling, encapsulation, information hiding, separation of concerns, refinement.
- State what makes a good design (high cohesion, low coupling).
- List the 7 types of cohesion and types of coupling in correct order and pick the best/worst.
- Recall UML history, purpose, and who standardizes it (OMG).
- Classify all 14 UML 2.x diagrams into structural and behavioral groups.
- Read and draw the four most-tested diagrams: class, use-case, sequence, activity.
- Interpret UML class relationships: association, aggregation, composition, generalization/inheritance, dependency, realization — including multiplicity notation.
- Answer exam MCQs on design principles and UML with confidence.