Codebanking.com Bank your code here...
HOME REGISTER TECHNICAL Q&A GENERAL Q&A SUBMIT CODE SNIPPET LOGIN
Get More Traffic
 
 
UML Interview Questions
 
 
  What is UML?
  The Unified Modeling Language (UML) is a graphical language for visualizing,specifying, constructing, and documenting the artifacts of a software-intensive system.UML provides blue prints for business process,System function,programming language
statements,database schemas and reusable components.
   
  How many types of diagrams are there in UML ?
  Twist :- Explain in short all types of diagrams in UML ?
  There are nine types of diagrams in UML :-
  Use case diagram:
  They describe "WHAT" of a system rather than "HOW" the system does it.They are used to identify the primary elements and processes that form the system. The primary elements are termed as "actors" and the processes are called "use cases." Use Case diagrams shows "actors" and there "roles".
  Class diagram:
  From the use case diagram we can now go to detail design of system , for which the primary step is class diagram.The best way to identify classes is to consider all "NOUNS" in use cases as classes , "VERBS" as methods of classes, relation between actors can then be used to define relation between classes.The relationship or association between the classes can be either an "is-a" or "has-a" relationship which can easily be identified from use cases.
  Object diagram:
  An object is an instance of a class.Object diagram captures the state of classes in the system and their relationships or associations at a specific point of time.
  State diagram:
  A state diagram, as the name suggests, represents the different states that objects in the system undergo during their life cycle.Object change in response to certain simulation so this simulation effect is captured in state diagram.So basically it has a initial state and final state and events that happen in between them.Whenever you think that some simulations are complicated you can go for this diagram.
  Sequence diagram:
  Sequence diagrams can be used to explore the logic of a complex operation, function, or procedure.They are called sequence diagrams because sequential nature is shown via ordering of messages.First message starts at the top and the last message ends at bottom.The important aspect of a sequence diagram is that it is time-ordered. This means that the exact sequence of the interactions between the objects is represented step by step. Different objects in the sequence diagram interact with each other by passing "messages".
  Collaboration diagram:
  A collaboration diagram groups together the interactions between different objects to fulfill a common purpose.
  Activity diagram:
  Activity diagram is typically used for business process modeling, for modeling the logic captured by a single use case , or for visualizing the detailed logic of a business rule.Complicated process flows in the system are captured in the activity diagram.Similar to a state diagram, an activity diagram also consists of activities, actions, transitions, initial and final states, and guard conditions.But difference is state diagrams are in context of simulation while activity gives detail view of a business logic.
  Deployment diagram:
  Deployment diagrams show the hardware for your system, the software that is installed on that hardware, and the middleware used to connect the disparate machines to one another.It shows how the hardware and software work together to run a system.In one line its shows the deployment view of the system.
  Component diagram:
  The component diagram represents the high-level parts that make up the system.From .NET angle point of view they form the "NAMESPACES".This diagram depicts, at a high level, what components form part of the system and how they are interrelated.Its shows the logical grouping of classes or group of other components.
  Note :- The best way to remember all the blocks of UML is ”Serve cool SOUP during church ceremony” that covers State chart,Class diagrams,Sequence diagram,Object diagram,Use Case diagram,Package diagram,Deployment diagram,Collaboration
diagram,Component diagram:.
   
  What are advantages of using UML?
  Twist: - What is Modeling and why UML ?
  As the name suggest UNIFIED MODELING LANGUAGE.Modelling has been around for years, not only in software field but also in other trades like civil, mechanical etc. Example in civil engineering drawing the main architecture built of diagram is a model by
itself.Modelling makes complex and huge system to break up in to simple and discrete pieces that can be individually understood. Example simple flowchart drawing is modeling.
  There are two main advantages of modeling:-  
  Readability: - Representing your whole architecture in flowchart, class diagrams, ER diagrams etc makes your project more readable. Especially when programmer’s change jobs handover becomes easier. More the project is not readable more the dependencies.  
  Reusability: - After the system is more readable and broken down to pieces, it becomes easier to identify redundant and similar modules. Thus increasing reusability.  
  So why UML, well different language’s have different ways of coding and syntaxes. In order to bring all languages in one roof UML is in to picture. As the term comes in UNIFIED, it unifies all disparate languages in one roof so that can be understood by people who are working on some other platforms.  
     
  What’s the sequence of UML diagrams in project?  
  Twist: - How did you implement UML in your project?  
  First let me say some fact about this question, you can not implement all the nine diagrams given by UML in one project; you can but can be very rare scenario. The way UML is implemented in project varies from project to project and company to company.
