ebook img

Practicing software engineering in the 21st century PDF

322 Pages·2003·2.129 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Practicing software engineering in the 21st century

Practicing Software Engineering in the 21st Century edited by Joan Peckham University of Rhode Island, USA and Scott J. Lloyd University of Rhode Island, USA IRM Press Publisher of innovative scholarly and professional information technology titles in the cyberage Hershey • London • Melbourne • Singapore • Beijing Acquisitions Editor: Mehdi Khosrow-Pour Senior Managing Editor: Jan Travers Managing Editor: Amanda Appicello Typesetter: Jennifer Wetzel Copy Editor: Heidi J. Hormel Cover Design: Michelle Waters Printed at: Integrated Book Technology Published in the United States of America by IRM Press (an imprint of Idea Group Inc.) 701 E. Chocolate Avenue, Suite 200 Hershey PA 17033-1240 Tel: 717-533-8845 Fax: 717-533-8661 E-mail: [email protected] Web site: http://www.irm-press.com and in the United Kingdom by IRM Press 3 Henrietta Street Covent Garden London WC2E 8LU Tel: 44 20 7240 0856 Fax: 44 20 7379 3313 Web site: http://www.eurospan.co.uk Copyright © 2003 by IRM Press. All rights reserved. No part of this book may be reproduced in any form or by any means, electronic or mechanical, including photocopy- ing, without written permission from the publisher. Library of Congress Cataloging-in-Publication Data Peckham, Joan, 1948- Practicing software engineering in the 21st century / Joan Peckham and Scott J. Lloyd. p. cm. Includes bibliographical references and index. ISBN 1-931777-50-0 -- ISBN 1-931777-66-7 1. Software engineering. I. Lloyd, Scott J. II. Title. QA76.758.P42 2003 005.1--dc21 2002156236 ISBN: 1-931777-50-0 eISBN: 1-931777-66-7 British Cataloguing in Publication Data A Cataloguing in Publication record for this book is available from the British Library. Other New Releases from IRM Press • Multimedia and Interactive Digital TV: Managing the Opportunities Created by Digital Convergence/Margherita Pagani ISBN: 1-931777-38-1; eISBN: 1-931777-54-3 / US$59.95 / © 2003 • Virtual Education: Cases in Learning & Teaching Technologies/ Fawzi Albalooshi (Ed.), ISBN: 1-931777-39-X; eISBN: 1-931777-55-1 / US$59.95 / © 2003 • Managing IT in Government, Business & Communities/Gerry Gingrich (Ed.) ISBN: 1-931777-40-3; eISBN: 1-931777-56-X / US$59.95 / © 2003 • Information Management: Support Systems & Multimedia Technology/ George Ditsa (Ed.), ISBN: 1-931777-41-1; eISBN: 1-931777-57-8 / US$59.95 / © 2003 • Managing Globally with Information Technology/Sherif Kamel (Ed.) ISBN: 1-931777-42-X; eISBN: 1-931777-58-6 / US$59.95 / © 2003 • Current Security Management & Ethical Issues of Information Technology/Rasool Azari (Ed.), ISBN: 1-931777-43-8; eISBN: 1-931777-59-4 / US$59.95 / © 2003 • UML and the Unified Process/Liliana Favre (Ed.) ISBN: 1-931777-44-6; eISBN: 1-931777-60-8 / US$59.95 / © 2003 • Business Strategies for Information Technology Management/Kalle Kangas (Ed.) ISBN: 1-931777-45-4; eISBN: 1-931777-61-6 / US$59.95 / © 2003 • Managing E-Commerce and Mobile Computing Technologies/Julie Mariga (Ed.) ISBN: 1-931777-46-2; eISBN: 1-931777-62-4 / US$59.95 / © 2003 • Effective Databases for Text & Document Management/Shirley A. Becker (Ed.) ISBN: 1-931777-47-0; eISBN: 1-931777-63-2 / US$59.95 / © 2003 • Technologies & Methodologies for Evaluating Information Technology in Business/ Charles K. Davis (Ed.), ISBN: 1-931777-48-9; eISBN: 1-931777-64-0 / US$59.95 / © 2003 • ERP & Data Warehousing in Organizations: Issues and Challenges/Gerald Grant (Ed.), ISBN: 1-931777-49-7; eISBN: 1-931777-65-9 / US$59.95 / © 2003 • Practicing Software Engineering in the 21st Century/Joan Peckham & Scott J. Lloyd (Eds.), ISBN: 1-931777-50-0; eISBN: 1-931777-66-7 / US$59.95 / © 2003 • Knowledge Management: Current Issues and Challenges/Elayne Coakes (Ed.) ISBN: 1-931777-51-9; eISBN: 1-931777-67-5 / US$59.95 / © 2003 • Computing Information Technology: The Human Side/Steven Gordon (Ed.) ISBN: 1-931777-52-7; eISBN: 1-931777-68-3 / US$59.95 / © 2003 • Current Issues in IT Education/Tanya McGill (Ed.) ISBN: 1-931777-53-5; eISBN: 1-931777-69-1 / US$59.95 / © 2003 Excellent additions to your institution’s library! Recommend these titles to your Librarian! To receive a copy of the IRM Press catalog, please contact (toll free) 1/800-345-4332, fax 1/717-533-8661, or visit the IRM Press Online Bookstore at: [http://www.irm-press.com]! Note: All IRM Press books are also available as ebooks on netlibrary.com as well as other ebook sources. Contact Ms. Carrie Stull Skovrinskie at [[email protected]] to receive a complete list of sources where you can obtain ebook information or IRM Press titles. Practicing Software Engineering in the 21st Century Table of Contents Preface.......................................................................................................... vii Joan Peckham, University of Rhode Island, USA Scott J. Lloyd, University of Rhode Island, USA Section I: System Design Chapter I. Integrating Patterns into CASE Tools................................. 1 Joan Peckham, University of Rhode Island, USA Scott J. Lloyd, University of Rhode Island, USA Chapter II. Petri Nets with Clocks for the Analytical Validation of Business Process ....................................................................................... 11 Gabriel Vilallonga, Universidad Nacional de San Luis, Argentina Daniel Riesco, Universidad Nacional de San Luis, Argentina Germán Montejano, Universidad Nacional de San Luis, Argentina Roberto Uzal, Universidad Nacional de San Luis, Argentina Chapter III. Software and Systems Engineering: Conflict and Consensus............................................................................. 26 Rick Gibson, American University, USA Chapter IV. Lean, Light, Adaptive, Agile and Appropriate Software Development: The Case for a Less Methodical Methodology........... 42 John Mendonca, Purdue University, USA Jeff Brewer, Purdue University, USA Chapter V. How to Elaborate a Use Case .............................................. 53 D. C. McDermid, Edith Cowan University, Australia Chapter VI. A Rigorous Model for RAISE Specifications Reusability................................................................................................... 63 Laura Felice, Universidad Nacional del Centro de la Provincia de Buenos Aires, Argentina Daniel Riesco, Universidad Nacional de San Luis, Argentina Chapter VII. The Application of FOOM Methodology to IFIP Conference Case Study ............................................................................. 82 Judith Kabeli, Ben-Gurion University, Israel Peretz Shoval, Ben-Gurion University, Israel Section II: Managing Software Projects Chapter VIII. A Quantitative Risk Assessment Model for the Management of Software Projects........................................................... 97 Dan Shoemaker, University of Detroit Mercy, USA Chapter IX. Software Metrics, Information and Entropy..................... 116 Jana Dospisil, Monash University, Australia Chapter X. Temporal Interaction Diagrams for Multi-Process Environments.............................................................................................. 143 T. Y. Chen, Swinburne University of Technology, Australia Iyad Rahwan, University of Melbourne, Australia Yun Yang, Swinburne University of Technology, Australia Section III: Applications and Implementations Chapter XI. Toward an Integrative Model of Application-Software Security ...................................................................................................... 157 Vijay V. Raghavan, Northern Kentucky University, USA Chapter XII. Learning Systems and their Engineering: A Project Proposal...................................................................................... 164 Valentina Plekhanova, University of Sunderland, UK Chapter XIII. Towards Construction of Business Components: An Approach to Development of Web-Based Application Systems......... 178 Dentcho N. Batanov, Asian Institute of Technology, Thailand Somjit Arch-int, Khon Kaen University, Thailand Chapter XIV. An OO Methodology Based on the Unified Process for GIS Application Development.................................................................. 195 Jesús D. Garcia-Consuegra, Universidad de Castilla-La Mancha, Spain Chapter XV. A Framework for Intelligent Service Discovery ............ 210 Robert Bram, Monash University, Australia Jana Dospisil, Monash University, Australia Chapter XVI. A Service-Based Approach to Components for Effective Business-IT Alignment ............................................................................. 230 Zoran Stojanovic, Delft University of Technology, The Netherlands Ajantha Dahanayake, Delft University of Technology, The Netherlands Chapter XVII. One Method for Design of Narrowband Lowpass Filters ........................................................................................................... 258 Gordana Jovanovic-Dolecek, National Institute of Astrophysics Optics and Electronics (INAOE), Mexico Javier Diaz-Carmona, Technology Institute of Celaya, Mexico Chapter XVIII. Design of Narrowband Highpass FIR Filters Using Sharpening RRS Filter and IFIR Structure............................................ 272 Gordana Jovanovic-Dolecek, National Institute of Astrophysics Optics and Electronics (INAOE), Mexico About the Authors...................................................................................... 295 Index ...................................................................................................... 304 vii Preface Software engineering is a term that has a very broad definition. This process includes the logical design of a system; the development of prototypes, the auto- mated generation of computer code for the system; the testing, validation and benchmarking of the code and the final implementation of the system. Once a new system is up and running, the software engineering process is used to maintain the system, evaluate its operation, keep track of new versions and refactor and/or reuse the code for other projects. Over the past 30 years the discipline of software engineering has grown. In some cases, a specific programming paradigm, such as object-oriented, evolved into a broad discipline encompassing design and programming processes, tools and tech- niques. Several universities offer degrees as well as courses in software engineer- ing. Standards for software engineering have been incorporated and formalized in England, Canada, Australia and the United States. Additionally, software engineer- ing has received recognition from licensing and standards boards such as the Asso- ciation of Computing Machinery (ACM) Institute of Electrical Engineering (IEEE), ISO 9000 and the Institute for Certification of Computing Professionals (ICCP). Although many current design practices are focused on object-oriented tech- niques, this does not limit us to using object-oriented languages. It is quite possible to adopt the methods whether one writes in Fortran, C++ or writes scripts in Perl. In recent times the concept of software engineering has expanded to include not only code generation and system design, but a set of standards and methods that the software engineer should practice. The practice of software engineering rightfully begins in the requirements phase of any system project, where the problem to be solved is well defined. Once this is captured, the design phase starts. In an effort to avoid the problem of “reinventing the wheel” a good designer decides what methods and patterns can be drawn from the existing software engineering “body of knowledge.” Reusable generic design and code is only one advantage that has been realized today as the libraries of functions, patterns, and frameworks continue to grow. Automated support for the application and integration of these reusable units with newly defined designs and modules using a Computer Aided Software Engi- neering (CASE) tool has created a new lexicon in this field. “Lower CASE” tools now refer to code generation while “higher CASE” tools are those tools used in the viii construction and diagramming of proposed computer systems. There have recently been proposals to integrate these two capabilities into a single tool, so that once a system is proposed and analyzed using standard tools, such as Data Flow Diagrams (DFD), Entity Relationship Diagrams, and Unified Modeling Language (UML), this information is passed to another module of the tool to generate code consistent with these diagrams. As previously mentioned in this preface, during the past 30 years a generalized body of knowledge about design as other aspects of software engineering pro- cesses has emerged with some generally accepted standards. The reader should refer to the “Guide to Software Engineering Body of Knowledge; SWEBOK” from IEEE Computer Society for an excellent description of this body of common knowl- edge and standards. This book begins with a discussion of software patterns that are used to facili- tate the reuse of object-oriented designs. While most CASE tools support the use of UML to extract the design from the software engineer and to assist in the develop- ment, most do not provide assistance in the integration and code generation of soft- ware patterns. In this chapter, the authors analyze the Iterator software pattern for the semantics that would be used in a CASE design tool to help the software engi- neer integrate this pattern into a design and then generate some of the code needed to implement the pattern. This work is based on semantic data modeling techniques that were previously proposed for the design of active databases. The next chapter introduces a theoretical frame for processes definition vali- dation in workflow processes with temporal restrictions. Workflow Interface 1 pro- vides the process definition of the Work Flow Reference Model. This interface combines PNwC to provide the formalization and verification of systems based on the Petri Net theory with an extension. This extension allows the specification of temporal requirements via clock specification, using temporal invariants for the places and temporal conditions in the transitions. This chapter presents a technique to validate the process definition (PD) using Petri Nets with Clocks (PNwC). The algorithm for the analysis of a PNwC allows for the correction of errors in the modeling of the time variable. The algorithm generates information about temporal unreachable states and process deadlocks with temporal blocks. It also corrects activity invariants and transition conditions. The third chapter identifies the key aspects of software engineering and sys- tems engineering in an effort to highlight areas of consensus and conflict. The goal is to support current efforts by practitioners and academics in both disciplines to redefine their professions and bodies of knowledge. By using the Software Engi- neering Institute’s Capability Maturity Model-Integrated (CMMISM) project, which combines best practices from the systems and software engineering disciplines, it can be shown that significant points of agreement and consensus are evident. Nevertheless, valid objections to such integration remain as areas of conflict. It is hoped that this chapter will provide an opportunity for these two communities to resolve unnecessary differences in terminology and methodologies that are reflected ix in their differing perspectives and entrenched in their organizational cultures. Historically the approach to software engineering has been based on a search for an optimal (ideal) methodology— the identification and application of a set of processes, methods and tools that can consistently and predictably lead to software development success. The fourth chapter presents the basis for pursuing a more flexible, adaptive approach. Less methodical techniques under a variety of names take what is described as a contingency-oriented approach. Because of the limita- tions in the nature of methodology, the high failure rate in software development, the need to develop methodology within an environmental context and the pressures of fast-paced “E” development, the authors argue that further exploration and defini- tion of an adaptive, contingency-based approach to methodology is justified. Chapter V challenges the established wisdom with respect to use cases. Use cases are classically elaborate to capture the functional requirements of the system by directly identifying objects, methods and data. Several authors of system analysis and design books advocate this approach. However the research reported in this paper indicates that there are better constructs for modeling use cases, at least initially. Further objects are not a particularly good medium for discussing require- ments with users. This paper rehearses the arguments leading up to these conclu- sions and identifies some implications of these conclusions. The theme of system development is continued in Chapter VI. Using the RAISE specification development process, a variety of components and infrastruc- tures are built. These components are not independent and are related to each other, when the authors specify different systems into the same infrastructure. The RAISE method is based on the idea that software development is a stepwise, evo- lutionary process of applying semantics-preserving transitions. Reuse is crucially impacted in all the stages of the development, but there is no explicit reference to the specification of reusability in this development process. This chapter presents a rigorous process for reusability using RSL (RAISE Specification Language) com- ponents. The authors provide the mechanism to select a reusable component in order to guide RAISE developers in the software specification and construction process. The section on system development concludes with Chapter VII. This chap- ter introduces the Functional and Object-Oriented Methodology (FOOM) . This is an integrated methodology for information systems analysis and design that com- bines two essential software-engineering paradigms: the functional/data approach (or process-oriented) and the object-oriented (OO) approach. FOOM has been applied to a variety of domains. This chapter presents the application of the method- ology to the specification of the “IFIP Conference” system with focus on the analy- sis and design phases. The FOOM analysis phase includes data modeling and func- tional analysis activities, and produces an initial Class Diagram and a hierarchy of OO Data Flow Diagrams (OO-DFDs). The products of the design phase include: (a) a complete class diagram; (b) object classes for the menus, forms and reports and (c) a behavior schema, which consists of detailed descriptions of the methods x and the application transactions expressed in pseudocode and message diagrams. Section II discusses methods to evaluate and manage the system development process. Chapter VIII presents a comprehensive quantitative management model for information technology. This methodology is assessment based and can be easily implemented without imposing an unacceptable organizational change. It supplies detailed information about the functioning of processes that allows managers to both effectively oversee operations and assess their prospective and ongoing execution risks. This offers a consistent risk reward evaluation. Continuing with the theme of measurement and risk assessment Chapter IX describes the foundation and properties of specific object-oriented software mea- sures. Many measures for object-oriented applications have been constructed and tested in development environments. However, the process of defining new mea- sures is still alive. The reason for this lies in the difficulties associated with under- standing and maintaining object-oriented applications. It is still difficult to relate the measures to the phenomena that need to be improved. Do current measurements indicate problems in reliability, maintenance or the unreasonable complexity of some portions of the application? In order to reduce the complexity of software, new development methodolo- gies and tools are being introduced. The authors talk about a new approach to development called separation of concern. Tools, such as Aspect/J or Hyper/J, fa- cilitate the development process, but there does not seem to be a sound metrics suite to measure complexity and efficiency of applications developed and coded with Aspect/J or Hyper/J. In this chapter, the authors attempt to review the current research into object-oriented software metrics and suggest theoretical framework for complexity estimation and ranking of compositional units in object-oriented appli- cations developed with Hyper/J. Chapter X concludes the managing projects section by introducing a novel notion of temporal interaction diagrams that can be used for testing and evaluating distributed and parallel programming. An interaction diagram is a graphic view of computation processes and communication between different entities in distributed and parallel applications. It can be used for the specification, implementation and testing of interaction policies in distributed and parallel systems. Expressing interac- tion diagrams in a linear form, known as fragmentation, facilitates automation of design and testing of such systems. Existing interaction diagram formalisms lack the flexibility and capability of describing more general temporal order constraints. They only support rigid temporal order, hence have limited semantic expressiveness. The authors propose an improved interaction diagram formalism in which more general temporal constraints can be expressed. This enables the capture of multiple valid interaction sequences using a single interaction diagram. Section III discusses specific applications and implementations that are best solved by the principles of software engineering. Chapter XI begins this section with relevant security issues that must be considered in any software implementa- tion. While academicians and industry practitioners have long recognized the need

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.