Table of contents for Software architecture and design illuminated / Kai Qian ... [et al.].

Bibliographic record and links to related information available from the Library of Congress catalog.

Note: Contents data are machine generated based on pre-publication provided by the publisher. Contents may have variations from the printed book or be incomplete or contain other coding.


Counter
Table of Contents
 Preface	
1 Introduction to Software Architecture	
1.1	Overview	
1.2	Software Architecture: Bridging Software Requirement
 	and Software Implementation	
1.3	Architectural Styles	
1.4	Quality Attributes	
1.5	Guidelines for Software Architectural Design	
1.6	Summary	
1.7	Self-Review Questions	
2 Software Architecture Design Space	
2.1	Overview	
2.2	Types of Software Structures	
 2.2.1	Software Code Structure	
 2.2.2	Software Runtime Structure	
 2.2.3	Software Management Structure	
2.3	Software Elements	
2.4	Software Connectors	
2.5	An Agile Approach to Software Architecture Design	
2.6	Summary	
2.7	Self-Review Questions	
3 Models for Software Architecture	
3.1	Overview	
3.2	UML for Software Architecture	
 3.2.1	Structural Diagrams	
 3.2.2	Behavioral Diagrams	
3.3	Architecture Views	
3.4	Architectural Description Languages (ADL)	
3.5	Summary	
3.6	Self-Review Questions	
3.7	Exercises	
3.8	Design Exercises	
4 Object Oriented Paradigm	
4.1	Overview	
4.2	Introducing Object Oriented Paradigm	
 4.2.1	Classes and Objects	
 4.2.2	Relationships	
4.3	OO Analysis	
 4.3.1	Step 1: Design of UML Use Case Diagram	
 4.3.2	Step 2: Develop Analysis Class Diagram via Noun Extraction	
4.4	OO Design	
 4.4.1	Step 1: Identify Classes - CRC Card	
 4.4.2	Step 2: Construct Interaction Diagram	
 4.4.3	Step 3: Build State Machine Diagram
	
 4.4.4	Step 4: Class Specification	
4.5	Design Principles
 4.5.1	Principle of Decoupling
 4.5.2	Ensuring Cohesion
 4.5.3	Open-Closed Principle
4.6	Summary
4.7	Self-Review Questions	
4.8	Exercises	
4.9	Design Exercises	
4.10	Challenging Exercises
5 Data Flow Architecture	
5.1	Overview	
5.2	Batch Sequential	
5.3	Pipe & Filter Architecture	
5.4	Process-Control Architecture	
5.5	Summary	
5.6	Self-Review Questions	
5.7	Exercises	
5.8	Design Exercises	
6 Data Centered Software Architecture	
6.1	Overview	
6.2	Repository Architecture Style	
6.3	Blackboard Architecture Style	
6.4	Summary	
6.5	Self-Review Questions	
6.6	Exercises	
6.7	Design Exercises	
7 Hierarchy Architecture	
7.1	Overview	
7.2	Main/Subroutine	
7.3	Master/Slave	
7.4	Layered
7.5	Virtual Machine	
7.6	Summary	
7.7	Self-Review Questions	
7.8	Exercises	
7.9	Design and Exercises	
8 Implicit Asynchronous Communication Software Architecture	
8.1	Overview	
8.2	Non-Buffered Event-Based Implicit Invocations	
8.3	Buffered Message-Based Software Architecture	
8.4	Summary	
8.5	Self-Review Questions	
8.6	Exercises	
8.7	Design and Exercises	
9 Interaction Oriented Software Architecture	
9.1	Overview	
9.2	Model-View-Controller(MVC)	
9.2.1	MVC-I	
9.2.2	MVC-II	
9.3	Presentation-Abstraction-Control (PAC)	
9.4	Summary	
9.5	Self-Review Questions	
9.6	Exercises	
9.7	Design Exercises	
10 Distributed Architecture	
10.1	Introduction	
10.2	Client/Server	
10.3	Multi-tiers	
10.4	Broker Architectural Style	
 10.4.1	Broker Implementation in Common Object Request
 Broker Architecture (CORBA)	
 10.4.2	Message Broker Architecture	
10.5	Service-Oriented Architecture (SOA)	
 10.5.1	SOA Implementation in Web Services	
 10.5.2	SOA Implementation for Grid Service Computing	
10.6	Summary	
10.7	Self-Review Questions	
10.8	Exercises	
10.9	Design Exercises	
11 Component-Based Software Architecture	
11.1	Overview	
11.2	What is a Component	
11.3	Principles of Component-Based Design	
 11.3.1	Connections of Components	
 11.3.2	Component-Level Design Guidelines	
11.4	Summary	
11.5	Self-Review Questions	
11.6	Exercises	
11.7	Design Exercises	
12 Heterogeneous Architecture	
12.1	Overview	
12.2	Methodology of Architecture Decision	
12.3	Quality Attributes	
12.4	Selection of Architectural Styles	
12.5	Evaluation of Architecture Designs	
12.6	Case Study: Online Computer Vendor	
 12.6.1	Overall Architecture Design of OCVS	
 12.6.2	Architecture Design of Order Processing Component	
 12.6.3	Architecture Design of Inventory Management	
 12.6.4	Architecture Design of Manufacture & Shipping Component	
12.7	Summary	
12.8	Self-Review Questions	
12.9	Exercises	
12.10	Design Exercises	
12.11	Challenging Exercises
13 Architecture of Graphical User Interfaces
13.1 Overview
13.2 Evolution of User Interfaces
13.3 Look-and-Feel (Syntax) of User Interfaces
 13.3.1 Static Style of User Interfaces
 13.3.2 Dynamic Style of User Interfaces
 13.3.3 Tailorable Style of User Interfaces
 13.3.4 No User Interfaces
13.4 Usability (Semantics) of User Interfaces
13.5 Design Considerations of User Interfaces
13.6 Enabling Technology
 13.6.1 Containers
 13.6.2 Layout Managers
 13.6.3 Major UI Components
 13.6.4 Event Listeners
 13.6.5 A Case Study
13.7 Direct Manipulation
13.8 Evaluation of User Interfaces
13.9 Summary
13.10 Self-Review Questions
13.11 Exercises
13.12 Design Exercises
14 Product Line Architectures 
14.1 Overview
14.2 Introduction and Motivation
 14.2.1 Software reuse and product lines
 14.2.2 Methodologies, processes, and tools
14.3 Domain Engineering: Institutionalizing Software Reuse
 14.3.1 Domain Analysis: Reference Requirements And Architectures
 14.3.2 Domain Design: Design-For-Commonality And Control-Of-Variability
 14.3.3 Domain Implementation: Configuration Model, Component Base.
 14.3.4 Types of components
 14.3.5 Heuristics
 14.3.6 Software Technology for Systematic Reuse
 14.3.7 Applications Engineering
14.4 Product Line Architectures (PLA)
 14.4.1 Elements of a PLA
 14.4.2 Costs and Benefits of Producing a PLA
 14.4.3 Attribute-Driven Design Method
 14.4.4 Process for Producing a PLA
14.5 A Product Line Analysis Example
 14.5.1 WHY: mission and strategic goals
 14.5.2 WHAT: Product Families
 14.5.3 HOW: asset base
14.6 Summary
14.7 Self-Review Questions
14.8 Exercises
14.9 Design exercises
 
 Bibliography	
 Index	

Library of Congress Subject Headings for this publication:

Software architecture.