OCUP 2 UML CERTIFICATION GUIDE Flashcards
(82 cards)
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