Skip to content
memoDwarves Foundation

Research notes/Architecture

Software architect and software design

Software Architecture (SA)

Sum up

  • structure the software
  • Answer for: what we are building

What Software Architecture (SA) create a complete system architecture.

The type of architecture will decide the constrains of software design.

A software must have the charateristics (based on biz requirement). SA helps connects these characteristics into structural solution.

SA prevents the accumulation of technical debts.

Example

  • Microservices
  • Monolith
  • Event-Driven
  • Serverless

How The architecture descision must based on business requirement (scaling/ traffice volume, ...etc) Helps achieve biz goal and tech strategy

Software Design (SD)

Sum up

  • implement the software
  • answer for: how we are building

What Software Design (SD) arranging the order of component is called software design.

SD responsible for code-level design.

  • what each module is doing
  • what problem does each module esolve

Example

  • Factory pattern
  • Adapter pattern

How

  • Decide the function of each component and how they interact with others.
  • Create the specifications of software artifacts. How individual modules/ components are amde and interact with each other
  • Follows the SOLID principle
    • each class have to serve one purpose
    • open for extension. add more function without breaking the existing codes
    • use inheritance and dont break the app's logic
    • catergorize the interfaces <> structure the code so that a class won't be forced to implement a redundant function
    • decoupling the code

Reference