System Modeling Flashcards
What kind of diagrams are used for an OOP system model?
Class diagrams
What is a relationship between classes called?
Association
How do you identify that an association between classes is 1-to-1 or 1-to-many on UML?
You can put “1”, or a specific number, or “1..*” (or specify a number replacing *, meaning it can be “up to” that number) next to the elements above the line connecting them
What is Generalization?
Another way of saying Generics/inheritance. A technique to manage complexity.
In UML, how do you represent inheritance (Generalization)?
An arrow pointing to a superclass.
What is a word describing Generics or inheritance?
Generalization
What do you call multiple associations? How do you represent this in UML?
Aggregation Association. Multiple classes with a line with a diamond (actually a rotated square) touching the class containing those classes.
What are Behavioral Models, and what are the UML diagrams called
Models of the dynamic behavior of a system as it is executing; responses to stimuli. The stimuli is either data or events. Activity Diagrams in UML are used for these.
What is Event-Driven Modeling, and what are the UML diagrams called
For developing state machines, assuming there is a countable number of states the system can be in. Not really used for systems that have custom user data. The UML diagrams are called State Diagrams.
In a State Diagram, what is a state called that is hiding details due to its complexity?
A Superstate
What is MDA
Model-Driven Architecture. Uses UML diagrams to describe a system at multiple levels of abstraction.
What are the 3 types of models
Computation Independent Model (CIM)
Platform Independent Model (PIM)
Platform Specific Model (PSM)
What is a CIM
Computation Independent Models, also called Domain Models, are used to abstractly and contextually describe a system’s requirements without detailing any structure.
What makes MDA tough?
You have to have translators, which can be slow and expensive.
What is a PIM
Platform Independent Models describe the operation and logic of a system without being specific about its implementation, like not being specific about which programming language to use.