Hello all, Im new at data modeling and i have the following problem
ABC Software Company
ABC Software Company develops and sells several off the shelf software products. The software products are sold on the basis of lease, or at a fixed price. The prices for these products can change from time to time. These products are ready made and can be installed at customer location. However to use it, the data for the software product needs to be implemented as per the customer requirement. Each product is developed and maintained by a group of software professionals identified by a separate name. Each product is intended to be deployed in specific environments only E.g. Windows platform, oracle database on windows, oracle database in UNIX, sql database in windows, java platform on Solaris etc., A fixed price is determined by the number of seats and size of the database. 5 seats and 500 GB database is priced differently than a product with 50 seats and 2 TB database. The annual maintenance cost that the customer has to pay ABC Software Company is 10% of the software product price if the customer is a domestic customer. However annual maintenance cost can change year to year. For international customer, the annual maintenance cost will vary based on which region in the world the customer is located. For software that is leased, there is flat pricing per year and per seat and annual maintenance charge is not applicable.
ABC Software Company has a customer relationship manager for each customer. There are currently only 5 employees in the company that perform the role of customer relationship manager and service a total of 15 customers. Customer relationship managers and other non-technical staff cannot fix defects. However the customer relationship manager can enter the defects and may be the subject matter expert on a specific topic of the software product.
Customers report defects on software products. The defects are assigned to be fixed to a group of individuals responsible for the product. However, only a single individual is responsible for the fix. Whenever a defect is recorded on behalf of the customer, detailed information about the defect, the program module it belongs to and the screen name is recorded. Sometimes customers provide screen shots of errors which must be stored along with the defect entry. Defects that are fixed will be moved to fixed status. All defects that are fixed are then assigned to be released in the software product sub release version. Sub release version is different from major release version. Major release version is usually the next release of the software with new functionality.
ABC Software Company would like to track which software product is installed at which customer including the software version and sub version number and the related deployment environment. There should be report to tell which customer has what products and whether it is leased or purchased. The report should also have the number of seats purchased. Customer Defects need to have the date planned to be fixed and what version or sub version it is was finally fixed.
The company also wants to record the severity of the defects. Each customer has multiple point of contact, but a defect is raised by only one person representing the customer.
Financial accounting is not in scope of this system.
I have attached the solution i have come up with but im still confised if i got the part of reporting a defect right. and how would i go about adding the annual maintanence setup?