Page Tools:

Software Architecture and Design Illuminated

Author(s): Kai Qian, PhD, Southern Polytechnic State University
Xiang Fu, Hofstra University
Lixin Tao, Pace University
Chong-wei Xu, Kennesaw State University
Jorge L Diaz-Herrera, Rochester Institute of Technology
  • ISBN-13: 9780763754204
  • Paperback    388 pages      © 2010
Price: $163.95 US List
Add to Cart Request a Review Copy

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 undergraduate and graduate students delving into this critical area of the software development process.  This text offers a coherent and integrated approach to the discipline of software architectural design and covers a complete set of important methodologies, architectural styles, design guidelines, and design tools.  Java is used throughout the book to explain design principles and present case studies.  Review questions, exercises, and design assignments round out most chapters and allow students to test themselves on key material.

Features & Benefits

End-of-chapter study aids and exercises allow students to test themselves on key material and reinforce important concepts.

The authors present all examples using Java.

The text provides complete examples with pseudocode, comprehensive design guidelines, and detailed diagrams to assist in the learning process.

Discusses the architecture and implementation of web-centric systems.

Follows a complete case study, from architecture to implementation, throughout the text.

Includes a final chapter titled "Product Line Architectures" written by Jorge L. Diaz-Herrera, Dean of the B. Thomas Golisano College of Computing and Information Science at Rochester Institute of Technology.

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.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.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.3   OO Analysis   
4.4  OO Design  
4.5   Design Principles
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.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.5 Service-Oriented Architecture (SOA)            
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.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.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.4 Usability (Semantics) of User Interfaces
13.5 Design Considerations of User Interfaces
13.6 Enabling Technology
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.3 Domain Engineering: Institutionalizing Software Reuse
14.4 Product Line Architectures (PLA)
14.5 A Product Line Analysis Example
14.6 Summary
14.7 Self-Review Questions
14.8 Exercises
14.9 Design exercises


Kai Qian, PhD-Southern Polytechnic State University

Dr. Kai Qian is a professor of computer science & software engineering department at Southern Polytechnic State University. He received the Ph.D. of computer science and engineering from University of Nebraska-Lincoln in 1990. He has taught “Software Architecture and Design” courses in the undergraduate and graduate levels for years. He is the author of the textbook “Component-Oriented Programming” with Wiley & Sons, and “Java Web Application Illuminated” with Jones and Bartlett. He has published many journal and conference papers in the areas of software architecture and design, component-based software engineering, distributed computing, and computer vision.

Additional Titles by this Author

Xiang Fu-Hofstra University

Dr. Xiang Fu is an assistant professor at Hofstra University. He received his Ph.D in computer science from University of California at Santa Barbara in 2004. He taught software engineering courses and published extensively in software verifications and Web services areas.

Lixin Tao-Pace University

Dr Lixin Tao, IEEE senior member, professor of computer science at Pace university in New York. He completed his Ph.D in computer science from University of Pennsylvania in 1988. His research area covers internet computing, CBSE, parallel and distributed computing. He was architect of large scale software projects for IBM.

Chong-wei Xu-Kennesaw State University

Chong-wei Xu, PhD, professor of Computer Science at Kennesaw State University. He received his PhD in Computer Science from Michigan State University in 1986. His research interests include Internet technology, parallel and distributed computing, and game technology. He has published extensively in his research areas and taught Software Engineering related courses at both undergraduate and graduate levels.

Jorge L Diaz-Herrera-Rochester Institute of Technology

Dr. Jorge L. Diaz-Herrera,  Professor of Computer Science and Dean of the B. Thomas Golisano College of Computing and Information Sciences at the Rochester Institute of Technology in New York.. Dr. Diaz-Herrera spent four and half years as a senior member of the technical staff at the Software Engineering Institute teaching in Carnegie Mellon’s Master of Software Engineering and conducting research in the Product Line Engineering program. He was department chair of the first Software Engineering Department in the US, at Monmouth University in NJ. He was in the faculty of the department of Computer Science at George Mason University, in Fairfax Virginia, and at SUNY Binghamton, NY.
He has conducted extensive consulting services with a number of firms in government agencies including NYSE, MITRE, the Institute for Defense Analysis, among others; he has chaired several national and international conferences,  has been a technical reviewer for the National Science Foundation, the American Society for Engineering Education, for numerous conferences, and for several journals, most notably IEEE Software, IEEE Computer, and ACM Communications. He was an ACM National Lecturer for four consecutive years, and an invited speaker in numerous occasions. He is very active with the IEEE-CS, lately as a leading writer of the Software Engineering Professional Examination, and co-editor of the Software Engineering volume of the Computing Curricula.  He is currently serving as a distingushed speaker in the Distinguished Visitor Program (DVP). He has given many short courses and tutorials both in the US and abroad, and has more than 80 publications.
 Dr. Díaz-Herrera holds a Masters and a Ph.D. in computing studies, both from Lancaster University, UK.

The following instructor resources are available to qualified instructors for download

ISBN-13: 9780763754204

Answers to In-Text Questions
Slides in PowerPoint Format
Test Bank

This site uses cookies to store information on your computer. Some are essential to make our site work; others help us improve the user experience or allow us to communicate with you effectively. By using this site, you consent to the placement of these cookies. Read our cookie policy to learn more.

Agree & Dismiss