Introduction
Project oriented development is the innovative approach in the sphere of software development. Originally, its main aim is to reduce the time of the development, decrease the number of mistakes and resources, which are required for the development of a single project. The current project will be related to the marketing strategy of a video rental shop. Taking into consideration the fact, that the software, which is currently used in this organization, is outdated, and requires an essential upgrade, there is a strong necessity to expand the existing software basis by elaborating principally new and faster systems.
Problem Definition and Requirement List
The problem, which is faced, is associated with the development of a new project, based on the examined and checked system. The fact is that the trading system and the system of accountability of the production fully relies on the software system, which is outdated and requires serious improvement, with providing additional functions and features, which would allow providing an extended range of services o the customers.
Problem Definition
The current software maintains the records of the members NVR has, the DVD stock it rents out and the borrowings/returns by members. It also provides a number of management reports which are only available to the owner of NVR and the shop manager. There is a strong necessity to update the software system, nevertheless, it is preferred that the system was created from the beginning. The database of the DVD movies, offered by N Video Rentals, should be saved and transferred to the new software system with the possibility of extension.
The system should be equipped with an optical system of reading the bar codes, and the further transmission of the data to the database. Moreover, the new system should be capable to proceed with the accountancy of the visitors and proceed the data on the rented movies, the period of the loan and the history of previous borrows. The problems, which are associated with this feature, are generally regarded to be the issues of proper accountancy, and timely, as well as correct update of the database.
Another feature, which should be available in the extension of the offered movies. Originally, the management of the NVR is planning to extend the existing range of movies with classic and art-house stripes. Taking into consideration the fact, that these are the categories of the movies which are less popular than traditionally borrowed movies, nevertheless, they will be more expensive, and the maximum rental period will differ from the rental period of blockbusters.
Requirements List
Originally, it should be emphasized that the current system does not record the history of which members hired which DVDs in the past. NVR currently has no reservation system for DVDs. Both of these features would be desirable in a new system. Moreover, a thorough account of the existing choice should be performed, with the division of the movies into categories. These categories should entail the genre of the movie, and the age category, as movies with parental advice categories 12, 15 and 18 should not be rented for younger customers.
The system should provide the opportunity for accountancy of the existing customers. The fact is that this system is rather complicated for the customers, as it imposes restrictions for the issues of membership, rental of some categories of movies and the terms of using the offered services.
Taking into consideration, that object-oriented development requires a particular set of elements, which are interacting with each other, all the components and requirements of the described system should be properly joined for the correct interaction. Thus, Britton and Doake (2004, p. 319) emphasize the following statement on this consideration:
In OOP, each object is capable of receiving messages, processing data, and sending messages to other objects and can be viewed as an independent ‘machine’ with a distinct role or responsibility. The actions (or “operators”) on these objects are closely associated with the object. For example, the data structures tend to ‘carry their operators around with them’ (or at least “inherit” them from a similar object or class).
Table 1 List of requirements.
The represented list of requirements is the basic matrix of the necessary functions. Originally, the management of the N Video Rentals will require additional functions, which may appear in future. Thus, there is a strong necessity to take into consideration further changes and modifications and provide the system with the capability of further extension.
Case Analysis
The analysis of the case should touch upon the matters of the project development, and the particularities of the Video rental accounting system. Originally, these solutions will be related to the technical aspects of project development. First, the management of N Video Rentals should provide a clear technical assignment for the implementation of the requirements into the project. The basic requirements have been already listed, nevertheless, such aspects as restricted access, encryption of the data and possible confusions that were faced while resorting to the previous system should be discussed.
The Use Case Analysis, in general, is represented on Chart 1.
Databases
The task of the highest priority for the project development is the creation of the database. Originally, the previous software system had its database, consequently, the task is simplified essentially. Nevertheless, there is a strong necessity to adapt the data to the new software, create the new links among the databases, and provide the capability of adding supplementary databases, which will be responsible for storing the information on customers, the history of their previous orders and their membership. The difficulties, which will be faced, are generally associated with types of connections. Anglin (2007, p. 239) states the following notion on this fact:
Encapsulation is one of the features of the object-oriented approach that has the most meaning for relational databases. Unlike a traditional relational implementation where data is manipulated by external applications, the object technology approach moves the data access out of external applications and associates them with their base objects. Encapsulation makes the data and methods private within an object. Developers can modify encapsulated data and methods without disturbing other portions of the application, as long as the external interfaces remain unchanged.
From this perspective, it should be emphasized that the implementation of the connection principles should be paid particular attention, as it is the basis of the further step – the navigation system and database search.
Navigation System
The main task here will be to avoid any confusion in the matters of the hierarchy of the objects. As Cook and Semouchtchak (2004, p. 129) emphasize in their research:
Some confusion exists about what is inherited in an object hierarchy. In simple terms, data structures and behaviours are the only things that are inherited. Inheritance has nothing to do with the “navigation” of data records.
Consequently, the data navigation issues, which are considered to be the key in a similar project should be based on several premises:
- Navigation on tags
- Navigation on movies
- Navigation on customers
- Navigation on genres
- Navigation on age category
Consequently, there is a strong necessity to solve the navigation problem before the project will be launched, and the testing period should be mainly focused on the navigation system and the problems, associated with the database search.
Following chart 2, the navigation system should look the following:
This hierarchy of the navigation system is strict enough, nevertheless, all the databases are interconnected, and, in the case of necessity, the search and navigation may be and should be performed on several databases (for defining the genre of the selected movie, its age category, and data on the customer, who might have borrowed the movie). Moreover, the system should be designed with the opportunity of providing additional databases and creating search interconnections.
Activity Analysis
The activity, which will be related to the development of the project, should be started from the analysis of the existing software system. Originally, it may entail code errors, consequently, if complaints were registered, there is a strong necessity to find those errors, analyze them, and create a new system taking into consideration all the previous mistakes, drawbacks and faults. Particular attention should be paid to the implementation process. Originally, it entails the testing of the software, incorporation of the new system into business activity and lives test with the subsequent technical maintenance.
Object Analysis
The analysis of the object presupposes the study of the working project and the analysis of the results, gained after testing the newly implemented system. Originally, the implementation of the project should be arranged in several steps. The actual scheme of project implementation, with the necessary analysis points, is represented in Chart 3.
Class Diagram
A class diagram is generally regarded to be the conceptual part of the project development. As Lunt (2006, p. 593) emphasizes in his research, the object oriented analysis and the design of the class diagram are the central aspects of the link between objects in the hierarchy of data structure. Thus, the following notion is stated:
Enrollment is an associative class, also called a link class, which is used to model associations that have methods and attributes. Associative classes are typically modelled during analysis and then refactored into the initial conceptual class diagram during design. The on waiting list association is unidirectional because there is not yet a need for collaboration in both directions.
From this perspective, the Class diagram will be the following
Data Dictionary
The data dictionary is the defining object for the definition of the project development frameworks and database properties. As Hruby (2007, p. 69) emphasized in his research various methods and attributes may be presupposed by the same Data Dictionary:
Deliverables of the Data Dictionary have constructors, which are methods describing how to create a deliverable, and quality-assurance methods, such as completeness and consistency checks. Deliverables have numerous attributes: name, kind, description, references to other deliverables, project, subsystem, increment identification, responsible developer and other attributes such as who created and modified the deliverable and when.
Input Screen Design
The interface of the software should be ascetic from the perspective of the design, nevertheless, it should be multi functional and entail all the necessary fields and spaces for entering and searching the necessary information. Originally, the best look of the search system design is the following
Taking into consideration the fact that designing the interface is one of the latest stages of software project development, it should be emphasized that the fields and the spaces will be added or eliminated after the complete version of the database and the software system. Originally, the design process is featured with the selection of the colour gamma and the location of the buttons, fields and functions, thus, there is a strong necessity to consult the employees of the Video Rental Office, which functions they would like to see in the interface, where the buttons and fields should be located and in what order.
The final design will be agreed upon with the technical director of the N Video Rentals, consequently, the variant represented on the image may be regarded as the temporary variant. As for the Easter Eggs, which are sometimes implemented into the interface structure, it should be emphasized that this is up to developers, whether they will desire to share some hidden features of the software system.
Conclusion
Finally, it should be emphasized that the project-oriented development of software systems should be arranged with close cooperation with the organization, or business structure, which will be the main user of the system. All the aspects of business performance, design and functionality should be discussed with managers of the company, for the developers of the project knew for sure all the requirements to the functionality of the software and could provide the proper technical solution of the set problems. As for the matters of technical requirements, it should be emphasized that the previous versions and similar projects should be analyzed to avoid possible mistakes and use potentially successful solutions
References
Anglin, J. M. (2007). Word, Object, and Conceptual Development. New York: W. W. Norton.
Bergman, L. R., Magnusson, D., & Khouri, B. M. (2005). Studying Individual Development in an Interindividual Context: A Person-Oriented Approach (Vol. 4). Mahwah, NJ: Lawrence Erlbaum Associates.
Britton, C., Doake, J. (2004) “A Student Guide to Object-Oriented Development” Butterworth-Heinemann.
Cook, J., & Semouchtchak, V. (2004). Lean Object-Oriented Software Development. SAM Advanced Management Journal, 69(2), 12.
Hruby, P. (2007) The Object-Oriented Model for a Development Process. Management Journal, 125(7), 14.
Lunt, P. (2006). The Scoop on OOP. ABA Banking Journal, 87(7), 66.