TweetFollow Us on Twitter

May 93 - A CASE tool for OOA, OOD and OOP

ObjectModeler™
A CASE tool for OOA, OOD and OOP

Doug Rosenberg

ObjectModeler is an application which is useful for Object Oriented Analysis, Design, and Programming. There are 3 main areas of functionality within the program:

a GRAPHICS EDITOR which provides drawing palettes for-

  • Coad/Yourdon OOA diagrams
  • Rumbaugh OMT (Object Modeling Technique) diagrams
  • Booch Class diagrams
  • Booch Object diagrams

a DICTIONARY which provides-

  • a convenient place to capture additional detail beyond what is shown on the diagrams
  • a mechanism for sharing a model across a developmentteam on a fileserver
  • global change capability across a network
  • access controls and collision detection
  • integration with other ICONIX PowerTools™ modules

a TEXT EDITOR which provides-

  • linkage between source code and diagram elements
  • language templates on pull-down menus for
    • C++
    • Lisp
    • SQL
    • Pascal
    • PDL (ICONIX PowerPDL™ pseudocode language)

ObjectModeler can help to bring order and discipline to the often ad-hoc and chaotic process of developing O-O software without being overly rigid and stifling programmer creativity. Using ObjectModeler in conjunction with other ICONIX modules which support State Transition Diagrams, Module Architecture Diagrams and other techniques (e.g. PDL) makes it even more useful.

Object Oriented Analysis

The primary reason for not skipping the analysis phase of a software project is to ensure that the system under construction will properly meet the requirements of the customers or end-users. In other words, are we building the right system?

OOA methods tend to model the real world, often using notations that display classes or objects within the same symbol as their attributes (fields) and services or operations (methods). Other common themes across OOA methods are the kind-of and part-of relationships between classes.

These concepts lead to models of the objects, classes, and inheritance relationships in the problem domain which are readily understood by the end-users as well as the developers. These models are used to facilitate communication and lead to a common understanding of a system under development which is shared by all members of the development team as well as the end users.

ObjectModeler supports two methodologies which share these common themes; Coad/Yourdon OOA and Rumbaugh OMT. Each of these methodologies has its own set of strengths. Coad and Yourdon provide an easily understood notation for describing class hierarchies and address large system concerns with a 5-layer model which supports decomposition along Subject boundaries. Rumbaugh provides a rigorous approach based on Entity-Relationship modeling, extensive treatment of how to produce SQL from Class diagrams, and also includes State Machines and Data Flow diagrams as supplementary descriptions of object behavior and functionality; the ICONIX FastTask™ and FreeFlow™ modules support these representations.

Object Oriented Design

The primary reason for not skipping the design phase of a software project is to ensure that the system under construction is properly designed; that is, that the class hierarchy is appropriate, that the code is well modularized, and that the design will effectively meet performance constraints. In other words, are we building the system right?

ObjectModeler supports the Booch Object Oriented Design methodology. Booch is widely regarded as having the most comprehensive notation for OOD; his method consists of two primary kinds of diagrams, Class Diagrams and Object Diagrams. Booch also uses State Transition and Module Architecture diagrams in his OOD methodology; the ICONIX FastTask™ and AdaFlow™ modules support these representations.

Class Diagrams show the relationship between classes in a system, focusing on different kinds of inheritance and instantiation relationships. In Booch's words, they are used to answer the question "What classes exist and how are they related?"

Object Diagrams show objects and relationships between objects, focusing on visibility (how objects see each other) and message synchronization (how objects interact with each other). In Booch's words, they are used to answer the question "What mechanisms are used to regulate how objects collaborate?".

Booch proposes a set of templates for specifying details about classes, objects, messages and other design elements. These templates are available in ObjectModeler's Language Sensitive Editor as templates which can be picked off a menu and dropped into a text file that is linked to symbols on the diagrams.

name: Temp Control Display
documentation: <text>
visibility: <exported/private/imported>
cardinality: <0/1/n>
heirarchy:
    superclasses: Displays
    metaclass: <class_name>
generic parameters:  <list_of_parameters>
interface | implementation
(public/protected/private):
    uses: <list_of_class_names>
    fields: <list_of_field_declarations>
    operations: <list_of_operation_declarations>
finite state machine:  <state_transition_diagram>
concurrency: <sequential/blocking/active>
space complexity: <text>
persistence: <persistent/transitory>

