[Inf43] Lecture 6 Software Architecture Styles

软件工程 SoftwareEngineering


@ZYX 写于2020年04月24日


  1. Object-oriented
    1. components are objects and each object contains all the data and behavior relevant to the object.
    2. connectors are just function calls or messages between the different objects.
    3. key benefits: understand ability
    4. example:
      Passenger – Ride – Driver

  1. Model-view-controller
    1. componenet -> model, view, controller
    2. key benefit: modularity and anticipation of change
    3. example: ATM:
      1. rules: controller
      2. bank account: model
      3. ATM display: view
  2. client-server
    1. components are clients and servers and a server always has computational resources.
    2. key benefit: can share data in a wide range of clients, and centralized control at the centralized server
    3. example: fps game
    4. cloud computing
      1. see ppt
  3. layered
    1. key benefit: modularity, abstraction, anticipation of change, reuse
    2. example: restaurant Android
  4. peer-to-peer
    1. key benefit: efficient(faster) robust(one loss do not affect others)
    2. example: file sharing, zoom, skype
  5. pipe-and-filer
    1. filters are compnent: scanners
    2. pipes are connectors: stream
    3. key benefit
    4. example: compiler, unix shell
      ls -l | grep "Aug" | sort
      pipe – filter
  6. Publish-susbsribe(pub-sub)
    1. component: publishers and subscribers
    2. connector: subsciption Manager
    3. key benefit: efficient
    4. example: sotck trade app


      see ppt