software engineering.pdf

Download Software Engineering.pdf

Post on 08-Sep-2015

62 views

Category:

Documents

1 download

Embed Size (px)

TRANSCRIPT

  • SOFTWARE ENGINEERING AND DEVELOPMENT

    No part of this digital document may be reproduced, stored in a retrieval system or transmitted in any form orby any means. The publisher has taken reasonable care in the preparation of this digital document, but makes noexpressed or implied warranty of any kind and assumes no responsibility for any errors or omissions. Noliability is assumed for incidental or consequential damages in connection with or arising out of informationcontained herein. This digital document is sold with the clear understanding that the publisher is not engaged inrendering legal, medical or any other professional services.

  • SOFTWARE ENGINEERING AND DEVELOPMENT

    ENRIQUE A. BELINI EDITOR

    Nova Science Publishers, Inc. New York

  • Copyright 2009 by Nova Science Publishers, Inc. All rights reserved. No part of this book may be reproduced, stored in a retrieval system or transmitted in any form or by any means: electronic, electrostatic, magnetic, tape, mechanical photocopying, recording or otherwise without the written permission of the Publisher. For permission to use material from this book please contact us: Telephone 631-231-7269; Fax 631-231-8175 Web Site: http://www.novapublishers.com

    NOTICE TO THE READER The Publisher has taken reasonable care in the preparation of this book, but makes no expressed or implied warranty of any kind and assumes no responsibility for any errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of information contained in this book. The Publisher shall not be liable for any special, consequential, or exemplary damages resulting, in whole or in part, from the readers use of, or reliance upon, this material. Any parts of this book based on government reports are so indicated and copyright is claimed for those parts to the extent applicable to compilations of such works. Independent verification should be sought for any data, advice or recommendations contained in this book. In addition, no responsibility is assumed by the publisher for any injury and/or damage to persons or property arising from any methods, products, instructions, ideas or otherwise contained in this publication. This publication is designed to provide accurate and authoritative information with regard to the subject matter covered herein. It is sold with the clear understanding that the Publisher is not engaged in rendering legal or any other professional services. If legal or any other expert assistance is required, the services of a competent person should be sought. FROM A DECLARATION OF PARTICIPANTS JOINTLY ADOPTED BY A COMMITTEE OF THE AMERICAN BAR ASSOCIATION AND A COMMITTEE OF PUBLISHERS. LIBRARY OF CONGRESS CATALOGING-IN-PUBLICATION DATA Software engineering and development / Enrique A. Belini. p. cm. Includes index. ISBN 978-1-61668-289-7 (E-Book) 1. Software engineering. 2. Computer software--Development. I. Belini, Enrique A. QA76.758.S64557 2009 005.1--dc22 2009014731

    Published by Nova Science Publishers, Inc. New York

  • CONTENTS

    Preface vii

    Expert Commentaries 1

    A Succinct Representation of Bit Vectors Supporting Efficient rank and select Queries

    3

    Jesper Jansson and Kunihiko Sadakane

    B Heterogeneity as a Corner Stone of Software Development in Robotics

    13

    Juan-Antonio Fernndez-Madrigal, Ana Cruz-Martn, Cipriano Galindo and Javier Gonzlez

    Short Communications 23

    A Embedding Domain-Specific Languages in General-Purpose Programming Languages

    25

    Zoltn dm Mann

    B Studying Knowledge Flows in Software Processes 37 Oscar M. Rodrguez-Elias, Aurora Vizcano,

    Ana I. Martnez-Garca , Jess Favela and Mario Piattini

    C Software Product Line Engineering: The Future Research Directions

    69

    Faheem Ahmed, Luiz Fernando Capretz and Muhammad Ali Babar

    D Software Development for Inverse Determination of Constitutive Model Parameters

    93

    A. Andrade-Campos, P. Pilvin, J. Simes and F. Teixeira-Dias

    E Design of Molecular Visualization Educational Software for Chemistry Learning

    125

    L.D. Antonoglou, N.D. Charistos and M.P. Sigalas

  • Contents vi

    F Software Components for Large Scale Super and Grid Computing Applications

    151

    Muthu Ramachandran

    G Principles and Practical Aspects of Educational Software Evaluation

    175

    Quynh L and Thao L

    Research and Review Studies 185

    Chapter 1 Testing Event-driven Software the Next QA Challenge? 187 Atif M. Memon

    Chapter 2 Debugging Concurrent Programs Using Metaheuristics 193 Francisco Chicano and Enrique Alba

    Index 223

  • PREFACE Software engineering is one of the most knowledge intensive jobs. Thus, having a good

    knowledge management (KM) strategy in these organizations is very important. This book examines software processes from a knowledge perspective flow, in order to identify the particular knowledge needs of such processes to then be in a better position for proposing systems or strategies to address those needs. Its possible benefits are illustrated through the results of a study in a software maintenance process within a small software organization. Furthermore, software product line architecture is regarded as one of the crucial piece of entity in software product lines. The authors of this book discuss the state of the art of software product line engineering from the perspectives of business, architecture, process and organization. In recent years, domain-specific languages have been proposed for modelling applications on a high level of abstraction. Although the usage of domain-specific languages offers clear advantages, their design is a highly complex task. This book presents a pragmatic way for designing and using domain-specific languages. Other chapters in this book examine the development of numerical methodologies for inverse determination of material constitutive model parameters, discuss some of the reasons for the irrelevancy of software engineering to the robotic community, review the evolution of robotic software over time, and propose the use of Ant Colony Optimization, a kind of metaheuristic algorithm, to find general property violations in concurrent systems using a explicit state model checker.

    In the design of succinct data structures, the main objective is to represent an object compactly while still allowing a number of fundamental operations to be performed efficiently. In Expert Commentary A, the authors consider succinct data structures for storing a bit vector B of length n. More precisely, in this setting, one needs to represent B using n+ o(n) bits so that rank and select queries can be answered in O(1) time, where for any i {1, 2, . . . , n}, rank0(B, i) is the number of 0s in the first i positions of B, select0(B, i) is the position in B of the ith 0 (assuming B contains at least i 0s), and rank1(B, i) and select1(B, i) are defined analogously. These operations are useful because bit vectors supporting rank and select queries are employed as a building block for many other more complex succinct data structures. The authors first describe two succinct indexing data structures for supporting rank and select queries on B in which B is stored explicitly together with some auxiliary information. The authors then present some matching lower bounds. Finally, the authors discuss generalizations and related open problems for supporting rank and select queries efficiently on strings over non-binary alphabets.

  • Enrique A. Belini viii

    In the last years the complexity of robotic applications has raised important problems, particularly in large and/or long-term robotic projects. Software engineering (SE) seems the obvious key for breaking that barrier, providing good maintenance and reusing, coping with exponential growth of programming effort, and integrating diverse components with guarantees. Suprisingly, SE has never been very relevant within the robotic community. In Expert Commentary B the authors briefly describe some causes for that, review the evolution of robotic software over time, and provide some insights from our most recent contributions. They have found that many problems arising from the conflicts raised by robotic complexity can be well addressed from a SE perspective as long as the focus is, at all levels, on the heterogeneity of components and methodologies. Therefore the authors propose heterogeneity as one of the corner stones of robotic software at present.

    In recent years, domain-specific languages have been proposed for modelling applications on a high level of abstraction. Although the usage of domain-specific languages offers clear advantages, their design is a highly complex task. Moreover, developing a compiler or interpreter for these languages that can fulfil the requirements of industrial application is hard. Existing tools for the generation of compilers or interpreters for domain-specific languages are still in an early stage and not yet appropriate for the usage in an industrial setting.

    Short Communication A presents a pragmatic way for designing and using domain-specific languages. In this approach, the domain-specific language is defined on the basis of a general-purpose programming language. Thus, general programming mechanisms such as arithmetics, string manipulations, basic data structures etc. are automatically available in the domain-specific language. Additionally, the designer of the domain-specific language can define further domain-specific constructs, both data types and operations. These are defined without breachin