Second very important point to remember is normally all diagrams are not implemented in project , but some basic diagrams are important to have in order that project is readable. When we talk about project’s every project have phases example (Requirement’s phase, design phase, coding phase etc etc).As every phase of the software cycle proceeds these diagrams come in picture. Some diagrams span across multiple phases.
 
  Normally following are different basic phases:-  
  Requirement phase (Use Case Diagrams , Activity diagrams)  
  Requirement phase is the phase where you normally gather requirement and Use Cases are the best things to make explanation of the system. In requirement phase you can
further make complicated Use Cases more simple and easy to understand by using activity diagrams, but I do not see it as must in every project. If the Use cases are really complicated go for a Activity diagram. Example CRUD (creates, read, update and delete) operation use cases have no significance for making activity diagrams. So in short the outcome UML documents from requirement phase will be Use Case and Activity diagram documents (Activity diagram documents will only be there if there are complicated Use Cases to be simplified).
 
  Just a small Twist: - Do I need all UML diagrams in a project?  
  Note: - This question is specially asked to know have you actually used UML. I have seen many guys trying to give some jack of all answer’s saying “YES”. Beware it’s a trap.  
  Not all diagrams are needed in project example: - Activity diagrams will only be needed when you want some simplified look of a complicated use case.  
  Design phase (Class diagrams , object diagrams , Component diagrams , Collaboration diagrams , Deployment diagrams, Sequence diagrams)  
  Design phase is the phase where you design your technical architecture of your project. Now again in this you do not use all UML documents of a project.  
  But the next document after the Use Case document will be the Component diagram. Component diagrams form a high level classification of the system. So after “Use Cases” just try to come out with a high level classification / grouping of related functionalities. This should be compulsory diagram as outcome of this document will form “NAMESPACES” structure of .NET project.  
  Ok now once your high level grouping is done you can go ahead with class diagrams. Especially from Use Case you get the “NOUNS” and “VERBS” which can form the class name and the method name respectively. From my point of view class diagrams should be compulsory in projects.  
  Object diagrams are not compulsory it depends on how complicated your project. Object diagrams show’s the relation between instances of class at runtime. In short it captures
the state and relation of classes at any given moment of time. Example you have class which creates objects of different classes, it’s like a factory. In class diagram you will only show that it as a simple class with a method called as “CreateObject”.But in object
diagrams actually you will show the types of instances creates from that object.
 
  Collaboration diagrams mainly depict interaction between object to depict a some purpose. I find this diagram to be more useful than Object diagrams as they are addressed for some purpose. Example “Login Process” which will use “Login object”, “User Object” etc to fulfill the login purpose. So if you find the process very complicated go for this diagram. I see as a thumb rule if there is a activity diagram which shows some serious complicated
scenarios I will like to go for this diagram inorder to simplify the explanation.
 
  State chart diagram is again created if your project requires it. If your project has some complicated start and end states to show then this diagram is most useful. Recently I was making a call center project where the agent phone pickup and hang state has to be
depicted. So my first state was when agent picks up the phone and the final stage was when agent hangs the phone, in between process was very complicated, which can only be shown by using state chart diagrams.
 
  Sequence diagrams are needed if some sequence is complicated. Do not confuse sequence diagrams with Activity diagram, Activity diagram’s map to a Use Case while sequence diagrams show object interaction in sequence.  
  Deployment diagrams are again not a compulsory requirement. It shows the hardware and software deployment of your system. If you really have leisure in your project go for it or if you want to make the client smile seeing some diagrams.  
  Implementation phase / Coding phase (Class diagrams for reverse engineering , Other diagrams for validity check)  
  In this phase mostly class diagrams are re-engineered with the source code. But other diagrams are also present for validity check example state chart diagrams will be used in case to check that the both activity between those states are following the proper logic. If
some things have to be changed then again there is iteration backward to the Requirement phase.
 
  Testing phase  
  This phase mostly goes for the testing department. I am not talking about preparing UTP plans but SITP plans. Where the testing department will look at all diagrams to prepare a
