This hint is a thinly veiled complaint about the most common (mis)use of modeling that I see in the industry: The construction of lightweight, imprecise, incorrect, and unmaintainable models that add little in the way of analytic support and answer zero questions of interest. You might notice that I am not in favor of modeling this way. I prefer "high-fidelity" models. These are (within their scope and intent) complete, accurate, correct, and precise; and verifiably so (something we'll talk about later in hint #1).
Let me be clear: The value of modeling lies in our ability to be verifiably complete, precise and accurate with respect to the intent and scope of a model. Napkin models, named because they are often hand-drawn on any handy disposable surface, are a common way of using UML or SysML. But using models in this way is a little like programming a missile with approximate ballistic parameters. It'll land somewhere, so what's the difference? If you're at the terminal end of the trajectory, a lot.
Figure 1. Napkin models are imprecise
Note: Because this is a napkin model, there is no repository underneath to ensure the consistency of the semantic statements with any other napkin you might have in your pocket.
Some questions you might have about this model include:
- What is this model trying to depict?
- Are those all the attributes of Student or Seminar?
- What are the data types and appropriate subranges for the attributes?
- What are the parameters and return values of the operations?
- How do you determine eligibility for a seminar? What information is needed to determine that?
- How are these elements created? How are they linked together? How are they destroyed?
- How can you tell if a seminar is empty or full? What information is needed for that? Is the
MaxNumber:unsigned intattribute missing?
- Are there any default values for the attributes?
It sounds like I have reserved a rung of hell for those creating napkins models. That's not precisely true. I think that this is a fine place to start a conversation. As you answer questions and reason about system structure and behavior, you morph this model from "napkin" to "high-fidelity". This is easier when the model is managed in a modeling tool with a real model repository. It's even easier when the tool supports model verification, like some high-end tools, such as Rational Rhapsody.
The bottom line is that imprecise thinking results in failed systems. In my world, that is unacceptable.
- Learn more about Rational System Architect:
- To learn more about the tool for collaborative, model-driven development for embedded systems, start with the Rational Rhapsody product line overview and the Rational Rhapsody page on IBM developerWorks. Also see the Rational Rhapsody 7.6 information center and the Changing the location of help content to get a local copy of the documentation.
- Explore the various versions, too: IBM Rational Rhapsody Architect for Software, a visual development environment for embedded systems and software
- IBM Rational Rhapsody Architect for Systems Engineers
- IBM Rational Rhapsody Designer for Systems Engineers
- IBM Rational Rhapsody Developer for collaborative, model-driven development of embedded systems. This edition is required for Eclipse users, and editions are available to create specialized projects in C, C++, Java, and Ada languages.
- To learn more about Rational Rhapsody design management capabilities, check out the IBM Rational Rhapsody Design Manager to see how to collaborate, share, review, and manage designs and models with the entire engineering team. Also see the Design Management page on Jazz.net.
- Explore the Rational software area on developerWorks for technical resources, best practices, and information about Rational collaborative and integrated solutions for software and systems delivery.
- Stay current with developerWorks technical events and webcasts focused on a variety of IBM products and IT industry topics.
- Improve your skills. Check the Rational training and certification catalog, which includes many types of courses on a wide range of topics. You can take some of them anywhere, anytime, and many of the Getting Started ones are free.
Get products and technologies
- Download a free, fully enabled trial version of Rational System Architect.
- Take an online tour of Rational Rhapsody with an online trial or download Rational Rhapsody or special editions to Evaluate, free of charge, for 30 days.
- Evaluate IBM software in the way that suits you best: Download it for a trial, try it online, or use it in a cloud environment.
- Participate in the Enterprise Architecture and Business Architecture forum, where you can share information about methods, frameworks, and tool implementations. Discussions include tool-specific technical discussions about Rational System Architect.
- Join the discussion in the Rational Rhapsody forum.
- Get connected with your peers and keep up on the latest information in the Rational community.
- Rate or review Rational software. It's quick and easy.
- Share your knowledge and help others who use Rational software by writing a developerWorks article. Find out what makes a good developerWorks article and how to proceed.
- Follow Rational software on Facebook, Twitter (@ibmrational), and YouTube, and add your comments and requests.
- Ask and answer questions and increase your expertise when you get involved in the Rational forums, cafés, and wikis.
Dig deeper into Rational software on developerWorks
Get samples, articles, product docs, and community resources to help build, deploy, and manage your cloud apps.
Experiment with new directions in software development.
Software development in the cloud. Register today to create a project.
Evaluate IBM software and solutions, and transform challenges into opportunities.