UPI Study › Courses › Software Engineering › Free lessons › Lesson 8.2 Free with a free account
Components of a Complete Design Model
Software Engineering · Chapter 8: Object-Oriented Design and ArchitectureSection 8.2 · lesson 56 of 1036 min · free with a free account
Free preview
Create a free account to keep watching
It takes a minute and costs nothing. Your free account unlocks all of Chapter 1 and 3 more lessons of Software Engineering.
Lesson complete
Earn the 3 college credits for Software Engineering
Enrolling adds a quiz after each lesson, the graded work and the official transcript. Recommended for credit by NCCRS.
Next lesson: Mapping Deployment with UML Diagrams →← Designing Software the Object-Oriented WayNext lesson: Mapping Deployment with UML Diagrams →
In this lesson
4 complementary elements, from the whole system down to where it runs.
- Explain why a design model needs several elements
- Describe architectural and interface design
- Describe component-level and deployment design
- Explain why skipping deployment is risky
Transcript
Everything said in the video, section by section (712 words). Read along, or search it.
Object-Oriented Design and Architecture
Components of a Complete Design Model
No single diagram captures a whole system's design. A complete design model is several complementary pieces, each looking at the same system from a different angle, and at a different scope. This section is a map of those four pieces, before each gets its own dedicated treatment.
No Single Diagram
4 Angles on 1 System
The structural, behavioral, and interface decisions covered earlier do not all get captured in one place. A complete design model organizes them into distinct elements. It also adds one further concern those categories do not directly address. Each element looks at the system at a different scope. From its broadest structure, down to the inside of a single piece, plus where all of it actually runs.
The Map
The 4 Elements
Here are the four elements. Architectural design covers the system's major structure. Interface design covers the boundaries between pieces. Component-level design covers the inside of each piece. And deployment design covers where everything actually runs. Each one is covered in its own dedicated material ahead. This is only the map.
Architectural Design
The Big Picture
Architectural design is the broadest, highest-level structural view. It identifies the system's major components or subsystems, and how they relate to each other at the largest scale. It is closer to a building's overall floor plan than to the details of any single room. The goal is the big picture, not yet the specifics of what happens inside any one piece.
Interface Design
What Passes Between the Pieces
Interface design defines what each component exposes to the others. It also defines what the system as a whole exposes to its users, and to other external systems. Architectural design draws the components. Interface design defines exactly what passes between them. The actual boundary each piece presents to everything outside it.
Component-Level Design
Inside a Single Piece
Once a component's boundaries and its place in the architecture are settled, component-level design zooms into that single piece. It works out the data structures, algorithms, and internal logic needed to deliver what the interface promises. This is design at a much finer grain than architecture. It refines a high-level decision into something detailed enough to guide real construction, without yet being code itself.
Deployment Design
Where Everything Runs
Deployment design addresses something the other three do not. Where the system's pieces will physically run once built. It decides which components live on which machines, how they are distributed across a network, and what infrastructure each piece needs. This matters most for distributed or multi-tier systems. Picture two components that need to talk constantly, placed on distant servers with high latency between them. They will struggle, no matter how clean their architecture looked on paper.
Table 1
Scope and a Rough Analogy
Here are the four elements, each with its scope and a rough analogy. Architectural design covers the major components, and how they relate. It is like a building's overall floor plan. Interface design covers what is exposed at component and system boundaries. It is like the doors and windows between rooms. Component-level design covers the internal structure of one component. It is like the wiring and plumbing inside one room. And deployment design covers where components physically run. It is like deciding which building each room actually gets built in.
Why This Matters
Complete Means All 4
It is worth noticing that these four elements are not a new set of ideas. They are where the structural, behavioral, and interface decisions actually get written down, as distinct artifacts. Plus one further concern, which only shows up once you ask where everything runs. And a design that looks complete on paper is not complete until all four are addressed. Skipping deployment is an easy way for a well-architected system to run into trouble, only once it is actually running.
Key Terms
The Vocabulary of This Section
Let's lock in the key terms. The design model is the complete set of design artifacts. Architectural, interface, component-level, and deployment design together. Architectural design is the highest-level structural view. Interface design defines what each component exposes, and what the system exposes outside. Component-level design is the detailed internal design of a single component. And deployment design plans where components physically run, and how they are distributed across infrastructure.
Key Takeaways
What to Carry Forward
To pull this together. A complete design model has four elements, each at a different scope. Architectural design covers the major structure, and interface design covers the boundaries between pieces. Component-level design covers the inside of each piece. And deployment design covers where it all runs. Skip it, and a clean design can still fail in practice.
About Software Engineering at UPI Study
Software Engineering (Computer Science 301) is a self-paced online course of 103 video lessons in 15 chapters, from process models and agile to requirements, design, user interfaces, reliability, security and project management. It carries a NCCRS credit recommendation for 3 semester credits.
Every lesson transcript is free on pages like this one, and the videos are free with a free UPI Study account. Enrolling adds a practice quiz after each lesson, the graded work and final exam that earn the credit, lifetime access, and an official transcript on completion. UPI Study has helped over 130,000 students with college credits. ACE and NCCRS have over 2,100 cooperating colleges that will consider accepting credits; the final decision is with the universities.
Enroll now → Course details Download the syllabus All Computer Science courses Every course with PRO →
Why take it here
Why students take Software Engineering with UPI Study
Where the credit goes
Universities that work with NCCRS
Software Engineering carries a NCCRS credit recommendation. These universities work with NCCRS; some are UPI Study's signed partners. ACE and NCCRS have over 2,100 cooperating colleges that will consider accepting credits; the final decision is with the universities.
Thomas Edison State UniversitySigned partner
University of the PeopleSigned partner
Charter Oak State CollegeSigned partner
Strayer UniversitySigned partner
Columbia Southern UniversitySigned partner
Indiana TechSigned partner
Penn StateWorks with NCCRS
Southern New Hampshire UniversityWorks with NCCRS
SUNYWorks with NCCRS
+many more cooperating universitiesFind my college →Find my college → Not listed? Ask Athena in the corner of this page, or book a 15-minute call.
FAQ
Questions students ask us
About Components of a Complete Design Model
What are the four elements of a software design model?
What is the difference between architectural design and interface design?
What is deployment design in software engineering?
Why is it risky to skip deployment design?
About the Software Engineering course
How many college credits is Software Engineering?
How much does Software Engineering cost and what is included?
Which universities accept UPI Study credits?
How long does Software Engineering take?
How are the exams done?
How do my credits reach my college?
Ready for the full course? Earn 3 credits in Software Engineering.
103 video lessons, a quiz after each one, and the graded work that earns the credit. Recommended for credit by NCCRS.
3 credits · NCCRSEnroll →