I also received the Factory Homes assignment. Please correct me if my understanding about the business problem and use cases are wrong.
Before started selecting component,
customer has to begin with CompletedDesign instance(with composition of product,which is house) based on the existing housestyle chosen,
UC-1. Select the component (search component catalog use case),
UC-2. Add the component(once wall,roof availability and its combinations are validated) to selected house design.
UC-3. Once the base components of each product(house) association with CompletedDesign is done, customer will say “completed”. The system will calculate total cost for the whole design with basic features(plumping,heating) included. The total cost should not be exceed the indicative cost which customer specified at the beginning of the house design(?).
In UC 1, "Systems responds with the product detail and availability/applicability of the product, based on the current house design”. My understanding is Inventory System will retrieve the component details(size,price,etc) for the selected one.
Accessories/components are mentioning wall,roof,etc. A House should have at least basic components with one house style chosen.
Valid components for house styles and accessories/components(wall,roof,etc) and will be checked against ISM webservice. ISM just holds business logic and components and house styles would be persisted in DB.
In UC3, “required features as necessary (heating,plumping and so on) to arrive at an indicative cost”. Indicative cost is specified by customer at the beginning of the house design.
There is no use case mentioned where the customer is initiate (new registration "CompletedDesign" request) the house design. Please clarify.
In NFR, There is no constraint specified on development time and cost allocation for the design. Can I make assumption like this design should be high scalable, unlimited users in future(at presently 200 concurrent users maximum)?. Desired technology to meet NFR is
JSF,JPA,EJB3 combinations.
Please share your inputs and experience.
Regards,
riyaz