Figure 6 - A Booch Class template. Booch defines an extensive set of templates which specify a variety of detailed information about system design elements.

ObjectModeler also supports the development of pseudocode (PDL) linked to symbols on diagrams. PDL may be used at any time during analysis or design when an algorithmic specification is called for. The ICONIX PowerPDL™ module may be used to collect PDL fragments created with ObjectModeler and format them into a design document, complete with a Table of Contents and several useful Cross References.

IF the steering wheel is rotated by more than 45 degrees THEN
    send a "turn complete" message to the turn indicator
ENDIF

Figure 7 - The ICONIX PowerPDL™ module can collect PDL fragments into complete documents with a Table of Contents and extensive Cross References.

Team Project Considerations ObjectModeler's dictionary provides a convenient place to store additional information about symbols on analysis or design diagrams. Items are automatically added to the dictionary as they are named, and can be accessed from the graphics editor by option-double-clicking on a named symbol. Each different type of symbol has its own set of attributes available on a pull-down menu.

ObjectModeler supports server-based development for project teams. Data is copied from the server into local RAM on program start-up; during editing operations, the server is polled periodically (at user-specified time intervals) and any changes are downloaded, minimizing network traffic while providing excellent performance and real-time updates. Each dictionary entry has a complete set of Access Privileges which control who gets to view, edit, rename, and delete it. Judicious use of these access controls allows a project team to provide an appropriate level of protection for design elements which are common within a subsystem or across subsystems.

The dictionary may be viewed as a scrolling list. The list can be scrolled or users can type the first few characters of an entry's name to access it. The dictionary provides several powerful functions which are useful in real-world project situations, including Global Rename and Delete (which affect all diagrams on the network), and cross referencing options to tell where entries are used and what they contain.

Object Oriented Programming

Once you have determined that you are building the right system and that you are designing the system right using ObjectModeler's OOA and OOD capabilities, it's time to implement, probably in some OOP language (perhaps C++).

ObjectModeler provides templates for a variety of languages (including C++, Lisp, and SQL) on pull-down menus. Code files may be accessed from diagrams by shift-double-clicking on a named symbol. The language templates may be used to eliminate a variety of syntax errors including keyword spelling and punctuation errors, and to provide a consistent code formatting style across an entire development team.

class TAudio_Display {
    public:
       TAudioDisplay(int volume);
       TAudioDisplay(int volume,
                     int bass,
                     int treble);  // overload
       virtual ~TAudioDisplay();
          
    protected:
       virtual void SetVolume();
       virtual void SetTone();
    
    private:
       int fVolume;
       int fBass;    
       int fTreble;
};

class RadioDisplay : TAudio_Display {
    public:
       TRadioDisplay(int volume
                     int frequency
                     int station);
       virtual ~TRadioDisplay();
          
    protected:
       virtual void SetFrequency();
       virtual void SetStation();
    
    private:
       int fFrequency;
       int fStation;
};

Figure 11 - ObjectModeler's Language Sensitive Editor is used to build source code directly linked to CASE model.

Coding may be carried through to completion within ObjectModeler or transitioned at any time to any back-end environment, at the user's option. All ObjectModeler code files are stored as flat ASCII text and may be transported to host platforms or other environments with ease. If Module Architecture Diagrams are used, an identical editor is available in the ICONIX AdaFlow module.

Summary

Requirements analysis is useful because it gives us an opportunity to determine whether we are in fact building the right system. Software design is useful because it gives us an opportunity to determine whether we are building the system right. While it is possible to achieve success without going through formal analysis and design activities, the chances of success are clearly maximized by taking the time to think about these issues. OOA and OOD methodologists have developed analysis and design methods which encapsulate useful experience gained across hundreds of O-O software projects. They have developed notations which represent O-O constructs and they have written books which ask the right questions about software under development.

ObjectModeler packages up three popular O-O methodologies into a tool which addresses team project concerns and multiple lifecycle phases (analysis, design, coding) in a reliable, cost-effective, and easy-to-use manner. ICONIX provides other tools which complement ObjectModeler with techniques like State Transition Diagrams, Module Architecture Diagrams, and PDL, in a synergistic manner. When conscientiously applied, the use of CASE methods and tools leads to successful projects; clean, well-designed programs delivered on-schedule and within budget.

