1. •Why Model?
•Visualize a system.
•Specify the structure or behavior of a system.
•Give a template that guide you in constructing a system.
•Document the design decisions.
•What are the four Model Principles?
•Influence how the system is attacked.
•Every model may be expressed at different level of precision.
•Best models are connected to reality.
•No single model is sufficient.
•What are the four basic principles of object orientation? Provide a brief description for each.
•Abstraction: (Finding the commonalities among the objects) determining the essential characteristics of an
object.
Def2: facilitates the easy conceptualization of real world objects, by eliminating the unnecessary
details of the object.
•Encapsulation: hiding data with the methods operating on that data
Def2: object interface ensures that all communication with the object takes place through a set of
predefined operations.
•Modularity: break complex system into smaller blocks that are each maintained independently.
•Hierarchy: is any ranking or ordering of abstractions into a tree-like structure. Hierarchy is not an
organizational chart or functional decomposition. Hierarchy is taxonomic organization. (Elements of the same
level of the hierarchy should be at the same level of abstractions).
•What is an object and what is a class?
•Object: is an entity with a well-defined boundary (that the purpose of the object should be clear) and
identity that encapsulates state (represented by attributes and associations) and behavior (represented by
methods, operations and state machines).
•Class: is a description of a set of objects that share the same attributes, operations, relationships and
semantics. Class is an abstraction that emphasize relevant characteristics and suppresses other characteristics.
•What is the difference between the two?
•Class is an abstraction definition of an object; define the structure and behavior of each object in the class.
The class services as template for creating objects. The class is the static description
•Object is a run-time instance of that class. Some objects represent real-world objects in the system context
and other objects are only software objects to support the design.
•What is an attribute?
•Attribute: is a named property that describes the range of values that may hold. (Class may have no
attributes)
•What is an operation?
•Operation: A service that can be requested from an object to effect behavior. An operation has a signature
which may restrict the actual parameters that are possible. The operations in a class describes what the class
can do.
•What is a class relationship? Give some examples.
•Relationship: is a connection between classes;
•Association: (may have arrow head for navigability): association between classes specifies a
connection among their instances.
•Aggregation: (hollow diamond at the aggregate end; may have arrow head for navigability): is a
special form of association that models a whole-part relationship between an aggregate and part,
destroying the aggregate doesn't necessary destroy the parts. “part-of”
•Composition: (filled diamond at the aggregate end; may have arrow head for navigability): is a
stronger form of association in which the composite has sole responsibility for managing its parts.
•Dependency: (always have navigability): is a weaker relationship showing a relationship between a
client and supplier where the client does not have semantic knowledge of the supplier “non-
structural”. “using relationship”. Change on the supplier may cause a change in the client.
2. •Generalization: (always have navigability): a relationship among classes where one class shares the
structure and/or behavior of one or more classes. In which a subclass inherits from one or more
superclass. “is-a”. generalization is the relationship while the inherence is the modeling representation
•Realization: (always have navigability): is a semantic relationship between two classifiers. One
classifier serves as the contract and the other agrees to carry out.
•What is Reflexive association?
•Reflexive association indicates one instance of a class has a relationship to another instance of the same class.
•When to use Composite relationship over attributes?
•Properties need independent identity.
•Multiple classes share the same properties
•properties have complex structure and properties of their own
•properties have complex behavior
•properties have relationships of their own
•What is Navigability?
•Navigability: indicates that it is possible to navigate from an associating class to the target class using
association. (can be modeled by using arrow head on the target end; the default is bi-directional)
•What is Multiplicity?
•Is the number of instances one class relates to one instance of another class. For each association,Two
multiplicity decisions to make, one for each end. Multiplicity answers 2 questions:
•is the association mandatory or optional?
•What is the minimum and maximum number of instances (links) that can be linked to one instance?
•Multiplicity is modeled using comma-separated of integer ranges. There is no default multiplicity (the
default is not defined multiplicity). Optional scalar is 0..1
•What is a Structured class?
•Contains parts or roles that form its structure and realize its behavior. Connector represents communications
paths among parts.
•The role modeled using rectangle; while a reference to external object modeled by dashed rectangle.
•What is an interface?
•A declaration of a coherent set of public features and obligations. It is like a contract between the providers
and the consumers of services. Interfaces are the key to the “Plug-and-Play”.
•Provided interface: the interfaces that the element provide to anonymous element.
•Required Interface: the interface that the element uses (requires) from other elements.
•The interface should have clear purpose. Classes may have multiple interfaces
•What is polymorphism?
•the ability to hide many different implementations behind a single interface. Interfaces formalize
polymorphism. Two elements are polymorphic with respect to a set of behaviors if they realize the same
interfaces. “The same behaviors but different implementation”.
•What is a port?
•Is a structural feature (it is created and destroyed along with its structured class) Encapsulates the interaction
between the contents of a class and its environment. Ports behavior is specified by its provided and required
interfaces.
•Ports Types: Service Ports, Behavior Port and Relay Port.
3. •What are the purposes of requirements?
•Establish main agreement with the client/stakeholder
•provide system developers with a better understanding of the system
•delimit the system
•provide a basis for planning the technical content of iterations.
•Basis for estimating cost/time
•define a user interface.
•What are the main artifacts of Requirements?
•Use-Case Model: describes a system's functional requirements in terms of use cases. The model serves as
contract between the customer and the developers. The model must be easy to understand
•Glossary:
•Supplementary Specifications:
•What is an actor?
•Actor represents anything outside the system (coherent set of rules) that interacts with the system
•What is the use case? List examples of use case properties.
•Is a sequence of actions a system performs that yield an observable result of value to a particular actor. A use
case describes what the system do (system behavior), but it does not specify how it does it.
•Use case has a set of properties that can be documented in the use case specification. Such as Name, Brief
description, flow of events, relationships, activity diagrams, use-case diagrams, Special req., preconditions,
post-conditions and other diagrams
•Use cases are not functional requirements list.
•What are the benefits of the use case model?
•Communication with end users.
•Identification of system users and behaviors.
•Verification that all requirements have been captured.
•In general, use cases concise, simple, and understandable by a wide range of stakeholders. Help synchronize
the content of the different models.
•What is the difference between a use case and a scenario?
•A scenario is an instance of a use case.
•What si the Glossary?
•Glossary defines important terms in the project.
•What is the Supplementary Specification?
•The nonfunctional requirements and functional requirements not captured by the use cases are included in this
document. Supplementary specification contains functionality (general to many use cases), usability,
reliability, performance, supportability, and design constraints.
•What is the purpose of the analysis and design?
•Transform the requirements into a system design.
•Evolve a robust architecture.
•Adapt the design to match the implementation environment, designing it for performance.
•What are the input and output artifacts?
•Input: use-case model, glossary, supplementary specification.
•Output: design model that serves as an abstraction of the source code; that is, the design model consists of
design classes structured into design packages; it also contains description of how objects of these classes
collaborate.
•What is the difference between analysis and design?
•OO Analysis goal is to understand the problem and to begin to develop a visual model; analysis focuses on
translating the functional requirements into software concepts.
•OO Design goal is to refine the analysis model and adapt the implementation and development environment.
•What is architecture?
•Architecture encompasses a set of significant decisions about the organization of a software system,
architecture decisions constrain design and implementation decisions, architecture decisions are most
fundamental and changing them will have serious impact; such decisions:
•the architecture has static perspective (selection of structural elements and their interfaces)
•dynamic (elements behavior and collaboration) perspective.
4. •Elements Composition into larger systems.
•Architectural style (patterns) guides the organization of the elements.
•Name and briefly describe the 4+1 views of architecture?
•Logical View: Analysts/Designers; Structure.
•Implementation View: Programmers; Software management.
•Process View: System integrators; performance, scalability, and throughput.
•Deployment View: System engineers; topology, installation, delivery and communication.
•What is the Designer role and skills?
•Role: defines the responsibilities, operations, attributes, and relationships of the classes, and determines how
to adjust (adapt) the classes to the implementation environment.
•Skills: Use-case modeling, system requirements, software design techniques, technologies with which the
system will be implemented, and understand the architecture of the system.
•What is a use case Realization?
•Describes how a particular use case is realized within then design model, in terms of collaborating objects. A
use case realization specifies what classes must be built to implement each use case. A use case realization in
the design model can be traced to a use case in the use case model.
•In UML, the use case realization can be represented using a set of diagrams that model the collaborations
(class diagram) and the interactions of the collaborations (communication and sequence diagram).
•What is the value of Use case Realization?
•Provides traceability from analysis and design back to requirements.
5. •What is the purpose of Architectural Analysis?
•Define a candidate architecture for the system based on experience gained from similar systems.
•Define the architectural patterns, key mechanisms, and modeling conventions for the system.
•Define the reuse strategy.
•Provide input to the planning process.
•In general, during architectural analysis an initial attempt is made to define the parts of the system and their
relationship, organizing these parts into well-defined layers with explicit dependencies , concentrating on the
upper layers of the system
•What is a package?
•A package is a general-purpose mechanism for organizing elements into groups. It is a model element that
can contain other model elements. Packages can be related to one another using a dependency relationship
(elements of a package import elements from another package); which implies that the changes on the supplier
may affect the client package, and the client package can't be reused without the supplier. (Circular
Dependencies should be avoided, make it acyclic).
•What is the Pattern?
•Pattern is a common solution for a common problem.
•What is the framework?
•Defines a general approach to solving the problem. It provides a skeletal solution, whose details may be
analysis/design patterns. (it is a micro-architecture that provides an incomplete template)
•What is a Layered Architecture? Give examples of typical layers.
•Layering represents an order grouping of functionality with the application-specific (only one layer) functions
located in the upper layers, domain functionality (one or more business layer) in the middle and the technology
specific functionality (deployment environment functionality) at lower layers.
•When layering, concentrate on grouping similar things, as well as encapsulating change.
•Typical Layering:
•Application-specific layer
•Business-specific layer
•middle-ware
•System Software
•How to model Layer?
•Using stereotyped packages “<<layer>>”
•What are analysis mechanisms? Give examples.
•Represents a pattern; these mechanisms show patterns of structure or patterns of behavior or both. They are
used to reduce the complexity of the analysis and to improve its consistency by providing a shorthand for
complex behaviors.
•Analysis mechanism used as placeholders for complex technology in the middle and lower layers.
•Examples: persistency, communication, routing, distribution, transaction management, Security and legacy
interface.
•What key abstractions are identified during architectural analysis? Why are they identified here?
•Key abstractions is a concept, normally uncovered in requirements, that the system must be able to handle.
•Sources of key abstractions: domain knowledge, requirements, glossary, domain model/business model. (will
reduce any duplicate effort between the analysis teams)
•Identified here because there is no need to repeat the identification work again in the use-case analysis.
•Analysis classes identified at this point will probably change.
•What is the purpose of use-case analysis?
•
6. •
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•What is an Analysis class? Name and describe the 3 analysis stereotypes.
•
•
•
•
•
•
•
•
•
•
•
•describe some considerations when allocating responsibilities to analysis classes
•
•
•
•
•
•
•
•