aspose file tools*
The moose likes Architect Certification (SCEA/OCMJEA) and the fly likes Dreamcar Assgnment for Part II - Question regarding Business Domain Model Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Architect Certification (SCEA/OCMJEA)
Bookmark "Dreamcar Assgnment for Part II - Question regarding Business Domain Model" Watch "Dreamcar Assgnment for Part II - Question regarding Business Domain Model" New topic
Author

Dreamcar Assgnment for Part II - Question regarding Business Domain Model

Alex Pavlishin
Greenhorn

Joined: Aug 17, 2008
Posts: 9
In the BDM, there is a one-to-many relationship between Request and PurchaseOrder. Based on my understanding of the assignment, one Request will result in only one PurchaseOrder. So the BDM, in my opinion, is incorrect. Anyone else working on this assignment who feels the same way.

Also, can I indicate in my assignment that I think the model is incorrect and proceed with the solution based on my assumptions.

Any thoughts on this will be appreciated.

Thanks.
Erik Nyhavn
Greenhorn

Joined: Aug 25, 2008
Posts: 4
I feel the same way.

My plan is to write an assumption and stick with it throghout the assignment
Alex Pavlishin
Greenhorn

Joined: Aug 17, 2008
Posts: 9
I have another question regarding the business domain model. The model has a relationship between the DestinationMarket, CarModel and the different parts.

However, I feel that the DestinationMarket and CarModel have no meaning to the system. To me every different car part would be one more element in an Enumeration. As we add more parts, we add more elements to the enumeration. Every new Request for Parts would relate to any one part type in the PartTypes enumeration.

I don't want to tie a part type to a particular car model or a destination market since that seems too restrictive. It is possible that one part type could be used in multiple car models.

So, how are you guys addressing this? And thoughts would be appreciated.

Thanks.
Pratik Das
Greenhorn

Joined: Jun 28, 2008
Posts: 20
I have replaced the the three parts with a single class parttype but I have not used the enumeration. Using enumeration will entail changing the class model each time we add a new parttype.
Pratik Das
Greenhorn

Joined: Jun 28, 2008
Posts: 20
I feel DestinationMarket and CarModel are relevant since they could be attributes of your search for open requests and bids.
Qi Fang
Greenhorn

Joined: Oct 31, 2008
Posts: 7
Hi, friend. Could anyone tell me what multiplicity (ie 1 -> 1 etc) is assumed for the association between two domain object? Because in this assignment model, no multiplicity is marked between Request and Brake Pads, or between DestinationMarket and CarModel? I looked around the all tutorial on UML and no where to discribe this type association. could anyone kindly explain me on that?

Appreciate your help.
Ronald Wouters
Ranch Hand

Joined: Apr 28, 2005
Posts: 190
Hi,

in his book, "UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition" , the author Martin Fowler says the following:
The default multiplicity of an attribute is [1]. Although this is true in the meta-model, you can't assume that an attribute in a diagram that's missing a multiplicity has a value of [1], as the diagram may be suppressing the multiplicity information. As a result, I prefer to explicitly state a [1] multiplicity if it's important.

Therefor, I think the correct answer to your question is that one can NOT assume any kind of multiplicity. How to determine the multiplicity then you might ask ? Under normal (real world) circumstances I would suggest to talk to a business expert like a person who will actually use the SuD. Of course we can't do that for this assignment. However, in the SL-425 course of Sun (just google for it) they mention "enduring business themes" meaning in our case, you might want to search for normal auctioning practices on the net, read up on how they work, develop your own "business knowledge" on the subject at hand and try to use that knowledge to answer your question. The only other possiblity may be to study the use cases in more detail and deduce the answer from there. I know this is all a bit abstract, but hey as an architect you are assumed to be working on a birds eye, high altitude level anyway

Regards
[ November 01, 2008: Message edited by: Ronald Wouters ]


Sun Certified Developer for the Java 2 Platform
Sun Certified Enterprise Architect for the Java Platform, Enterprise Edition 5
Qi Fang
Greenhorn

