Computer Science 340 Software Design Testing Software Architecture

  • Slides: 7
Download presentation
Computer Science 340 Software Design & Testing Software Architecture

Computer Science 340 Software Design & Testing Software Architecture

Design Levels System Sub-Systems High-Level Design Packages Classes Methods Low-Level Design

Design Levels System Sub-Systems High-Level Design Packages Classes Methods Low-Level Design

Architecture • The most important design activity is developing the system's “architecture” • Architecture

Architecture • The most important design activity is developing the system's “architecture” • Architecture = – Top-level design of the system – Defines the basic structure of the system • Normally done by very experienced engineers called “architects” • Architects also serve as a link between the business and technical sides of the company

Architecture • The architecture defines: – The major subsystems • Subsystems are major areas

Architecture • The architecture defines: – The major subsystems • Subsystems are major areas of functionality • Complex subsystems may be decomposed into smaller subsystems – – – Responsibilities of each subsystem Dependencies between subsystems Interfaces between subsystems Communication patterns between subsystems Implementation technologies • Operating systems, languages, UI, networking, database, etc. – Physical System Deployment • System topology – What kinds of machines will be needed? – How will they be connected? • Mapping of logical software components onto physical hardware

Architecture • Once the overall architecture has been defined, different teams or individuals can

Architecture • Once the overall architecture has been defined, different teams or individuals can design subsystems in parallel • Defining good interfaces between subsystems is critical – Interfaces should be as simple as possible – Give subsystem designers maximum freedom – Limit the ripple effects of changes to subsystems

Architecture • UML Component Diagrams can be used to show subsystems and dependencies between

Architecture • UML Component Diagrams can be used to show subsystems and dependencies between them Note: UML version 1. 4

UML Component Diagram

UML Component Diagram