Sun Certified Enterprise Architect Assignment
The Sun Certified Enterprise Architect(SCEA) consists from Sun consists of 3 parts
a) Objective questions and answers
b) Assignment
c) Essay
The details can be found here Sun Certified Enterprise Architect . The assignment is one of the challenging parts. I had prepared for examination way back in 2004 and had prepared some notes. I am trying to dig up the notes from my old cd and today I found a document which helped me in clarifying my doubts on Part 2. I am not posting the solution but only some questions and answers which will help you understand the assignment better.
Q. I am using the ‘Fast Lane Reader’ pattern for doing the flight searches therefore I am not using the ‘Flight’ entity bean .
My question is that since the ‘Flight’ entity bean doesn’t have any dependency relationship with any other component in my ‘component diagram’, should I show it in the component diagram.
A. As per your question, its really your call whether you want to show that in the component diagram or not.If there is a context in which you want to show this component then it makes sense, else a hanging component won’t have any important. As you said you are using ‘Fast Lane Reader’ pattern for flight searches and not using the Flight entity, is there anywhere else do you have to use Flight entity bean for any other purpose?
Think these scenarios:
a) Are you using CMP for persistence? If yes are you showing each and every individual component ( derived from class diagram) on your component diagram.
b)If you are not using CMP for persistence, do you think do you need Flight entity bean for some other read only purpose, if yes then make the call should you show that or not?
Q . a)You mentioned that you did not change BDM, that means i hope you did not change any existing associations, relationships or introduced any new classes inbetween existing classes. am i right?
Response) Yep you have partially guessed right, i did not change any existing association and relationships. The way i defined the different term like flight, segment, seats , there was a scenario where i have to introduce a class in between.
b) “ofcourse you must have added new classes for extending BDM”
Response) Yep thats correct, i did introduce more classes around the BDM
c)”upto what level of classes you had in your class diagram? i.e. only business entities? or did you have service classes(EJB), DAO’s, DTO’s,etc?”
Response)I think Class diagram should not go more in implementation, should revolve around business entities and if you follow Cade, you might add workflow kind of service classes. I did not had DAO or DTO in my class diagram.
d)”To address QoS issues what did you do in your assignment? “
Response)You can address different points like “architecture type ( local or remote), kind of travel agent application and what design you might want to have for that, various design patterns that you will introduce and how they will benefit you in terms of QoS among others.
e)”Upto what date you can book the flight?for ex. upto one year or any given day?”
Response) I never saw this requirement in the assignment to consider the date or so? What i suggest is dont bother about feel good requirements. Dont go overboard.
f)”How did you calculate price? if a flight goes from A-C via B. is it A-C price or sumup of A-B and B-C price?”
Response) First of all i can’t really tell you what i did for pricing but i can surely give you some pointers for you to think about for eg
i) It will depend how you have defined your flight and segment
ii) Then think on these terms, lets say Atlanta to San Jose is available through 2 routes and they are “atlanta to dallas to san jose” and the other one is “atlanta to chicago to san jose”. Then what do you say which will be more appropriate for any airline or to FBN( as there is nothing concrete in the requirement), should the price of atlanta to sanjose should be equal for both routes, will it be profitable proposition to any airlines.
Question) You say you did not change the bdm. My question relates to seat reservation. Can you give me some tips on how you managed this part of the domain model. Without changing the bdm constraints etc, the only way I can see in tracking seat reservations is to have an additional concept between itinerary and flight as the one to one between segment and flight does not allow the segment to track the reservation i.e. a flight cannot have multiple segments.
Response) You are on the right track as you talked about having an additional entity/concept to track the seat reservation , but a lot will depend on how you describe the term segment, flight. I did have an additioanl entity to manage the same but i cant disclose where i introduced the same.The key to introduce this entity/concept lies in your definition.
Question) I have a question. In your assignment departure date/time and arrival date/time were part of Segment or Flight class?
Response) It all depends on your design and how you have defined the flight and segment.Either one of them can have these attributes but the key is how you have defined them. My class diagram did not have any attributes and methods, but i did describe the purpose of each classes in the diagram and document which i had submitted.
Q . Well i created all the sequence diagrams for the web based system and just 1 seq diagram for the travel agent application. The way i designed was that the business tier was same for both the web based and travel agent application, and then created 1 generic seq diagram for travel agent. I only showed couple of classes for the user interface side and mentioned that the same business tier will be used as for the web based system. Adding travel agent application as alternate flow would really complicate the diagrams a lot, thats my point of view, theres no harm in doing that but its your call.
Question) When you draw sequence diagrams, did you mention the MVC pattern related classes (servlet, controller, dispatcher etc.) in each sequence diagram? I hope it is not needed. How did you avoid (abstracted) them in your sequence diagrams.
Response) Yeah my sequense diagrams were for web app only and i did showed the components which were present in my component diagram, like controller etc.I dont think there is any hard and fast rule, but the point is UML digarms should be correct and they should fulfill the requirements, may be one can combine all these components as 1 and put some comment out there.
Question)Did you group the classes by name spaces (packages). If so how did you show them on class diagram. I can show that in a package diagram. But thinking of avoiding package diagram.
Response) I did not show the packages.I just followed the BDM and placed them in the way where it doesnt look confusing.
Question)Isn’t it enough to show business model in class diagram. Do we need to add all web tier classes as well in the class diagram?
Response) I did not add any technology related classes except some service classes, followed the Facade.
Question) Did you have a different set of sequence diagrams to prove that your design works for thick client as well?
Response)Nope i just have one generic diagram for travel agent application
and just added some comments as the business tier was same in my design for both the web app and thick client.
Question)Did you assume the existance of some SLSB in milage system to show in the class diagram? If no, how did you represent this component in class diagram?
Response)I think that you have to design, since you cannot modify that system as such, so think how you can access that system and then add that class in there.Make some assumptions.
– The phrase “Customer selects seats” can have several meanings depending upon your assumption.
for example
a) Can a customer book seats for more than 1 passenger like his/her family members?
b) That phrase could also mean like that customer has to select “seats” for every part of the journey and that will depend how you have defined the segment and flight
c) will you hold the seat even if you have not paid for the itinerary?
So basically take it from your assumptions and dont worry too much about seat number ( this is just an identifer for the seat) but you need to get your assumption and definition of various terms consistent.
Response) i dont think you need to go in that kind of detail, you can provide a single dao and have some comments to it to convey your design.
Question) In case of both web client and thick client , Did you just specify that each will have seperate controller with a appropriate stereotype ?
Response) If you are referring to front controller, my travel agent application design interaction was directly with business tier so dint had that design for thick client.
Question) I assume a segment means from one city to another city without stopover.Am i right? what do you mean by leg? I think one flight can serve one segment and same flight or another flight can serve for another segment, is that called leg?
Response) That is not the definition i used for segment. There is no 1 correct design, its all depends upon the assumptions you make and then be consistent.