Joined: Oct 31, 2008
Posts: 7
Thanks, Ronald for your comments. But I think this obscurity in assignment makes nonsense. what Sun is trying to test for? who is qualified as Sun certified 'guesser'?

OK let's stick to what the assignment 'as it is'. Based on the multiplicity between request object and brake discs object (n to n), I would assume the same multiplicity between request object and suspension and brake pad object. Built on this understanding, one request would contain multiple parts and therefore one request would result in mutiple bids and thus multiple po would be issued. This means Alex's assumption is not right? Is it?
Qi Fang
Greenhorn

Joined: Oct 31, 2008
Posts: 7
In addition to the obscurity on business domain model, I got lost for the obscurity on use case 2 as well. In use case 2 description, it states that review open bids is to be used by dreamcar rep, not by bidder, in response to 'an open bid request'. Why dreamcar rep cares about the OPEN bid? I didnt see the useage of this module by dreamcar rep at all, instead, I think bidder need to check this mudule before make his/her offer. Am I missing some points?
Ronald Wouters
Ranch Hand

Joined: Apr 28, 2005
Posts: 190
Built on this understanding, one request would contain multiple parts and therefore one request would result in mutiple bids and thus multiple po would be issued.


Consider the following: a conceptual or design class diagram shows a "static" model of the application. If you only look at this static picture, your reasoning above is correct. Based on your assumptions about the business domain model a request could indeed be for multiple different types of parts. However, ...
as any book on uml will tell you, the static class diagram only tells half the story. It is not because the domain model, based on assumptions, allows for requests with multiple types of parts, that that is actually going to be the case.
Equally important if not more so, is the dynamic aspect of your application, or how the system will actually be used. As we all know this is mentioned in the use cases or sequence diagrams. If you read again the "Post Request for Parts" use case, which provides enough detail to reach a solution, there can be only one conclusion. Unless the text of the use case is wrong of course.
Never separate the static view from the dynamic view of the story or you will get a different story all together.

Why dreamcar rep cares about the OPEN bid

I would say that's quite obvious: money !
The dreamcar reps know the time period and the price treshold associated with any request, the bidders don't. Remember that the stock inventory system can only predict one month in advance. If no bid should meet the required (by dreamcar that is) criteria, in time, they may want to lower, or in case of high competition among the bidders, raise, the criteria associated with a request.

Note to the sherif of this forum:

if you believe this is going in too much detail about the assignment, please feel free to delete this posting and send me a private message. Thanks.
Anton Golovin
Ranch Hand

Joined: Jul 02, 2004
Posts: 476
You're probably done with the assignment already, but i think that if you complete the intended purpose of the assignment with a solution that works, you'll be ok.


Anton Golovin (anton.golovin@gmail.com) SCJP, SCJD, SCBCD, SCWCD, OCEJWSD, SCEA/OCMJEA [JEE certs from Sun/Oracle]
Ronald Wouters
Ranch Hand

Joined: Apr 28, 2005
Posts: 190
In fact, I have just started with the assignment of Part II of the Dreamcar assignment. The only diagrams I have for the moment are some "agile modeling"-like manual sketches on a piece of paper.

Regards
Alfonso Amos
Greenhorn

Joined: Oct 30, 2008
Posts: 2
Hi all,

About the first question posted by Alex, here's a suggestion : maybe suppliers can make partial offers, for example, in a bid request of 500 brake disks, a supplier offers a price for 200 parts. So, if we allow multiple PO per bid request, the system can handle cases where a bid is handled by various suppliers.
The problem with this is that it will be very hard for the system to know who has the lower price, but the use cases indicate that a human will confirm this choice.

Anyway, what do you think about this ?
Qi Fang
Greenhorn

Joined: Oct 31, 2008
Posts: 7
You're probably done with the assignment already, but i think that if you complete the intended purpose of the assignment with a solution that works, you'll be ok.

