8 research outputs found
Object-Oriented Software Design Metrics
The adoption of the Object-Oriented paradigm is expected to help produce better and cheaper software. The main concepts of this paradigm, namely, inheritance, encapsulation, information hiding or polymorphism, are the keys to foster reuse and achieve easier maintainability. However, the use of constructs that support those concepts can be more or less intensive, mainly depending on the designer ability. Advances in quality and productivity need to be correlated with the use of those constructs. Therefore, we need to evaluate them quantitatively to guide OO design. The availability of these metrics should allow comparison of different systems or different implementations of the same system, thus helping to derive some design heuristics that could/should be included in design tools. Those heuristics would at least be a valuable help to new staff members.
"Blind" choice (or creation) is dangerous, so a set of common requirements for metrics and corresponding rationale was introduced, which includes the need for formal definition, language independence, dimensionlessness, ease of calculation and early obtainability. A suitable metrics set named MOOD was then proposed. We believe that these metrics can help in setting OO design standards at the organization level, helping OO practitioners to guide their development process and, hopefully, leaving them in a cheerful MOOD..
Fuzzy based component reusability evaluation approach to support component based software development
One of the contributions of Component Based Software Development (CBSD) is the reuse of software components across multiple systems by software developers. However, the developers often face a difficulty to determine the reusability of the components during the component selection process. Similarly, the component developers also have a problem to measure the component reusability during component development. Nowadays, even though many studies have been conducted in this field, which the researchers suggested many approaches with metrics but they still lack in empirical confirmation and evidences. Therefore, the aim of this study is to investigate and develop the component reusability evaluation approach to support CBSD. The proposed approach, which is called Component Reusability Evaluation Approach (CREA), is supported by the developed automated tool (CREATool) that may automate the reusability evaluation. CREA is then evaluated by applying five Java component in this approach and CREATool to the selected software components. The results from the application approach and then validated with results from the controlled experiment using statistical analysis. The results indicated that CREA able to provide an acceptable reusability measure, which it is confirmed by similarity results between evaluation using statistical analysis through the controlled experiment and by applying the CREATool. It shows that the proposed approach could be used as an alternative approach in component reusability evaluation. Although the developed approach are not intended to make a holistic and an ultimate decision whether the components can be reused or not, but it is useful enough to be considered as a guide for both component users and developers in making decisions related to reusable components
Recommended from our members
Object-oriented complexity metrics for the Java programming language
Since its introduction in 1995 by Sun Microsystems, the Java programming language has been widely accepted by the software development community. Besides being a natural fit for Internet and World Wide Web (WWW) based applications, Java is also being used in other diverse application areas due to its simplicity, reduced learning-curve, portability, and Object-Oriented features. Given this tremendous potential for Java as a development language, there is a pressing need for software measures or metrics with which to manage the process of software development in Java. A good set of metrics can be very useful especially in the post-coding phases of the software life-cycle, such as testing and maintenance, in identifying those classes which are likely to be hard to test or modify. This research addresses these needs through an investigation into an Object-Oriented metrics suite for Java. A set of metrics at the class-level is proposed, and a tool was developed to automate the collection of the metrics. Two experiments were conducted to determine which of the metrics were effective and useful measures of complexity. The experiments indicate that the number of non-static external references is a good complexity metric for Java.1997 best estimate for issue date and commencement year based on available information
Redocumentation through design pattern recovery:: an investigation and an implementation
In this thesis, two methods are developed in an aid to help users capture valuable design information and knowledge and reuse them. They are the design pattern recovery (DPR) method and pattern-based redocumentation (PBR) method. The DPR method is for matching up metrics of patterns with patterns themselves in order to capture valuable design information. Patterns are used as a container for storing the information. Two new metrics, i.e., p-value and s-value are introduced. They are obtained by analysing product metrics statistically. Once patterns have been detected from a system, the system can be redocumented using these patterns. Some existing XML (extensible Markup Language) technologies are utilised in order to realise the PRB method. Next, a case study is carried out to validate the soundness and usefulness of the DPR method. Finally, some conclusions drawn from this research are summarised, and further work is suggested for the researchers in software engineering
Modelo de calidad para el software orientado a objetos
El software ha obtenido en la actualidad una gran importancia en todos los ámbitos
de la vida cotidiana. Es indudable que la calidad del software juega un papel
fundamental en todo desarrollo informático, aunque en ocasiones no se le presta la
suficiente atención, quizás debido a los relativamente escasos trabajos relacionados
con este tema desarrollados hasta la fecha.
En el presente trabajo, se plantea la necesidad de un modelo de calidad completo.
Para cubrir esta necesidad se presenta un nuevo modelo de calidad, obtenido tras
un estudio pormenorizado de los modelos de calidad existentes, centrado en el
paradigma orientado a objetos. Este modelo de calidad muestra cómo la calidad del
software se descompone en una serie de factores y éstos, a su vez, se descomponen en
un conjunto de criterios medibles utilizando medidas. El modelo incluye un amplio
conjunto de medidas, diseñadas especialmente para su aplicación dentro del
paradigma orientado a objetos. Para completar el modelo, se ha diseñado un sencillo
método de aplicación de este modelo de calidad para que pueda ser utilizado de
una forma simple por los desarrolladores de sistemas informáticos orientados a
objetos.
El modelo de calidad definido se ha validado realizando un juego de experimentos.
Estos experimentos han consistido en la aplicación del modelo sobre una serie de
desarrollos orientados a objetos. Los resultados obtenidos han demostrado su
utilidad práctica para determinar tanto la calidad global de los sistemas, como para
identificar aquellas partes del sistema susceptibles de ser mejoradas.
Con este trabajo, se llena un importante hueco existente en esta área, pues, en primer
lugar, no existen modelos de calidad completos para la orientación a objetos. En
segundo lugar, aunque hay medidas para la orientación a objetos, no se han asociado
a los atributos que determinan la calidad del software, por lo que su utilidad, tal cual
fueron definidas, resulta bastante cuestionable. Para finalizar, nunca se ha asociado
un modelo de calidad con una método de aplicación, por lo que su utilidad quedaba
considerablemente mermada, quedando a expensas de la habilidad y experiencia del
Ingeniero del Software que lo utilizara
Über die Anwendung des service-orientierten Architekturstils auf heterogene Anwendungslandschaften
This thesis investigates the application of the service-oriented architectural style in the context of industrial enterprises. This style provides a commonly perceived paradigm for organizing distributed software systems. However, beyond general attention to this style, there are only few descriptions of the difference between service orientation and more mature styles, such as component orientation. This dissertation argues that the service-oriented style is an approach that centralizes control over distributed functionality that is provided by the application systems of an organization. This means that service orientation is a paradigm for application integration. Moreover, we argue that it is not possible to fully formalize the inherent principles of service orientation as part of an architectural style description. In fact, soft design principles are a differentiator of this style. These principles, however, are rarely applied in the context of industrial enterprises. This is why we analyze how such design principles could be objectively described and what attention should be paid to them. This analysis is performed by categorizing the potential benefits of this style and assigning the respective underlying principles to the identified benefits. Subsequently, a reference architecture is defined on the basis of these findings. This architecture focuses on structuring service-oriented applications - so-called composite applications. In order to apply the defined reference architecture in the context of actual projects, we describe a design methodology for composite applications. This design methodology focuses on using business processes for designing various types of services and on describing their interconnections by the reference architecture. To achieve this, a service design algorithm is included that derives services from business processes by incorporating the results of a statistical analysis of service design principles. The result of this methodology is a platform-independent design of a composite application. It considers the restrictions of the application landscape in which a composite will be deployed. To permit the realization of composite applications, we informally map the platform-independent reference architecture to a platform that is widely used in industrial enterprises. This mapping is, together with the design methodology and the reference architecture, applied to an industry-scale use case. This way, the applicability of the concepts is demonstrated.Diese Dissertation untersucht, wie der service-orientierte Architekturstil von großen Konzernen angewandt werden kann. Dieser Architekturstil strukturiert verteilte Systeme. Neben allgemeiner Aufmerksamkeit sind jedoch nur wenige Beschreibungen verfügbar, die zeigen, wie sich dieser Stil von anderen - so z.B. von dem der Komponentenorientierung - absetzt. Die vorliegende Arbeit beschreibt, dass der service-orientierte Stil ein Ansatz zur Kontrollzentralisierung ist. Dabei zentralisiert er die Kontrolle über die Funktionalität, die von den Applikationssystemen einer Organisation bereitgestellt wird. Daher kann er auch als Integrationsansatz verstanden werden. Zusätzlich ist es nicht möglich, alle Prinzipien des service-orientierten Stils als Architekturstil zu beschreiben. Tatsächlich stellen weiche Designprinzipien das Alleinstellungsmerkmal dieses Stils dar. Diese Prinzipien werden allerdings von großen Organisationen kaum angewendet. Diese Dissertation untersucht deshalb den Stellenwert der einzelnen Prinzipien und beschreibt, wie sie objektiviert werden können. In dieser Untersuchung werden die möglichen Vorteile dieses Architekturstils zunächst kategorisiert. Danach werden diesen potentiellen Vorteilen die Prinzipien zugewiesen, die zu ihrer Erlangung beitragen. Auf Basis dieser Analyse wird danach eine Referenzarchitektur erstellt. Diese Architektur beschreibt eine Struktur für service-orientierte Applikationen, so genannte composite applications, die es erlaubt weiche Designprinzipien zu berücksichtigen. Um diese Referenzarchitektur auf reelle Problemstellungen anwenden zu können, wird außerdem eine Methodik zum Design von composite applications beschrieben. Im Fokus dieser Methodik steht es, Geschäftsprozesse als Ausgangspunkt für das Design von Services zu benutzen und deren Verbindungen zu beschreiben. Dabei orientiert sie sich an den möglichen Verbindungen, die von der Referenzarchitektur definiert werden. Um dies zu erreichen ist außerdem ein Algorithmus für das Design von Services enthalten. Dieser Algorithmus leitet aus Geschäftsprozessen Services ab und berücksichtigt dabei die Ergebnisse einer statistischen Auswertung, die die Wiederverwendbarkeit von Services als Untersuchungsziel hat. Das Ergebnis dieser Methodik ist das plattformunabhängige Design einer composite application. Dieses Design ist an einem Geschäftsprozess orientiert, berücksichtigt aber auch die Einschränkungen der Systemlandschaft, in der die Applikation betrieben werden soll. Um auf der Basis eines solchen Designs eine composite application erstellen zu können, ist weiterhin eine informelle Abbildung der plattformunabhängigen Architektur auf eine häufig eingesetzte Plattform in der Arbeit beschrieben. Zusammen mit der Methodik und der Referenzarchitektur wird diese Abbildung dann auf ein industrielles Fallbeispiel angewandt. Auf diese Weise wird die Anwendbarkeit der beschriebenen Konzepte demonstriert