Hi Guys, Please treat this as urgent and reply me. I have been selected for telecommunications project and soon I will be starting now my problem is that I have done UML before but in this case I am a bit confused. Situation is that The mobile user talks to my Servlet on Web Server to get his bill details, Activate voice mail etc How do I start with the design. What all diagrams this design should have? Just the use cases or all the diagrams? My confusion is that if I had a normal java class I could have made use cases and class diagrams with classes like geBillInfo() etc but in this case it is a Servlet and Servlet has only one method that is doGet() or doPost() in which I have to do all the JDBC stuff? Please any one with prior telecom experinece help me out of this situation. I have been losing sleep over this ? If you can send me the diagrams I will consider this as a VALENTINE GIFT. Or any kind of inputs as to how should I start the design what patterns should I use are welcome. Damsel in distress, Monica
Monica, Firstly work on a "conceptual model" of your problem domain. See Fowler's Distilled UML as an example. Your conceptual model will flush out your Domain objects e.g. MobileUser, Bill, Services (VoiceMailService is a subtype) etc.. If you opt to use the MVC pattern, then you need some sort of <<controller>> class to coordinate the workflow of your app. e.g. your controller class "MobileRequestHandler" can only service requests "ActivateService", "GetBillDetails" etc.. The "MobileRequestHandler" is only by chance a servlet. The servlet API is an enabler, not a specification of your app. Or in UML terms, "MobileRequestHandler" has a dependency on the "Servlet API". Check out this article for some ideas. And Happy Valentine's Day. [ February 13, 2002: Message edited by: Pho Tek ]
Pho, Thanks a ton, That link is really usefull. Pho, Tell me one thing how do I get started in the sense that I have a Servlet which will do all the stuff...ok let me explain a bit more detail and please please tell me step by step if it was u as a designer how will you start with it and what do you think how many use cases will be required and other than that which other diagrams will be required. See the project goes like this : A mobile user logs on a http request is sent to Servlet on Web Server requesting authentication and after servlet has authenticated the user, it sends a a main menu to the user, then the user can choose menu options like get me the bill info or activate global roaming etc. 1) Do you think that for each and every menu item I should have servlet? 2) How does my design go about it like have a use case for each and every possible request ? 3) if I make a class diagram what shall I show coz I just have one method in servlet and I am not using helper classes i.e. all my logic will be in doGet() or doPost() is that the right way? 4) What all diagrams should be made for this ?
Pho, I could have done some reading on this myself but I really donot have much time....PLEASE HELP ME BEFORE I AM IN TROUBLE.
Thanks a ton for Valentine wishes... Eagerly waiting for your response... Monica
Hey Guys, Come on.... Be sweet like Pho and help me I know many of you guys out there know the solution to my problem. It is just a request as I hardly have any time left with me.. I will really Appreciate if you can lend me your intelligent brains for this problem... Monica
Hello Monica, I will try my best to give you some information based on the things you had told in this message. First thing is we are talking about mobile applications, Where time is surely a most important criteria. So considering that I think it best to have less number of classes than loosing time in generating several objects and using it.
I feel a single servlet is a fine choice, but make sure if your application goes very big then I do not recommend it. The number of use cases, should be more or less equal to the number of scenarios. I do not think it is a good choice to have one use case for every menu item. The process * Should have some use case diagrams, where you show the different scenarios that happen from the perspective of the user ( not something that happens within the application). * Try to come up with a risk list after analyzing what all you must deliver before some one expects something done by you at a certain point of time. This can be one of the most driving feature that I had experienced in short time projects. Concentrate your thoughts on the high risk elements. (Refer to Larman book for risk list details). If there is a technical challenge please do a small prototype, it is worth doing it. * Make sure you identify the generic pieces like reporting error, logging..., as these will be used all through your application and so it must be at least be prototyped (atleast make the interface). This can lead to coming up with several grouping of classes, do not decide on the group names but make sure you note it down, no matter you think it was a wise or bad choice as it helps you later. * Make sure you have a Domain class diagram, which abstracts all the conceptual classes of your application. (this is where u normal end up doing use case realization through sequence diagrams to identify the abstract classes) * Take each high risk scenarios, come up with the domain model then start you class diagram (do not get deep into it, make it from the conceptual perspective). * Any high risk workflow, like process like call waiting must have an activity diagram. It really helps you identify the hidden aspects of the application. * Have the design patterns catalog in front of you while heading for class diagrams, it helps you to see if any design pattern will make a good fit. * Code development can start simultaneously at this point. * Once you are at this stage then it is normally a iterative process. The above process is not 100% right, but I belv. at this short point of time in your case I will take up steps something similar to what I had said above. Hope it helps. Please let me know if you have any questions.
Hi Ramakrishnan and Ramdhan, Thank you so much. Ramakrishnan, thanks a lot for writing a long reply.. I really Appreciate it. I will go through these steps one by one and hopefully do meet the expectations of my project leader. RamDhan, Thank you very much for these links allthough I have not gone through it but am sure it will be very usefull...As far as return gift is concerened trust me my God will give that to you guys as a blessing Any more inputs especially from guys who have done telecom project is most welcome... Thanks a ton both of you, Monica
(1) Check out Jim Conollan's Building Web Applications with UML which can help out some with the "where do I start" problem. (2) Get help. Tell your boss flat out that you've not done this and that you need some guidance from someone who has. Find a good consultant from your application server vendor or a third party like Martin Fowler's ThoughtWorks to explain the process to you and mentor you in it. I don't care how many links and books you read -- if you've never done this before you have a VERY poor chance of doing it right. You WILL save money and time by getting help from someone who has done this before. Kyle