We should be careful in making assumption about user request in the analysis phase when design a system. A design based on the misunderstanding to user's request is waste of work and have no value. As a technical designer, you should never try to ask business users to change their request or expectation, because all technology is living for support business, not business has to adapt for technology. Therefore, to clearly understanding the user request is critical in architecting app. In reality, business analyst has the responsibility to clearly communicate the user request to technical archtect and designer.


About the first question posted by Alex, here's a suggestion : maybe suppliers can make partial offers, for example, in a bid request of 500 brake disks, a supplier offers a price for 200 parts. So, if we allow multiple PO per bid request, the system can handle cases where a bid is handled by various suppliers.
The problem with this is that it will be very hard for the system to know who has the lower price, but the use cases indicate that a human will confirm this choice


Partial offers and shared bidder serves to support one request related to many po, but this assumption seemed so unusual in reality Does it?
Ronald Wouters
Ranch Hand

Joined: Apr 28, 2005
Posts: 190
Originally posted by Alex Pavlishin:
In the BDM, there is a one-to-many relationship between Request and PurchaseOrder. Based on my understanding of the assignment, one Request will result in only one PurchaseOrder. So the BDM, in my opinion, is incorrect.


I just thought of something. In fact the relationship is mentioned as : 1-* As you will know an asterisk in uml means zero or more. So, the asterisk could be correct in case no bids are made for a request meaning there will be no (read zero) purchase order.

Your thoughts ?
[ November 27, 2008: Message edited by: Ronald Wouters ]
Nithi Rajan
Greenhorn

Joined: Oct 30, 2005
Posts: 29
Originally posted by Alex Pavlishin:
In the BDM, there is a one-to-many relationship between Request and PurchaseOrder. Based on my understanding of the assignment, one Request will result in only one PurchaseOrder. So the BDM, in my opinion, is incorrect. Anyone else working on this assignment who feels the same way.

Also, can I indicate in my assignment that I think the model is incorrect and proceed with the solution based on my assumptions.

Any thoughts on this will be appreciated.

Thanks.


I too feel the same. And one more thing is the relationship between Bid and Purchase Order. I understand only the winning Bid is issued the Purchase Order. The loosing Bids are not issued any Purchase Orders.

So, a Purchase Order is always associated to a Bid.
But a Bid can be associated with a Purchase Order or not, depending on if it is successful or not.

So, the association between Bid and Purchase Order in the BDM is also in-correct. The BDM says a Bid is always associated with a Purchase Order, which is in-correct. Only the Winning Bid is associated with a PO.

BTW, I too have started working on this very same assignment from last week.
There are lot of useful conversations going on here. But I think there is no need to make it too complex by associating a Request to more than one part and letting the supplier making a partial Bid to the request.

Please share your thoughts Guys,

With Best Regards!
Nithi.


SCEA5
Arvind Tiwari
Greenhorn

Joined: Jun 23, 2008
Posts: 20
Dear All,

I am also working on the same assignment, I have following three questions.

1. How to show (class diagram/component diagram) that my design is extensible?

The BDOM is showing three classes (Brake Pad, Brake Discs, suspension) but we need to make the design extensible." with additional part types coming in later phases."

In my opinion, if there is one more part them there will be one more class added in the class diagram and there will one more master table (i.e. headlight master) in the database.
(Sorry I am thinking the implementation)

As per following comment to address extensibility but that violates the OO design, you should have specialized classes for specialized part.

"Pratik Das: I have replaced the three parts with a single class part type but I have not used the enumeration. Using enumeration will entail changing the class model each time we add a new part type."

2. Why we need to initialize all the part type object, All we need is the part specification in the request object and quantity?

3. For the 1st use case, are we going to have multiple part types in single request? Then only we can justify 1-* relation between request and PO but if the request will have single item then it is in correct.

Please give your thoughts

Thanks in advance.
Arvind Tiwari
Christian Suarez
Greenhorn

Joined: Feb 02, 2009
Posts: 7
I'm also working on the same project too..

1,- I use generalization for represent all the type of parts, because the design has to be extensible.
3.- I agree with Nithi on the sense that I think that there's a single request for each part type, I think that the BDM is incorrect, In my class diagram I have a 1-1 multiplicty between PO and Request.
Ronald Wouters
Ranch Hand

