Skip to content

Latest commit

 

History

History
38 lines (34 loc) · 1.45 KB

File metadata and controls

38 lines (34 loc) · 1.45 KB

Software Architecture and Design, Modeling and UML

Software Architecture and Design

  • software design: process of defining and implementing software solutions to one or more sets of problems
  • software architecture: the structures needed to reason about a software system, which compromises software elements, relations between them, and properties of both
  • architectural design: process of identifying and assigning responsibilities for aspects of behavior to various modules of a system

Types of Models

  • Domain Model (Conceptual Model)
    • represents real world objects and behaviors
    • conceptual classes
    • visual dictionary
  • Data Model
    • depicts persistent data objects
    • classes, as in OOP
    • names inspired by domain model

Conceptual Classes

  • defined with a symbol (name), intension (idea), extension (examples),
  • does not assume any implementation technology

Unified Modeling Language (UML)

  • Class
    • hidden, attributes (concept), types/data implement, methods (API)
  • Associations between classes
    • relationships between classes
    • multiplicity: how many objects can be associated (cardinality)
  • Aggregation and Composition
    • aggregation: part of a whole, can exist independently
      • open diamond
    • composition: part of a whole, cannot exist independently
      • filled diamond
  • Generalization
    • inheritance
    • derivation
    • parent/class
    • open triangle (arrow) for generalization