![]() | Only 14 pages are availabe for public view |
Abstract Quality assurance is one of the important non-functional software requirements which many software products fail to satisfy. Current software market is driven mostly by urgency and competition. This poses a serious problem to software quality assurance, customer satisfaction and reliability of the software products. One of the methods to ensure software quality is a metrics-based approach. Software metrics have been used to quantitatively evaluate software products. The application of object-oriented approach is of high significance in the area of software development since it can encourage efficiency or cost effectiveness, and can reduce error probability during software design and implementation. In order to quantify, especially qualitative aspects such as potential error caused by elevated design complexity, software measurement can strongly assist. Software measurement is concerned with mapping attributes of a software product or process to a numeric value. These numbers become relevant concerning quality when compared to each others or to standards. Software measurement contributes to software quality from various aspects, such as understandability, complexity, reliability, testability and maintainability, as well as performance and productivity of software projects. The metrics for object oriented design focus on measurements that are applied to the class and design characteristics. These measurements permit designers to access the software early in process, making changes that will reduce complexity and improve the continuing capability of the design. With the pervasive popularity and adaptation of object oriented programming languages and methodologies in software development, software metrics tailored to object oriented characteristics are essential to improve the object oriented process and products. This thesis deals with automating the measurement of the quality of object-oriented designs and code. In this thesis, a survey of the literature is made to establish a set of characteristics for object orientation in general. The purpose of this thesis is to evaluate if software metrics can be used to determine the object-oriented design quality of a software system. Since in industrial software devel-opment processes it is not viable to derive measures manually, the measurement process must be automated, in order to guarantee efficiency and reliability. We have designed and implemented object oriented metrics tool for UML class diagram and C++ source code. UML class diagram, as the most important structural model and indeed the central model of the UML, shows static aspects in terms of the classes of objects in the system, relationships among these classes and constraints in the relationships. Many different metrics for class diagrams have been suggested. This tool provides developers with early quality feedback, and allows developers to make a comparative study of object oriented features and help them to analyze reliability, maintainability and complexity of systems in the early phases of the OO software lifecycle. An experimental study was conducted as an attempt to further validate each metric and increase knowledge about them. We present strategies on how analysis of object oriented design with metrics can be integrated in an ongoing software development project and how metrics can be used as a practical aid in code investigations on already developed systems. |