Joined: Apr 28, 2005
Posts: 190
Christian Suarez wrote:In my class diagram I have a 1-1 multiplicty between PO and Request.

Have you considered the following alternative flows/scenarios and their impact on this multiplicity :
  • No supplier is interested in the Request and therefor no bids are made for that particular Request (before the auction timeout period expires)
  • A supplier asks for a re-send of the purchase order that was already sent for this Request

  • The assignment only lists the basic flow / main success scenario for each use case. A robust solution must consider the alternate flows/scenarios also.

    Regards.

    Scott Soo
    Ranch Hand

    Joined: Oct 02, 2008
    Posts: 83
    Ronald Wouters wrote:
    Christian Suarez wrote:In my class diagram I have a 1-1 multiplicty between PO and Request.

    Have you considered the following alternative flows/scenarios and their impact on this multiplicity :
  • No supplier is interested in the Request and therefor no bids are made for that particular Request (before the auction timeout period expires)
  • A supplier asks for a re-send of the purchase order that was already sent for this Request

  • The assignment only lists the basic flow / main success scenario for each use case. A robust solution must consider the alternate flows/scenarios also.

    Regards.



    Hi Christian Suarez and Arvind Tiwari,

    Just some ideas:

    1. Isn't it great to have a solution which can mange one request with multiple parts?
    2. In real world, can a supplier or distributor provide more than one part types?
    3. Is there a need to constraint one request to only one part?

    Cheers!!
    Christian Suarez
    Greenhorn

    Joined: Feb 02, 2009
    Posts: 7
    Scoot.. According with the Post Request for Parts use case specification The system makes a bid request for A input part category, this does mean that we have only one Part Category related with a single Request, so in this case the system only can managed one request by part?
    Rodrigo W Bonatto
    Ranch Hand

    Joined: Aug 20, 2004
    Posts: 62
    I felt the same according with the Post Request for Parts use case description.

    Cheers


    SCJA, SCJP, SCJD, SCWCD, SCBCD5, SCDJWS, SCEA5
    Scott Soo
    Ranch Hand

    Joined: Oct 02, 2008
    Posts: 83
    Christian Suarez wrote:Scoot.. According with the Post Request for Parts use case specification The system makes a bid request for A input part category, this does mean that we have only one Part Category related with a single Request, so in this case the system only can managed one request by part?


    Hi,

    I hope I don't confuse you. There is no wrong or right answer. However, use case mostly specify the function requirements. As an Architect, we need to cater to non-functional requirements. From a design perspective, the final design and solution should be flexible and can cater to changes with minimal impact. Hence, an Architect can have a design which is adaptable to changes in an easier manner compared to one which can meet EXACTLY the functional requirments and have huge impact when there are changes due to the changing business needs. Of course, there is no ONE solution which can meet all needs. However, as much as possible, an Architect should come out with a flexible design to be able to cater to changes. For example, as mentioned, is it possible for a supplier to be able to supply more than one part types in the real world?

    Hope the above provide better clarifications.

    Cheers!!
    George Stevens
    Greenhorn

    Joined: Feb 05, 2009
    Posts: 1
    I also think the association between Bid and Purchase Order in the BDM is in-correct.
    Arvind Tiwari
    Greenhorn

    Joined: Jun 23, 2008
    Posts: 20
    Hi Guys,

    First of all thanks for responding to my queries.


    I am totally with Scott regarding first Use case and PO relationship and following is my view.
    A request can have more than one item (sub request) of same part which has same specification for different procurement date. In this case multiple PO will be issued to the winner.

    Christian:
    Could you please put more light in following statement, how you can use a generalized class to represent all the part types. As per OOD you have to go with specialized classes if the behavior changes, in our case there could be 1000 for part type in future and all may have different algorithms to generate the specification.
    (Specification: Complete part specification which will be given in the auction request for supplier)

    I use generalization for represent all the type of parts, because the design has to be extensible.


    I would like to discuss more on extensibility because that look biggest challenge to me.

    Thanks
    Arvind
    Christian Suarez
    Greenhorn

    Joined: Feb 02, 2009
    Posts: 7
    Hi

    While i'm working on my classes diagrams I realized that I need to express for example a List of objects and an Enumeration for the status of the Request and the Bids, do you think guys that It's correct to put a List and an Enumeration data type on my design, this datatypes are Dependents of the platform but I think that those types could represent the list of objects and a set of specific types in more abstract way
    Ashwin Pai
    Ranch Hand

    Joined: May 20, 2008
    Posts: 90
    Christian Suarez wrote:Hi

    While i'm working on my classes diagrams I realized that I need to express for example a List of objects and an Enumeration for the status of the Request and the Bids, do you think guys that It's correct to put a List and an Enumeration data type on my design, this datatypes are Dependents of the platform but I think that those types could represent the list of objects and a set of specific types in more abstract way


    Are you saying you would be showing a List class in your class diagram? I am not sure as to what you are trying to ask.
    You could possibly add enumeration for Status but to me that is too detailed design. Again its not wrong to do that. Just that its not necessary to get too detailed.
    I am not sure what you mean by
    I need to express for example a List of objects
    .

    HTH
    Thanks
    Ashwin


    The only way to make your dream come true is to wake up.
    Arvind Tiwari
    Greenhorn

    Joined: Jun 23, 2008
    Posts: 20
    Hi Gurus,

    Are you guys are planning to apply any core design pattern?
    Please share your ideas.

    Thanks,
    Arvind
    hagee doou
    Greenhorn

    Joined: Apr 12, 2009
    Posts: 8
    Why you guys think so much about the relationship between Request and BrakePads/Suspension/BrakeDiscs.
    This just a domain Diagram. not a class diagram.
    You needn't create a class for each domain model.

    You can use other things to implement the biz requirement. not only use class.

    It is to solve the biz requirement, noboby ask you to must use class to desc anything.
    Arvind Tiwari
    Greenhorn

    Joined: Jun 23, 2008
    Posts: 20
    Hi All,

    Passed part II & III.

    Thanks for all the help and support.

    Arvind
    A Amit Ranjan
    Greenhorn

    Joined: Sep 25, 2010
    Posts: 10
    -> When does the request is considered closed?

    ->In the use case regarding Issue of PO : Dreamcar representative reviews all bids to ensure that the most valid bid has been chosen.
    Can he change the bid that is selected during the bid review (Review Open Bids)
    Alberto Requena
    Greenhorn

    Joined: Apr 18, 2010
    Posts: 3
    Hi All:

    I have an important question concerning relationship between Request and different part components.

    I've used generalization in order to provide extension for future new parts. Taking into account this approach, I've made a relationship between Standard Component (generalized class) and request instead of with brake pads, suspension and so on.
    From my point of view, is correct even thought is not linked requests with different part component directly just like DM does.

    Any advice of this approach?

    Let me know whether I'm breaking rules of this forum...
    Rajan Choudhary
    Ranch Hand

    Joined: Mar 17, 2011
    Posts: 196
    Hi,
    Can anyone explain me "Review Open Bids" use case? It's not clear to me. Rep searches for open bids is fine fine but what do we mean by "selects one of interest"?
    And then next point, system responds with all bid requests relating to selected bid request. What doe it mean? What exactly is the representative trying to do here? Is he approving the open bids to be valid so that the bids are ready to be seen by suppliers? Please elaborate little bit.
    Joao Bosco Jares
    Ranch Hand

    Joined: May 13, 2011
    Posts: 44
    Ronald Wouters

    Wrote:

    The assignment only lists the basic flow / main success scenario for each use case. A robust solution must consider the alternate flows/scenarios also.


    I am totally with Ronald, but there is a question: Alternative flow must be present in realization diagrams or just to support the robust solution?

    Regards!
     
    Don't get me started about those stupid light bulbs.
     
    subject: Dreamcar Assgnment for Part II - Question regarding Business Domain Model