90 likes | 145 Views
Computer Science 340 Software Design & Testing. Software Architecture. Design Levels. System. Sub-Systems. High-Level Design. Packages. Classes. Low-Level Design. Methods. Architecture. The most important design activity is developing the system's “ architecture ” Architecture =
E N D
Computer Science 340Software Design & Testing Software Architecture
Design Levels System Sub-Systems High-Level Design Packages Classes Low-Level Design Methods
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 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 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 them Note: UML version 1.4