[INF43] Lecture 8 How do we structure the software in detail

软件工程 SoftwareEngineering


@ZYX 写于2020年04月29日

Design Phases

Software Design

  1. Design behaviors
  2. Desgin phase of softare engineering:
    1. after requirements
    2. ask questions of "How"
  3. Software Design Goals/ Activities SEE PPT
    • Making system-wide decisions
      • Architecture, languages, libraries, platforms
    • Making lower-level decisions in an iterative manner
      • Studying the problem
      • Identifying solutions
      • Creating abstractions
      • Evaluating
      • 重复循环上面的步骤
  4. 6 Approaches to Software Design
    1. Software architecture
    2. Functional decomposition
    3. Relational database design
    4. Object-oriented design and UML
    5. User interface design
    6. (Sketching) – Lecture 8

Functional Decomposition

  1. the activity of functional decomposition is basically taking the system and decomposing it functionally
    • taking it and figuring out what are all the different tasks functions.
  2. The point is that is just taking a large system or big function and decomposing it down into the smallest possible functions and tasks so that you can theoretically compose those into the final system.
  3. So, this type of approach is best for small problems that are very well specified and very functional.
  4. Also in their emphasis and has very simple data modeling, so not very complicated data.
    1. There is no detial description of what data should look like
  5. For very large problems. This approach can get a little bit unwieldy.

Relational Database

  1. So the most common way to design a database is to design a relational database.
  2. in relational database design you design tables that hold the data and the relationships between them.
    • Tables
      1. each row correspond to a real world entity
    • Schema

Object-Oriented Design and UML

  1. An object contains both data and methods
  2. An class is a blueprint for making objects
  3. So object oriented analysis and design is a method of analyzing. It’s a method basically from going from requirements to code.
  4. So in this method. It’s a way to analyze requirements to create this these objects and classes and relationships between them.
  5. a whole method to go from requirements to desgin decode

User Interface Design

  1. user interface design is just designing what the user interface is going to look like.


what is design

  1. Purpose of design SEE PPT
    1. to think
      Because they can see it represented and it helps them to think through the problem and the obstruction more and they can revise it. Especially on a whiteboard.
    2. to talk
    3. to prescribe
      to explain designer’s idea to all the people are going to build the product
  2. DEsigns are developed iteratively
    DEsign go through many versions
    for more complete and
    As the designer learns more as they communicate with their ideas and evaluate them and figure out what is wrong and what is right and how do I make this design more complete and more consistent. So it’s an iterative process.


  1. what is relevant or irrelevant has to do with whatever the purpose is at hand what your particular purposes at that moment.
  2. highlight and hide details according to the purpose of desgin