ebook img

Software Architecture and Design Illuminated (Jones and Bartlett Illuminated) PDF

190 Pages·2009·5.86 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Software Architecture and Design Illuminated (Jones and Bartlett Illuminated)

Software Architecture and Design Illuminated Kai Qian Southern Polytechnic State University Chong-wei Xu Kennesaw State University Xiang Fu Hofstra University J orge L. Díaz-Herrera R ochester Institute of Technology Lixin Tao Pace University JONES AND BARTLETT PUBLISHERS Sudbury, Massachusetts BOSTON TORONTO LONDON SINGAPORE World Headquarters Jones and Bartlett Publishers 40 Tall Pine Drive Sudbury, MA 01776 978-443-5000 [email protected] www.jbpub.com Jones and Bartlett Publishers Canada 6339 Ormindale Way Mississauga, Ontario L5V 1J2 Canada Jones and Bartlett Publishers International Barb House, Barb Mews London W6 7PA United Kingdom Jones and Bartlett's books and products are available through most bookstores and online booksellers. To contact Jones and Bartlett Publishers directly, call 800-832- 0034, fax 978-443-8000, or visit our website www.jbpub.com. Substantial discounts on bulk quantities of Jones and Bartlett's publications are available to corporations, professional associations, and other qualified organizations. For details and specific discount information, contact the special sales department at Jones and Bartlett via the above contact information or send an email to [email protected]. Copyright © 2010 by Jones and Bartlett Publishers, LLC All rights reserved. No part of the material protected by this copyright may be reproduced or utilized in any form, electronic or mechanical, including photocopying, recording, or by any information storage and retrieval system, without written permission from the copyright owner. Production Credits Acquisitions Editor: Timothy Anderson Editorial Assistant: Melissa Potter Production Director: Amy Rose Associate Production Editor: Melissa Elmore Senior Marketing Manager: Andrea DeFronzo V.P., Manufacturing and Inventory Control: Therese Connell Composition: Northeast Compositors, Inc. Cover Design: Kristin E. Parker Cover Image: © Eyewire, Inc. Interior Images: Java logo courtesy of Sun Microsystems. Printing and Binding: Malloy, Inc. Cover Printing: Malloy, Inc. Library of Congress Cataloging-in-Publication Data Software architecture and design illuminated / Kai Qian…[et al.]. p. cm. Includes bibliographical references and index. ISBN-13: 978-0-7637-5420-4 (pbk.) ISBN-10: 0-7637-5420-X (pbk.) 1. Software architecture. I. Qian, Kai. QA76.754.S64434 2008 005.1'2—dc22 2008027309 6048 Printed in the United States of America 13 12 11 10 09 10 9 8 7 6 5 4 3 2 1 Contents Preface Chapter 1 Introduction to Software Architecture 1.1 Overview 1.2 Software Architecture: Bridging Requirements and Implementation 1.3 Architecture Styles 1.4 Quality Attributes 1.5 Software Architecture Design Guidelines 1.6 Summary 1.7 Self-Review Questions Chapter 2 Software Architecture Design Space 2.1 Overview 2.2 Types of Software Structures 2.2.1 Software Static 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 2.8 Exercises 2.9 Design Exercises Chapter 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 View Models 3.3.1 The Scenario View 3.3.2 The Logical or Conceptual View 3.3.3 The Development or Module View 3.3.4 The Process View 3.3.5 The Physical View 3.3.6 The User Interface View 3.4 Architecture Description Languages (ADL) 3.5 Summary 3.6 Self-Review Questions 3.7 Exercises 3.8 Design Exercises 3.9 Challenge Exercises Chapter 4 Object-Oriented Paradigm 4.1 Overview 4.2 Introducing the Object-Oriented Paradigm 4.2.1 Classes and Objects 4.2.2 Relationships 4.3 OO Analysis 4.3.1 Step 1: Design of a UML Use Case Diagram 4.3.2 Step 2: Develop an 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 an Interaction Diagram 4.4.3 Step 3: Build a 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 Challenge Exercises Chapter 5 Data Flow Architectures 5.1 Overview 5.2 Batch Sequential 5.3 Pipe and Filter Architecture 5.4 Process Control Architecture 5.5 Summary 5.6 Self-Review Questions 5.7 Exercises 5.8 Design Exercises 5.9 Challenge Exercises Chapter 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 6.8 Challenge Exercise Chapter 7 Hierarchical 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 Exercises 7.10 Challenge Exercises Chapter 8 Implicit Asynchronous Communication Software Architecture 8.1 Overview 8.2 Nonbuffered 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 Exercises 8.8 Challenge Exercise Chapter 9 Interaction-Oriented Software Architectures 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 9.8 Challenge Exercises Chapter 10 Distributed Architecture 10.1 Overview 10.2 Client-Server 10.3 Multi-tiers 10.4 Broker Architecture Style 10.4.1 Broker Implementation in the 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 10.10 Challenge Exercise Chapter 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 11.8 Challenge Exercises Chapter 12 Heterogeneous Architecture 12.1 Overview 12.2 Methodology of Architecture Decision 12.3 Quality Attributes 12.4 Selection of Architecture 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 and Shipping Component 12.7 Summary 12.8 Self-Review Questions 12.9 Exercises 12.10 Design Exercises 12.11 Challenge Exercises Chapter 13 Architecture of 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 Customizable 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 Challenge Exercises Chapter 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 Product Line Engineering: Design-for-Reuse 14.4 Product Development: Design-with-Reuse 14.4.1 Product Line Analysis: Domain Models 14.4.2 Product Line Design: Design-for-Commonality and Control-of-Variability 14.4.3 Product Line Implementation: Configuration Model and Componentbase 14.4.4 Heuristics 14.4.5 Software Technology for Systematic Reuse 14.5 Sample Product Line Analysis 14.5.1 WHY: Mission and Strategic Goals 14.5.2 WHAT: Product Families 14.5.3 HOW: Asset Base 14.6 Ultra-Large-Scale Systems 14.7 Summary 14.8 Self-Review Questions 14.9 Exercises 14.10 Design Exercises Index

Description:
The SE 2004 of the ACM/IEEE computing curriculum project recommends software design and architecture as one of its ten essential areas of study. Software Architecture and Design Illuminated is the ideal text for upper-level undergraduate and graduate students delving into this important area of the
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.