test plan and execute it. Example it will see the Use Case document to see the business rules, it will see the activity diagram and sequence diagrams to see the proper flow of modules. If some things are not proper there is iteration back to the Design phase.
 
  Roll out and close over phases.  
  All document just to recheck the things are proper example are all modules deployed according to the deployment diagrams, are all business rules in Use Cases satisfied.  
  Let’s revise following are the points:-  
  Not all diagrams are compulsory  
  The minimum diagrams according to software life cycle phases are :-  
  Requirement phase: - Use Case Diagrams Design Phase: - Component diagrams, Class diagrams Implementation phase: - All diagrams derived from pervious phases specially class diagram for reverse engineering. Testing phase: - All diagrams derived from requirement and design phases for verification and preparing test plans. Roll out and close over phase: - All document derived from Design phase and requirement phases.  
     
  Give a small brief explanation of all Elements in activity diagrams?  
  Action State :- It is a type of state that has an internal action and one outgoing event that completes the internal action.  
  State :- It’s a condition when following events occur:-  
  Object satisfies a condition.  
  Or performs a action.  
  Or waits for a event to happen.  
  Initial State:- It represents a state before any event occurs.
Final State:- Represents completion of an activity.
Transition Fork::- Denotes beginning of parallel path activities.
Transition Join: - Denotes merging of parallel path activities.
Control Flow: - Represents relationship between two states and actions. In short it indicates that an object in one state is entering some other state.
Object Flow: - Connects an object flow state to control flow or action state.
Object in State: - Indicates an object state after manipulation by multiple activities.
Decisions: - Defines if there are any condition’s in the path.
Swim Lanes: - Assigns responsibility to action states.
Signal receipt Shape: - Used to replace an event label on a transition.
Signal Send Shape: - Used to replace an event label on a transition.
Constraint: - Condition’s that must be maintained true in order the system is valid.
 
  2-Element Constraint: - It shows a constraint on two classes or associations.
OR constraint: - It shows an OR constraint on two classes or associations.
 
     
  Explain Different elements of a collaboration diagram ?  
  Classifier Role :- It classifies a role.
Association Role :- It shows relation between two classifier roles.
Multi-Object :- It used to show operation related to entire set of objects rather than on a single object.
Constraint :- Condition’s which must be maintained as true in order that system is valid.
2-Element Constraint: - It shows a constraint on two classes or associations.
OR constraint: - It shows an OR constraint on two classes or associations.
 
     
  Explain Component diagrams ?  
  Package: - It logically groups element of a UML model.
Component: - It’s the actual implementation or physical module of a UML system.
Node: - A physical system which represents a processing resource.Example PC or a host machine.
InterFace :- It specifies the externally operations of a class, component, package, or other element without specifying internal structure.
Dependency :- Shows relationship between two elements.
2-Element Constraint: - It shows a constraint on two classes or associations.
OR constraint: - It shows an OR constraint on two classes or associations
.
 
     
  Explain all parts of a deployment diagram?  
  Package: - It logically groups element of a UML model.
Node: - A physical system which represents a processing resource. Example PC or a host machine.
Component: - It’s the actual implementation or physical module of a UML system.
Node instance: - It’s a runtime physical instance of a processing resource.
Component Instance: - It represents an implementation unit that has identity at run time and can contain objects. A component could be contained within a node instance.
InterFace :- It specifies the externally operations of a class, component, package, or other element without specifying internal structure.
Object: - Instance of a class.
Composition shape: - It is a form of aggregation that indicates that a part may belong to only one element or life time of the element.
Communication: - How an actor Dependency: - Shows relationship between two elements.
2-Element Constraint: - It shows a constraint on two classes or associations.
OR constraint: - It shows an OR constraint on two classes or associations.
 
     
  Describe various components in sequence diagrams?  
  Object lifeline: - It represents the lifetime of object creation and its destruction. If the object is created or destroyed during the time period the diagram represents, then the lifeline stops or starts at the appropriate point. An object's destruction is marked with a
large X.
 
  Activation: - It’s time period during which actor is performing a action.
