Question 1: Explain polymorphism. Perform research to find four peer reviewed articles that is related to either UML
The polymorphism is an important character of Object Oriented Design (OOD). However Unified Modeling Language (UML) sequence diagrams cannot describe the polymorphism, which lead to lack test data to test polymorphism sequence diagram methods in integration testing. An approach is proposed to formalize polymorphism sequence diagrams and generate test data (Trung & Dinh-Trong, 2006). According to classes OCL constraints and Satisfying Set rules, the approach got the Class Sets of Polymorphism Methods (CSPM).The approach transformed sequence diagrams into the Polymorphism Class Object Method Acyclic Graph (PCOMDAG). Utilizing the Test Data Automatic Generation (TCAG) algorithm, the approach automatically generated sequence diagram test data. The approach availability was verified by an application example and cases study. The results show that the approach can generate sequence diagram test data to test polymorphism methods and increase the test coverage rate of sequence diagram.
UML (Unified Modeling Language) can provide some kinds of diagrams to help the developer depict different aspects of designs. It has become a standard modeling language for designing the software. At the same time, as a part of UML criterions, OCL (Object Constraint Language) can be used by model developer to illuminate constraints of UML, like invariants, preconditions and post conditions. The application of UML and OCL lead to the software models depicted more accurately. Presently, the researches have studied the test cases generation methods for the Sequence Diagram, but they have ignored the polymorphism problem of Sequence Diagram (Fraikin & Leonhardt, 2002). The polymorphism is an important character of Orient Object, whose essential is that the same call can be accepted by different kinds of objects methods, and come out different outcome. By the polymorphism, we can send a uniform call to objects without knowing the exact type of the objects.
Roger T. Alexander advanced a conception of Satisfying Sets that include a method itself and all methods overriding the method. If only one method of Satisfying Sets was correct by integration testing, it could not assure that all dynamic binding methods of Satisfying sets could performed correctly by integration testing. They proved that test coverage was complete when all polymorphism methods had been tested. Therefore, we need to generate test data for all possible dynamic binding methods and to assure Satisfying Sets to be tested completely. Sequence diagrams cannot describe the polymorphism, which leads to lack test cases to test the polymorphism methods (Ostrand & Balcer, 1998).
Polymorphism Analyze
The polymorphism means that programs can respond some different requirements. In OOP (Object Oriented Programming), the polymorphism is actualized by binding subclass methods. The polymorphism includes static binding and dynamic binding. Static binding: variables and methods are assigned types and linked at the parse time. Dynamic binding: methods are dynamically called at the objects runtime based on conditions.
Dynamic binding is a very useful feature, as it allows a program to be dynamic behaviors according to the actual type of object at ...