punjabtechnicaluniversity.blogspot.in
Twisted Question: - 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.
Note: - If you want to have a detail about software life cycle look out for chapter “Project Management”.
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 seenmany 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.
Below is a sample figure which shows all the documents in relevant phases.
Phase mapping with UML documents
0 comments:
Post a Comment
North India Campus