E-Book, Englisch, 448 Seiten
Fayad / Sanchez / Hegde Software Patterns, Knowledge Maps, and Domain Analysis
Erscheinungsjahr 2014
ISBN: 978-1-4665-7144-0
Verlag: Taylor & Francis
Format: PDF
Kopierschutz: Adobe DRM (»Systemvoraussetzungen)
E-Book, Englisch, 448 Seiten
ISBN: 978-1-4665-7144-0
Verlag: Taylor & Francis
Format: PDF
Kopierschutz: Adobe DRM (»Systemvoraussetzungen)
Software design patterns are known to play a vital role in enhancing the quality of software systems while reducing development time and cost. However, the use of these design patterns has also been known to introduce problems that can significantly reduce the stability, robustness, and reusability of software. This book introduces a new process for creating software design patterns that leads to highly stable, reusable, and cost-effective software. The basis of this new process is a topology of software patterns called knowledge maps.
This book provides readers with a detailed view of the art and practice of creating meaningful knowledge maps. It demonstrates how to classify software patterns within knowledge maps according to their application rationale and nature. It provides readers with a clear methodology in the form of step-by-step guidelines, heuristics, and quality factors that simplify the process of creating knowledge maps.
This book is designed to allow readers to master the basics of knowledge maps from their theoretical aspects to practical application. It begins with an overview of knowledge map concepts and moves on to knowledge map goals, capabilities, stable design patterns, development scenarios, and case studies. Each chapter of the book concludes with an open research issue, review questions, exercises, and a series of projects.
Autoren/Hrsg.
Fachgebiete
Weitere Infos & Material
Preface
Acknowledgments
Authors
INTRODUCTION
An Overview of Knowledge Maps
Introduction: Key Concepts—Software Stable Models, Knowledge Maps, Pattern Language, Goals, Capabilities (Enduring Business Themes + Business Objects)
The Motivation
The Problem
The Objectives
Overview of Software Stability Concepts
Overview of Knowledge Maps
Pattern Languages versus Knowledge Maps: A Brief Comparison
The Solution
Knowledge Maps Methodology or Concurrent Software Development Model
Why Knowledge Maps?
Research Methodology Undertaken
Research Verification and Validation
The Stratification of This Book
Summary
Open Research Issues
Review Questions
Exercises
Projects
Abstraction: Knowledge Maps, Stability, and Patterns
Introduction
Levels of Abstraction in Knowledge Maps
Mapping Elements in Knowledge Maps to Software Stability Concepts and Patterns
The Software Stability Model
Goals
Capabilities
Knowledge Maps: Formation and Stable Architectural Patterns
Development Scenarios
Deployment and Verification and Validation
Summary
Open Research Issues
Review Questions
Exercises
Projects
GOALS OF THE KNOWLEDGE MAPS
The Goals: Significance and Identification
Introduction
Significance of Goals
An Example: A Simple E-Commerce Application
Dealing with Goals: Extraction and Assessment
Extracting the Goals of a Discipline: The Process
Dealing with Subgoals
Goals of Knowledge Maps
Goal 1: Learning
Goal 2: Discovery
Goal 3: Knowledge
Subgoals
Use an Analogy: Marriage or Friendship
Summary
Open Research Issues
Review Questions
Exercises
Projects
Discovery Stable Analysis Pattern
Introduction
Discovery Stable Analysis Pattern
Pattern Name: Discovery Stable Analysis Pattern
Known as
Context
Problem
Challenges and Constraints
Solution
Consequences
Applicability
Related Patterns and Measurability
Modeling Issues, Criteria, and Constraints
Design and Implementation Issues
Testability
Formalization Using Object Constraint Language, Z++ or Object Z, and/or Extended Backus– Naur Form
Business Issues
Known Usages
Tips and Heuristics
Summary
Open Research Issues
Review Questions
Exercises
Projects
The Knowledge Stable Analysis Pattern
Introduction
Pattern Documentation
Pattern Name: Knowledge Stable Analysis Pattern
Known As
Context
Problem
Challenges and Constraints
Solution: Pattern Structure and Participants
Applicability with Illustrated Examples
Related Patterns and Measurability
Known Usages
Summary
Open Research Issues
Review Questions
Exercise
Projects
KNOWLEDGE MAPS CAPABILITIES
Capabilities: The Heart of Business
Introduction
The Heart of the Business
Work Flow Metaphor—Workhorses
Dealing with Capabilities: Identification and Assessment
A Goal with No Capability
A Capability with No Goal
Identification Process of Capabilities: an Example
Capabilities of Knowledge Maps
Capability 1
Capability 2
Capability 3
Capability 4
Summary
Open Research Issues
Review Questions
Exercises
Projects
AnyMap Stable Design Pattern
Introduction
Pattern Documentation
Pattern Name: AnyMap Stable Design Pattern
Known as
Context
Problem
Challenges and Constraints
Solution Structure and Participants
Consequences
Applicability with Illustrated Examples
Related Patterns and Measurability
Modeling Issues, Criteria, and Constraints
Design and Implementation Issues
Formalization
Testability
Business Issues
Known Usage
Tips and Heuristics
Summary
Open Research Issues
Review Questions
Exercises
Research and Development
Indexing and Dictionary Search
Site Map Development
Projects
AnyContext Stable Design Pattern
Introduction
Pattern Documentation
Pattern Name: AnyContext Stable Design Pattern
Known as
Context
Problem
Challenges and Constraints
Solution: Pattern Structure and Participants
Summary
Open Research Issues
Review Questions
Exercises
Projects
KNOWLEDGE MAPS, DEVELOPMENT, AND DEPLOYMENT
Knowledge Maps: System of Patterns
Introduction
Representation of Knowledge Maps: Structure, Quality Factors, and Properties
Structure of the Knowledge Maps
Knowledge Maps versus Traditional Pattern Languages
Samples of SArchPs
Architecture 1
Architecture 2
Summary
Open Research Issues
Review Questions
Exercises
Projects
Development Scenarios: Setting the Stage
Introduction
Implementation Issues of the Knowledge Maps
Type versus Class within TOP
Design Type Specification Template
The Uses of Contracts in the Specification of Design Types
The Hook Specification Template
Specification of the User Model or Storyteller
Components
Aspect-Oriented Modeling
Aspects as Core Design Features in a System
Difference between the Aspect-Oriented Design
Approach and SSM
Identification of whether Aspects Will Be All the EBTs and All the BOs in a System
Understanding whether Aspects in AOP Will Represent Either EBTs or BOs of SSM in a System
Comparison between Extraction of Aspects in AOP, EBTs, and BOs in SSM
Modeling EBTs and BOs as Aspects
Summary
Open Research Issues
Review Questions
Exercises
Projects
Deployment, Verification and Validation, and Quality Factors
Introduction
Deployment of Knowledge Maps
The Conceptual Point of View of Deployment
The Practical Point of View of Deployment
The Quality Factors of Deployment
Deployment—V&V Process
Summary
Open Research Issues
Review Questions
Exercises
Projects
CASE STUDIES OF THE KNOWLEDGE MAPS
Knowledge Map Engine: Initial Work
Introduction
Interfaces Supported by the Knowledge Map Engine
Implementations of the Interfaces
Structures of Types
Construction Heuristics of Engines
The Hooking Facility of the Knowledge Map Engine
An Example: Creating Associations between BOs and IOs
Summary
Open Research Issues
Review Questions
Exercises
Projects
CRC Cards Knowledge Map
Introduction
What Makes an Effective CRC Cards
CRC Cards Knowledge Classification
Toward a Knowledge Map for CRC Cards
Goals or Classification
Capabilities or Properties
Development Scenarios
Deployment
Family of Patterns—Bird’s-Eye View
Knowledge Map for CRC Cards
The Main Step in the Classification
Pattern 1—Brainstorming Stable Analysis Pattern
Pattern 2—Engagement Stable Analysis Pattern
Pattern 3—CRC Card Modeling Stable Analysis Pattern
The Main Step in the Capability
Pattern 4—Effective CRC Card Format Pattern
Summary
Open Research Issues
Review Questions
Exercises
Projects
References
Future Work and Conclusions
Future Work
Summary
Review Questions
Exercises
Projects
Appendix A: Pattern Documentation Templates
Appendix B: Other Templates
Appendix C: Stable Patterns Catalog
Appendix D: Sample Requirements
References
Index