Object Oriented Principles Case Study Samples
Type of paper: Case Study
Topic: System, Banking, Design, Development, Software, Polymorphism, Inheritance, Behavior
Pages: 7
Words: 1925
Published: 2020/09/10
Introduction
Systems development is an important part of solving a business problem. It is important to understand the problem that is being solved and have ways in which the solution will follow the principles and procedures for the solution process. If there is no due diligence in the development of an information system that will solve a given problem, it will mean that there will be problems with the alignment with the business. The solution will not align well with the system and there will be issues and problems that will arise with the development of the system. There is a need to ensure that there is better understanding of the requirements of the system and the solution it will offer to the business. This paper will focus on software design analysis for a banking institution that will manage the banking processes. It is designed to show the ways in which the banking process will be carried out in the design of computer-based system. The paper will then focus on the development and assessment of the banking system.
1a) Application of principles of good practice
It is important to apply the principles of good design and software development procedures which will ensure that there is an understanding of the design. There are several approaches that are used in designing software systems. The most efficient and reliable one is that of object oriented design. It is important to understand the requirements and the practices that will befit a good design. One of the best practice that will be followed in the design is that of Open-Closed practice. It will be important to have ways in which the system will be expanded in the design process. It will enable the banking system to be expandable in the future. It is important to understand the need for systems to be expanded in the future.
Another best practice that will be useful in the development of the Single Responsibility Principle (SRP). It will enable the system to be changed in a way that will not affect many modules. If there will be a change that will be effected in the system, the change will take place in one functionality of the system alone. It will not introduce new changes to many places in the system. As the system will be used in the management and processing of banking transactions, it will be important to have future changes which will not affect many parts of the system.
Another key principle that will be applied in the design of the system will be Don’t Repeat Yourself. It will enable the system to eliminate repetitions in the aspects of the design. If there will be repetitions in the functionality of the system, they will be eliminated. It is one of the ways in which the system will be lean and yet have the functionalities that will be required in the entire process. The behaviors of balance will be common for both over the counter processes and ATM processes. These behaviors will be handled by one class/object.
1b) Description of objects and classes
In the project, there are objects and classes which will be integrated in the design of the system. Objects are the basic units from which object oriented programming is based. There are many issues and components that are used in the development of object oriented programming. Objects are important components in programing because they allow the programmers to relate real-world objects into programing environment. They will be able to model the happenings in the real-world into the programming environment. In the banking system, there are objects that will be taken to be objects. They include clients, the accounts, cheques, teller-staff, and bank manager. There are states and behaviors which are associated with the objects in the programing world. They are just the same as the behaviors that are associated in the real-world.
Classes are another component in object-oriented programming. They are the basis with which objects are created. Classes are the upper description of objects. It is used to describe the likely states and behaviors of the objects. An example is that mammals have some characteristics which are the same. The class Mammals will be used to hold the characteristics of the mammals which might have different features from one another. From the mammals, there are cold-blooded mammals and warm-blooded mammals. They have been defined in the mammal’s class. Another example is vehicles class. The vehicles can have different makes and models. The vehicles class will have such attributes as number_of_wheels, color, and model. It has such methods as apply_breaks(), accelerate().
There are features that make up a class. These features include name, attributes and the operations. The name is used to identify the class while the attributes are the characteristics and the features of the class. The operations of the class make the behaviors and the actions that the classes can undertake.
There are principles that have been known to be used in object oriented programing. These principles have helped to develop the object oriented paradigm. These include polymorphism, encapsulation, abstraction, and inheritance.
Polymorphism – in general, it means that a name can have several uses. In object oriented programing, it means that a method can have one method but can be executed differently. There are two types of polymorphism, which are overriding, and overloading. The difference come from the fact that the compiler will decide which of the methods will be executed at run-time.
Encapsulation – encapsulation is the process where the data implementation is hidden by ensuring that there is restriction on access of mutators and accessors. An accessor is a method that is used to ask the object the properties about itself. It comes in the form of behavior where the method will be asked about the features that it has. It is important to understand the features and the requirements for the methods. A mutator is a public methods that are used to alter the behavior of an object.
Abstraction – it is used by software developers to simply complex systems into simpler components. When the developers continue to work on the systems, they will understand the benefits they will get from subsystems that have not yet been developed. In this regard, the developers will not be affected by the effect that the subsystems will be developed.
Inheritance – it is the process where objects will relate to one another and share some of the characteristics that they have. Inheritance is a characteristic that is used in the management of the features of the class. Classes and objects can inherit the properties of other classes. Instead of repeating the features of a class in another class, the class with similar features can inherit the classes which have already been defined.
Opportunity for using inheritance in the project
The biggest opportunity where inheritance can be applied in the Big Bank Project is that of creating accounts. The case study has sown the possibility to have many account types. The different types of accounts will not affect the features that the accounts have. There will be features that will be the same in all the accounts. These features present an opportunity where the accounts will have inheritance. In the Big Bank case, account will make a perfect example of inheritance. The description has it that there are two types of accounts. The types of accounts which have been presented are checking and savings. The inheritance will come in where the Accounts will form the parent class while the Checking and Savings accounts will form the child classes. It is a way of showing that accounts are just the same accounts. There is no major difference except the limits of the accounts.
Opportunity for using polymorphism
There is also an opportunity that can be used to show polymorphism in the project. The case has defined two types of accounts which will be used in the case. In the case, the withdraw method presents a good description of polymorphism. In our case, the withdraw behavior will present different parameters for both the Checking and Savings accounts. For the Savings account, the withdraw will not require that the limits will be checked. It will be different with the Checking account because it will require that the balance limit will be checked. In the two examples, it will require that the CheckLimit will be the limiting feature for the two. Withdraw will be used in the program but will have different parameters in the entire development.
Section II
There are different classes which will be created in the case. The classes which will be created in the case include:
Person
Teller
Bank Account
The class diagram that will be used in the case is shown below:
In the diagram that has been presented, there has been the description of the classes that will be involved in the development of the system. The classes that have been defined show some levels of inheritance. The Person class is used to describe the human entities in the system. The human entities will have different roles and responsibilities. It will be important to understand the issues of concern in the entire process. The attributes and the methods that each class will have also been defined in the classes. The Bank Account class has been created because it will be one of the main activities which will be undertaken in the creation of the systems. It will be important to have ways in which the bank account will be represented.
The use case that has been described in the diagram is used to model how the system users will relate in the entire development of the system. It will show the progress and the process with which the systems will work on the entire procedures. The use case diagram that has been presented in the diagram above show the relationship between the system users and actors.
Activity diagram
Activity diagrams are used in the description of the working of the system. It will help to show how the system will be functional in the long run. It will help to show how the actors will interact with the system and how functionalities will be achieved in the long run. It is one of the developments and issues that will be shown in the development of the system. The computational and the organizational workflow of the system will be shown better with the use of activity diagram.
Sequence diagram
It is another diagram which is used to show the different functionalities of the system. Unlike the activity diagram, the sequence diagram is used to model the logical flow of activities in the system. It shows how the different actions and workflows will be achieved in the system. It is important to have ways in which the system will be developed and integrated in the entire process. In the case, the system will be considered complete in the creation of an account if a new account has been created successfully. The client should be able to access the account in a successful manner.
Software patterns used
As a result of the repeated solutions concepts, patterns been used in different domains within software, to solve same problems in different context. This problem has been seen, for example, where Model-View –Controller (MVC) has found its use in separation of user interface and the control code. This has gained popularity with many software developers and has been used for long. Many software developers have found a relief in the use of this method as they have been struggling with this for long. Alexander (1977) is considered the pioneer of patterns. He started the concepts of patterns to be used as a repeatable solution and said that every pattern is a three-part rule; the pattern shows the relationship between context, problem, and a solution. Basing on language that is used, patterns tells the developers how best they can solve a certain problem they face.
With this, then, patterns use became common and it became even widely used after the publishing of the book Gamma et al. (1997), Design patterns: Elements of reusable object-oriented software, it was later referred to as Gang of four (GoF). From then on, pattern use has gained popularity and it has gained acceptance to be used in organizations and processes to teaching and architecture. With time, many books became published that further boosted the popularity of patterns. The books include Buschmann et al. (1996), Pattern-oriented software architecture: A system of patterns (later called POSA boos), and Fowler (1997), Pattern languages of program design 1&2.
Developers make use of patterns to solve problems that arise depending on the user requirements. User requirements entail functional and non-functional aspects. Patterns are a wide network of matrices that will require a careful evaluation. They will also need to be merged and documented in an acceptable manner.
Works Cited
Dempsey, John. "Polymorphism." (2012).
Ducournau, Roland. "Implementing statically typed object-oriented programming languages." ACM Computing Surveys (CSUR) 43.3 (2011): 18.
Ingesman, Matthias Diehn, and Erik Ernst. "Lifted Java: a minimal calculus for translation polymorphism." Objects, Models, Components, Patterns. Springer Berlin Heidelberg, 2011. 179-193.
Laffra, Chris, et al. Object-oriented programming for graphics. Springer Publishing Company, Incorporated, 2012.
Larman, Craig. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, 3/e. Pearson Education India, 2012.
Mu, Yong Min, et al. "The Static Analysis of the Uniqueness of Polymorphism."Applied Mechanics and Materials 411 (2013): 425-431.
Neyer, A. F., F. F. Wu, and K. Imhof. "Object Oriented Programming." Power Systems: Modelling and Control Applications: Selected Papers from the IFAC Symposium, Brussels, Belgium, 5-8 September 1988. Elsevier, 2014.
Smith, Ben. "Object-Oriented Programming." AdvancED ActionScript 3.0: Design Patterns. Apress, 2011. 1-25.
- APA
- MLA
- Harvard
- Vancouver
- Chicago
- ASA
- IEEE
- AMA