| Both sides previous revision Previous revision Next revision | Previous revision |
| 6000_case_study:0400_configuration:0500_business_objects_relationships [2022/08/21 22:47] – ↷ Page moved from docs:6000_case_study:0400_configuration:0500_business_objects_relationships to 6000_case_study:0400_configuration:0500_business_objects_relationships administrator | 6000_case_study:0400_configuration:0500_business_objects_relationships [2026/08/13 01:10] (current) – external edit 127.0.0.1 |
|---|
| {{tag>Manuals Case_Study Business_Objects Relationships}} | {{tag>Manuals Case_Study Business_Object Relationship}} |
| [<10>] | [<10>] |
| ====== Business Objects and Relationships ====== | ====== Business Objects and Relationships ====== |
| You need to carefully look at the requirements and identify the main business elements that the system deals with (business objects), relationships between them and rules according to which these objects behave. At this stage it is very important that you do not worry too much about how the system will look to the user and how the user will interact with the system. | You need to carefully look at the requirements and identify the main business elements that the system deals with (business objects), relationships between them and rules according to which these objects behave. At this stage it is very important that you do not worry too much about how the system will look to the user and how the user will interact with the system. |
| |
| So we start by identifying business objects and relationships between them. For clarity we will temporarily not consider some of the requirements – we will come back to them later after we have configured the core of the system. The requirements that we will not consider at this stage are the management of [[docs:6000_case_study:0300_library_app#Communication_with_members|communication with library members]] and the [[docs:6000_case_study:0300_library_app#Payments|credit card payments]]. | So we start by identifying business objects and relationships between them. For clarity we will temporarily not consider some of the requirements – we will come back to them later after we have configured the core of the system. The requirements that we will not consider at this stage are the management of [[6000_case_study:0300_library_app#Communication_with_members|communication with library members]] and the [[6000_case_study:0300_library_app#Payments|credit card payments]]. |
| |
| Some of the business objects are quite straightforward – if we carefully study the requirements we can identify the following business objects: | Some of the business objects are quite straightforward – if we carefully study the requirements we can identify the following business objects: |
| The above business objects and relationships are relatively obvious. Another business object is slightly harder to identify. | The above business objects and relationships are relatively obvious. Another business object is slightly harder to identify. |
| |
| If we look at the [[docs:6000_case_study:0300_library_app#Requirements|requirements]] we will notice that items can be of different types. What is the type of the item? It is clearly something that belongs entirely to the item, so it could be the attribute of the Item object. However, if we look at the [[docs:6000_case_study:0300_library_app#Item_types_table|table]] we will notice that there is some extra information associated with the item type, i.e. maximum number of loans, loan period and maximum number of renewals. Where does this information belong? If item type were an attribute of the Item object then this information would have to belong to the Item object as well. In this case every instance of the Item object would store the values of maximum number of loans etc. This is very impractical since according to the requirement in Error: Reference source not found.2 every now and then the library manager needs to change this information. If this information were stored in every instance of the Item object the manager would have to change it in every item that exists in the library instead of changing these values in one place! | If we look at the [[6000_case_study:0300_library_app#Requirements|requirements]] we will notice that items can be of different types. What is the type of the item? It is clearly something that belongs entirely to the item, so it could be the attribute of the Item object. However, if we look at the [[6000_case_study:0300_library_app#Item_types_table|table]] we will notice that there is some extra information associated with the item type, i.e. maximum number of loans, loan period and maximum number of renewals. Where does this information belong? If item type were an attribute of the Item object then this information would have to belong to the Item object as well. In this case every instance of the Item object would store the values of maximum number of loans etc. This is very impractical since according to the requirement in Error: Reference source not found.2 every now and then the library manager needs to change this information. If this information were stored in every instance of the Item object the manager would have to change it in every item that exists in the library instead of changing these values in one place! |
| |
| This means that the ''ItemType'' is an object in its own right and that the maximum number of loans, loan period and maximum number of renewals are attributes of this object. If a manager wants to change the values of these attributes she should just find the ''ItemType'' objects and change the values there. The ''Item'' object should therefore be related to the single ''ItemType'' object that it belongs to. | This means that the ''ItemType'' is an object in its own right and that the maximum number of loans, loan period and maximum number of renewals are attributes of this object. If a manager wants to change the values of these attributes she should just find the ''ItemType'' objects and change the values there. The ''Item'' object should therefore be related to the single ''ItemType'' object that it belongs to. |
| |''ItemType''|''Item'' object (these are multiple ''Items'' that belong to this ''ItemType'')| | |''ItemType''|''Item'' object (these are multiple ''Items'' that belong to this ''ItemType'')| |
| |
| {{simplenavi>documentation:6000_case_study:0400_configuration:0500_business_objects_relationships}} | {{simplenavi>.:0500_business_objects_relationships}} |
| |