OCUP 2 UML CERTIFICATION GUIDE Flashcards
What were the four original goals of UML?
- To model systems (not just software) using object oriented concepts
- Establish explicit coupling to conceptual as well as executable artifacts
- Address issues of scale inherent in complex, mission-critical systems
- Usable by humans as well as machines
What are the (7) updated goals for UML?
- Provide users with a ready-to-use, expressive visual modeling language to develop and exchange useful models
- Furnish extensibility and specialization mechanisms to extend the core concepts
- Support specifications that are independent of particular programming languages and development processes
- Provide formal base for understanding the language
- Encourage growth of object tools market
- Support higher-level development concepts such as components, collaborations, frameworks and patterns
- Integrate best practices
List (6) features that UML has incorporated to accommodate the updated goals
- UML supports XMI (XML Metadata Interchange) that allows UML models to exchange models
- Profile and stereotype capability -> tailor UML for own needs (eg SysML, SPEM, …)
- Programming language independent
- Formal metamodel to capture abstract syntax
- Support higher-level organization concepts, incl collaborations, composite structures, hierarchical state machines and reuse, and components
- UML tools galore
What are the key purposes and corresponding types of modeling (“actions”) in UML?
Analysis: domain analysis, use case analysis, requirements analysis
Design: conceptualization, architecture, detailed design
Implementation: by hand, automatic code generation, simulation / execution, reverse engineering, round trip modeling, debugging
Communication: to humans, to other tools
What does Domain Analysis do?
- Model things in real world; to understand how current or legacy system works; possibly: extract the essentials (-> new system)
- Stakeholders review to check its faithfulness to current system -> terminology best matches current system
- Real world (not software) -> Class diagram, State Machines diagram, possibly Sequence diagram
- Simplicity and accuracy to facilitate communication
What does Use Case Analysis do?
-> Purposes, needs of current and future users of the system (use user terminology)
- Use Case diagram (+ possibly supporting)
- Deliverable: Informal requirements
What does Requirements Analysis do?
- Start from requirements or problem statement
- Create mapping objects and behavior: noun-verbs
- Class diagrams, State Machines diagrams, Activity diagrams
What does Conceptualization do?
- High-level design of how the system will work, incl major systems and subsystems, sometimes major architecture principles
- Often: better estimate of cost & timing
- All diagrams; light on the details
What does Architecture do?
- Modeling necessary to convey organization and associated principles of new system
- Cover structure, behavior and other VIEWS of the system, tailored to particular audience, eg Security View, how to install, maintain, upgrade, …
- All UML diagrams
- Capture patterns of how elements interact with each other, such as client-server, peer-to-peer, layers
What does Detailed Design do?
- Covers remaining details to specify the solution
- Target group: developers
- Typically: composite structure diagrams, communication diagrams, component diagrams, deployment diagrams
What does by-hand generation (in Implementation) do?
- Sufficient details to convey to programmer programming constructs that will be needed
- Details maybe only need to be supplied once
What does Automatic Code Generation do?
- Detailed everywhere
- Annotations to guide automatic tools to choose the right programming construct (eg containment, class; error handling approach)
- Depending on programming language: avoid certain modeling constructs
- Possibly: automatically generate databases and user interfaces
What does Direct Simulation or Execution do?
- Similar to Automatic Code Generation + more details + limitations on UML
- Often needed: implementation of platform independent action language to specify details of required behavior
PAL
What does Reverse Engineering do?
- Generate model from code
What does Round-Trip Modeling do?
- Model-a-little code-a-little
- Model -> Code -> Model: synchronized
What does Debugging do (in UML Implementation)?
- Step through behavior diagrams while executing, simulating or round-trip modeling
Explain the relation between diagram and model.
Diagram: a view on the model; can be used to create an element of the model
Model: repository of all the elements of the model; database following UML grammar
Delete diagrams -> model still exists
Multiple (or same) diagrams may contain same element of the model
Diagram: state and document purpose and audience for particular diagram (levels)
Which types of models mitigate which kinds of risks?
- General: Not all team members have understanding of what needs to be done
- Domain: Not all team members understand the domain we are going to model, the world in which the system will live
- Use case: Team members don’t understand user needs; users afraid that their needs are not understood / captured
- Conceptualization: Dev team and stakeholders don’t agree on where the system is going or how much it will cost
- Specialty: Developers don’t have solutions for specific problems, eg safety, security, upgrades, …
- Architecture: Dev team may choose inconsistent solutions to solve system wide problems
What are the main principles of modeling?
Risk mitigation
Information hiding and simplicity
Whole-parts relationships
Classification and generalization
What are (2) techniques to specify whole-part relationships in a model?
Composition: strong; part can not exist without the whole; part can only be part of one whole at a time , eg engine-car
Aggregation: part can be part of many wholes, eg student-school
Explain classification, generalization and specialization
Classification:
Look at individuals and model class that abstracts out common properties of interest, eg books: title, author, publisher, …
Instance: individual book=instance; Instantiation: making a new instance of a class: instantiation
Generalization:
Make a common class for common features; eg: New class: borrowable objects (books & movies)
Specialization:
Make a specific version of a general class
All features of general class also available in specialized class (substitution)
List (4) techniques for information hiding and simplicity
- Elide: omit details
- Abstraction: see the forest through the trees
- Information hiding
- Encapsulation: details that you need to hide, but are dependent on each other are placed together; prevents changes to details to propagate
What is the general structure of the UML 2.5 specification document?
4.1.2
Clauses 1-6: Introductory
Clauses 7-12: Structural topics
Clauses 13-17: Behaviour
Clauses 18-22: Supplemental modelling
Subclauses
Annexes
List the semantic areas of UML 2.5
See figure 4.1
Structural modelling: Common structure: Values, Classifiers, Packages
Behaviour modelling: Common behavior: Actions: State Machines, Activities, Interactions
Supplemental modelling: Use Cases, Deployments, Information flows
What is the similar structure of the language definition of clauses 7-20 in the UML 2.5 specification document?
4.2
Summary
Subclauses
Language elements identified:
• Classifier descriptions: model elements and their properties; generated from abstract syntax diagrams
• Association descriptions: relationships among elements and their multiplicities; generated from abstract syntax diagrams
• Constraints: In natural language and OCL (Object Constraints Language): express navigation within meta-object facility (MOF)-based languages (MOF = subset of UML structural model notation)
What is the common structure for the subclauses in the UML 2.5 specification document?
• Summary
• Abstract syntax: properties and relationships; independent of notation
• Semantics
• Surface syntax: standard visual syntax
o Visual notation
o Textual: In variant of Backus-Naur form (BNF)
What does OCL stand for?
Object Constraints Language
What does MOF stand for?
Meta-Object Facility
What is and does Abstract UML Syntax?
Defines the set of UML modelling concepts, their attributes and relationships, as well as rules for combining these concepts to construct UML models
Formal grammar for UML 2.5
Specified as a set of formal diagrams using MOF-language (meta-object facility)
Abstract: no need to change if notation changes
List the levels of metamodelling and what you can do in each level.
4.5
Real world layer: M-1 - Touch; investigate for properties
User objects layer: M0 - implement
Model layer: M1 - Model
MetaModel layer: M2 - Read the specification (for M1)
MetaMetamodel: M3 - Describe MOF elements
In metamodelling (layer) terms, how does modelling work?
4.5
Modelling: create M1 classes
Then: convert M1 classes to classes in the implementation (M0: user objects layer)
In M1 model: only show M0 elements as representative examples
Eg: Book object or instance specification
What is the notation for multiplicities in UML?
1: exactly one; mandatory participant
0..1: zero or one; optional participant
0..: zero or more participants