For further information on ObjectModeler, other ICONIX PowerTools™ modules, or training in O-O methods, please contact us at:

ICONIX Software Engineering, Inc.
2800 28th Street, Suite 320
Santa Monica, CA 90405

Phone (310) 458-0092
FAX (310) 396-3454
Applelink: ICONIX
Internet: ICONIX@applelink.apple.com

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Apple GarageBand 10.1.4 - Complete recor...
The new GarageBand is a whole music creation studio right inside your Mac -- complete with keyboard, synths, orchestral and percussion instruments, presets for guitar and voice, an entirely... Read more
Alfred 3.2.1 - Quick launcher for apps a...
Alfred is an award-winning productivity application for OS X. Alfred saves you time when you search for files online or on your Mac. Be more productive with hotkeys, keywords, and file actions at... Read more
Adobe Lightroom 6.8 - Import, develop, a...
Adobe Lightroom is available as part of Adobe Creative Cloud for as little as $9.99/month bundled with Photoshop CC as part of the photography package. Lightroom 6 is also available for purchase as a... Read more
Backblaze 4.2.0.990 - Online backup serv...
Backblaze is an online backup service designed from the ground-up for the Mac. With unlimited storage available for $5 per month, as well as a free 15-day trial, peace of mind is within reach with... Read more
OmniPlan Pro 3.6 - Professional-grade pr...
With OmniPlan Pro, you can create logical, manageable project plans with Gantt charts, schedules, summaries, milestones, and critical paths. Break down the tasks needed to make your project a success... Read more
OmniPlan 3.6 - Robust project management...
With OmniPlan, you can create logical, manageable project plans with Gantt charts, schedules, summaries, milestones, and critical paths. Break down the tasks needed to make your project a success,... Read more
Little Snitch 3.7.1 - Alerts you about o...
Little Snitch gives you control over your private outgoing data. Track background activity As soon as your computer connects to the Internet, applications often have permission to send any... Read more
iMazing 2.1.3 - Complete iOS device mana...
iMazing (was DiskAid) is the ultimate iOS device manager with capabilities far beyond what iTunes offers. With iMazing and your iOS device (iPhone, iPad, or iPod), you can: Copy music to and from... Read more
AppDelete 4.3.1 - $7.99
AppDelete is an uninstaller that will remove not only applications but also widgets, preference panes, plugins, and screensavers along with their associated files. Without AppDelete these associated... Read more
FileZilla 3.23.0.2 - Fast and reliable F...
FileZilla (ported from Windows) is a fast and reliable FTP client and server with lots of useful features and an intuitive interface. Version 3.23.0.2: Bug Fixes and Minor Changes Speed up icon... Read more

Latest Forum Discussions

See All

