[Inf43] Lecture 6 Software Architecture Styles

软件工程 SoftwareEngineering

   
   

@ZYX 写于2020年04月24日

Styles

  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:
      Uber
      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

      Evolution

      see ppt