REUSABILITY and MAINTAINABILITY in OBJECT ORIENTED LANGUAGES Suvarnalata Hiremath1, C M Tavade2 1Associate Professor, Dept

Total Page:16

File Type:pdf, Size:1020Kb

REUSABILITY and MAINTAINABILITY in OBJECT ORIENTED LANGUAGES Suvarnalata Hiremath1, C M Tavade2 1Associate Professor, Dept REUSABILITY AND MAINTAINABILITY IN OBJECT ORIENTED LANGUAGES Suvarnalata Hiremath1, C M Tavade2 1Associate Professor, Dept. of CS&E, BKEC, Basavakalyan, India, 2 Professor, Dept of E&TC, SIT-COE, Yadrav, India Abstract In object-oriented languages, inheritance plays an important part for software reusability and maintainability. The separation of sub typing and inheritance makes inheritance a more flexible mechanism reusing code. Object-oriented programming has been widely acclaimed as the technology that will support the creation of reusable software, particularly because of the "inheritance” facility. In this paper, we Object Oriented Programming is a practical and explore the importance of reusability and useful programming methodology that maintainability in object oriented language. encourages modular design and software reuse. KEYWORDS: Object Oriented Object oriented Language make the promises of programming Language, Inheritance, reduced maintainance,code reusability, Software reuse and maintainability. improved reliability and flexibility and easier maintenance through better data encapsulation. I. INTRODUCTION To achieve these gains, object oriented Object-Oriented Programming (OOP) is the term language introduce the concepts of objects, used to describe a programming approach based classes, data abstraction and encapsulation, on objects and classes. The object-oriented inheritance and polymorphism. paradigm allows us to organise software as a collection of objects that consist of both data and In object oriented Language, the objects are behaviour. This is in contrast to conventional well-defined data structures coupled with a set functional programming practice that only of operations, these operations are called loosely connects data and behaviour. behavior and are only visible part of an object The object-oriented programming approach and only these operations can manipulate the encourages: objects. Each object itself is an instance of one • Modularisation: where the application class and is represented by a collection of can be decomposed into modules. instance variables, as defined by the class [1]. • Software re-use: where an application Each class also defines a set of named can be composed from existing and new operations called methods.A method defines the modules. behaviour of the objects that are created from the class. Object Oriented programming is a programming style that is associated with the concept of Class, Inheritance is a technique that allows new class Objects and various other concepts revolving from older. The new class is subclass and old around these two, like Inheritance, class is base/parent class. The subclass inherits Polymorphism, Abstraction, Encapsulation etc. all features of parent class. The subclass can add new features of their own in it. Inheritance ISSN (PRINT): 2393-8374, (ONLINE): 2394-0697, VOLUME-5, ISSUE-12, 2018 100 INTERNATIONAL JOURNAL OF CURRENT ENGINEERING AND SCIENTIFIC RESEARCH (IJCESR) is used in several different ways. A subclass and deliver on this promise is an interesting, open can be modified to provide different or question. additional behaviour from its super class. Multiple inheritance allows for a class to Parul Gandhi Pradeep Kumar Bhatia[4] inherit traits from multiple classes and is Object-oriented metrics plays an import role in usually considered a dangerous design ensuring the desired quality and have widely mechanism. been applied to practical software projects. The benefits of object-oriented software II Literature Survey development increasing leading to development As per the literature survey there has been of new measurement techniques. Assessing the a lot of research done on reusability and reusability is more and more of a necessity. maintainability in object oriented language over Reusability is the key element to reduce the cost the years. and improve the quality of the software. Generic programming helps us to achieve the Li XuanDong and Zheng GuoLiang[1] In concept of reusability through C++ Templates object-oriented languages, encapsulation and in- which helps in developing reusable software heritance play an important part for software modules and also identify effectiveness of this reusability and maintainability. The separation of reuse strategy sub typing and inheritance makes inheritance a more flexible mechanism reusing code. The main The advantage of defining metrics for templates enhanced flexibility is that it is allowed for is the possibility to measure the reusability of subclasses to redefine inherited methods to software component and to identify the most change their specifications. However, it results in effective reuse strategy. The need for such an encapsulation issue derived from the metrics is particularly useful when an semantics of inheritance, which compromises organization is adopting a new technology, for severely reusability and maintainability in object- which established practices have yet to be oriented languages. In this paper, we present a developed. Many researchers have done modified inheritance mechanism, which research on reusability metrics overcomes this encapsulation issue, and give its denotation semantics. This modified in- heritance Alan Snyder[5] Object-oriented programming mechanism has been introduced in NDOOP, an is a practical and useful programming object-oriented extension of Pascal we are methodology that encourages modular design developing. and software reuse. Most object-oriented programming languages support data G. Butler L. Li I.A. Tjandra[2] Software design Abstraction by preventing an object from being is a difficult creative task learnt from long manipulated except via its defined external experience. Reusable object-oriented design aims operations. In most languages, however, the to describe and classify designs and design introduction of inheritance severely fragments so that designers may learn from other compromises the benefits of this encapsulation. peoples' experience. Thus, it provides leverage Furthermore, the use of inheritance itself is for the design process. globally visible in most languages, so that changes to the inheritance hierarchy cannot be Shuguang Hong Barbara Koelzer[3] Software made safely. This paper examines the reusability has been regarded as one of the most relationship between inheritance and important areas for improving software encapsulation and develops requirements for development full support of encapsulation with inheritance. productivity and quality in the 1990's. The object-oriented approach to information systems 1.1 Outcome of the literature survey development has promised to achieve large-scale As per above papers we conclude that work software reuse. Object oriented analysis and done on the inheritance features to maintain design methodologies have aimed at the more flexible mechanism for reusing code realization of the promised benefits; however, the and encourages maintainability in object degree to which the methodologies support reuse orientation languages. ISSN (PRINT): 2393-8374, (ONLINE): 2394-0697, VOLUME-5, ISSUE-12, 2018 101 INTERNATIONAL JOURNAL OF CURRENT ENGINEERING AND SCIENTIFIC RESEARCH (IJCESR) 1.2 Objective This helps in to use the same code over and The main objective of this work is to examine again without writing it multiple times which the duplicate and to avoid duplication and to saves time, coding effort and code reduction. capture commonality in undertaking classes of inherently similar task . Code that is organized IV. Working with Reusability and so that it is easy to find and fix errors and to Maintainability in OOL improve performance. Set of programming The object orientation programming languages idioms with other programmer which improves classes can be reused in several ways. Once a communications. class has been written and tested, it can be adapted by another programmer to suit their III. Need of Reusability in OOL requirements. This is basically done by creating One of the promises which object new classes, reusing the properties of the oriented languages holds is that it enhances existing ones. The mechanism of deriving a new software reusability. Indeed, software class from an old one is called inheritance. The components designed in Object oriented old class is referred to as the base class and the languages are easier to be reused than those new one is called the derived class or subclass. designed in conventional programming. A derived class includes all features of the generic base class and then adds qualities The first thing here we discuss about is Code specific to the derived class. Reuse. Code Reuse is probably one of the most important part why we use Object Oriented Re usability is when a class inherits or Programming languages in general. derives another class, it can access all the functionality of the inherited class. The concept itself looks very easy. You have • . written a class and some parts of your class like Re usability enhanced reliability The base class code will be already some Methods or Attributes should be reused in tested and debugged. another class • Re usability saves the . Reusability is not an OOP term, it is about programmer time and effort • As the existing code is reused, it reusing existing code to solve problems. This leads to way you don’t have to write the same thing less development and twice. Writing the same code twice obviously maintenance costs. means that you will spend more time on writing Class Department code, but it has another disadvantage.
Recommended publications
  • ASSESSING the MAINTAINABILITY of C++ SOURCE CODE by MARIUS SUNDBAKKEN a Thesis Submitted in Partial Fulfillment of the Requireme
    ASSESSING THE MAINTAINABILITY OF C++ SOURCE CODE By MARIUS SUNDBAKKEN A thesis submitted in partial fulfillment of the requirements for the degree of Master of Science in Computer Science WASHINGTON STATE UNIVERSITY School of Electrical Engineering and Computer Science DECEMBER 2001 To the Faculty of Washington State University: The members of the Committee appointed to examine the thesis of MARIUS SUNDBAKKEN find it satisfactory and recommend that it be accepted. Chair ii ASSESSING THE MAINTAINABILITY OF C++ SOURCE CODE Abstract by Marius Sundbakken, M.S. Washington State University December 2001 Chair: David Bakken Maintenance refers to the modifications made to software systems after their first release. It is not possible to develop a significant software system that does not need maintenance because change, and hence maintenance, is an inherent characteristic of software systems. It has been estimated that it costs 80% more to maintain software than to develop it. Clearly, maintenance is the major expense in the lifetime of a software product. Predicting the maintenance effort is therefore vital for cost-effective design and development. Automated techniques that can quantify the maintainability of object- oriented designs would be very useful. Models based on metrics for object-oriented source code are necessary to assess software quality and predict engineering effort. This thesis will look at C++, one of the most widely used object-oriented programming languages in academia and industry today. Metrics based models that assess the maintainability of the source code using object-oriented software metrics are developed. iii Table of Contents 1. Introduction .................................................................................................................1 1.1. Maintenance and Maintainability.......................................................................
    [Show full text]
  • New Inheritance Models That Facilitate Source Code Reuse in Object-Oriented Programming
    NEW INHERITANCE MODELS THAT FACILITATE SOURCE CODE REUSE IN OBJECT- ORIENTED PROGRAMMING By HISHAM M. AL-HADDAD Bachelor of Science Yarmouk University lrbid, Jordan 1986 Master of Science Northrop University Los Angeles, California 1988 Submitted to the Faculty of the Graduate College of the Oklahoma State University in partial fulfillment of the requirements for the degree of DOCTOR OF PHILOSOPHY July, 1992 Oklahoma Statt.' Ur1iv. Library NEW INHERITANCE MODELS THAT FACILITATE SOURCE CODE REUSE IN OBJECT- ORIENTED PROGRAMMING C/ wU::r-~ B I A~c;p .... _.-~ Dean of the Graduate CoUege ii PREFACE Code reusability is a primary objective in the development of software systems. The object-oriented programming methodology is one of the areas that facilitate the development of software systems by allowing and promoting code reuse and modular designs. Object-oriented programming languages (OOPLs) provide different facilities to attain efficient reuse and reliable extension of existing software components. Inheritance is an important language feature that is conducive to reusability and extensibility. Various OOPLs provide different inheritance models based on different interpretations of the inheritance notion. Therefore, OOPLs have different characteristics derived from their respective inheritance models. This dissertation is concerned with solutions for three major problems that limit the utilization of inheritance for code reusability. The range of object-oriented applications and thus the usage of object-oriented programming in general is also discussed. The three major problems are: 1) the relationship between inheritance and other related issues such as encapsulation, access techniques, visibility of inheritance, and subtyping; 2) the hierarchical structure imposed by inheritance among classes; and 3) the accessibility of previous versions of the modified methods defmed in classes located at higher levels of the inheritance structure than the parent classes.
    [Show full text]
  • A Quantitative Reliability, Maintainability and Supportability Approach for NASA's Second Generation Reusable Launch Vehicle
    A Quantitative Reliability, Maintainability and Supportability Approach for NASA's Second Generation Reusable Launch Vehicle Fayssai M. Safie, Ph. D. Marshall Space Flight Center Huntsville, Alabama Tel: 256-544-5278 E-mail: Fayssal.Safie @ msfc.nasa.gov Charles Daniel, Ph.D. Marshall Space Flight Center Huntsville, Alabama Tel: 256-544-5278 E-mail: Charles.Daniel @msfc.nasa.gov Prince Kalia Raytheon ITSS Marshall Space Flight Center Huntsville, Alabama Tel: 256-544-6871 E-mail: Prince.Kalia @ msfc.nasa.gov ABSTRACT The United States National Aeronautics and Space Administration (NASA) is in the midst of a 10-year Second Generation Reusable Launch Vehicle (RLV) program to improve its space transportation capabilities for both cargo and crewed missions. The objectives of the program are to: significantly increase safety and reliability, reduce the cost of accessing low-earth orbit, attempt to leverage commercial launch capabilities, and provide a growth path for manned space exploration. The safety, reliability and life cycle cost of the next generation vehicles are major concerns, and NASA aims to achieve orders of magnitude improvement in these areas. To get these significant improvements, requires a rigorous process that addresses Reliability, Maintainability and Supportability (RMS) and safety through all the phases of the life cycle of the program. This paper discusses the RMS process being implemented for the Second Generation RLV program. 1.0 INTRODUCTION The 2nd Generation RLV program has in place quantitative Level-I RMS, and cost requirements [Ref 1] as shown in Table 1, a paradigm shift from the Space Shuttle program. This paradigm shift is generating a change in how space flight system design is approached.
    [Show full text]
  • Software Quality Management
    Software Quality Management 2004-2005 Marco Scotto ([email protected]) Software Quality Management Contents ¾Definitions ¾Quality of the software product ¾Special features of software ¾ Early software quality models •Boehm model • McCall model ¾ Standard ISO 9126 Software Quality Management 2 Definitions ¾ Software: intellectual product consisting of information stored on a storage device (ISO/DIS 9000: 2000) • Software may occur as concepts, transactions, procedures. One example of software is a computer program • Software is "intellectual creation comprising the programs, procedures, rules and any associated documentation pertaining to the operation of a data processing system" •A software product is the "complete set of computer programs, procedures and associated documentation and data designated for delivery to a user" [ISO 9000-3] • Software is independent of the medium on which it is recorded Software Quality Management 3 Quality of the software product ¾The product should, on the highest level… • Ensure the satisfaction of the user needs • Ensure its proper use ¾ Earlier: 1 developer, 1 user • The program should run and produce results similar to those expected ¾ Later: more developers, more users • Need to economical use of the storage devices • Understandability, portability • User-friendliness, learnability ¾ Nowadays: • Efficiency, reliability, no errors, able to restart without using data Software Quality Management 4 Special features of software (1/6) ¾ Why is software ”different”? • Does not really have “physical” existence
    [Show full text]
  • Software Maintainability and Usability in Agile Environment
    Software Maintainability and Usability in Agile Environment {tag} {/tag} International Journal of Computer Applications © 2013 by IJCA Journal Volume 68 - Number 4 Year of Publication: 2013 Authors: Monika Agarwal Rana Majumdar 10.5120/11569-6873 {bibtex}pxc3886873.bib{/bibtex} Abstract This research is based on software maintainability and usability in the agile environment. Maintainability of the system is the ability to undergo changes relatively easily. These changes can affect components, services, interfaces and functionality when adding or changing functions, errors, and respond to business needs. Usability is defined as the application that meets the requirements of users and consumers by providing an intuitive, easy to locate and globalize and provides good access for disabled users and leads to a good overall user experience. In the conventional method of the software development, there are many metrics to calculate the maintenance and use of software. This research is to determine whether the same measures apply to Agile, or there is a need to change some metrics used for the agile environment. The goal of software engineering is to develop good quality maintainable software in schedule and budget. Inflated software costing, delayed time frame, or not meeting quality standards express a failure. A survey suggests about 45% of software fails due to the lack of quality. It is therefore one of the most important aspects for the success of software. Refer ences 1 / 3 Software Maintainability and Usability in Agile Environment - P. Antonellis, D. Antoniou, Y. Kanellopoulos, C. Makris, E. Theodoridis, C. Tjortjis, and N. Tsirakis, "A data mining methodology for evaluating maintainability according to ISO/IEC-9126 software engineering – product quality standard," in Special Session on System Quality and Maintainability - SQM2007, 2007.
    [Show full text]
  • Easychair Preprint Machine Learning Algorithm for Assessing Reusability
    EasyChair Preprint № 4142 Machine Learning Algorithm for Assessing Reusability in Component Based Software Development Pooja Negi and Umesh Kumar Tiwari EasyChair preprints are intended for rapid dissemination of research results and are integrated with the rest of EasyChair. September 7, 2020 MACHINE LEARNING ALGORITHM FOR ASSESING REUSABILITY IN COMPONENT BASED SOFTWARE DEVELOPMENT 1Pooja Negi, 2Umesh Kumar Tiwari 1,2 Department of Computer Science and Engineering, Graphic Era Deemed to be University, Dehradun [email protected], 2 [email protected] Abstract- Software reusability has been present for several decades. Software reusability is defined as making new software from existing one. Objects that can be reused: design, code, software framework. We reviewed several approaches in this dissertation, i.e. object-oriented metrics, coupling factor, etc., by which the software's reusability increases. Therefore this thesis analysis on how to classify and reuse the program using those metrics and apply the algorithm of machine learning. In this thesis we test open source software and generate a ck metric of that source code then a machine learning algorithm will process the data using weka tool to give the result. We test coefficient of correlation, mean absolute error, root mean square error, relative absolute error and root relative square error less the program would be better from this we get 98.64 accuracy on online examination system software. Keywords- Reusability, Machine Learning Algorithm, Random Forest, ck-metric. 1. Introduction In today’s world every sector of service or industry is dependent on computer based application. Industry which develops and outsources the software service is major and growing rapidly in the world.
    [Show full text]
  • Quality-Based Software Reuse
    Quality-Based Software Reuse Julio Cesar Sampaio do Prado Leite1, Yijun Yu2, Lin Liu3, Eric S. K. Yu2, John Mylopoulos2 1Departmento de Informatica, Pontif´ıcia Universidade Catolica´ do Rio de Janeiro, RJ 22453-900, Brasil 2Department of Computer Science, University of Toronto, M5S 3E4 Canada 3School of Software, Tsinghua University, Beijing, 100084, China Abstract. Work in software reuse focuses on reusing artifacts. In this context, finding a reusable artifact is driven by a desired functionality. This paper proposes a change to this common view. We argue that it is possible and necessary to also look at reuse from a non-functional (quality) perspective. Combining ideas from reuse, from goal-oriented requirements, from aspect-oriented programming and quality management, we obtain a goal-driven process to enable the quality-based reusability. 1 Introduction Software reuse has been a lofty goal for Software Engineering (SE) research and prac- tice, as a means to reduced development costs1 and improved quality. The past decade has seen considerable progress in fulfilling this goal, both with respect to research ideas and industrial practices (e.g., [1–3]). Current reuse techniques focus on the reuse of software artifacts on the basis of de- sired functionality. However, non-functional properties (qualities) of a software system are also crucial. Systems fail because of inadequate performance, security, reliability, usability, or precision, to name a few. Quality concerns, therefore, should also be front and centre in methods for software reuse. For example, in designing for the NASA Mars Spirit spacecraft, one would not adopt a “cosine” function from an arbitrary mathemat- ical library.
    [Show full text]
  • Generic Programming
    Generic Programming July 21, 1998 A Dagstuhl Seminar on the topic of Generic Programming was held April 27– May 1, 1998, with forty seven participants from ten countries. During the meeting there were thirty seven lectures, a panel session, and several problem sessions. The outcomes of the meeting include • A collection of abstracts of the lectures, made publicly available via this booklet and a web site at http://www-ca.informatik.uni-tuebingen.de/dagstuhl/gpdag.html. • Plans for a proceedings volume of papers submitted after the seminar that present (possibly extended) discussions of the topics covered in the lectures, problem sessions, and the panel session. • A list of generic programming projects and open problems, which will be maintained publicly on the World Wide Web at http://www-ca.informatik.uni-tuebingen.de/people/musser/gp/pop/index.html http://www.cs.rpi.edu/˜musser/gp/pop/index.html. 1 Contents 1 Motivation 3 2 Standards Panel 4 3 Lectures 4 3.1 Foundations and Methodology Comparisons ........ 4 Fundamentals of Generic Programming.................. 4 Jim Dehnert and Alex Stepanov Automatic Program Specialization by Partial Evaluation........ 4 Robert Gl¨uck Evaluating Generic Programming in Practice............... 6 Mehdi Jazayeri Polytypic Programming........................... 6 Johan Jeuring Recasting Algorithms As Objects: AnAlternativetoIterators . 7 Murali Sitaraman Using Genericity to Improve OO Designs................. 8 Karsten Weihe Inheritance, Genericity, and Class Hierarchies.............. 8 Wolf Zimmermann 3.2 Programming Methodology ................... 9 Hierarchical Iterators and Algorithms................... 9 Matt Austern Generic Programming in C++: Matrix Case Study........... 9 Krzysztof Czarnecki Generative Programming: Beyond Generic Programming........ 10 Ulrich Eisenecker Generic Programming Using Adaptive and Aspect-Oriented Programming .
    [Show full text]
  • Code Reuse and Refactoring: Going Agile on Complex Products
    Code Reuse and Refactoring: Going Agile on Complex Products Using enterprise Software Version Management to coordinate complex products, seamlessly support Git developers, and solve refactoring problems. Table of Contents Component-Based Development __________________________________________________ 1 CBD Product Model ______________________________________________________________ 1 The Repository Model ____________________________________________________________ 2 Managing CBD in Git _____________________________________________________________ 2 Setting Up the CBD Model _____________________________________________________ 2 Incorporating Non-Software Components ____________________________________ 3 Updating Component Baselines ________________________________________________ 3 Submitting Patches to Components _____________________________________________ 4 Developer View _______________________________________________________________ 4 Refactoring: In Practice ________________________________________________________ 4 Refactoring: Developer Impact _________________________________________________ 4 Managing CBD in Perforce Software Version Management and Perforce Git Fusion ______ 5 Setting Up the CBD Model _____________________________________________________ 5 Incorporating Non-Software Components ____________________________________ 5 Updating Component Baselines ________________________________________________ 5 Submitting Patches to Components _____________________________________________ 5 Developer View _______________________________________________________________
    [Show full text]
  • A Model of Inheritance for Declarative Visual Programming Languages
    An Abstract Of The Dissertation Of Rebecca Djang for the degree of Doctor of Philosophy in Computer Science presented on December 17, 1998. Title: Similarity Inheritance: A Model of Inheritance for Declarative Visual Programming Languages. Abstract approved: Margaret M. Burnett Declarative visual programming languages (VPLs), including spreadsheets, make up a large portion of both research and commercial VPLs. Spreadsheets in particular enjoy a wide audience, including end users. Unfortunately, spreadsheets and most other declarative VPLs still suffer from some of the problems that have been solved in other languages, such as ad-hoc (cut-and-paste) reuse of code which has been remedied in object-oriented languages, for example, through the code-reuse mechanism of inheritance. We believe spreadsheets and other declarative VPLs can benefit from the addition of an inheritance-like mechanism for fine-grained code reuse. This dissertation first examines the opportunities for supporting reuse inherent in declarative VPLs, and then introduces similarity inheritance and describes a prototype of this model in the research spreadsheet language Forms/3. Similarity inheritance is very flexible, allowing multiple granularities of code sharing and even mutual inheritance; it includes explicit representations of inherited code and all sharing relationships, and it subsumes the current spreadsheet mechanisms for formula propagation, providing a gradual migration from simple formula reuse to more sophisticated uses of inheritance among objects. Since the inheritance model separates inheritance from types, we investigate what notion of types is appropriate to support reuse of functions on different types (operation polymorphism). Because it is important to us that immediate feedback, which is characteristic of many VPLs, be preserved, including feedback with respect to type errors, we introduce a model of types suitable for static type inference in the presence of operation polymorphism with similarity inheritance.
    [Show full text]
  • Beginning SOLID Principles and Design Patterns for ASP.NET Developers — Bipin Joshi Beginning SOLID Principles and Design Patterns for ASP.NET Developers
    THE EXPERT’S VOICE® IN .NET DEVELOPMENT Beginning SOLID Principles and Design Patterns for ASP.NET Developers — Bipin Joshi Beginning SOLID Principles and Design Patterns for ASP.NET Developers Bipin Joshi Beginning SOLID Principles and Design Patterns for ASP.NET Developers Bipin Joshi 301 Pitruchhaya Thane, India ISBN-13 (pbk): 978-1-4842-1847-1 ISBN-13 (electronic): 978-1-4842-1848-8 DOI 10.1007/978-1-4842-1848-8 Library of Congress Control Number: 2016937316 Copyright © 2016 by Bipin Joshi This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Exempted from this legal reservation are brief excerpts in connection with reviews or scholarly analysis or material supplied specifically for the purpose of being entered and executed on a computer system, for exclusive use by the purchaser of the work. Duplication of this publication or parts thereof is permitted only under the provisions of the Copyright Law of the Publisher's location, in its current version, and permission for use must always be obtained from Springer. Permissions for use may be obtained through RightsLink at the Copyright Clearance Center. Violations are liable to prosecution under the respective Copyright Law. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark.
    [Show full text]
  • Adaptability Evaluation at Software Architecture Level Pentti Tarvainen*
    The Open Software Engineering Journal, 2008, 2, 1-30 1 Open Access Adaptability Evaluation at Software Architecture Level Pentti Tarvainen* VTT Technical Research Centre of Finland, Kaitoväylä 1, P.O. Box 1100, FIN-90571 Oulu, Finland Abstract: Quality of software is one of the major issues in software intensive systems and it is important to analyze it as early as possible. An increasingly important quality attribute of complex software systems is adaptability. Software archi- tecture for adaptive software systems should be flexible enough to allow components to change their behaviors depending upon the environmental and stakeholders' changes and goals of the system. Evaluating adaptability at software architec- ture level to identify the weaknesses of the architecture and further to improve adaptability of the architecture are very important tasks for software architects today. Our contribution is an Adaptability Evaluation Method (AEM) that defines, before system implementation, how adaptability requirements can be negotiated and mapped to the architecture, how they can be represented in architectural models, and how the architecture can be evaluated and analyzed in order to validate whether or not the requirements are met. AEM fills the gap from requirements engineering to evaluation and provides an approach for adaptability evaluation at the software architecture level. In this paper AEM is described and validated with a real-world wireless environment control system. Furthermore, adaptability aspects, role of quality attributes, and diversity of adaptability definitions at software architecture level are discussed. Keywords: Adaptability, adaptation, adaptive software architecture, software quality, software quality attribute. INTRODUCTION understand the system [6]. Examples of design decisions are the decisions such as “we shall separate user interface from Today, quality of a software system plays an increasingly the rest of the application to make both user interface and important role in the domain of software engineering.
    [Show full text]