Toca Hair Salon 3 (Education)
Toca Hair Salon 3 1.0 Device: iOS Universal Category: Education Price: $2.99, Version: 1.0 (iTunes) Description: | Read more »
Winter comes to Darkwood as Seekers Note...
MyTona, based in the chilly Siberian city of Yakutsk, has brought a little festive fun to its hidden object game Seekers Notes: Hidden Mystery. The Christmas update introduces some new inhabitants to players, and with them a chance to win plenty of... | Read more »
Bully: Anniversary Edition (Games)
Bully: Anniversary Edition 1.03.1 Device: iOS Universal Category: Games Price: $6.99, Version: 1.03.1 (iTunes) Description: *** PLEASE NOTE: This game is officially supported on the following devices: iPhone 5 and newer, iPod Touch... | Read more »
PINE GROVE (Games)
PINE GROVE 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: A pine grove where there are no footsteps of people due to continuous missing cases. The case is still unsolved and nothing has... | Read more »
Niantic teases new Pokémon announcement...
After rumors started swirling yesterday, it turns out there is an official Pokémon GO update on its way. We’ll find out what’s in store for us and our growing Pokémon collections tomorrow during the Starbucks event, but Niantic will be revealing... | Read more »
3 reasons why Nicki Minaj: The Empire is...
Nicki Minaj is as business-savvy as she is musically talented and she’s proved that by launching her own game. Designed by Glu, purveyors of other fine celebrity games like cult favorite Kim Kardashian: Hollywood, Nicki Minaj: The Empire launched... | Read more »
Clash of Clans is getting its own animat...
Riding on its unending wave of fame and success, Clash of Clans is getting an animated web series based on its Clash-A-Rama animated shorts.As opposed to the current shorts' 60 second run time, the new and improved Clash-A-Rama will be comprised of... | Read more »
Leaks hint at Pokémon GO and Starbucks C...
Leaked images from a hub for Starbucks employees suggests that a big Pokémon GO event with the coffee giant could begin this very week. The images appeared on Reddit and hint at some exciting new things to come for Niantic's smash hit game. | Read more »
Silent Depth Submarine Simulation (Game...
Silent Depth Submarine Simulation 1.0 Device: iOS Universal Category: Games Price: $7.99, Version: 1.0 (iTunes) Description: | Read more »
Enneas Saga lets you lead your own demon...
Defend the land of Enneas Continent from the forces of evil in the new fantasy MMORPG from Lyto Mobi: Enneas Saga. Can’t wait? No problem. It’s available to download now on Android devices. | Read more »

Price Scanner via MacPrices.net

Holiday sale: 12-inch Retina MacBook for $100...
B&H has 12″ Retina MacBooks on sale for $100 off MSRP as part of their Holiday sale. Shipping is free, and B&H charges NY sales tax only: - 12″ 1.1GHz Space Gray Retina MacBook: $1199 $100... Read more
Apple refurbished 13-inch MacBook Airs availa...
Apple has Certified Refurbished 13″ MacBook Airs available starting at $849. An Apple one-year warranty is included with each MacBook, and shipping is free: - 13″ 1.6GHz/8GB/128GB MacBook Air: $849 $... Read more
Apple refurbished iMacs available for up to $...
Apple has Certified Refurbished 2015 21″ & 27″ iMacs available for up to $350 off MSRP. Apple’s one-year warranty is standard, and shipping is free. The following models are available: - 21″ 3.... Read more
Apple’s Education discount saves up to $300 o...
Purchase a new Mac or iPad using Apple’s Education Store and take up to $300 off MSRP. All teachers, students, and staff of any educational institution qualify for the discount. Shipping is free: -... Read more
Back in stock: Apple refurbished Mac minis fr...
Apple has Certified Refurbished Mac minis available starting at $419. Apple’s one-year warranty is included with each mini, and shipping is free: - 1.4GHz Mac mini: $419 $80 off MSRP - 2.6GHz Mac... Read more
Twenty-Five Years Of Apple Laptops – A person...
Among many other things, the often tumultuous 16th year of the new century marked the 25th anniversary of Apple laptop computers, not counting the optimistically named 16-pound Mac Portable of 1989.... Read more
Landlordy iOS App Adds Support For Appliances...
Riga, Latvia based E-protect SIA is releasing major update (version 1.8) to its Landlordy app for managing rental business financials on the go. Landlordy is iPhone and iPad app designed for self-... Read more
Holiday sale, Apple iMacs for up to $200 off...
B&H Photo has 21″ and 27″ Apple iMacs on sale for up to $200 off MSRP including free shipping plus NY sales tax only: - 27″ 3.3GHz iMac 5K: $2099 $200 off MSRP - 27″ 3.2GHz/1TB Fusion iMac 5K: $... Read more
Holiday sale: Mac minis for $50 to $100 off M...
B&H Photo has Mac minis on sale for up to $100 off MSRP free shipping plus NY sales tax only: - 1.4GHz Mac mini: $449 $50 off MSRP - 2.6GHz Mac mini: $629 $70 off MSRP - 2.8GHz Mac mini: $899 $... Read more
Mac Pros on sale for up to $300 off MSRP, ref...
B&H Photo has Mac Pros on sale for up to $300 off MSRP. Shipping is free, and B&H charges sales tax in NY only: - 3.7GHz 4-core Mac Pro: $2799, $200 off MSRP - 3.5GHz 6-core Mac Pro: $3699, $... Read more

Jobs Board

*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Retail - Multiple Positions- Trumbul...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
*Apple* Retail - Multiple Positions- Philade...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Retail - Multiple Positions- San Ant...
Job Description:SalesSpecialist - Retail Customer Service and SalesTransform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Products Tester Needed - Apple (Unit...
…we therefore look forward to put out products to quality test for durability. Apple leads the digital music revolution with its iPods and iTunes online store, Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.