Human cognition is a study of modeling. Not all such models are graphical, certainly, but make no mistake about it – humans cannot reason without modeling.
A model is an abstraction of a thing, or set of things, in which we omit details that are unimportant to the questions we wish to answer or the reasoning we wish to support. This allows us to focus on the details that are relevant to the analysis or questions at hand.
For example, consider the office chair shown in Figure 1. What would constitute a model of a chair?
Figure 1. Models of a chair
Well, it depends on what questions you are trying to answer. If you're trying to assemble the chair, then your model is one of parts and instructions. If you're trying to design an office space according to feng shui, then you care about color and style. If you're retailer, you might focus on cost and availability. Those are all reasonable models, depending on the reasoning you are trying to perform.
The point of this hint is that you must clearly identify the questions you want to answer, and the reasoning you want to support, before you can create a useful model. You should clearly answer – before you construct the model – the following questions:
- Why am I constructing the model?
- What is the scope of this model?
- Who are the consumers of this model?
- What questions are the consumers likely to ask of this model?
- With what reasoning are the consumers going to use this model?
Each of the questions is likely to result in one or more diagrams. For example, if I'm building a system architecture model, I might have the following answers to the above questions:
I am constructing the model to reason about the large-scale pieces of the system, the allocation of requirements to these elements, the definition of interfaces among them, and the allocation of responsibilities to mechanical, electronic, and software engineering disciplines.
The scope of this model is the system engineering architecture, including the large scale multidisciplinary pieces (subsystems) and their interfaces. It contains trace links back to the requirements model and forward to engineering specific models (mechanical, electronic, and software).
The consumers of the model include:
- System engineer
- System safety engineer
- System reliability engineer
- Security analyst
- Requirements analyst
- Mechanical engineer
- Electronic engineer
- Software engineer
- What are the subsystems?
- How are requirements allocated to subsystems?
- What are the interfaces between the subsystems?
- Is the system safe in the presence of likely failures?
- What is the reliability of the important system functions?
- What are the assets that must be protected by security countermeasures?
- What are the security threats and the points of system vulnerability?
- What requirements are allocated to mechanical (or electrical or software) design?
- What are the interfaces between the software and the electronics?
Some reasoning that might be done:
- Analysis of the fault tree analysis cut sets (sets of faults that contribute to the manifestation of a hazard)
- Demonstration that all requirements are covered by the design
- Demonstration that design elements are all present to meet a requirement
- Test cases required to verify a system is fit for purpose
- 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.