background preloader

Software Modeling

Facebook Twitter

Introduction to Object Role Model (ORM) Diagrams. Figure 1 depicts a simple example of an ORM diagram.

Introduction to Object Role Model (ORM) Diagrams

The ovals represent entity types (Halpin uses the term object although ORM diagrams can be used to model systems which don't use object technology at all) and the rectangles roles that the objects play in relationships. Notice how the roles are described in both directions, in the top relationship the Student is in the takes role and Seminar is in the is taken by role. The double arrowhead above the roles indicates uniqueness constraints. Because the arrowhead is above both the takes/is taken by roles it indicates that the combination of student/seminar must be unique in this relationship - a student can take many seminars and a seminar is taken by many students, but a student can take a given seminar once and once only. Consider the other relationship.

Figure 1. Figure 2 presents a more complex example. Figure 2. Another interesting concept is the recursive/self relationship that Professor is involved with. Source Translations. Introduction to Class Responsibility Collaborator (CRC) Models. Figure 1.

Introduction to Class Responsibility Collaborator (CRC) Models

CRC Card Layout. Figure 2. Hand-drawn CRC Cards. Although CRC cards were originally introduced as a technique for teaching object-oriented concepts, they have also been successfully used as a full-fledged modeling technique. My experience is that CRC models are an incredibly effective tool for conceptual modeling as well as for detailed design. Process Flow Chart Tutorial. Definition The Process Flow chart provides a visual representation of the steps in a process.

Process Flow Chart Tutorial

Flow charts are also referred to as Process Mapping or Flow Diagrams. Constructing a flow chart is often one of the first activities of a process improvement effort, because of the following benefits: Gives everyone a clear understanding of the process Helps to identify non-value-added operations Facilitates teamwork and communication Keeps everyone on the same page There are many symbols used to construct a flow chart; the more common symbols are shown below: If you have Microsoft Word or Excel, you can access a gallery or symbols in the Autoshapes function, together with a description of their use. Writing Software Patterns. I've spent a lot of my writing energy writing patterns.

Writing Software Patterns

From time to time I get asked questions about why I do that and what makes a good pattern. This is a brief article about how I look at patterns with my suggestions for people who are interested in writing patterns themselves. Lerning GoF/Gamma Patterns via Metaphor - Design patterns in Real Life. Enterprise Integration Patterns - Dead Letter Channel. An enterprise is using Messaging to integrate applications.

Enterprise Integration Patterns - Dead Letter Channel

What will the messaging system do with a message it cannot deliver? When a messaging system determines that it cannot or should not deliver a message, it may elect to move the message to a Dead Letter Channel. The specific way a Dead Letter Channel works depends on the specific messaging system’s implementation, if it provides one at all. The channel may be called a “dead message queue” [] or “dead letter queue.” [], [] Typically, each machine the messaging system is installed on has its own local Dead Letter Channel so that whatever machine a message dies on, it can be moved from one local queue to another without any networking uncertainties.

This also records what machine the message died on. Related patterns: Invalid Message Channel, Message Expiration, Selective Consumer, Messaging. Command Pattern. “An object that contains a symbol, name or key that represents a list of commands, actions or keystrokes”.

Command Pattern

This is the definition of a macro, one that should be familiar to any computer user. From this idea the Command design pattern was given birth. The Macro represents, at some extent, a command that is built from the reunion of a set of other commands, in a given order. Just as a macro, the Command design pattern encapsulates commands (method calls) in objects allowing us to issue requests without knowing the requested operation or the requesting object. Command design pattern provides the options to queue commands, undo/redo actions and other manipulations. Intent. Examples Relationships Class Diagram. Many people consider class diagrams a bit more complicated to build compared with ER diagrams.

Examples Relationships Class Diagram

While this might be true, this article helps clip some of the complexities of class diagrams in such a way that even non-programmers and less tech-savvy individuals will come to appreciate the usefulness of this modeling approach. In particular, this article explains how to correctly determine and implement the different class diagram relationships that are applicable in object-oriented modeling. Data Modeling 101.

The goals of this article are to overview fundamental data modeling skills that all developers should have, skills that can be applied on both traditional projects that take a serial approach to agile projects that take an evolutionary approach.

Data Modeling 101

My personal philosophy is that every IT professional should have a basic understanding of data modeling. They don’t need to be experts at data modeling, but they should be prepared to be involved in the creation of such a model, be able to read an existing data model, understand when and when not to create a data model, and appreciate fundamental data design techniques. This article is a brief introduction to these skills. The primary audience for this article is application developers who need to gain an understanding of some of the critical activities performed by an Agile DBA. Table of Contents 1. UML Tutorial. Design Patterns Course: Demo. Distributed inPDF, EPUB, MOBI 90-day money-back guarantee If you have ever bought any programming books, you might have noticed that there are two types of them: books that are too short to understand the topic and books that are too long making it inevitable that you get bored.

Design Patterns Course: Demo

We've tried hard to avoid both of these categories with Design Patterns Explained Simply. This book is fast and simple way to get the idea behind each of the 29 popular design patterns. The book is not tied to any specific programming language and will be good for you as long as you have a basic knowledge of OOP. Most chapters are available on the website, so you can check out the simplicity of the language in the book and the way materials are presented. Why should I read this book? It's simple.