Lifeline :- This say’s that there exist some condition on the object lifetime.
Message: - It shows communication between objects that conveys information and results in an action.
Message (call):- Its same like message but also conveys some information and results in action.
All messages have same definition as the Message (Call) given above.
2-Element Constraint: - It shows a constraint on two classes or associations.
OR constraint: - It shows an OR constraint on two classes or associations.
 
     
  What are the element in State Chart diagrams ?  
  State: - It’s a condition when following events occur:-  
  Object satisfies a condition.  
  Or performs a action.  
  Or waits for a event to happen.  
  Composite State :- It has one or more substates.
Initial State: - It represents a state before any event occurs.
Final State: - Represents completion of an activity.
Transition :- Shows the change of one state to other.
Transition Fork: - Denotes beginning of parallel path activities.
Transition Join: - Denotes merging of parallel path activities.
Decision: - Indicates condition to move to different states.
Shallow History: - Represents the state last visited. When a transition to the indicator fires, an object resumes the state it last had at the same level as the history indicator.
Deep history: A deep history allows you to return from whatever sub-state, whereas a shallow one only remembers the initial state of a composite state.
2-Element Constraint: - It shows a constraint on two classes or associations.
OR constraint: - It shows an OR constraint on two classes or associations.
 
     
  Describe different elements in Static Chart diagrams ?  
  Package: - It logically groups element of a UML model.  
  Class: - They describe set of objects with similar structure, behavior, and relationships.  
  Data Type :- A data type is an instance of the DataType metaclass defined in the UML metamodel. A data type declares a type of class attribute. That type is available as a string you can include when you define attributes for other elements in a model.  
  Interface :- It specifies the externally operations of a class, component, package, or other element without specifying internal structure.  
  Generalization: - generalization is a relationship between a specific element and a general element, such that the specific element is fully consistent with the general element and includes additional information (such as attributes and associations). For example, the
classes Car, Bike, Cycle can all be specific elements of a more general abstract class element named vehicle.
 
  Binary Association: - It’s a relationship between two classes.  
  Composition: - A composition is a form of aggregation that indicates that a part may belong to only one whole and that the lifetime of the whole determines the lifetime of the part.  
  Dependency: - Shows relationship between two elements.  
  Utility : - Whatever Attributes and operations you define for a utility become global variables and procedures.  
  Subsystem: - It is a package that contains the contents of the entire system or an entire model within the system.  
  Parameterized class: - It is a template that describes a class with one or more unbound formal parameters.  
  Binding: - Binding is a kind of dependency that indicates a binding of parameterized class, or template, parameters to actual values to create a bound, or no parameterized, element.  
  Bound element : - Parameters of the parameterized class are bound to actual values.  
  Object: - Represents instance of a class.  
  Link: - Represents Links between objects.  
  N-ary Link: - represents link between n objects.  
  Meta-Class: - Whose instances are classes.  
  Signal: - Specifies stimulus between classes for which there is no reply. It is a generalizable element defined independently of the classes handling the signal.  
  Exception: - Signal raised because of bad execution.  
  Trace: - Indicates historical relationship between two elements.  
  Refinement: - Refinement is a kind of dependency that indicates a historical or derivation relationship between two elements with a mapping between them.  
  Usage : - Usage is a kind of dependency that indicates that one element requires the presence of another element for its correct implementation or functioning.  
  2-Element Constraint: - It shows a constraint on two classes or associations.  
  OR constraint: - It shows an OR constraint on two classes or associations.  
     
  Explain different elements of a Use Case ?  
  Package: - It logically groups element of a UML model.
Use Case :- It represents a set of events.
Actor : - Role played by an outside object.
Interface :- It specifies the externally operations of a class, component, package, or other element without specifying internal structure.
Communication: - How an actor Dependency shows relationship between two elements.
Extends: - Indicates that the elements come in parent child relationship where one element inherits other elements behavior.
Uses: - Here one element uses the other elements behavior.The main difference between Extends and Uses is a “Is a” and “Has a” relationship.” Is a “relationship defines a child parent relationship. Example “XYZ” is a child of “PQR”.”Has a” relationship defines an
aggregation relationship that “XYZ” has a “BLUE SHIRT”.
System boundary: - Indicates the system boundary of a Use case.
2-Element Constraint: - It shows a constraint on two classes or associations.
OR constraint: - It shows an OR constraint on two classes or associations.
 
     
     
     
     
     
     
     
     
     
 
 2009 codebanking.com      contactus@codebanking.com