Stable Analysis Patterns For Software And Systems 1st Edition Fayad instant download
Stable Analysis Patterns For Software And Systems 1st Edition Fayad instant download
https://ebookbell.com/product/stable-analysis-patterns-for-
software-and-systems-1st-edition-fayad-5892096
https://ebookbell.com/product/stable-isotopic-analysis-of-carbon-and-
nitrogen-as-an-indicator-of-paleodietary-change-among-prestate-metal-
age-societies-in-northeast-thailand-christopher-a-king-49986954
https://ebookbell.com/product/metabolic-analysis-using-stable-
isotopes-first-edition-metallo-5431378
https://ebookbell.com/product/potential-analysis-of-stable-processes-
and-its-extensions-1st-edition-krzysztof-bogdan-1147076
https://ebookbell.com/product/an-introduction-to-syntactic-analysis-
and-theory-d-sportiche-10671806
Analyses Of Turbulence In The Neutrally And Stably Stratified
Planetary Boundary Layer 1st Edition Cedrick Ansorge Auth
https://ebookbell.com/product/analyses-of-turbulence-in-the-neutrally-
and-stably-stratified-planetary-boundary-layer-1st-edition-cedrick-
ansorge-auth-5675626
https://ebookbell.com/product/stable-places-and-changing-perceptions-
cave-archaeology-in-greece-fanis-mavridis-jesper-tae-jensen-49984300
https://ebookbell.com/product/stable-isotopes-in-high-temperature-
geological-processes-john-w-valley-editor-hugh-p-taylor-editor-james-
r-oneil-editor-50924040
https://ebookbell.com/product/stable-isotope-geochemistry-john-w-
valley-editor-david-r-cole-editor-50924130
Stable Analysis Patterns
for Software and Systems
Stable Analysis Patterns
for Software and Systems
M. E. Fayad
CRC Press
Taylor & Francis Group
6000 Broken Sound Parkway NW, Suite 300
Boca Raton, FL 33487-2742
This book contains information obtained from authentic and highly regarded sources. Reasonable efforts have
been made to publish reliable data and information, but the author and publisher cannot assume responsibility for
the v alidity of all materials or the consequences of their use. The authors and publishers have attempted to trace
the copyright holders of all material reproduced in this publication and apologize to copyright holders if permission
to publish in this form has not been obtained. If any copyright material has not been acknowledged please write and
let us know so we may rectify in any future reprint.
Except as permitted under U.S. Copyright Law, no part of this book may be reprinted, reproduced, transmitted,
or utilized in any form by any electronic, mechanical, or other means, now known or hereafter invented, includ-
ing photocopying, microfilming, and recording, or in any information storage or retrieval system, without written
permission from the publishers.
For permission to photocopy or use material electronically from this work, please access www.copyright.com (http://
www.copyright.com/) or contact the Copyright Clearance Center, Inc. (CCC), 222 Rosewood Drive, Danvers, MA
01923, 978-750-8400. CCC is a not-for-profit organization that provides licenses and registration for a variety of users.
For organizations that have been granted a photocopy license by the CCC, a separate system of payment has been
arranged.
Trademark Notice: Product or corporate names may be trademarks or registered trademarks, and are used only for
identification and explanation without intent to infringe.
Visit the Taylor & Francis Web site at
http://www.taylorandfrancis.com
and the CRC Press Web site at
http://www.crcpress.com
To all Software Professionals and Developers,
especially the ones who apply my work.
Contents
Preface............................................................................................................................................xvii
Acknowledgments............................................................................................................................xxi
Author........................................................................................................................................... xxiii
Part I Introduction
vii
viii Contents
3.3.1.2 Context................................................................................ 39
3.3.1.3 Problem............................................................................... 39
3.3.1.4 Forces.................................................................................. 39
3.3.1.5 Solution...............................................................................40
3.3.2 Pattern 1.2: Stability Model................................................................. 42
3.3.2.1 Intent................................................................................... 42
3.3.2.2 Context................................................................................ 42
3.3.2.3 Problem............................................................................... 42
3.3.2.4 Forces.................................................................................. 42
3.3.2.5 Solution............................................................................... 42
3.3.3 Pattern 2.3: Identify the Problem........................................................ 45
3.3.3.1 Intent................................................................................... 45
3.3.3.2 Context................................................................................ 45
3.3.3.3 Problem............................................................................... 45
3.3.3.4 Forces.................................................................................. 45
3.3.3.5 Solution............................................................................... 45
3.3.4 Pattern 2.4: Identify EBTs...................................................................46
3.3.4.1 Intent...................................................................................46
3.3.4.2 Context................................................................................46
3.3.4.3 Problem...............................................................................46
3.3.4.4 Forces.................................................................................. 47
3.3.4.5 Solution............................................................................... 47
3.3.4.6 Discussion........................................................................... 48
3.3.5 Pattern 2.5: Identify BOs..................................................................... 49
3.3.5.1 Intent................................................................................... 49
3.3.5.2 Context................................................................................ 49
3.3.5.3 Problem............................................................................... 49
3.3.5.4 Forces.................................................................................. 49
3.3.5.5 Solution............................................................................... 49
3.3.5.6 Discussion........................................................................... 51
3.3.6 Pattern 2.6: Proper Abstraction Level................................................. 52
3.3.6.1 Intent................................................................................... 52
3.3.6.2 Context................................................................................ 52
3.3.6.3 Problem............................................................................... 52
3.3.6.4 Forces.................................................................................. 52
3.3.6.5 Solution............................................................................... 52
3.3.6.6 Discussion........................................................................... 53
3.3.7 Pattern 3.7: Build Stable Analysis Patterns......................................... 54
3.3.7.1 Intent................................................................................... 54
3.3.7.2 Context................................................................................ 54
3.3.7.3 Problem............................................................................... 56
3.3.7.4 Forces.................................................................................. 56
3.3.7.5 Solution............................................................................... 56
3.3.7.6 Examples............................................................................. 56
3.3.8 Pattern 3.8: Use Stable Analysis Patterns........................................... 58
3.3.8.1 Intent................................................................................... 58
3.3.8.2 Context................................................................................ 58
3.3.8.3 Problem............................................................................... 58
3.3.8.4 Forces.................................................................................. 58
3.3.8.5 Solution............................................................................... 58
3.3.8.6 Comment............................................................................. 59
Contents ix
3.3.8.7 Example.............................................................................. 59
3.4 Summary..........................................................................................................60
3.5 Open and Research Issue.................................................................................. 61
Review Questions........................................................................................................ 61
Exercises...................................................................................................................... 62
Projects........................................................................................................................ 62
References................................................................................................................... 62
Chapter 5 Stable Patterns’ Documentation: Templates, UML Forms, Rules, and Heuristics...... 75
5.1 Introduction...................................................................................................... 75
5.2 Patterns’ Documentation Templates................................................................. 77
5.2.1 Current Stable Models’ Templates and Their Problems..................... 77
5.2.2 Full Stable Patterns’ Template Description with Rules and
Heuristics............................................................................................. 78
5.2.2.1 Pattern Name...................................................................... 78
5.2.2.2 Known As........................................................................... 78
5.2.2.3 Context................................................................................ 79
5.2.2.4 Problem...............................................................................80
5.2.2.5 Challenges and Constraints................................................80
5.2.2.6 Solution............................................................................... 81
5.2.2.7 Consequences...................................................................... 83
5.2.2.8 Applicability.......................................................................84
5.2.2.9 Applicability with Illustrated Examples.............................84
5.2.2.10 Related Patterns and Measurability....................................84
5.2.2.11 Modeling Issues, Criteria, and Constraints........................ 86
5.2.2.12 Design and Implementation Issues..................................... 86
5.2.2.13 Testability............................................................................ 86
5.2.2.14 Formalization using Z++, Object Z, or Object-
Constraints Language (OCL) (Optional)��������������������������� 87
5.2.2.15 Business Issues.................................................................... 87
5.2.2.16 Known Usage......................................................................92
5.2.2.17 Tips and Heuristics.............................................................92
5.3 Summary..........................................................................................................92
x Contents
Review Questions........................................................................................................ 93
Exercises...................................................................................................................... 93
Project.......................................................................................................................... 93
Sidebars.......................................................................................................................94
References................................................................................................................. 101
Exercises....................................................................................................................244
Projects......................................................................................................................244
References.................................................................................................................244
Projects...................................................................................................................... 290
References................................................................................................................. 291
Index...............................................................................................................................................309
Preface
Software analysis patterns play an important role in reducing the overall cost, and in abridging and
compressing the time of software project lifecycles. However, building reusable and stable analysis
patterns (SAPs) is still considered a major and sensitive challenge. This book proposes the novel
concept of SAPs based on software stability as a modern approach for building stable and highly
reusable and widely applicable analysis patterns. This book also intends to provide a true and defi-
nite understanding of the problem space and focus users’ requirements analysis accurately. It shows
that this new formation approach of discovering/creating SAPs accords with Alexander’s current
understanding of architectural patterns. This agreement is not accidental, but truly fundamental.
The SAPs are a kind of knowledge patterns that underline human problem-solving methods, and
appeal to the pattern community to look for patterns from building a foundation of architectures on
demand from a broader system perspective.
This book presents a new and pragmatic approach for understanding the problem domain and
in utilizing SAPs for any field of knowledge and modeling the right and stable software systems,
components, and frameworks. Along with the core value of reusing the presented patterns, this book
also helps readers attain the basic knowledge that is needed to analyze and extract analysis patterns
for their own domains of interests. Moreover, readers will also learn and master ways to document
their own patterns in an effective, easy, and comprehensible manner.
The work reported in this book brings truly significant contributions to the computing field for
several important reasons. It is the first and the only complete reference manual on the topic of
SAPs. It is also the first book on handling the true understanding of the problem space, and it will
teach a reader the methods and processes to analyze user’s requirements accurately, and ways to
build a myriad of cost-effective and highly maintainable systems by using SAPs.
xvii
xviii Preface
Even with the best of software architecture knowledge, a piece of software system is bound to face
some problems in its lifetime. This book attempts to highlight and deliberate a number of common
problems found in today’s traditional software patterns, like the Gang of Four, Siemens Group,
and others.
While Christopher Alexander’s earlier work on patterns (e.g., “Timeless Way of Building” and
“A Pattern Language”) influenced the development of software (analysis, design, and architectural)
patterns, his latest work on fundamental properties of patterns (presented in the four book series
called “The Nature of Order”) seems to be less influential to software patterns, in general, and
analysis patterns in particular. Thus, the most obvious solution would be to focus more on develop-
ing effective patterns that contributes positively to the future development of software systems. This
book is expected to overcome all the pitfalls of traditional or existing analysis patterns.
The main purpose of this book proposal is therefore to fill in the important gap in the current
analysis pattern book, by adding new sets of analysis knowledge, and by providing a very well-
defined paradigm of discovering/creating analysis patterns, based on software stability. This book
also proposes the novel concept of SAPs based on software stability as a modern approach for build-
ing stable and highly reusable and widely applicable analysis patterns. This book overcomes the
factor of immaturity in existing software patterns, in general, and analysis patterns, in particular,
presented in many different existing software patterns pitfalls.
Throughout this book, we have furnished a number of answers to questions raised before, and
practical approaches to follow clear-cut processes that arise from these answers. The Software
Stability Concepts acted as the major backbone to all these questions. By applying concepts of
stability model to the assumptions of analysis patterns, we suggest the concept of SAPs. The main
idea behind using SAPs is to analyze the overall problem under question, in terms of its EBTs and
the BOs, mainly with the goal of increased stability and broader reuse. By examining ensuing prob-
lem in terms of their EBTs and the BOs, the resulting pattern will form the core knowledge of the
problem. The ultimate goal of this new concept is achieving ample stability. Accordingly, anyone
could easily comprehend, understand, and build reusable models that tackle solving similar prob-
lems occurring under different contexts and domains. The real essence of SAPs is twofold: A clear
paradigm and a precise visual representation. For the paradigm approach, we have presented a set
of guidelines, heuristics, and quality factors that will ease the process of creating SAPs, along with
a well-defined and reusable documentation. On the other hand, for visual representation, we have
offered visual gadgets or symbols that convey what the SAPs are and how to apply them.
In addition to an introduction of twin and narrative essences of SAPs, this book also attempts
to analyze reasons and factors that might affect designing, sustained life cycle, durability, general-
ity, traceability, and quality of composition. In order to overcome all these perceived lacunae, this
book provides a standard way of creating SAPs by using the principle of software stability that has
been covered in depth in our earlier book titled Software Patterns, Knowledge Maps and Domain
Analysis. The scope of this book extends beyond just designing an SAP. Being the only complete
reference manual on SAPs, this book documents and highlights several aspects, techniques, and
processes that are linked to the problem of understanding software systems that exist today. In addi-
tion, this book also presents a diversity of domain-less SAPs that one can easily comprehend and
reuse to model similar problems in any given context.
Furthermore, tips from this book show the reader how to link the analysis pattern to the design
phase; the main design issues necessary for a smooth transition between analysis and design phases
are some of the useful contributions provided by this book. This book also offers a brand new
template for improving the communication of analysis patterns among all developers; incidentally,
this template aims to capture the static and dynamic behavior of the pattern, while maintaining the
simplicity of reading and understanding the pattern. The main goal of this book is to ensure reus-
ability of the pattern and its stability. Eventually, the overall scope of this book extends beyond the
usual paraphernalia that is attached to pattern designing and making without taking into account
the factors of traceability, robustness, stability, enhanceability, and reusability.
Preface xix
Book Supplement
The author provides a book supplement of 400+ pages containing solutions to the exercises and
projects in each chapter. In addition to problem statements for team projects, exams, quizzes, and
a modeling tips and heuristics are also given. The supplement also provides over 20–30 numbers
of special SAPs. Static, dynamic, and behavior models for each of the patterns are also given.
Similarly, the author also provides a number of scenarios to illustrate how to do them in the supple-
ment section. The book supplement also has several private links for power point presentation of all
the sections of the book.
Acknowledgments
This book would not have been completed without the help of many great people; I thank them
all. Special thanks to my friend and one of my best student Dr. Haitham Hamza, Cairo University,
Egypt for his excellent thesis work on Stable Analysis Patterns. Special thanks to my friend Srikanth
G. K. Hegde. I also would like to thank all of my student assistants, Vishnu Sai Reddy Gangireddy,
Mansi Joshi, Siddharth Jindal, Hema Veeraragavathatham, and Pavan Pavuluri for their work on the
figures and diagrams and long discussions on some of the topics of this book.
This was a great and fun project because of your tremendous help and extensive patience. Special
thanks to my San Jose State University students for forming teams and work on some of the exer-
cises and projects in this book. Special thanks to my wife Raefa, my lovely daughters Rodina and
Rawan, and my son Ahmad for their great patience and understanding. Special thanks to Srikanth’s
wife, Kumuda Srikanth, for help with reviewing some of the chapters. Special thanks to all my
friends all over the world for their encouragement and long discussions about the topics and the
issues in this book. Thanks to all my students and coauthors of many articles related to this topic
with me, in particular Ahmed Mahdy (Texas A&M University at Corpus Christi, Corpus Christi,
TX), Shasha Wu (Spring Arbor University, Michigan), and Shivanshu Singh, to my friends Davide
Brugali and Ahmed Yousif for their encouragement during this project, to the Communications of
the ACM staff—my friends Diana Crawford, the executive editor, Thomas E. Lambert, the manging
editor, and Andrew Rosenbloom, the senior editor.
I would like to acknowledge and thank all of those who have had a part in the production of this
book. First, and foremost, we owe our families a huge debt of gratitude for being so patient while
we put their world in a whirl by injecting this writing activity into their already busy lives. We also
thank the various reviewers and editors who have helped in so many ways to get the book together.
We thank our associates who offered their advice and wisdom in defining the content of the book.
We also owe special thanks to those who have worked on the various projects covered in the case
studies and examples.
Finally we would like to acknowledge and thank the work of some of the people and who helped
us in this effort. John Wyzalek, acquisition editor, Stephanie Place, editorial assistant, Glenon
Butler, project editor, and Michelle Rivera-Spann the marketing manager at CRC Press, Taylor &
Francis Group for their excellent and quality support and work done to produce this book and a spe-
cial acknowledgment and thanks to Karthick Parthasarathy, assistant manager at Nova Techset, who
did a tremendous job for proofreading and copyediting of all the chapters in detail and the elegant
and focused ways of taking care of day-to-day handling of this book, and special thanks to all the
people in marketing, design, and support staff at CRC Press, Taylor & Francis Group.
xxi
Author
Dr. M. E. Fayad is a full professor of computer engineering at San
Jose State University from 2002 to present. He was a J. D. Edwards
professor of computer science and engineering at the University of
Nebraska, Lincoln, from 1999 to 2002, and an associate professor
of the computer science and computer engineering faculty at the
University of Nevada, from 1995 to 1999. He has over 15 years of
industrial experience. Dr. Fayad is an IEEE distinguished speaker,
an associate editor, editorial advisor, and a columnist for The
Communications of the ACM where his column name is Thinking
Objectively. He is also a columnist for Al-Ahram Egyptians
Newspaper, and an editor-in-chief for IEEE Computer Society
Press—Computer Science and Engineering Practice Press (1995–
1997). He also served as General Chair of IEEE/Arab Computer Society International Conference
on Computer Systems and Applications (AICCSA 2001), Beirut, Lebanon, June 26–29, 2001, and
he is the Founder and President of Arab Computer Society (ACS) from April 2004 to April 2007.
Dr. Fayad is a known and well-recognized authority in the domain of theory and the applications
of software engineering. Fayad’s publications are in the very core, archival journals and conferences
in the software engineering field. Dr. Fayad was a guest editor on 11 theme issues: CACM’s OO
Experiences, Oct. 1995, IEEE Computer’s Managing OO Software Development Projects, Sept.
1996, CACM’s Software Patterns, Oct. 1996, CACM’s OO Application Frameworks, Oct. 1997,
ACM Computing Surveys—OO Application Frameworks, March 2000, IEEE Software—Software
Engineering in-the-small, Sept./Oct. 2000, and International Journal on Software Practice
and Experiences, July 2001, IEEE Transaction on Robotics and Automation—Object-Oriented
Methods for Distributed Control Architecture, October 2002, Annals of Software Engineering
Journal—OO Web-Based Software Engineering, October 2002, Journal of Systems and Software,
Elsevier, Software Architectures and Mobility, July 2010, and Pattern Languages: Addressing the
Challenges, the Journal of Software, Practice and Experience, March–April 2012.
Dr. Fayad has published more than 300 high-quality articles, which include profound and well-
cited reports (more than 50 in number) in reputed journals, and over 100 advanced articles in ref-
ereed conferences, more than 25 well-received and cited journal columns, 16 blogged columns,
11 well-cited theme issues in prestigious journals and flagship magazines, 24 different workshops
in very respected conferences, over 125 tutorials, seminars, and short presentations in more than
30 different countries, such as Hong Kong (April 96), Canada (12 times), Bahrain (2 times), Saudi
Arabia (3 times), Egypt (25 times), Lebanon (04 & 05), UAE (2 times), Qatar (2 times), Portugal (Oct.
96, July 99), Finland (2 times), UK (3 times), Holland (3 times), Germany (4 times), Mexico (Oct.
98), Argentina (3 times), Chile (00), Peru (02), and Spain (02), Brazil (04), a founder of 7 new online
journals, NASA Red Team Review of QRAS and NSF-USA Research Delegations’ Workshops to
Argentina and Chili and four authoritative books, of which three of them are translated into dif-
ferent languages such as Chinese and over 5 books currently in progress. Dr. Fayad is also filling
for eight new, valuable, and innovative patents and has developed over 800 stable software pat-
terns. Dr. Fayad earned an MS and a PhD in computer science from the University of Minnesota
at Minneapolis. His research topic was OO Software Engineering: Problems and Perspectives. He
is the lead author of several classic Wiley books: Transition to OO Software Development, August
1998, Building Application Frameworks, September, 1999, Implementing Application Frameworks,
September, 1999, Domain-Specific Application Frameworks, October, 1999, and several classic
books by CRC Press, Taylor & Francis Group: Software Patterns, Knowledge Maps, and Domain
xxiii
xxiv Author
Analysis, December 2014 and several new books in Progress with Taylor & Francis Group—Stable
Analysis Pattern for Software and Systems (May 2017), Stable Design Pattern for Software and
Systems (July 2017), Unified Business Rules Standard (UBRS), Software Architecture On Demand,
Unified Software Engineering Reuse (USER) and Unified Software engineering (USE) in Progress.
Part I
Introduction
Stable analysis patterns (SAPs) are conceptual models that model the core knowledge of the
problem. Therefore, it is expected that the pattern that model the specific problem should be
easily and successfully used to model the same problem, regardless of the context in which the
problem appears. SAPs are generated using the stability model [1–4]. In this subsection, we will
provide its structure, mantra, and the rationale-driven language used to discover and visualize
elemental pieces of knowledge (patterns), how to organize them, and how to relate them to for-
mulate an accurate solution in contexts, that shares the same core knowledge (rationale or goals,
and capabilities).
Building SAPs using software stability [1–4] for a specific problem involves myriad skills,
knowledge and steps beyond the identification of the tangible artifacts that are bound to a specific
context of applicability. It also requires a systematic capture and full understanding of the domain,
where our solution would be laid down and expanded. That includes, describing the problem not
from its tangible side, but focusing more on its conceptual side, describing underlying affairs with
respect to the problem, and the elements required to fulfill them. Part I comprises 5 chapters and
20 sidebars.
Chapter 1 titled “Stable Analysis Patterns Overview” introduces the key concepts, and tech-
nologies of the development of SAPs, such as stability model and knowledge maps [5],
where the enduring business themes (EBTs) or goals are the SAPs, and its business objects
(BOs) are their own capabilities. It also discusses related work and different analysis pat-
terns’ development approaches, the challenges that analysis patterns face with examples,
the overview of SAPs, the development processes of SAPs, and examples of SAPs.
Chapter 2 titled “Applying Analysis Patterns through Analogy: Problems and Solutions”
focuses on two of the qualities: traceability and generality. Generality means that the pat-
tern that analyzes a specific problem can be successfully reused to analyze the same prob-
lem whenever it appears, even within different applications or across different domains.
It discusses analysis patterns as templates: (1) The problems with using analysis patterns
through analogy and (2) SAPs with examples are discussed. It also shows how to apply
SAPs in different application.
2 Introduction
Chapter 3 titled “Pattern Language for Building Stable Analysis Patterns” provides an over-
view of the proposed pattern language, shows how a list of patterns build SAPs, and dis-
plays the relations between the different patterns. It also provides a detailed description of
each pattern that is part of the proposed pattern language.
Chapter 4 titled “Model-based Software Reuse Using Stable Analysis Patterns” treats SAPs as
model-based architectures and proposes nine essential properties (or metrics) to measure
pattern reusability that are used to compare the three different analysis patterns’ develop-
ment approaches.
Chapter 5 titled “Stable Patterns Documentation: Templates, UML Forms, Rules, and
Heuristics” addresses key questions and issues about each stable pattern. The template
is suitable for documenting stable atomic patterns and stable architectural patterns where
stable atomic patterns are SAPs (also called Enduring Business Themes [EBTs], goals,
rationales, aims, purposes, and objectives) and stable design patterns (also called Business
Objects [BOs] or capabilities used to achieve each of the goals). This chapter provides
three different templates with rules, UML forms, and heuristics to document any pattern:
(1) detailed, (2) mid-size, and (3) short templates.
Each of the chapters concludes with a summary and an open research issue. This chapter also
provides a number of review questions, exercises, and projects.
Chapter 1 has four sidebars (1–4):
Sidebar 1.1: titled “The Roots of Patterns—Historical Perspectives” explores the patterns
from ancient civilizations [6,7], such as Egyptians, Chinese, Indian, etc. and concludes
with ALEXANDRINE Patterns as Inherited Architectural Solutions [8].
Sidebar 1.2: titled “Common Stable Design Patterns” lists the most common design patterns
that will be utilized in developing SAPs as part of their capabilities to achieve them [9].
Sidebar 1.3: titled “Analysis Patterns’ References” presents a brief overview of the existing
journal and book literature on analysis patterns.
Sidebar 1.4: titled “Martin Fowler’s Analysis Patterns” discusses briefly Martin Fowler’s anal-
ysis patterns [10] and highlights their pitfalls with an example.
REFERENCES
1. M.E. Fayad, and A. Altman, Introduction to software stability, Communications of the ACM, 44(9),
2001, 95–98.
2. M.E. Fayad, Accomplishing software stability, Communications of the ACM, 45(1), 2002a, 111–115.
3. M.E. Fayad, How to deal with software stability, Communications of the ACM, 45(4), 2002b, 109–1112.
4. M.E. Fayad, and S. Wu, Merging multiple conventional models into one stable model, Communications
of the ACM, 45(9), 2002c.
Introduction 3
5. M.E. Fayad, H.A. Sanchez, S.G.K. Hegde, A. Basia, and A. Vakil, Software Patterns, Knowledge Maps,
and Domain Analysis, Boca Raton, FL: Auerbach Publications, 2014.
6. C. Somers, and R. Engelbach, Ancient Egyptian Construction and Architecture, New York: Dover
Publications, 1990.
7. C. Eric, and H. O’Connor, David Kevin Amenhotep III: Perspectives on His Reign, Ann Arbor, Michigan:
University of Michigan Press, 2001, 273.
8. C. Alexander et al., A Pattern Language, New York: Oxford University Press, 1977.
9. M.E. Fayad, Stable Design Patterns for Software and Systems: Ultimate Solutions, Auerbach Publications,
2017.
10. M. Fowler, Analysis Patterns—Reusable Object Models, Reading, MA: Addison-Wesley Publishing,
1997.
1 Stable Analysis
Patterns Overview
You look at where you’re going and where you are and it never makes sense, but then you look
back at where you’ve been and a pattern seems to emerge.
Robert M. Pirsig
Zen and the Art of Motorcycle Maintenance: An Inquiry Into Values
Domain models are conceptual models that capture the main concepts within the domain and their
embedded relationships. These models play an important role in software development to facilitate
understanding and communicating the problem to be solved among developers and stakeholders.
However, developing conceptual models requires both domain knowledge and modeling skills,
which can be challenging for novice as well as experienced practitioners. Analysis patterns are
conceptual models that can be used to model and share domain k nowledge, and hence, they can
aid in developing domain models. However, most existing analysis patterns do not separate the core
concepts of the domain from business-specific concepts, limiting the scope of the pattern usabil-
ity. In this chapter, the main c hallenges in analysis patterns reuse are identified and elucidated. To
overcome some of these challenges, the concept of Stable Analysis Pattern is proposed as a new
approach for developing patterns that separate domain concepts from business-specific concepts.
The proposed approach is illustrated through several examples.
1.1 INTRODUCTION
Developing software systems involves several activities, starting from domain and requirement
analysis to system implementation and deployment [1–7]. Numerous requirements, techniques, and
object-oriented design methods that are widely used in industry, start invariably with the develop-
ment of a domain model that captures the core concepts in the domain [8]. Developing domain
models, however, requires domain knowledge and modeling skills. But domain experts and analysts
may have limited access to skill and knowledge, faced with under-tied “time-to-market” constraints
and restricted by condensed budgets.
It has been long realized that software systems do share many requirements. For example, in a
health-care system and an e-commerce infrastructure, there is a common need for techniques to
attain “Information Privacy” in order to protect user information. At a conceptual level, the concept
of “Privacy” does not change in both systems, although, realizing privacy at the implementation
level is likely to be different in both systems. Nonetheless, conceptual modeling can greatly benefit
from capturing commonly recurring problems at a reusable, yet meaningful abstraction level.
Software community has long realized the advantage of reuse [1,2], which is evident by the
emergence of several reuse communities over the last few decades. Among these communities is
the patterns community that advocates reuse by extracting and documenting solutions of recurring
problems throughout the different phases of software development, for example, design (design
patterns) and analysis (analysis patterns). In this book, we will focus on the important topic of
analysis patterns. Analysis patterns are known to shape the knowledge of the problem domain. They
support developers in understanding the underlying problem, rather than showing how to design a
solution. (Please refer to Sidebar 1.2 on Common Stable Design Patterns for creating stable analysis
patterns.)
5
6 Stable Analysis Patterns for Software and Systems
Despite the fact that analysis patterns have been around for almost a decade now, their reuse is
still limited when compared to design patterns and other reuse techniques. Here, we will argue that
this limited reuse is due to several shortcomings in existing analysis patterns structures including the
lack of stability, the lack of proper abstraction levels, and inadequate documentation. In this chapter,
we will first identify the main challenges that adversely impact analysis patterns’ reuse. Then, we
will propose the concept of Stable Analysis Pattern as a new approach for separating problem
concepts from business-specific concepts, in order to overcome some of the main shortcomings
in existing analysis patterns. We will also demonstrate the proposed approach through several
examples.
The remainder of this chapter is organized as follows: related work is discussed in Section 1.2;
challenges that face analysis patterns are discussed in Section 1.3. The concept of stable analysis
patterns is introduced in Section 1.4. In Section 1.5, an approach for developing stable analysis
patterns is described. Examples of stable analysis patterns are discussed in Section 1.6; conclusion
in Section 1.7. Please refer to Sidebar 1.3 (Analysis Patterns References), which is useful for more
knowledge about analysis patterns.
1. Pattern instability: Here, we will define stability, informally, as the degree by which the sys-
tem can accommodate future changes and evolving requirements while preserving most
of its original design. Software systems, by nature, evolve or change over time as new
Stable Analysis Patterns Overview 7
requirements emerge; yet, it is always desired that such changes do not result in higher cost
or force the system to be redesigned from scratch. If analysis patterns used in the system are
unstable themselves, then this instability will ripple or cascade through other development
phases, eventually leading to the development of unstable systems. Current analysis patterns
approaches do not consider the stability as a goal when designing and developing analysis
patterns.
2. Pattern redundancy: The increasing growth of the pattern community has also increased
the likelihood of finding several patterns that address similar problems. Analyzing any
problem with specific applications in mind might result in analysis models that are bound
to specific applications and that are hard to apply, when similar problems appear in other
applications. Consequently, several patterns that address similar problems, which are
positioned within different applications will be derived and developed. For instance, dif-
ferent patterns have been proposed to model accounts.
3. Analysis patterns documentations: Describing pattern is perhaps as crucial as the p attern
itself. A fine thin line should be drawn between the pattern’s details and their depths.
Regarding a pattern’s details, it is understood that the quantum of information presented
to describe or highlight the pattern in hand, while a pattern’s depth is closely linked to
the technical complexity of the solution the pattern usually presents. Too great a ratio of
details to depth, or too small a ratio, might leave the user lose the intended track eventu-
ally making the pattern very hard to understand and reuse [1,2]. Efforts on exploring how
analysis patterns are documented are rather rare, while design pattern templates are the
most commonly used ways to document analysis patterns.
4. Identification of the problem boundary: One of the major challenges that developers
face while developing analysis patterns are to precisely identify the boundary of the
problems that these patterns try to analyze and evaluate. Without clear identification
of problem boundary, it is more likely that the pattern will embody many other prob-
lems that are invariably out of the scope of the main problem. For example, the word
“account” alone becomes a vague concept, if it is not allied with a word that is related
to a certain context. Besides all of the traditionally well-known business and banking
accounts, we also have e-mail accounts, online shopping accounts, etc. The account
pattern models has two significantly different problems: the “account” problem and the
“entry” problem. These are closely related, although they are independent problems. It
is quite possible that we come across numerous entries that do not have any accounts or
they are accounts without any entries. Tables 1.1 and 1.2 show some examples of such
situations.
5. Pattern traceability: This type of problem is very common in analysis patterns that
belong to the analogy approach (Section 1.3). When patterns are used as thorough analogy
approach, the original patterns are no longer extractable. This un-traceability factor may
complicate the maintainability aspect of the developed software.
TABLE 1.1
Accounts without Entries
1. Free online services account: Many online sites provide free goods or services. For example, some companies
provide learning software packages or instructional documents. In order to access these materials, you will need to
create an account. This account is merely a passport provided to the users to access their services; in fact, there is
nothing in this account that can be considered as your property.
2. Access account to the copy machine: Suppose, you have an account to access the copy machine in your school or
work. This account is no more than a passport for you to use the copier. There are no entries in this case.
8 Stable Analysis Patterns for Software and Systems
TABLE 1.2
Entries without Accounts
The following table contains information about class schedules, at the University of
Nebraska-Lincoln. In this table, each piece of information forms an entry to the
table. Here, we do not need any accounts where user entries could be maintained.
Call # Course Title Cr Hrs Time Day Room
2850 Computer Architecture 003 0230–0320p MWF Freg 112
2855 Software Engineering 003 0930–1045p TR Freg 111
EBTs
BOs
Adapt BOs System 1
EBTs + BOs = Stable core
System 2
FIGURE 1.1 Software stability concepts. The stable core (in the left) has been adapted to construct two
systems (in the right).
Stable Analysis Patterns Overview 9
Problem A Use
Identify IOs for Problem B
problem B
Use stability
concepts Extend
Extend
Develop Adapt
Identify EBTs, Stable Adapt BOs for
and BOs pattern problem B
1 and system 2, which are shown in the right-hand side of the figure. It is important to point out the
assumption that these two systems are closely related (e.g., share the same domain) so that we can
identify common EBTs and BOs.
The main goal of stable analysis patterns is to develop models that capture the core knowledge
of the problem and present it in terms of the EBTs and the BOs of that problem. Consequently, the
resultant pattern will inherit stability features and hence it can be reused to analyze the same prob-
lem whenever it appears. Figure 1.2 shows the generic approach of developing and reusing stable
analysis patterns.
Since the EBTs and BOs are stable by their nature, it is guaranteed that they will compose a
stable pattern, and hence, one can overcome the instability problem that was discussed in Section
1.3. Stable pattern can be used by directly extending it by attaching most appropriate IOs for the
problem B (Figure 1.2). Stable patterns may also be used by first adapting the hooks configurations
of its BOs and then attaching all appropriate IOs for problem B (Figure 1.2).
Refine
EBTs Identify
EBTs Identify EBTs Express relationships between
identification objects EBTs abstraction EBTs and BOs
heuristics list level
Refine BOs
BOs EBTs Identify BOs list
identification objects Refine
heuristics BOs
Key:
Normal Iterative Second abstraction
flow flow level flow
FIGURE 1.3 The high-level approach for developing stable analysis patterns.
10 Stable Analysis Patterns for Software and Systems
In the following section, we will also explain different phases of the integration approach:
Identify problem boundary: The reusability of a pattern is related to the number of problems it
addresses and tackles. If a pattern is used to model an overly broad portion of a system, the gener-
ality of resulting patterns is sacrificed—the maxim holds here: “the probability of occurrence of
all the problems together is far lesser than the probability of the occurrence of each problem when
considered individually.”
Identifying problem boundaries is not a trivial activity for many important reasons. First, certain
groups of problems often appear together, and as a result, they will be naturally considered as one,
solitary problem. Here, the resultant model may or may not be correctly modified to sculpt these
problems whenever they appear separately. Additionally, in practice, not all of the small problems
that are separable are qualified to form practically capable and stand-alone problems. There is a
subtle tradeoff between dividing the problem and the complexity of integrating smaller problems to
model a larger problem.
This phase can be accomplished by checking whether the problem could be further divided into
smaller and practical problems. Answering the following questions help us to achieve the above-
mentioned task: “What is the exact problem that we want to solve?” “Can we split this problem
further into a list of smaller problems?” “Are there any known and identified possible scenarios,
where these smaller problems might appear?” If one is able to find practical scenarios for each of
the smaller problems that are separated, then there is an urgent need to model each of them sepa-
rately. If smaller problems have no practical use, they should be grouped together and considered
as combined entities.
Identifying objects of EBT: We will need to identify core elements of the problem while we
are developing a stable pattern. Certain issues are known to complicate the identification of
EBTs in a given problem. For instance, domain experts may not always be able to identify accu-
rate, precise, and relevant EBTs [14]. Thus, experience is absolutely essential, but not sufficient
enough for extracting the right EBTs of the problem. The 3-step heuristic shown in Table 1.1 will
help us in identifying the most appropriate EBTs of the problem:
As an example for applying the 3-step heuristic that is shown in Table 1.3, it is important to
consider the identification of the EBTs in a modeling account:
Step 1 Create initial EBTs list. We will need to answer the question: “What is the ‘Account’
made for?” The initial EBTs list might include the following EBTs: Storage, Ownership,
Tractability, and Recording.
Step 2 Filter EBTs list. In this step, we may need to dig out the most appropriate EBTs for
the “account” problem. To do so, we will require examining each EBT given in the list
and see whether or not it reflects the enduring concepts of the problem modeled. Since
our main focus is centered on modeling the “account” problem alone, we will realize that
most of the EBTs that we have defined are mainly related to accounts that have entries. For
instance, “Storage,” “Tractability,” and “Recording” are all important concepts that are
dependent upon the existence of entries within the account. Suppose the account has no
entries, “Storage,” “Tractability” and “Recording” is unneeded. Therefore, we may need to
eliminate the EBTs like “Storage,” “Tractability,” and “Recording” from the list. Now, we
have only one EBT in the arrangement that is, “Ownership,” instead of four.
Step 3 Check the Main EBTs Properties. We will also answer the following questions: “Can
we replace the ‘Ownership’ with other EBT?”—No. “Is ‘Ownership’ stable internally and
externally?”—Yes. “Does ‘Ownership’ belong to a specific application or domain?”—No.
“Can we have direct physical representation for ‘Ownership’?”—No.
Identifying business objects: During the development of a stable analysis pattern, and after iden-
tifying the EBTs of the problem, we will want to identify the BOs of the problem. In some cases,
it is not readily obvious whether the object is an EBT or BO. After the EBTs of the problem have
Stable Analysis Patterns Overview 11
TABLE 1.3
A 3-Step Heuristic for Identifying EBTs
Step Step Name Details
1 Create Initial EBTs List To create the initial list of the EBTs of the problem, answer the question:
“What is the ‘problem’ designed for?” In other words: “What are the reasons
for the existence of the ‘problem?’” The output of this step is the list of the
initial EBTs of the problem. These EBTs are still tentative and some of them
are not as strongly related to the problem as they might appear.
2 Filter the EBTs List Eliminate the redundant and irrelevant EBTs from the initial list. People
unintentionally construct the initial EBTs list with a specific application in
mind. The output of this step is a modified EBTs list, which should contain
less EBTs than the initial list.
3 Check the Main EBTs Properties Examine the EBTs obtained in previous steps against the main essential
properties of the EBTs. The typical procedure is to answer the following
questions for each EBT in the list. The desired answer is written in bold for
each question: Can we replace this EBT with another one? No. Is this EBT
stable internally and externally? In other words, does this EBT reflect the
core aspects of the problem we are trying to model? Yes. Can we directly
represent this EBT physically? No. It is important to note that the EBTs
should not have direct physical representations (IO); otherwise they should
be considered BOs instead. For example: “Agreement” is a concept and one
can see it as an EBT. However, “Agreement” also has a direct physical
representation (for instance “Contract”). Therefore, “Agreement” is not an
EBT, it is a BO.
been identified, the conceptualization becomes comprehensible, since the BOs of the problem must
be based on the defined EBTs.
In addition to the main BOs identified for the problem, it is also possible to obtain some hidden
BOs that have no direct relationship with the defined EBTs. Instead, they are related to the main
BOs and to the other hidden BOs in the problem. The 4-step, heuristic shown in Table 1.4 can help
us in identifying the most appropriate BOs of the problem:
As an example of applying the 4-step heuristic shown in Table 1.4, suppose we want to identify
the possible BOs for the given “account” problem. In order to identify these BOs, we will apply all
the four steps that we have proposed earlier. The input of the first step is the EBTs list that contains
one essential EBT, “Ownership.”
Step 1 Identify the main BO of the problem: We will also answer the following questions:
How can we approach the goal of “Ownership”? In the account problem given here, to
achieve “Ownership,” we need to have something to own. The “Account” itself is what
makes the meaning of “Ownership.”
What are the results of doing/using “Ownership”? By having “Ownership,” we also
have “Privacy,” but this is not a BO. Rather, it is a redundant EBT, and hence we would
exclude it. “Agreement” is a possible BO for the problem, but, when you own an account,
you will have to agree with its policy. Who should do/use “Ownership”? For the “Owner”
to be able to use the “Account,” he or she should follow the responsibilities that are
defined by the “Ownership” policy. Hence, the BOs main list is “Owner,” “Account,” and
“Agreement.”
Step 2 Filter the main BOs List. Now, the following BOs still remain: “Owner,” “Account,”
and “Agreement.” While modeling this unique problem, we have debated the accuracy of
using the BO “Agreement” in our model. “Agreement” is a more general term that appears
12 Stable Analysis Patterns for Software and Systems
TABLE 1.4
A 4-Step Heuristic for Identifying BOs
Step Step Name Details
1 Identify the main BOs of the problem We will identify the main set of BOs that are directly related to each of
the EBTs that we have in the problem. There could be one or more BOs
corresponding to each EBT in the problem. However, some of the EBTs
may have no corresponding BOs. The main set of BOs of the problem
could be identified by answering one or more of the following questions
for each EBT: How can we approach the goal that this EBT presents?
(e.g., To achieve the goal of the EBT Organization, we can use, the BO
Schedule. Another example: for the EBT Negotiation, we need the BOs
AnyContext, and AnyMedia to perform the negotiation). What are the
results of doing/using this EBT? (e.g., for the EBT Negotiation, the
eventual result is to reach an Agreement, so this is one possible BO that
maps this EBT). Who should do/use this EBT? (e.g., The BO Party
does/ uses Negotiation. This Party can be a person, a company, or an
organization. Therefore, Party is one possible BO that maps the EBT
Negotiation).
2 Filter the main BOs List Purify the main BOs identified in the previous step. The objective of this
step is to eliminate the redundant and irrelevant BOs from the initial list.
One way to achieve this goal is to debate the listed BOs with a group.
(Please refer to Sidebar 1.2)
3 Identify the hidden BOs of the Identify the hidden BOs of the problem. These BOs are named “hidden,”
problem because they have no direct relationships with any of the EBTs of the
problem. Thus, we cannot extract them in the first two steps we have
performed. For example, let us assume that we need to model a simple
transportation system that offers transportation services for different
types of materials (e.g., gas, water, etc.). One possible EBT is
Transportation. One possible BO that maps this EBT is Transport.
A possible IO that can physically represent this BO is Trucks. In this
problem, one possible hidden BO is Materials. We do not have a direct
EBT that the BO Materials can be mapped to; however, there is a clear
relationship between the two BOs: Transport and Materials.
Before thinking about the hidden BOs in the problem, just visualize a
provisional scenario for each EBT and its corresponding BOs. Then,
answer the question, “What is still missing in the problem?” Usually,
the answer to this question is the list of the hidden BOs of the problem.
Some problems do not have any hidden BOs, especially in the case of
the small-scale problems.
4 Check the characteristics of the BOs This step is to ensure that the identified BOs satisfy the main BOs
characteristics. BOs are partially tangible, internally stable and should
remain stable throughout the life of the problem, externally adaptable
through hooks, and can be physically represented by IOs.
in many contexts and under different scenarios. For instance, in the “negotiation” problem,
we will need the BO “Agreement.” Therefore, possessing the BO “Agreement” as part
of the “Account” pattern will offset the simplicity property of the pattern. “Agreement”
is a stand-alone problem that occurs in many contexts, and hence it is more appropriate
to model the “Agreement” problem wholly independent of the context of this problem.
Consequently, we have excluded the BO “Agreement” from the main list. The filtered BOs
list thus contains “Account” and “Owner.”
Stable Analysis Patterns Overview 13
Step 3 Identify the hidden BOs of the problem. After identifying and filtering the main BOs
list, now answer this question, “Does the account problem need anything else so as to
be complete in every sense?” We have an “Account,” its “Owner,” and the concept of
“Ownership” that regulates the responsibilities and benefits of the “Owner.” This is all that
is needed to model any basic account.
Step 4 Check the characteristics of the BOs. BO should be partially tangible. “Owner” and
“Account” are partially tangible. BOs are internally stable, and they should be so through-
out the life span of the problem. “Owner” and “Account” are always stable. In other words,
we cannot have any account without having these two objects in its model. Here, BOs are
adaptable; thus, they might change externally.
Express abstraction level: Stable patterns can be generally classified into two main categories:
simple and composite patterns. A simple analysis pattern is a pattern that consists of classes and
no sub-patterns exist. On the other hand, composite stable analysis pattern consists of both classes
and subpatterns. Simple patterns are said to have one level of abstraction (such as the conventional
class diagram), while composite analysis patterns may have several levels of abstraction depending
on the structure of its subpatterns. Figure 1.4 shows the negotiation stable analysis pattern, which
is actually a composite pattern. Notice that the AnyMedia box in the displayed pattern is a pat-
tern in itself. Two different applications of the negotiation stable analysis pattern are illustrated in
Figures 1.7 and 1.8.
In stable patterns, we usually differentiate between two main participants in the pattern model:
classes, and patterns. Classes are defined as in the case of any traditional object-oriented class
diagram. On the other hand, patterns also present a second level of abstraction in the model,
where each pattern is by itself another model that contains classes and in some cases, other
patterns.
A class within a stable pattern could be one of the five following kinds: an EBT, a BO, an IO,
a sub-pattern and EBT, or a sub-pattern and BO. Therefore, each class in the stable pattern should
have one of the following tags: EBTs, BOs, IOs, Pattern-EBT, or Pattern-BO.
Note that the second abstraction level flow shown in Figure 1.4 will restart the modeling process
again from the first step. The negotiation pattern has resulted from the first execution of the develop-
ment process in Figure 1.4, the second abstraction level is the result of repeating the development
process for all the patterns that are tagged with <P-Bo>, but for different components (classes) in
EBT BO
Defines or
Handles 1..* <P-BO> follows 0..* <P-BO> {OR} <P-BO>
Party Criteria Rule
0..*
es
nc
lue
Inf
Using
1..*
For a specific <P-BO> defines <P-BO> names <P-BO> <P-BO>
1..* Context 1..* Type 1..* Entity 1..* Media
Event
the negotiation pattern (in Figure 1.4), the result of repeating the development process over the
AnyMedia, the AnyParty has resulted in the second abstraction level all of the patterns which are
tagged with <P-Bo>.
IO
EBT BO
1..*
<IO>
Customer
Defines or
Handles 1..* follows 0..* {OR}
<P-BO> <P-BO> <P-BO> 1..*
Party Criteria Rule
0..*
s
<IO>
ce
en
Car dealer
f lu
In
Makes
1..*
Received by
Speaks on
Agreed by
Usi
ng 1..*
<IO>
Phone
1..*
For a <P-BO> <IO>
specific Defines Names Media Mail
<P-BO> <P-BO> <P-BO>
Context 1..* Type 1..* Entity 1..*
1..*
Event
Sent through
<IO>
Warranty
<IO>
Price
and “Return Policy.” Each of these three patterns represents, in the given order, an example of one
of the following trust-building recommendations presented in Reference [22] and summarized in
Reference [21]: information policy, reputation policy, and warranty policy.
Based solely on the stability concepts (Section 1.3), it is easy to see the three main trust-
building recommendations: information policy, reputation policy, and warranty policy, could
be viewed as BOs, while the example pattern for each category “Contact Us,” “Consumer
Testimonials,” and “Return Policy,” respectively, can be regarded as IOs. This simple, yet effec-
tive mapping allows us to better understand the structure of the given patterns and to develop a
relationship between them and the trust stable analysis pattern. It is also possible to plot the three
categorizes and their corresponding patterns that are proposed in Reference [21]. Notice that the
AnyLog <P-Bo> shown in the Figure 1.7 represents the AnyLog in the trust analysis patterns in
the second level.
We can also use trust analysis pattern to gain more insight into how comprehensive the patterns
in Figure 1.2 are. It really turns out that all the proposed patterns are related to the AnyLog pattern,
which is part of the trust analysis pattern. For example, we can argue that a consumer would use the
three proposed policies together in order to perform the rating process for trusting the correspond-
ing e-commerce web site (which in this case could be just a matter of deciding, whether to shop in
16
IO
EBT BO
<IO>
Client
Defines or
Handles 1..* follows {OR}
<P-BO> 0..* <P-BO> <P-BO>
Party Criteria Rule
0..* <IO>
CC/PPRepository
s
ce
en
<IO>
lu
nf
Service provider
I
1..*
<IO>
Original server
<EBT> Through 0..* <P-BO> Resolves 1..* <P-BO> Leads to <P-BO> <IO>
Negotiation Mechanism Option 1..* Agreement Adapted content
Sends
Return
Usi
ng <IO>
Request
1..*
1..*
<IO> Through
<P-BO> Internet
For a specific defines Media
<P-BO> <P-BO> names <P-BO>
1..* Context 1..* Type Entity 1..*
1..*
Event
Stable Analysis Patterns for Software and Systems
EBT BO
-Countries -People
-Organizations -Companies
-Political parties -Family
-Any mixture of the above
Based on
1..*
<P-BO> 0…*
Party Related to
<P-BO> Recorded on <P-BO>
And/Or Log Log
<P-BO>> 1…*
Actor 1…*
-Collection of records -Situation
-Past experience -Video
-Creditre ports -Movies
-Historical records -Books
-etc.
FIGURE 1.7 The Trust analysis pattern. (From R.T. Vaccare Braga et al., A confederation of patterns for
business resource management, Pattern Language of Programs Conference, Monticello, IL, 1998.)
this site or not). In that sense, all the three proposed patterns can fit in our analysis patterns as an
instance of AnyLog.
As shown in Figure 1.8, even though the three sample patterns proposed in Reference [21] are not
claimed to be complete or sufficient, analysis pattern can be used to show that the three categories of
the trust-measures (information policy, reputation policy, warranty policy) that were used as drivers
to the three sample patterns (Contact Us, Customer Testimonials, Return Policy) are not perfect and
does not fully cover the core knowledge of trust concept. In the meantime, we can argue that none
of the three categorizes covers the rating issues, which is presented as AnyRating in our analysis
pattern. This rating process is a fundamental step for any trust process, but the way that the rating
process is conducted may greatly differ though.
Another important aspect in the analysis pattern is that it covers future applications that are
likely to emerge in the near future, which is why we claim that this trust pattern is robust and
stable. One can argue that in the case of e-commerce consumer trust, the rating process is subjec-
tive and will not be implemented as part of the system. The user, a human being, will take the
decision of whether to trust an e-commerce application or not. However, recent a pplications, such as
e-negotiation, may involve a trust agent that will be responsible for automatically u nderstanding the
AnyLog records and performing the rating process, and based on that it will take the trust decision.
Such visible application is beyond the capabilities of the patterns c ategorizes given in Reference
[21]; however, our analysis pattern can still capture the aspects of the trust in these systems, and
hence, can be still applied in a wide spectrum of domains.
18 Stable Analysis Patterns for Software and Systems
AnyLog
Policy
FIGURE 1.8 A diagram o represent patterns and categories given in Reference [20].
1.7 SUMMARY
In this chapter, we have successfully identified the main challenges that limit the use of analysis
patterns. To overcome some of these problems, we have proposed the concept of stable analysis
patterns. Stable analysis patterns separate the core concepts of the problem from the business-
specific concepts, thereby leading to conceptual models that are more reusable compared to existing
analysis patterns. We have illustrated the approach with a number of examples and showed how
stable analysis patterns can help not only to model the problem, but also to develop a deeper
understanding of the essence of the problem.
OVERVIEW QUESTIONS
1. What is a domain model?
2. What are the properties of domain models?
3. T/F: Developing conceptual models require both domain knowledge and modeling
skills.
4. T/F: Analysis patterns are conceptual models that can be used to model and share domain
knowledge.
5. T/F: Stable analysis patterns (SAPs) separate the core concepts of the domain from
business-specific concepts.
6. T/F: Traditional analysis patterns do not separate the core concepts of the domain from
business-specific concepts.
Stable Analysis Patterns Overview 19
EXERCISES
1. Take the negotiation pattern and add a second abstraction level for AnyAgreement.
2. Take the trust pattern and add a second abstraction level for AnyRating.
3. Apply the Negotiation pattern to purchasing an item online.
• Draw a class diagram of using negotiation patterns to purchase an item online.
• Generate a significant use case for this context.
• Map the use case to a sequence diagram.
PROJECTS
1. List the properties of EBTs and each of the properties as Stable Analysis Patters.
2. For negotiation stable analysis pattern.
a. Name a few context of negotiation.
b. Use one of the context and draw a class diagram.
c. Document a detailed and significant use case selected context in b.
d. Create a sequence diagram of the created use case of c.
20 Stable Analysis Patterns for Software and Systems
SIDEBARS
SIDEBAR 1.1 THE ROOTS OF PATTERNS: HISTORICAL PROSPECTIVE
The roots of patterns in general include ancient Egyptians, the ancient Chinese and Indian
civilization, Muslim civilization and architectures, and western civilization, and the influence
of mathematics and architecture from many other civilizations. This sidebar will conclude
with ALEXANDRINE Patterns as Inherited Architectural Solutions.
• Islamic architecture
• Japanese architecture
• Mesoamerican architecture
• Incan architecture
• Classical architecture
• Architecture of ancient Greece
• Roman architecture
• Medieval architecture
• Byzantine architecture
• Sassanid architecture
• Romanesque architecture
• Gothic architecture
• Tudor and Jacobean architecture
• Renaissance architecture
• Baroque architecture
• Regency architecture
• Neo-Classical architecture
• Neo-Gothic architecture
• Neo-Byzantine architecture
• Neo-Romanesque architecture
• Jacobethan architecture
• Tudorbethan architecture
• Beaux-Arts architecture
• Modern architecture
• Expressionist architecture
• Futurist architecture
• Functionalism (architecture)
• De Stijl
• Bauhaus
• Art Nouveau
• Art Deco
• International style
• Postmodern architecture
• Googie architecture
• Deconstructivist architecture
• Australian architectural styles
• Canadian architecture
• Indonesian architecture
• Origamic architecture (OA)
• Spanish architecture
• Temple architecture (Latter-day Saints)
Alexandrine patterns represent solutions repeated in time and space, and are thus akin
to visual patterns transposed into other dimensions [7]. Fortunately, the structural solutions
that architects depend upon remain part of engineering, which preserves its accumulated
knowledge for reuse [3].
Pattern Mystery: Patterns capture the essence of successful solutions to recurring design prob-
lems in urban architecture.
References
1. S. Clarke, and R. Engelbach, Ancient Egyptian Construction and Architecture, New York, NY:
Dover, 2014.
2. E.H. Cline, and D.K. O’Connor, Amenhotep III: Perspectives on His Reign, Ann Arbor, Michigan:
University of Michigan Press, 2001, p. 273.
3. N.A. Salingaros, Architecture, patterns, and mathematics, originally published in the NNJ 1(2),
1999, has become widely read and referred to on the Internet, we have decided to republish an
updated version of it, included new Internet links. It is also now available in print in the Nexus
Network Journal vol. 1 (1999).
4. N.A. Salingaros, The laws of architecture from a physicist’s perspective, Physics Essays, 8, 1995,
638–643.
5. R.J. Mainstone, Hagia Sophia, New York, NY: Thames and Hudson, 1988.
6. B. Grünbaum, and G.C. Shephard, Tilings and Patterns, New York, NY: Freeman, 1987.
7. C. Alexander et al., A Pattern Language, New York, NY: Oxford University Press, 1977.
11. AnyCause: A cause is the motive for some human action. The word cause is also
used to mean explanation or answer to a why question. The key idea is that a
cause helps to identify the reason for behaving in a particular way or for feeling a
particular emotion. This will lead to a stable design pattern for Cause by using it as
one of BO and Justification as its EBT. If implemented in such a fashion, this pat-
tern can be used in all the areas where the concept of justification and cause are
present.
12. AnyType: AnyType design pattern signifies the classification of entities in a problem
domain. It could be the classification of entities into various data types in a class
diagram or various data items in a database. The AnyType design pattern g eneralizes
the concept of classifying entities into types in different domains and numerous
contexts.
13. AnyEntity: The AnyEntity design pattern abstracts the existence of an entity based
on certain properties inherent to the context in which entity is used and thereby
achieves a general pattern that can be used across any application. This pattern is
required to model the core knowledge of AnyEntity without tying the pattern to
a specific application or domain; hence, the name AnyEntity is chosen. AnyEntity
design pattern is one of the most common pattern and it is used by the majority of
stable analysis and design patterns.
14. AnyEvent: Event is an occurrence; something that happens. The wide range of con-
text of AnyEvent in many applications makes it necessary to have a stable pattern
that can be reused and extended further depending on the application. An event
exists in all walks of life. An event may refer to: (1) Events in gathering of people or
social activities, such as ceremony, convention, festival, sport, and social event, etc.
(2) Events in science, technology, mathematics, such as software events, synchro-
nization, impact events, etc. (3) Events in art and entertainment. (4) Other events,
such as competition, news, phenomenon, etc.
AnyEvent design pattern is one of the most common patterns and it is used by the
majority of stable analysis and design patterns.
15. AnyMedia: AnyMedia is a very general concept with wide range of application in
many different contexts. The AnyMedia Stable Design Pattern aims at analyzing the
general and important concept of AnyMedia. Since AnyMedia pattern is introduced
based on the stable design pattern, it makes it easier to employ this pattern in many
different applications. This is possible by just hooking [6] the unstable IOs to the
stable business objects according to the application under study. Here we introduce
the general AnyMedia design pattern based on stability model and introduce few
scenarios where this pattern can be used.
16. AnyLog: The AnyLog design pattern models the core knowledge of any Log, as a
written record. The Log finds extensive use in the computing industry. The pattern
makes it easy to model different kinds of logs rather than thinking of the problem
each time from scratch. This pattern can be utilized to model any kind of log in any
application and it can be reused as part of a new model [7].
References
1. M.E. Fayad, Stable Design Pattern for Software and Systems, Boca Raton, FL:
Auerbach Publications, 2016.
2. M.E. Fayad, and A. Altman, Introduction to software stability, Communications of the ACM,
44(9), 2001, 95–98.
3. M.E. Fayad, Accomplishing software stability, Communications of the ACM, 45(1), 2002,
111–115.
4. M.E. Fayad, How to deal with software stability, Communications of ACM, 45(4), 2002,
109–112.
Exploring the Variety of Random
Documents with Different Content
damaged disk or other medium, a computer virus, or computer
codes that damage or cannot be read by your equipment.
1.F.4. Except for the limited right of replacement or refund set forth
in paragraph 1.F.3, this work is provided to you ‘AS-IS’, WITH NO
OTHER WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR ANY PURPOSE.
Please check the Project Gutenberg web pages for current donation
methods and addresses. Donations are accepted in a number of
other ways including checks, online payments and credit card
donations. To donate, please visit: www.gutenberg.org/donate.
Most people start at our website which has the main PG search
facility: www.gutenberg.org.
ebookbell.com