Skip to content
VUBuddy

CS603 Midterm Handouts

Software Architecture and Design PDF 2 MBUpdated 23 Oct 2026
Handout CS603 Midterm Handouts PDF 2 MB
vubuddy.com
Type
Handout
Course
CS603 Software Architecture and Design
Size
PDF 2 MB
Updated
23 Oct 2026
Free download 0 of 3 used today
Download free · 2 MB

You get 3 free files a day on the website. Add the Chrome extension for 30 a day.

Unlimited downloads in the Android app Get it free on Google Play

Preview text

Text from pages 1, 3, 4 of 65. Download the file for all 65 pages.

HANDOUTS (MID TERM)

WEEK 1-8

 We live in a designed world.

 Design is economically important and effects our quality of life

 Any product that is an aggregate of more primitive elements, can benefit from the activity of design.

Software Products:

Software is any executable entity, such as a program, or its parts, such as sub-programs.

 A software product is an entity comprised of one or more programs, data, and supporting materials and services that satisfies client needs and desires either as an independent artifact or as essential ingredient in some other artifact.

What Is Software Design?

 Software design is the activity of specifying the mature and composition of software products that satisfy client needs and desire, subject to constraints.

 Software designers do what designers in other disciplines do, except they do it for software products.

 Design bridges that gap between knowing what is needed (software requirements specification) to entering the code that makes it work (the construction phase).

Standard Levels of Design

Why Design is Hard?

 Design is difficult because design is an abstraction of the solution which has yet to be created

Design as Problem Solving:

 An especially fruitful way to think about design is as problem solving.

Advantages:

  1. Suggests partitioning information between problem and solution
  2. Emphasizes that there may be more than one good solution (design)
  3. Suggests techniques such as changing the problem, trial and error, brainstorming, etc.

Abstraction:

 Abstraction is an important problem-solving technique, especially in software design

 Abstraction is suppressing or ignoring some properties of objects, events, or situations in favor of others.

Importance of Abstraction:

1. Problem simplification:

 Abstracting allows us to focus on the most important aspects of a problem in (partially) solving it.

2. Structuring problem solving

Top-down strategy: Solve an abstract version of the problem, then add details (refinement)

Bottom-up strategy: Solve parts of a problem and connect them for a complete solution

What is Model?

 A model is an entity used to represent another entity (the target) by establishing

a) A correspondence between the parts or elements of the target and the parts or elements of the model

b) A correspondence between relationships among the parts or elements of the target and relationships among the parts or elements of the model.

Modeling:

A model represents a target by having model parts corresponding to target parts, with relationships between model parts corresponding to relationships between target parts.

All CS603 files →
CS603 Software Architecture and Design All CS603 handouts, past papers, quizzes and MCQs in one place. Open course page

Get more out of VUBuddy, for free

Android app Free on Google Play
  • Unlimited downloads
  • The explanation behind every MCQ answer
  • Study offline on slow data
Get the Android app
Chrome extension Free on the Chrome Web Store
  • 30 downloads a day instead of 3
  • Sign in and buy Pro Semester here
Add to Chrome

One Pro Semester membership works in both the extension and the app.