Towards a Java Framework for Knowledge Representation and Inference
|
|
- Maria Price
- 6 years ago
- Views:
Transcription
1 Towards a Java Framework for Knowledge Representation and Inference Adrian GIURCA University of Craiova, Faculty of Mathematics and Computer Science giurca@inf.ucv.ro Abstract. The Knowledge Representation Package consist of a framework that implement several kinds of processing engines. The framework using a data structure based on the Blackboard pattern [2], is written in Java and has three main components: knowledge representation, knowledge repository and inference engine. It can be used for make reasoning in semantic networks, frames or rule based systems. In inference we propose an uniform representation for knowledge using rules. The inference engine allow to construct all first order logic constructs. AMS Classification. Primary: 68R99, Secondary: 68T30 Keywords: knowledge representation, inference, OOP, Java, blackboard pattern. 1 Motivation It is probably safe to say that we will never have enough computing power to solve the problems people really want to solve. These problems are complex and multifaced, often requiring solutions that employ several kinds of representation and reasoning mechanisms simultaneously. As computers become more powerful and applications become more sophisticated, the complex problems of yesterday are understood and solved, but there are always new problems that are even more complex on the horizon. It is a never ending cycle. What is needed in this kind of environment is a set of tools that enable software developers the ability to represent knowledge about complex problems in the application and to apply multiple reasoning mechanisms to that knowledge in order to derive solutions. These tools must be designed in a such way that they can evolve over long periods of time as software developers improve our understanding of the problems they seek to solve and as their computing environments become more powerful. The study of Artificial Intelligence (AI) and Object-Orientation (OO) provide the technology for creating the right king of tools for solving complex problems. AI provides the means through wich applications represent knowledge about complex problems and reason about that knowledge. OO provides the means through which application components can be constructed so they are reusable and maintainable. The complexity of the AI components are managed by the powerful abstraction and layering facilities of OO language and methodologies.
2 2 Adrian GIURCA OO technology also can be used to construct applications that can evolve over time without succumbing to architectural entropy. Object-oriented architectures, commonly known as frameworks, allow Ai components to be built in a such a way that: they can rapidly integrated into applications with a minimum amount of effort. they can be reused in multiple applications, eliminating the need for custombuilt AI applications they retain their architectural integrity with less effort than AI subsystems built using other types of architectures (functional, procedural, etc), allowing for coherent system evolution. 2 The Blackboard Pattern Our design choice is the Blackboard architectural pattern [2]. In the following we make a short description of the Blackboard pattern to motivate or choice. The idea behind the Blackboard architecture is a collection of independent programs that work cooperatively on a common data structure. Each program is specialized for solving a particular part of the overall task, and all programs work together on the solution. These specialized programs are independent of each other. They do not call each other, nor is there a predetermined sequence for their activation. Instead, the direction taken by the system is mainly determined by the current state of progress. A central control component evaluates the current state of processing and coordinates the specialized programs. This data-directed control regime makes experimentation with different algorithms possible, and allows experimentally-derived heuristics to control processing. The structure is presented in figure Blackboard Component The blackboard component provides a central data store for all hypotheses created during analysis. The main functions are: Stores current state of the solution space Stores all control data Delivers requested data to the operating knowledge sources Since the Blackboard is essentially a shared memory repository, synchronization techniques may be required for multiple writers and readers (multiple knowledge sources) 2.2 Knowledge Source Component Knowledge Sources are separate and independent systems that individually solve parts of the problem in piecemeal fashion. Each knowledge source has a certain area of expertise, or at least focus. In this they can be seen as specialists. Knowledge sources obtain data from the blackboard, and return hypotheses developed from the data. Each hypothesis is made up of things like:
3 Towards a Java Framework for Knowledge Representation and Inference 3 Fig. 1. Blackboard Pattern [2]
4 4 Adrian GIURCA an abstraction level: the distance from the input an estimated confidence factor a time interval covered by the hypothesis Also, knowledge sources are reactive in the sense that they react to changes in the problem domain as rendered by the blackboard. 2.3 Control Component The controller runs continually monitoring the state of the blackboard, and will end processing whenever an acceptable solution is found. The controller uses heuristics to develop alternate strategies according to the current state of the blackboard, and schedules knowledge sources based on the current strategy. He activates each knowledge source when its scheduled time has arrived. The controller can query a knowledge source to determine its estimated probability of success or its estimated time of execution, and can update its strategy accordingly, often according to a user-delivered desired confidence level. Often, a complete search of the solution space is not feasible. In this case, algorithms must be developed that filter significant information from noise. A data-directed (but not driven) mechanism of coordinating or non coordinating subsystems uses opportunistic problem solving to provide some solution. Such opportunistic analysis with multiple algorithms of various talents and biases may produce heuristics that can be used to refine searches. Using this pattern we have the followings advantages: Fault tolerant. Reusable. Allows for experimentation. Potential parallel execution, which can greatly enhance cost-effectiveness over traditional message-based systems. There exist also several disadvantages: Low testability. Solutions are variable in terms of quality and not guaranteed. Usually inefficient, costly in terms of execution. Based on this pattern, our framework has three different views organized around the type of functionality provided by the components in each view and their collaborations. These views are: Knowledge Representation Knowledge Repository Inference Engine The following sections will describe all of this views.
5 Towards a Java Framework for Knowledge Representation and Inference 5 3 Knowledge Representation In the study of AI, knowledge representation is the combination of data structures and interpretive procedures that, if used correctly, will lead to knowledgeable behavior (see [1]). The types of knowledge represented in AI systems include: objects - AI systems typically reason about objects in the world around us. relationships - Real world objects interact with each other. These interactions are characterized by relationships. events - We know about actions and events in the world and how they affect objects and their relationships. instructions - Some types of knowledge describe how to do things. This may involves scripts that can be followed by computers or people. meta-knowledge - We also need to model knowledge about what we know. We may need to know about the reliability of an information source or we may need to be cognizant of out limitations when observing the world. Given the above description of knowledge representation in AI terms, knowledge representation in object-oriented terms is the reification of domain specific knowledge into objects that can be manipulated by the framework and the clients of the framework. In an object-oriented system, all types of knowledge is represented by objects or methods of objects. In our framework, the basic knowledge ( atom of knowledge ) is an object that implement the AtomKnowledge interface. This interface provides methods for identifying the knowledge atom and serves as the placeholder whereby domain specific objects implementing the AtomKnowledge interface can be managed. The following interfaces and classes are designed: AtomKnowledge - This interface extends the Observable interface (see the Observer pattern) by declaring additional methods for knowledge atom identification. Blackboard objects manage knowledge atoms through the AtomKnowledge interface. AbstractAtomKnowledge - this abstract class partially implements the AtomKnowledge interface and assimilates the Subject mixin class. Subclasses of the AbstractAtomKnowledge abstract class must provide the remaining functionality and structure to fully implement the AtomKnowledge interface. ConcreteKnowledge - This concrete class represents a programmer defined atom knowledge. This class extends the AbstractAtomKnowledge abstract class by providing some kind of domain-specific functionality and structure that models an atom of knowledge for that domain. Several examples will be given in the next sections to illustrate how to extend the AbstractAtomKnowledge class to create different types of knowledge atoms.
6 6 Adrian GIURCA Fig. 2. Knowledge Representation 3.1 Semantic Network The first class in this example (SemanticLink) represents the links in a semantic network. The SemanticLink class has a name to identify the link type, a description which contains information about what the link represents, and a SemanticNode node which makes up the other end of the link. Example 1 (A Semantic link). package semanticnetwork; public class SemanticLink{ private String label; private String description = ""; private SemanticNode node; public SemanticLink(String label, String description, SemanticNode node){ setname(label); setdescription(description); setnode(node); public String getlabel(){
7 Towards a Java Framework for Knowledge Representation and Inference 7 return label; public String getdescription(){ return description; public SemanticNode getnode(){ return node; public String tostring(){ if (null!= node){ return "["+label+","+ "description"+","+ node.tostring()+"]"; else{ return null; private void setlabel(string label) throws IllegalArgumentException{ if (null!= label){ this.label = label; else{ throw new IllegalArgumentException("label cannot be null!"); private void setdescription(string description){ if (null!= description){ this.description = description; private void setnode(semanticnode node) throws IllegalArgumentException{ if (null!= node){ this.node = node; else{ throw new IllegalArgumentException("node cannot be null!");
8 8 Adrian GIURCA The second class in the example (SemanticNode) represents the nodes in a semantic network. SemanticNode extends the AbstractAtomKnowledge abstract class by adding a description which contains information about what the node represents and a list of links which represent relationships between other nodes. SemanticNode provides methods for accessing its information, including methods for accessing the individual links in the link list or iterating through the entire list. Example 2 (A Semantic Node). package semanticnetwork; import java.util.*; public class SemanticNode extends AbstractAtomKnowledge{ private String description; private List links; public SemanticNode(String description, List links){ this.description = description; setlinks(links); public List getlinks(){ return links; public String getdescription(){ return description; public int getnooflinks(){ return links.length; public SemanticLink getlink(int index){ if (index <= links.length-1){ return (SemanticLink)links.get(index); else{ return null; public List getlinks(string label){ List result = new ArrayList(); Iterator i = links.iterator();
9 Towards a Java Framework for Knowledge Representation and Inference 9 while (i.hasnext()){ SemanticLink link = (SemanticLink)i.next(); if (link.getlabel() == label){ result.add(link); return result; public List getlinkednodes(){ List result = new ArrayList(); Iterator i = links.iterator(); while (i.hasnext()){ SemanticLink link = (SemanticLink)i.next(); result.add(link.getnode()); return result; public boolean setlink(semanticlink link){ return this.links.add(link); private void setlinks(list links){ Iterator i = links.iterator(); while (i.hasnext()){ SemanticLink link = (SemanticLink)i.next(); this.links.add(link); 3.2 Frames Frames are similar to semantic networks. In fact, frames can be used to model semantic networks if they are structured in the right way. FrameData is an interface class that combines the Clonable and Countable interfaces together to provide the base interface of frame data objects. FrameBehavior is similar to FrameData but it combines the Clonable, Countable, and Executable interface together to provide the base interface of frame behavior objects. The Frame class is created by implementing the FrameData interfaces and extending the AbstractAtomKnowledge abstract class. Frame contains a map of frame data objects and a map of frame behavior objects. Methods for accessing individual objects in either map are provided as well as methods for iterating over the whole map.
10 10 Adrian GIURCA Fig. 3. The Structure of Frames The knowledge representation facilities provided by the framework instantiate the Observer design pattern described in [3]. The Observer design pattern provides a means for notifying dependents of knowledge atoms of state changes. In the figure 4 we present the structure of the framework notifications. 4 Knowledge Repository A blackboard architecture also serves as a repository of knowledge in addition to representing individual atoms of knowledge. This repository is often called the blackboard or work area. The blackboard is the common area where knowledge is read, written, and manipulated during the process of inference. The structure is presented in the figure 5. 5 Inference Engine Our inference engine enables the flexible construction of inference networks based on rules for a wide variety of domains. The engine is possible to be extended for other types of mechanisms. Formally, the inference engine allow to construct all first order logic constructs. Using the inference engine we have the following benefits:
11 Towards a Java Framework for Knowledge Representation and Inference 11 Fig. 4. Object Notification Modularity. Groups of related rules can be interchanged without effecting the overall structure of the system. They behave much like independent pieces of knowledge. Uniformity. Imposes a uniform structure on the knowledge modelled by the inference network. Since all knowledge must be encoded in a rule form, it can often be more easily understood. Naturalness. Rules are a common way of expressing what to do in a predetermined situations. However, there are some liabilities: Inefficiency. Program execution is much more inefficient than in procedural programs. Non-obvious flow control. It is hard to follow the flow of control through the execution of inference networks. Algorithmic knowledge is not expressed naturally in inference networks. References 1. Barr, Avron and Edward A. Feigenbaum (eds.) The Handbook of Artificial Intelligence, vol1, pp , Adison-Wesley Inc Buschmann, Frank, Regine Meunier, Hans Rohnert, Peter Sommerland and Michael Stal, Pattern Oriented Software Architecture: A System of Patterns, pp.71-95, John Willey & Sons Ltd., 1996.
12 12 Adrian GIURCA Fig. 5. Knowledge Repository
13 Towards a Java Framework for Knowledge Representation and Inference Gamma Erich, Richard Helm, Ralph Johnson and John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, pp , , , , Addison wesley, xml.com. (2002a).
Object-Oriented Software Development Goal and Scope
Object-Oriented Software Development Goal and Scope Koichiro Ochimizu Japan Advanced Institute of Science and Technologies School of Information Science Scope and Goal Goal enable you to understand basic
More informationDesign Patterns. Architectural Patterns. Contents of a Design Pattern. Dr. James A. Bednar. Dr. David Robertson
Design Patterns Architectural Patterns Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson dr@inf.ed.ac.uk http://www.inf.ed.ac.uk/ssp/members/dave.htm A
More informationArchitectural Patterns
Architectural Patterns Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson dr@inf.ed.ac.uk http://www.inf.ed.ac.uk/ssp/members/dave.htm SEOC2 Spring 2005:
More informationBlackboard MVC Reflection. Lecture 8
Blackboard MVC Reflection Lecture 8 Blackboard Pattern Operative Metaphor: Patient Chart in an ICU Operative Image: MIT Math Session in the movie Good Will Hunting (aka Repository Systems) Penny Nii Quote
More informationIntroduction to Design Patterns
Dr. Michael Eichberg Software Engineering Department of Computer Science Technische Universität Darmstadt Software Engineering Introduction to Design Patterns (Design) Patterns A pattern describes... Patterns
More informationIntroduction to Design Patterns
Dr. Michael Eichberg Software Technology Group Department of Computer Science Technische Universität Darmstadt Introduction to Software Engineering Introduction to Design Patterns Patterns 2 PATTERNS A
More informationUniversal Communication Component on Symbian Series60 Platform
Universal Communication Component on Symbian Series60 Platform Róbert Kereskényi, Bertalan Forstner, Hassan Charaf Department of Automation and Applied Informatics Budapest University of Technology and
More informationPatterns for Decoupling
Patterns for Decoupling Ingolf H. Krueger Department of Computer Science & Engineering University of California, San Diego La Jolla, CA 92093-0114, USA California Institute for Telecommunications and Information
More informationTowards Better Support for Pattern-Oriented Software Development
Towards Better Support for Pattern-Oriented Software Development Dietrich Travkin Software Engineering Research Group, Heinz Nixdorf Institute & Department of Computer Science, University of Paderborn,
More informationTopics in Object-Oriented Design Patterns
Software design Topics in Object-Oriented Design Patterns Material mainly from the book Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides; slides originally by Spiros Mancoridis;
More informationIntroduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of
Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of Computer Science Technische Universität Darmstadt Dr.
More informationCoordination Patterns
Coordination Patterns 1. Coordination Patterns Design Patterns and their relevance for Coordination Oscar Nierstrasz Software Composition Group Institut für Informatik (IAM) Universität Bern oscar@iam.unibe.ch
More informationCoordinator. Example. Prashant Jain Corporate Technology, Siemens AG Munich, Germany
Coordinator Prashant Jain pjain@gmx.net Corporate Technology, Siemens AG Munich, Germany The Coordinator design pattern describes how to maintain system consistency by coordinating completion of tasks
More informationPatterns. Erich Gamma Richard Helm Ralph Johnson John Vlissides
Patterns Patterns Pattern-based engineering: in the field of (building) architecting and other disciplines from 1960 s Some software engineers also started to use the concepts Become widely known in SE
More informationIngegneria del Software Corso di Laurea in Informatica per il Management. Design Patterns part 1
Ingegneria del Software Corso di Laurea in Informatica per il Management Design Patterns part 1 Davide Rossi Dipartimento di Informatica Università di Bologna Pattern Each pattern describes a problem which
More informationLecture 13: Design Patterns
1 Lecture 13: Design Patterns Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2005 2 Pattern Resources Pattern Languages of Programming Technical conference on Patterns
More informationPattern-Based Architectural Design Process Model
Pattern-Based Architectural Design Process Model N. Lévy, F. Losavio Abstract: The identification of quality requirements is crucial to develop modern software systems, especially when their underlying
More informationDesign for Testability
Abstract Design for Testability Stefan Jungmayr Testability is a software quality characteristic that is of major relevance for test costs and software dependability. Still, testability is not an explicit
More informationA System of Patterns for Web Navigation
A System of Patterns for Web Navigation Mohammed Abul Khayes Akanda and Daniel M. German Department of Computer Science, University of Victoria, Canada maka@alumni.uvic.ca, dmgerman@uvic.ca Abstract. In
More informationC++ INTERFACE CLASSES STRENGTHENING ENCAPSULATION
C++ INTERFACE CLASSES STRENGTHENING ENCAPSULATION Separating a class s interface from its implementation is fundamental to good quality object oriented software design/programming. However C++ (when compared
More informationPattern Resources. Lecture 25: Design Patterns. What are Patterns? Design Patterns. Pattern Languages of Programming. The Portland Pattern Repository
Pattern Resources Lecture 25: Design Patterns Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2003 Pattern Languages of Programming Technical conference on Patterns
More informationA Metric for Measuring the Abstraction Level of Design Patterns
A Metric for Measuring the Abstraction Level of Design Patterns Atsuto Kubo 1, Hironori Washizaki 2, and Yoshiaki Fukazawa 1 1 Department of Computer Science, Waseda University, 3-4-1 Okubo, Shinjuku-ku,
More informationPatterns for Asynchronous Invocations in Distributed Object Frameworks
Patterns for Asynchronous Invocations in Distributed Object Frameworks Patterns for Asynchronous Invocations in Distributed Object Frameworks Markus Voelter Michael Kircher Siemens AG, Corporate Technology,
More informationA Metric of the Relative Abstraction Level of Software Patterns
A Metric of the Relative Abstraction Level of Software Patterns Atsuto Kubo 1, Hironori Washizaki 2, and Yoshiaki Fukazawa 1 1 Department of Computer Science, Waseda University, 3-4-1 Okubo, Shinjuku-ku,
More informationTransparent Remote Access
Abstract Transparent Remote Access Klaus Marquardt Käthe-Kollwitz-Weg 14, D-23558 Lübeck, Germany Email: marquardt@acm.org In distributed systems, the different processors communicate via network messages.
More informationDesign Patterns. Gunnar Gotshalks A4-1
Design Patterns A4-1 On Design Patterns A design pattern systematically names, explains and evaluates an important and recurring design problem and its solution Good designers know not to solve every problem
More information26.1 Introduction Programming Preliminaries... 2
Department of Computer Science Tackling Design Patterns Chapter 27: Proxy Design Pattern Copyright c 2016 by Linda Marshall and Vreda Pieterse. All rights reserved. Contents 26.1 Introduction.................................
More informationAn Introduction to Patterns
An Introduction to Patterns Robert B. France Colorado State University Robert B. France 1 What is a Pattern? Patterns are intended to capture the best available software development experiences in the
More informationTwin A Design Pattern for Modeling Multiple Inheritance
Twin A Design Pattern for Modeling Multiple Inheritance Hanspeter Mössenböck University of Linz, Institute of Practical Computer Science, A-4040 Linz moessenboeck@ssw.uni-linz.ac.at Abstract. We introduce
More informationWhat is Design Patterns?
Paweł Zajączkowski What is Design Patterns? 1. Design patterns may be said as a set of probable solutions for a particular problem which is tested to work best in certain situations. 2. In other words,
More informationGoals of Lecture. Lecture 27: OO Design Patterns. Pattern Resources. Design Patterns. Cover OO Design Patterns. Pattern Languages of Programming
Goals of Lecture Lecture 27: OO Design Patterns Cover OO Design Patterns Background Examples Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2001 April 24, 2001 Kenneth
More informationPattern Examples Behavioural
Pattern Examples Behavioural based on patterns in Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns, Addison-Wesley, 1995. ISBN 0-201-63361-2 PE2-1 Iterator Pattern Intent» Access
More informationWS01/02 - Design Pattern and Software Architecture
Design Pattern and Software Architecture: VIII. Conclusion AG Softwaretechnik Raum E 3.165 Tele. 60-3321 hg@upb.de VIII. Conclusion VIII.1 Classifications VIII.2 Common Misconceptions VIII.3 Open Questions
More informationSoftware Reengineering Refactoring To Patterns. Martin Pinzger Delft University of Technology
Software Reengineering Refactoring To Patterns Martin Pinzger Delft University of Technology Outline Introduction Design Patterns Refactoring to Patterns Conclusions 2 The Reengineering Life-Cycle (1)
More informationDesign Patterns: Part 2
Design Patterns: Part 2 ENGI 5895: Software Design Andrew Vardy with code samples from Dr. Rodrigue Byrne and [Martin(2003)] Faculty of Engineering & Applied Science Memorial University of Newfoundland
More informationSlide 1. Design Patterns. Prof. Mirco Tribastone, Ph.D
Slide 1 Design Patterns Prof. Mirco Tribastone, Ph.D. 22.11.2011 Introduction Slide 2 Basic Idea The same (well-established) schema can be reused as a solution to similar problems. Muster Abstraktion Anwendung
More informationException Handling Alternatives (Part 2)
Exception Handling Alternatives (Part 2) First published in Overload 31 Copyright 1999 Detlef Vollmann Resume In part 1, several alternative mechanisms for handling exceptional events were presented. One
More informationUsing Design Patterns in Java Application Development
Using Design Patterns in Java Application Development ExxonMobil Research & Engineering Co. Clinton, New Jersey Michael P. Redlich (908) 730-3416 michael.p.redlich@exxonmobil.com About Myself Degree B.S.
More informationMicrothread. An Object Behavioral Pattern for Managing Object Execution. 1.0 Intent. 2.0 Also Known As. 3.0 Classification. 4.0 Motivation/Example
Microthread An Object Behavioral Pattern for Managing Object Execution Joe Hoffert and Kenneth Goldman {joeh,kjg}@cs.wustl.edu Distributed Programing Environments Group Department of Computer Science,
More informationAdvanced Object Oriented PHP
CNM STEMulus Center Web Development with PHP November 11, 2015 1/17 Outline 1 2 Diamond Problem Composing vs Inheriting Case Study: Strategy Design Pattern 2/17 Definition is when a class is based on another
More informationSoftware Engineering - I An Introduction to Software Construction Techniques for Industrial Strength Software
Software Engineering - I An Introduction to Software Construction Techniques for Industrial Strength Software Chapter 9 Introduction to Design Patterns Copy Rights Virtual University of Pakistan 1 Design
More informationSoftware Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.
Software Design Patterns Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University J. Maletic 1 Background 1 Search for recurring successful designs emergent designs from practice
More informationDesign Patterns For Object Oriented Software Development Acm Press
Design Patterns For Object Oriented Software Development Acm Press We have made it easy for you to find a PDF Ebooks without any digging. And by having access to our ebooks online or by storing it on your
More informationFacade and Adapter. Comp-303 : Programming Techniques Lecture 19. Alexandre Denault Computer Science McGill University Winter 2004
Facade and Adapter Comp-303 : Programming Techniques Lecture 19 Alexandre Denault Computer Science McGill University Winter 2004 March 23, 2004 Lecture 19 Comp 303 : Facade and Adapter Page 1 Last lecture...
More informationDesign Patterns. CSC207 Fall 2017
Design Patterns CSC207 Fall 2017 Design Patterns A design pattern is a general description of the solution to a well-established problem using an arrangement of classes and objects. Patterns describe the
More informationCHAPTER 6: CREATIONAL DESIGN PATTERNS
CHAPTER 6: CREATIONAL DESIGN PATTERNS SESSION III: BUILDER, PROTOTYPE, SINGLETON Software Engineering Design: Theory and Practice by Carlos E. Otero Slides copyright 2012 by Carlos E. Otero For non-profit
More informationAn Expert System for Design Patterns Recognition
IJCSNS International Journal of Computer Science and Network Security, VOL.17 No.1, January 2017 93 An Expert System for Design Patterns Recognition Omar AlSheikSalem 1 and Hazem Qattous 2 1 Department
More informationMore on Design. CSCI 5828: Foundations of Software Engineering Lecture 23 Kenneth M. Anderson
More on Design CSCI 5828: Foundations of Software Engineering Lecture 23 Kenneth M. Anderson Outline Additional Design-Related Topics Design Patterns Singleton Strategy Model View Controller Design by
More informationObject Oriented Methods with UML. Introduction to Design Patterns- Lecture 8
Object Oriented Methods with UML Introduction to Design Patterns- Lecture 8 Topics(03/05/16) Design Patterns Design Pattern In software engineering, a design pattern is a general repeatable solution to
More informationA Metamodeling Approach to Model Refactoring
A Metamodeling Approach to Model Refactoring Sheena R. Judson, Doris L. Carver, and Robert France 2 Department of Computer Science, Louisiana State University Baton Rouge, Louisiana USA sheena.r.judson@lmco.com,
More informationFrameworks and Testing
Frameworks and Testing Stefan Roock Apcon Workplace Solutions & University of Hamburg Vogt-Kölln-Str. 30 22527 Hamburg, Germany +49 40 42883 2302 roock@jwam.de ABSTRACT Testing is one of the main XP practices
More informationInitial contents proposal. List of topics. Common Architectural Styles. Architectural Styles. A sample from Elements of Software Architecture
The delivery of the module Architecture, Design, and Patterns as part of the Master s studies in Novi Sad and Skopje Ioan Jurca ( Politehnica University of Timisoara - Romania) Initial contents proposal.
More informationLectures 24 and 25 Introduction to Architectural Styles and Design Patterns
Lectures 24 and 25 Introduction to Architectural Styles and Design Patterns Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte
More informationSOFTWARE PATTERNS. Joseph Bonello
SOFTWARE PATTERNS Joseph Bonello MOTIVATION Building software using new frameworks is more complex And expensive There are many methodologies and frameworks to help developers build enterprise application
More informationDESIGN PATTERN - INTERVIEW QUESTIONS
DESIGN PATTERN - INTERVIEW QUESTIONS http://www.tutorialspoint.com/design_pattern/design_pattern_interview_questions.htm Copyright tutorialspoint.com Dear readers, these Design Pattern Interview Questions
More informationMining Relationships Between the Participants of Architectural Patterns
Mining Relationships Between the Participants of Architectural Patterns Ahmad Waqas Kamal and Paris Avgeriou Department of Mathematics and Computing Science, University of Groningen, The Netherlands a.w.kamal@rug.nl,
More informationThe Object Recursion Pattern
SilverMark, Inc. woolf@acm.org OBJECT RECURSION Object Behavioral Intent Distribute processing of a request over a structure by delegating polymorphically. Object Recursion transparently enables a request
More informationPartial Acquisition Prashant Jain and Michael Kircher
1 Partial Acquisition Prashant Jain and Michael Kircher {Prashant.Jain,Michael.Kircher}@mchp.siemens.de Siemens AG, Corporate Technology Munich, Germany Partial Acquisition 2 Partial Acquisition The Partial
More informationModel-View-Controller
CNM STEMulus Center Web Development with PHP November 11, 2015 1/8 Outline 1 2 2/8 Definition A design pattern is a reusable and accepted solution to a particular software engineering problem. Design patterns
More informationDesign patterns generic models
Design patterns generic models Jyothish Maniyath CDC Software India Pvt Ltd 6 th Floor, Canberra Block, UB City, #24 Vittal Mallya Road, Bangalore, India +91 94482 46718 jyosh@maniyath.com ABSTRACT This
More informationChapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design
Chapter 6 Architectural Design Lecture 1 1 Topics covered ² Architectural design decisions ² Architectural views ² Architectural patterns ² Application architectures 2 Software architecture ² The design
More informationConcurrency Control with Java and Relational Databases
Concurrency Control with Java and Relational Databases Sérgio Soares and Paulo Borba Informatics Center Federal University of Pernambuco Recife, PE, Brazil scbs,phmb @cin.ufpe.br Abstract As web based
More informationADAPTER. Topics. Presented By: Mallampati Bhava Chaitanya
ADAPTER Presented By: Mallampati Bhava Chaitanya Topics Intent Motivation Applicability Structure Participants & Collaborations Consequences Sample Code Known Uses Related Patterns Intent Convert the interface
More information25.1 Introduction Façade Design Pattern Identification Problem Structure Participants...
Department of Computer Science Tackling Design Patterns Chapter 25: Façade Design Pattern Copyright c 2016 by Linda Marshall and Vreda Pieterse. All rights reserved. Contents 25.1 Introduction.................................
More informationPatterns in Software Engineering
Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 8 GoV Patterns Architectural Part 2 1 Architectural Patterns: Categories From Mud to Structure Layers, Pipes and Filters, and Blackboard
More informationSubclassing for ADTs Implementation
Object-Oriented Design Lecture 8 CS 3500 Fall 2009 (Pucella) Tuesday, Oct 6, 2009 Subclassing for ADTs Implementation An interesting use of subclassing is to implement some forms of ADTs more cleanly,
More informationControl Message. Abstract. Microthread pattern?, Protocol pattern?, Rendezvous pattern? [maybe not applicable yet?]
Control Message An Object Behavioral Pattern for Managing Protocol Interactions Joe Hoffert and Kenneth Goldman {joeh,kjg@cs.wustl.edu Distributed Programing Environments Group Department of Computer Science,
More informationTuesday, October 4. Announcements
Tuesday, October 4 Announcements www.singularsource.net Donate to my short story contest UCI Delta Sigma Pi Accepts business and ICS students See Facebook page for details Slide 2 1 Design Patterns Design
More information4.1 Introduction Programming preliminaries Constructors Destructors An example... 3
Department of Computer Science Tackling Design Patterns Chapter 4: Factory Method design pattern Copyright c 2016 by Linda Marshall and Vreda Pieterse. All rights reserved. Contents 4.1 Introduction.................................
More informationDesign Patterns. An introduction
Design Patterns An introduction Introduction Designing object-oriented software is hard, and designing reusable object-oriented software is even harder. Your design should be specific to the problem at
More informationArchitectural Patterns. Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2
Architectural Patterns Architectural Patterns Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson dr@inf.ed.ac.uk http://www.inf.ed.ac.uk/ssp/members/dave.htm
More informationArchitectural Patterns
Architectural Patterns Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson dr@inf.ed.ac.uk http://www.inf.ed.ac.uk/ssp/members/dave.htm SAPM Spring 2012:
More informationIntroduction to Embedded Systems
Introduction to Embedded Systems Edward A. Lee & Sanjit Seshia UC Berkeley EECS 124 Spring 2008 Copyright 2008, Edward A. Lee & Sanjit Seshia, All rights reserved Lecture 17: Concurrency 2: Threads Definition
More informationsecurity model. The framework allowed for quickly creating applications that examine nancial data stored in a database. The applications that are gene
Patterns For Developing Successful Object-Oriented Frameworks Joseph W. Yoder August 27, 1997 1 Overview The work described here extends last years OOPSLA framework workshop paper [Yoder 1996] describing
More informationWhat is Design Patterns?
Paweł Zajączkowski What is Design Patterns? 1. Design patterns may be said as a set of probable solutions for a particular problem which is tested to work best in certain situations. 2. In other words,
More informationIntroduction to Software Engineering
Introduction to Software Engineering Gérald Monard Ecole GDR CORREL - April 16, 2013 www.monard.info Bibliography Software Engineering, 9th ed. (I. Sommerville, 2010, Pearson) Conduite de projets informatiques,
More informationDesign Patterns. Definition of a Design Pattern
Design Patterns Barbara Russo Definition of a Design Pattern A Pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem,
More informationOBJECT-ORIENTED MODELING AND DESIGN. Introduction
OBJECT-ORIENTED MODELING AND DESIGN Introduction Contents: Introduction. Course Relevance Learning Outcomes Overview of the syllabus Introduction to Object Orientation Introduction Object Oriented Approach
More informationAdvanced Topics in Software Engineering (02265) Ekkart Kindler
Advanced Topics in Software Engineering (02265) IV. (Meta-) Modelling Frameworks 2 1. Motivation & Overview With MOF, we have: Modelling notation (EMOF / CMOF) Java API (JMI, EMF, etc) Instance model /
More informationThe GoF Design Patterns Reference
The GoF Design Patterns Reference Version.0 / 0.0.07 / Printed.0.07 Copyright 0-07 wsdesign. All rights reserved. The GoF Design Patterns Reference ii Table of Contents Preface... viii I. Introduction....
More informationSSJ User s Guide. Package stat Tools for Collecting Statistics. Version: December 21, 2006
SSJ User s Guide Package stat Tools for Collecting Statistics Version: December 21, 2006 CONTENTS 1 Contents Overview........................................ 2 StatProbe........................................
More informationProduced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar
Design Patterns MSc in Communications Software Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie
More informationThe Authenticator Pattern
The Authenticator Pattern F. Lee Brown, Jr. James DiVietri Graziella Diaz de Villegas CyberGuard Corp. Fort Lauderdale, FL 33309 Eduardo B. Fernandez Dept. of Computer Science and Eng. Florida Atlantic
More informationApplying Model View View-Model and Layered Architecture for Mobile Applications
ISSN 0974-9373 Vol. 20 No. 3 (2016) Journal of International Academy of Physical Sciences pp. 215-221 Applying Model View View-Model and Layered Architecture for Mobile Applications Shashi Prakash Tripathi
More informationDesign Patterns. CSC207 Winter 2017
Design Patterns CSC207 Winter 2017 Design Patterns A design pattern is a general description of the solution to a well-established problem using an arrangement of classes and objects. Patterns describe
More informationObject-Oriented Design
Object-Oriented Design Lecture 20 GoF Design Patterns Behavioral Department of Computer Engineering Sharif University of Technology 1 GoF Behavioral Patterns Class Class Interpreter: Given a language,
More informationReflective Design Patterns to Implement Fault Tolerance
Reflective Design Patterns to Implement Fault Tolerance Luciane Lamour Ferreira Cecília Mary Fischer Rubira Institute of Computing - IC State University of Campinas UNICAMP P.O. Box 676, Campinas, SP 3083-970
More informationL23.1 Introduction... 2
Department of Computer Science COS121 Lecture Notes: L23 Adapter Design Pattern 23 & 26 September 2014 Copyright c 2014 by Linda Marshall and Vreda Pieterse. All rights reserved. Contents L23.1 Introduction.................................
More informationApplying the Observer Design Pattern
Applying the Observer Design Pattern Trenton Computer Festival Professional Seminars Michael P. Redlich (908) 730-3416 michael.p.redlich@exxonmobil.com About Myself Degree B.S. in Computer Science Rutgers
More informationMonitoring System for Distributed Java Applications
Monitoring System for Distributed Java Applications W lodzimierz Funika 1, Marian Bubak 1,2, and Marcin Smȩtek 1 1 Institute of Computer Science, AGH, al. Mickiewicza 30, 30-059 Kraków, Poland 2 Academic
More informationOutline. Logistics. Logistics. Principles of Software (CSCI 2600) Spring Logistics csci2600/
Outline Principles of Software (CSCI 600) Spring 018 http://www.cs.rpi.edu/academics/courses/spring18/csci600/ Konstantin Kuzmin, kuzmik@cs.rpi.edu Office hours: Monday and Thursday 4:00 pm - 5:30 pm Mailing
More informationData Mappings in the Model-View-Controller Pattern 1
Data Mappings in the Model-View-Controller Pattern 1 Martin Rammerstorfer and Hanspeter Mössenböck University of Linz, Institute of Practical Computer Science {rammerstorfer,moessenboeck@ssw.uni-linz.ac.at
More informationDesign Patterns. CSC207 Fall 2017
Design Patterns CSC207 Fall 2017 Design Patterns A design pattern is a general description of the solution to a well-established problem using an arrangement of classes and objects. Patterns describe the
More informationAcyclic Visitor Pattern in Formulation of Mathematical Model
Acyclic Visitor Pattern in Formulation of Mathematical Model Ales CEPEK and Jan PYTEL, Czech Republic Key words: acyclic visitor pattern, mathematical model. SUMMARY This paper discusses the use and advantages
More informationDESIGN PATTERN MATCHING
PERIODICA POLYTECHNICA SER. EL. ENG. VOL. 47, NO. 3 4, PP. 205 212 (2003) DESIGN PATTERN MATCHING Dániel PETRI and György CSERTÁN Department of Measurement and Information Systems Budapest University of
More informationSoftware Architectures
Software Architectures 2 SWS Lecture 1 SWS Lab Classes Hans-Werner Sehring Miguel Garcia Arbeitsbereich Softwaresysteme (STS) TU Hamburg-Harburg HW.Sehring@tuhh.de Miguel.Garcia@tuhh.de http://www.sts.tu-harburg.de/teaching/ss-05/swarch/entry.html
More informationbe used for more than one use case (for instance, for use cases Create User and Delete User, one can have one UserController, instead of two separate
UNIT 4 GRASP GRASP: Designing objects with responsibilities Creator Information expert Low Coupling Controller High Cohesion Designing for visibility - Applying GoF design patterns adapter, singleton,
More information6.170 Lecture 15 Design Patterns
Outline 6.170 Lecture 15 Design Patterns Introduction to design patterns Creational patterns (constructing objects) Structural patterns (controlling heap layout) Behavioral patterns (affecting object semantics)
More informationAutomatic Configurator for Application Code
Automatic Configurator for Application Code ROXANA MUREŞAN 1, ANDREI BOTOACĂ 2, HORIA CIOCÂRLIE 1 1 Computer and Software Engineering Department Politehnica University of Timisoara V. Pârvan street 2,
More information1 Software Architecture
Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to
More information