{"product_id":"software-paradigms-9780471483472","title":"Software Paradigms","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003eSoftware Paradigms provides the first complete compilation of software paradigms commonly used to develop large software applications, with coverage ranging from discrete problems to full-scale applications.\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTrade Review\u003c\/b\u003e\u003cbr\u003e\"...an excellent course reference for someone with significant but varied...software development ideas...a handy reference for identifying the similarities between...software development elements…\" (\u003ci\u003eIEEE Software Magazine\u003c\/i\u003e, January\/February 2006)  \u003cp\u003e\"…useful to some programmers.\" (\u003ci\u003eCHOICE\u003c\/i\u003e, October 2005)\u003c\/p\u003e \u003cp\u003e\"This is a good survey of the various topics…quite relevant to the CSQE body of knowledge architecture topic.\" (\u003ci\u003eSoftware Quality Professional\u003c\/i\u003e, September 2005)\u003c\/p\u003e \u003cp\u003e\"…a timely work that helps put recent advances in software architecture and framework development in context with earlier software design concepts.\" (\u003ci\u003eComputing Reviews.com\u003c\/i\u003e, July 29, 2005)\u003c\/p\u003e \u003cp\u003e\"…a welcome…addition to the literature on software development paradigm.\" (\u003ci\u003eComputing Reviews.com\u003c\/i\u003e, May 3, 2005)\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003eADVICE FOR THE INSTRUCTOR.  \u003cp\u003eACKNOWLEDGMENTS.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e1 Introduction.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e1.1 The Meaning of Paradigm.\u003c\/p\u003e \u003cp\u003e1.2 Software Solves Problems.\u003c\/p\u003e \u003cp\u003e1.3 Designing and Developing Software.\u003c\/p\u003e \u003cp\u003e1.4 Understanding Problem Paradigms.\u003c\/p\u003e \u003cp\u003e1.5 Overview of Book.\u003c\/p\u003e \u003cp\u003e1.6 Conventions.\u003c\/p\u003e \u003cp\u003e1.7 Exercises.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e2 Paradigm Overview.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e2.1 Problem Paradigms.\u003c\/p\u003e \u003cp\u003e2.2 A Functional Classification of Problems.\u003c\/p\u003e \u003cp\u003e2.3 Programming Languages.\u003c\/p\u003e \u003cp\u003e2.4 Design Patterns.\u003c\/p\u003e \u003cp\u003e2.5 Components.\u003c\/p\u003e \u003cp\u003e2.6 Software Architectures.\u003c\/p\u003e \u003cp\u003e2.7 Frameworks.\u003c\/p\u003e \u003cp\u003e2.8 Further Reading.\u003c\/p\u003e \u003cp\u003e2.9 Exercises.\u003c\/p\u003e \u003cp\u003eI DESIGN PATTERNS.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e3 Overview of Design Patterns.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e3.1 A Brief History of Patterns.\u003c\/p\u003e \u003cp\u003e3.2 Why Patterns?\u003c\/p\u003e \u003cp\u003e3.3 Pattern Spaces.\u003c\/p\u003e \u003cp\u003e3.4 Types of Software Patterns.\u003c\/p\u003e \u003cp\u003e3.5 Describing Patterns.\u003c\/p\u003e \u003cp\u003e3.6 How Do We Discover Patterns?\u003c\/p\u003e \u003cp\u003e3.7 Using Patterns.\u003c\/p\u003e \u003cp\u003e3.8 Further Reading.\u003c\/p\u003e \u003cp\u003e3.9 Exercises.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e4 Software Patterns.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e4.1 Singleton.\u003c\/p\u003e \u003cp\u003e4.2 The Wrapper Pattern.\u003c\/p\u003e \u003cp\u003e4.3 The Abstract Factory Pattern.\u003c\/p\u003e \u003cp\u003e4.4 Observer Pattern.\u003c\/p\u003e \u003cp\u003e4.5 Exercises.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e5 Human–Computer Interface Patterns.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e5.1 Style Guides.\u003c\/p\u003e \u003cp\u003e5.2 An HCI Pattern Language.\u003c\/p\u003e \u003cp\u003e5.3 Web Design Patterns.\u003c\/p\u003e \u003cp\u003e5.4 Further Reading.\u003c\/p\u003e \u003cp\u003e5.5 Exercises.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e6 Other Pattern Domains.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e6.1 Coplien’s Patterns.\u003c\/p\u003e \u003cp\u003e6.2 Object-Oriented Patterns.\u003c\/p\u003e \u003cp\u003e6.3 Antipatterns.\u003c\/p\u003e \u003cp\u003e6.4 Further Reading.\u003c\/p\u003e \u003cp\u003e6.5 Exercises.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e7 Pattern Design.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e7.1 Design Pattern Issues.\u003c\/p\u003e \u003cp\u003e7.2 Some Simple Pattern Design Principles.\u003c\/p\u003e \u003cp\u003e7.3 Limitations of Design Patterns.\u003c\/p\u003e \u003cp\u003e7.4 Further Reading.\u003c\/p\u003e \u003cp\u003e7.5 Exercises.\u003c\/p\u003e \u003cp\u003eII COMPONENTS.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e8 Component Concepts.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e8.1 What Are Software Components?\u003c\/p\u003e \u003cp\u003e8.2 Why Use Components?\u003c\/p\u003e \u003cp\u003e8.3 Component Models.\u003c\/p\u003e \u003cp\u003e8.4 Using Components.\u003c\/p\u003e \u003cp\u003e8.5 Component Reuse.\u003c\/p\u003e \u003cp\u003e8.6 Exercises.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e9 Types of Components.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e9.1 Event-Based Components.\u003c\/p\u003e \u003cp\u003e9.2 Java Events.\u003c\/p\u003e \u003cp\u003e9.3 Distributed Components.\u003c\/p\u003e \u003cp\u003e9.4 Transaction Processing.\u003c\/p\u003e \u003cp\u003e9.5 Further Reading.\u003c\/p\u003e \u003cp\u003e9.6 Exercises.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e10 Component Technologies.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e10.1 CORBA.\u003c\/p\u003e \u003cp\u003e10.2 System Object Model.\u003c\/p\u003e \u003cp\u003e10.3 Microsoft’s COM\/DCOM.\u003c\/p\u003e \u003cp\u003e10.4 JavaBeans.\u003c\/p\u003e \u003cp\u003e10.5 Further Reading.\u003c\/p\u003e \u003cp\u003e10.6 Exercises.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e11 Component-Based Software Engineering.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e11.1 Defining CBSE.\u003c\/p\u003e \u003cp\u003e11.2 Problems with CBSE.\u003c\/p\u003e \u003cp\u003e11.3 Problems in Using Components.\u003c\/p\u003e \u003cp\u003e11.4 Problems with Glue Code.\u003c\/p\u003e \u003cp\u003e11.5 Exercises.\u003c\/p\u003e \u003cp\u003eIII SOFTWARE ARCHITECTURES.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e12 Overview of Software Architectures.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e12.1 Software Architecture Elements and Description.\u003c\/p\u003e \u003cp\u003e12.2 Why Do We Need a Software Architecture?\u003c\/p\u003e \u003cp\u003e12.3 Software Architecting Versus Software Engineering.\u003c\/p\u003e \u003cp\u003e12.4 Domain-Specific Software Architectures.\u003c\/p\u003e \u003cp\u003e12.5 Roles and Benefits.\u003c\/p\u003e \u003cp\u003e12.6 Software Architecture Models.\u003c\/p\u003e \u003cp\u003e12.7 What To Look For.\u003c\/p\u003e \u003cp\u003e12.8 Further Reading.\u003c\/p\u003e \u003cp\u003e12.9 Exercises.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e13 Data Flow Systems.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e13.1 The Data Flow Model.\u003c\/p\u003e \u003cp\u003e13.2 Batch Sequential Systems.\u003c\/p\u003e \u003cp\u003e13.3 Pipe and Filter Architecture.\u003c\/p\u003e \u003cp\u003e13.4 Further Reading.\u003c\/p\u003e \u003cp\u003e13.5 Exercises.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e14 Call-and-Return Systems.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e14.1 Main Program and Subroutines.\u003c\/p\u003e \u003cp\u003e14.2 Client–Server Systems.\u003c\/p\u003e \u003cp\u003e14.3 Object-Oriented Systems.\u003c\/p\u003e \u003cp\u003e14.4 Hierarchically Layered Systems.\u003c\/p\u003e \u003cp\u003e14.5 Further Reading.\u003c\/p\u003e \u003cp\u003e14.6 Exercises.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e15 Virtual Machines.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e15.1 Interpreters.\u003c\/p\u003e \u003cp\u003e15.2 Virtual Machine Examples.\u003c\/p\u003e \u003cp\u003e15.3 Rule-Based Systems.\u003c\/p\u003e \u003cp\u003e15.4 Advantages and Disadvantages.\u003c\/p\u003e \u003cp\u003e15.5 Further Reading.\u003c\/p\u003e \u003cp\u003e15.6 Exercises.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e16 Independent Component Systems.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e16.1 Communicating Sequential Processes.\u003c\/p\u003e \u003cp\u003e16.2 Event-Based Systems.\u003c\/p\u003e \u003cp\u003e16.3 Event System Issues.\u003c\/p\u003e \u003cp\u003e16.4 Broker Systems.\u003c\/p\u003e \u003cp\u003e16.5 Further Reading.\u003c\/p\u003e \u003cp\u003e16.6 Exercises.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e17 Data-Centric Systems.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e17.1 Database Systems.\u003c\/p\u003e \u003cp\u003e17.2 Blackboard Systems.\u003c\/p\u003e \u003cp\u003e17.3 The Linda Model and Language.\u003c\/p\u003e \u003cp\u003e17.4 Further Reading.\u003c\/p\u003e \u003cp\u003e17.5 Exercises.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e18 Concurrent Software Architectures.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e18.1 Basic Concepts.\u003c\/p\u003e \u003cp\u003e18.2 Parallel Programming.\u003c\/p\u003e \u003cp\u003e18.3 Data Parallel Systems.\u003c\/p\u003e \u003cp\u003e18.4 Message Passing Systems.\u003c\/p\u003e \u003cp\u003e18.5 A Parallel Programming Methodology.\u003c\/p\u003e \u003cp\u003e18.6 Further Reading.\u003c\/p\u003e \u003cp\u003e18.7 Exercises.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e19 Software Architecture Challenges.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e19.1 Software Architecture Description.\u003c\/p\u003e \u003cp\u003e19.2 Design Issues.\u003c\/p\u003e \u003cp\u003e19.3 Analysis of Software Architectures.\u003c\/p\u003e \u003cp\u003e19.4 Further Reading.\u003c\/p\u003e \u003cp\u003e19.5 Exercises.\u003c\/p\u003e \u003cp\u003eIV FRAMEWORKS.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e20 Framework Concepts.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e20.1 Types of Frameworks.\u003c\/p\u003e \u003cp\u003e20.2 Framework Elements.\u003c\/p\u003e \u003cp\u003e20.3 Using Frameworks.\u003c\/p\u003e \u003cp\u003e20.4 Documenting Frameworks.\u003c\/p\u003e \u003cp\u003e20.5 Designing Frameworks.\u003c\/p\u003e \u003cp\u003e20.6 Problems with Frameworks.\u003c\/p\u003e \u003cp\u003e20.7 Framework Domains.\u003c\/p\u003e \u003cp\u003e20.8 Further Reading.\u003c\/p\u003e \u003cp\u003e20.9 Exercises.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e21 GUI Frameworks.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e21.1 Smalltalk-80 Programming Environment.\u003c\/p\u003e \u003cp\u003e21.2 MacApp Framework.\u003c\/p\u003e \u003cp\u003e21.3 The Taligent Framework.\u003c\/p\u003e \u003cp\u003e21.4 Other Frameworks.\u003c\/p\u003e \u003cp\u003e21.5 Further Reading.\u003c\/p\u003e \u003cp\u003e21.6 Exercises.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e22 Development Frameworks.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e22.1 Java as a Framework.\u003c\/p\u003e \u003cp\u003e22.2 Microsoft’s .NET Framework.\u003c\/p\u003e \u003cp\u003e22.3 IBM’s San Francisco Project.\u003c\/p\u003e \u003cp\u003e22.4 POOMA.\u003c\/p\u003e \u003cp\u003e22.5 Further Reading.\u003c\/p\u003e \u003cp\u003e22.6 Exercises.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e23 Challenges in Frameworks.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e23.1 Developing Frameworks.\u003c\/p\u003e \u003cp\u003e23.2 Application Development Using a Framework.\u003c\/p\u003e \u003cp\u003e23.3 Testing Frameworks.\u003c\/p\u003e \u003cp\u003e23.4 Issues in Framework Usage.\u003c\/p\u003e \u003cp\u003e23.5 Exercises.\u003c\/p\u003e \u003cp\u003eBIBLIOGRAPHY.\u003c\/p\u003e \u003cp\u003eGLOSSARY.\u003c\/p\u003e \u003cp\u003eINDEX.\u003c\/p\u003e","brand":"John Wiley \u0026 Sons Inc","offers":[{"title":"Default Title","offer_id":49402606551383,"sku":"9780471483472","price":128.66,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9780471483472.jpg?v=1730480939","url":"https:\/\/bookcurl.com\/products\/software-paradigms-9780471483472","provider":"Book Curl","version":"1.0","type":"link"}