WILEY Advantage Dear Valued Customer

Total Page:16

File Type:pdf, Size:1020Kb

WILEY Advantage Dear Valued Customer Y L F M A E T Team-Fly® The WILEY advantage Dear Valued Customer, We realize you’re a busy professional with deadlines to hit. Whether your goal is to learn a new technology or solve a critical problem, we want to be there to lend you a hand. Our primary objective is to provide you with the insight and knowledge you need to stay atop the highly competitive and ever- changing technology industry. Wiley Publishing, Inc. offers books on a wide variety of technical categories, including security, data warehousing, software development tools, and networking - everything you need to reach your peak. Regardless of your level of expertise, the Wiley family of books has you covered. • For Dummies – The fun and easy way to learn • The Weekend Crash Course –The fastest way to learn a new tool or technology • Visual – For those who prefer to learn a new topic visually • The Bible – The 100% comprehensive tutorial and reference • The Wiley Professional list – Practical and reliable resources for IT professionals In the book that you now hold in your hands, Darren Broemmer shares best practices and lessons learned for J2EE development. As you design and build a banking application with J2EE and design patterns, you'll also utilize metadata-driven configurable foundation components to help automate much of the development for Web-based business applications. And of course, the tools and technologies used to construct the sample application are not from any one vendor, but best of breed—Jakarta Struts, Servlets, JSP, XML, EJB, UML, WebLogic, WebSphere, and many more. Our commitment to you does not end at the last page of this book. We’d like to open a dialog with you to see what other solutions we can provide. Please be sure to visit us at www.wiley.com/compbooks to review our complete title list and explore the other resources we offer. If you have a comment, suggestion or any other inquiry, please locate the “contact us” link at www.wiley.com. Thank you for your support and we look forward to hearing from you and serving your needs again in the future. Sincerely, Richard K. Swadley Vice President & Executive Group Publisher Wiley Publishing, Inc. J2EETM Best Practices JavaTM Design Patterns, Automation, and Performance Darren Broemmer Wiley Publishing, Inc. Publisher: Bob Ipsen Editor: Theresa Hudson Developmental Editor: Kenyon Brown Editorial Manager: Kathryn A. Malm Managing Editor: Pamela Hanley New Media Editor: Brian Snapp Text Design & Composition: Interactive Composition Corporation Designations used by companies to distinguish their products are often claimed as trade- marks. In all instances where Wiley Publishing, Inc., is aware of a claim, the product names appear in initial capital or ALL CAPITAL LETTERS. Readers, however, should contact the ap- propriate companies for more complete information regarding trademarks and registration. This book is printed on acid-free paper. Copyright © 2003 by Darren Broemmer. All rights reserved. Published by Wiley Publishing, Inc., Indianapolis, Indiana Published simultaneously in Canada No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning, or otherwise, except as permitted under Section 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, Inc., 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 750-4470. Requests to the Publisher for permission should be addressed to the Legal Department, Wiley Publishing, Inc., 10475 Crosspointe Blvd., Indianapolis, IN 46256, (317) 572-3447, fax (317) 572-4447, E-mail: [email protected]. Limit of Liability/Disclaimer of Warranty: While the publisher and author have used their best efforts in preparing this book, they make no representations or warranties with respect to the accuracy or completeness of the contents of this book and specifically disclaim any implied warranties of merchantability or fitness for a particular purpose. No warranty may be created or extended by sales representatives or written sales materials. The advice and strategies contained herein may not be suitable for your situation. You should consult with a professional where appropriate. Neither the publisher nor author shall be liable for any loss of profit or any other commercial damages, including but not limited to special, incidental, consequential, or other damages. For general information on our other products and services please contact our Customer Care Department within the United States at (800) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002. Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic books. Library of Congress Cataloging-in-Publication Data: ISBN 0-471-22885-0 Printed in the United States of America 10987654321 This book is dedicated to my mother, Joan, and in loving memory of my father, Gary, for all of their love, support, and encouragement. Contents Acknowledgments x About the Author xi Introduction xii Overview of the Book and Technology xii How This Book Is Organized xx Who Should Read This Book xxiii Tools You Will Need xxiii What’s on the Web Site xxiv Summary xxiv Chapter 1 Building Business Applications with J2EE 1 Elements of Transactional, Web-Based Business Applications 2 The Reference Architecture 4 The J2EE Platform Approach 9 The Model-View-Controller Architecture Approach 16 Best Practices for Building Business Applications with J2EE 20 Summary 21 Chapter 2 The Business Object Architecture: Design Considerations 23 Business Objects in a Banking Application 25 Elements of Business Objects 26 vii viii Contents Design Considerations 29 Best Practices for Designing Business Objects 50 Summary 53 Chapter 3 Building Business Objects: Managing Properties and Handling Errors 55 Managing Properties 55 Value Objects and Lightweight Business Objects 83 Object Validation and Error Handling 87 Best Practices for Implementing Business Objects: Part One 102 Summary 103 Chapter 4 Building Business Objects: Persistence, Relationships, and the Template Method Pattern 105 Object Persistence 105 The Base Class as a Template 159 Overall Business Object Metadata Approach 168 Data Caching 174 Best Practices for Implementing Business Objects: Part Two 185 Summary 188 Chapter 5 The Service-Based Architecture: Design Considerations 189 Elements of Service-Based Components 193 Design Considerations 196 Best Practices for Designing Service-Based Components 207 Summary 208 Chapter 6 Building Service-Based Components 209 The Actual Service Interface 209 An Implementation for Argument Lists 210 The Session Bean as a Component Wrapper to the Service 215 Responsibilities of the Service Component 221 Update Service Examples 225 Updating Multiple Business Objects 233 The New Customer Service 234 Data Retrieval Services 240 Building Generic, Reusable Services 251 Implementing the Controller Pattern in Services 253 Best Practices for Implementing Service-Based Components 255 Summary 257 Contents ix Chapter 7 The User Interaction Architecture: Design Considerations and an Overview of Jakarta Struts 259 Elements of the User Interaction Architecture 261 Design Considerations 265 An Overview of Jakarta Struts 284 Best Practices for Designing the User Interaction Architecture 298 Summary 300 Chapter 8 Building the User Interaction Architecture 301 The Change Address Page 301 The Change Address JSP 307 The View Accounts Page 332 The New Customer Wizard 342 A Template for the Action Class 362 Web Services 369 Best Practices for Implementing the User Interaction Architecture 371 Summary 372 Chapter 9 Strengthening the Bank Application: Adding Security and Advanced Functionality 375 Application Security 375 Interesting Aspects of the Bank Application 392 Best Practices for Advanced Web Application Development 417 Summary 418 Chapter 10 Performance 421 Overall Performance Approach 421 Performance in J2EE Applications 430 Best Practices for J2EE Performance Engineering 440 Summary 442 Chapter 11 Moving toward Reuse in the Reference Architecture 443 Common Roadblocks and Corresponding Best Practices 444 Reuse in the Reference Architecture 452 The Strategic View of the Architecture 454 Best Practices for Moving toward Reuse 456 Summary 457 Bibliography 459 Index 461 Acknowledgments I owe countless thanks to my parents, John and Joan, Shirley and my late father Gary, for always being there and giving so much of themselves to help me. Without question, this book would not have been possible without everything that they have done for me. Special thanks also goes to John Abbey, Jeff Nelms, and Ken Young for reviewing the chapters, providing their insight, and contributing to this effort. John and I have collaborated for years on J2EE development and had many a lively and entertaining discussion on the topic. Likewise, Jeff and I have Ydebated the finer points of business objects many times and much of the performanceL slant in this book can be traced back to his influence. Ken’s early feedback helpedF to shape the perspective that the book eventually took. I would also like to recognize Ron Carden for his influence in my work and the development of this material. Another person who made this book pos- sible is my wife Caroline who enthusiasticallyM supported me throughout the effort. I would also like to acknowledgeA Bill Hough who unquestionably supported this effort. Special thanks to Jack Greenfield, Terri Hudson, and all the folks at Wiley for their sup- port and help in putting thisE book together. Finally, thanks to God through whom all things are made possible.T Darren Broemmer September 2002 x Team-Fly® About the Author Darren Broemmer is an application architect working on next-generation J2EE soft- ware solutions in the mortgage industry at Freddie Mac. His previous work includes architecture, development, and management experience in Internet and client-server systems implementations for consulting clients in North America, Europe, and the Middle East.
Recommended publications
  • Javaedge Setup and Installation
    APPENDIX A ■ ■ ■ JavaEdge Setup and Installation Throughout the book, we have used the example application, JavaEdge, to provide a practical demonstration of all the features discussed. In this appendix, we will walk you through setting up the tools and applications required to build and run JavaEdge, as well as take you through the steps needed to get the JavaEdge application running on your platform. Environment Setup Before you can get started with the JavaEdge application, you need to configure your platform to be able to build and run JavaEdge. Specifically, you need to configure Apache Ant in order to build the JavaEdge application and package it up for deployment. In addition, the JavaEdge application is designed to run on a J2EE application server and to use MySQL as the back-end database. You also need to have a current JDK installed; the JavaEdge application relies on JVM version 1.5 or higher, so make sure your JDK is compatible. We haven’t included instruc- tions for this here, since we are certain that you will already have a JDK installed if you are reading this book. However, if you do need to download one, you can find it at http://java. sun.com/j2se/1.5.0/download.jsp. Installing MySQL The JavaEdge application uses MySQL as the data store for all user, story, and comment data. If you don’t already have the MySQL database server, then you need to obtain the version applicable to your platform. You can obtain the latest production binary release of MySQL for your platform at http://www.mysql.com.
    [Show full text]
  • (CGPA) Examination May/June 2017 Programming in C (Revised) [Time: Three Hours] [Max.Marks:80]
    Total No. of Printed Pages:2 SUBJECT CODE NO:- P-11 FACULTY OF ENGINEERING AND TECHNOLOGY First Year MCA (CGPA) Examination May/June 2017 Programming in C (Revised) [Time: Three Hours] [Max.Marks:80] Please check whether you have got the right question paper. N.B i) Q.No.1 from section A and Q.No.8 from section B are compulsory. ii) Attempt any two questions from the remaining questions in each section SECTION A Q.1 Find the output of the following and also specify the reason. 08 a. #include<stdio.h> Void main() { Char C*2+= “A”; Printf(“\n %c”,C[0]); Printf(“\n %s”,C); } b. #include<stdio.h> void main() { Int x=4, y=0, z; While (x>=0) { If(x= =y) break; else Printf(“\n%d%d”,x,y); x- -; y++; } } Q.2 A What is constant & variables? Explain the rules for constructing integer & real point (float) constant 08 B Write a program to calculate overtime pay of 10 employees. Overtime is paid at the rate of rs.12.00 per hour 08 for overtime hour worked above 40 hours. Assume that employee do not work for fractional part of an hour. Q.3 A Explain all loop control statements in detail with proper example 08 B Write a program in C to accept a number & check whether it is Armstrong number or not. 08 Q.4 A What is an algorithm? Explain with example. 08 B Write a program to enter a number from user and calculate the sum of its digit. 08 SECTION B Q.5 A What is an array? Explain with its types.
    [Show full text]
  • Web Component Development Using Java Web Component Development Using Java Learner’S Guide
    Web Component Development Using Java Web Component Development Using Java Learner’s Guide © 2014 Aptech Limited All rights reserved. No part of this book may be reproduced or copied in any form or by any means – graphic, electronic or mechanical, including photocopying, recording, taping, or storing in information retrieval system or sent or transferred without the prior written permission of copyright owner Aptech Limited. All trademarks acknowledged. APTECH LIMITED Contact E-mail: [email protected] First Edition - 2014 Dear Learner, We congratulate you on your decision to pursue an Aptech course. Aptech Ltd. designs its courses using a sound instructional design model – from conceptualization to execution, incorporating the following key aspects: ¾ Scanning the user system and needs assessment Needs assessment is carried out to find the educational and training needs of the learner Technology trends are regularly scanned and tracked by core teams at Aptech Ltd. TAG* analyzes these on a monthly basis to understand the emerging technology training needs for the Industry. An annual Industry Recruitment Profile Survey# is conducted during August - October to understand the technologies that Industries would be adapting in the next 2 to 3 years. An analysis of these trends & recruitment needs is then carried out to understand the skill requirements for different roles & career opportunities. The skill requirements are then mapped with the learner profile (user system) to derive the Learning objectives for the different roles. ¾ Needs analysis and design of curriculum The Learning objectives are then analyzed and translated into learning tasks. Each learning task or activity is analyzed in terms of knowledge, skills and attitudes that are required to perform that task.
    [Show full text]
  • Web Application Architecture: Principles, Protocols and Practices
    Web Application Architecture Principles, protocols and practices Leon Shklar Richard Rosen Dow Jones and Company Web Application Architecture Web Application Architecture Principles, protocols and practices Leon Shklar Richard Rosen Dow Jones and Company Copyright 2003 by John Wiley & Sons Ltd, The Atrium, Southern Gate, Chichester, West Sussex PO19 8SQ, England Telephone (+44) 1243 779777 Email (for orders and customer service enquiries): [email protected] Visit our Home Page on www.wileyeurope.com or www.wiley.com All Rights Reserved. No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except under the terms of the Copyright, Designs and Patents Act 1988 or under the terms of a licence issued by the Copyright Licensing Agency Ltd, 90 Tottenham Court Road, London W1T 4LP, UK, without the permission in writing of the Publisher with the exception of any material supplied specifically for the purpose of being entered and executed on a computer system for exclusive use by the purchase of the publication. Requests to the Publisher should be addressed to the Permissions Department, John Wiley & Sons Ltd, The Atrium, Southern Gate, Chichester, West Sussex PO19 8SQ, England, or emailed to [email protected], or faxed to (+44) 1243 770620. This publication is designed to provide accurate and authoritative information in regard to the subject matter covered. It is sold on the understanding that the Publisher is not engaged in rendering professional services. If professional advice or other expert assistance is required, the services of a competent professional should be sought.
    [Show full text]
  • Java EE Containers
    HEWLETT-PACKARD EDUCATION SERVICES J2EE With Struts Framework http://www.hpesindia.com TABLE OF CONTENTS Chap. No. Chapter Name Page No. 1. Introduction to J2EE 2 2. Using JDBC API 18 3. Introduction to HTML 65 4. Web Applications & Java Servlet Technology 81 5. Inside Servlets 91 6. Advanced Servlets Part-1 113 7. Advanced Servlets Part-2 140 8. Advanced Servlets Part-3 151 9. JSP Basics 188 10. Advanced JSP 206 11. Working with JSTL 260 12. MVC Based Web Development with Struts 288 [HP Education Services] 1 01 Introduction to J2EE evelopers today increasingly recognize the need for distributed, transactional, and D portable applications that leverage the speed, security, and reliability of server-side technology. In the world of information technology, enterprise applications must be designed, built, and produced for less money, with greater speed, and with fewer resources. With the Java Platform, Enterprise Edition (Java EE), development of Java enterprise applications has never been easier or faster. The aim of the Java EE 5 platform is to provide developers a powerful set of APIs while reducing development time, reducing application complexity, and improving application performance. The Java EE 5 platform introduces a simplified programming model. With Java EE 5 technology, XML deployment descriptors are now optional. Instead, a developer can simply enter the information as an annotation directly into a Java source file, and the Java EE server will configure the component at deployment and runtime. These annotations are generally used to embed in a program data that would otherwise be furnished in a deployment descriptor.
    [Show full text]
  • Oreilly.Com/Catalog/Jakarta
    Programming Jakarta Struts By Chuck Cavaness Table of Contents Preface The road to successful web applications is paved with the sweat and heartache of the many who came before us. The idea of taking a rich client application and allowing it to execute over the Internet was a great leap of faith, and maybe just a little shortsighted. By "web applications," I don't mean small, trivial applications that accept a form or two of input and push it into a database; I mean large applications that cross several tiers, use many different technologies, and cover the spectrum of analysis and design-pattern uses. The design and construction of these types of applications push developers to the limit of what's logically and physically possible. Myriad solutions have been thrown at the problems these applications present. Some of the solutions stuck, and some did not—and when a solution didn't serve the needs of the users, it was obvious. But as with human evolution, the valuable characteristics eventually were passed on, and the characteristics that failed to serve their intended purposes fell by the wayside. The user interface (UI) in Smalltalk-80™ was designed around the Model-View-Controller (MVC) framework. Over time, this framework has been adopted as a classic design pattern and used in many different scenarios. Other UI frameworks, such as the one written for Java™ Swing, use similar concepts. The architects of the JavaServer Pages™ (JSP) specification formally introduced the abstract idea of two types of models for web-based solutions: Model 1 and Model 2.
    [Show full text]
  • Controlling Home Appliances Using Internet
    CONTROLLING HOME APPLIANCES USING INTERNET Project Report submitted in partial fulfillment of the requirement for the degree of Bachelor of Technology In Information Technology Under the Supervision of Mr. Amol Vasudeva Assistant Professor By ANIRUDH KAUSHIK (111478) Jaypee University of Information and Technology Waknaghat, Solan– 173234, Himachal Pradesh i Certificate This is to certify that project report entitled “Controlling Home Appliances Using Internet”, submitted by Anirudh Kaushik in partial fulfillment for the award of degree of Bachelor of Technology in Information Technology in Jaypee University of Information Technology, Waknaghat, Solan has been carried out under my supervision. This work has not been submitted partially or fully to any other University or Institute for the award of this or any other degree or diploma. Date: 8th May 2015 Mr. Amol Vasudeva (Assistant Professor) ii Acknowledgement No venture can be completed without the blessings of the Almighty. I consider it my bounded duty to bow to Almighty whose kindness has always inspired me on the right path. I would like to take the opportunity to thank all the people who helped us in any form in the completion of my project “Controlling Home Appliances using Internet”. It would not have been possible to see through the project without the guidance and constant support of my project guide Mr. Amol Vasudeva. For his coherent guidance, careful supervision, critical suggestions and encouragement I feel fortunate to be taught by him. I would like to express my gratitude towards Brig. (Retd) Balbir Singh, Director JUIT, for having trust in me. I owe my heartiest thanks to Prof.
    [Show full text]
  • Beginning JSP, JSF and Tomcat Java Web Development
    Beginning JSP, JSF and Tomcat Java Web Development Giulio Zambon www.it-ebooks.info Beginning JSP, JSF and Tomcat Copyright © 2012 by Giulio Zambon 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. ISBN 978-1-4302-4623-7 ISBN 978-1-4302-4624-4 (eBook) 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. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights.
    [Show full text]
  • Evaluation of the Model-View-Controller Design Pattern When Applied to a Heterogeneous Application to Distribute Newspaper Textual Content to Mobile Devices
    ISSN 1744-1986 Technical Report N O 2006/ 27 Evaluation of the Model-View-Controller design pattern when applied to a heterogeneous application to distribute newspaper textual content to mobile devices Sakib Supple 30 September, 2006 Department of Computing Faculty of Mathematics, Computing and Technology The Open University Walton Hall, Milton Keynes, MK7 6AA United Kingdom http://computing.open.ac.uk Evaluation of the Model-View- Controller design pattern when applied to a heterogeneous application to distribute newspaper textual content to mobile devices A dissertation submitted in partial fulfilment of the requirements for the Open University’s Master of Science Degree in Software Development. Sakib Supple (M4764010) 6 March 2007 Word Count: 13820 M4764010 Sakib Supple 1 of 121 Preface Thanks to my employer, Guardian News & Media Limited, for being very understanding and also for providing the substantial resources required for this project. Thanks also to the numerous people who helped me during the project: Gavin Bresler for installing the blackberry application on numerous devices (frequently with very little notice); Nick Passmore, Lee Dunn, John Stuttle, Rob Johnson, James Bunch, Suzanne Amos and Harold Frayman, all of whom kindly agreed to help with the evaluation of the user interface. M4764010 Sakib Supple 2 of 121 Table of contents Preface...........................................................................................................................2 List of figures ................................................................................................................6
    [Show full text]
  • An Agent Driven M-Learning Application
    International Journal of Advanced Computer Science and Information Technology (IJACSIT) Vol. 3, No. 3, 2014, Page: 263-272, ISSN: 2296-1739 © Helvetic Editions LTD, Switzerland www.elvedit.com An Agent Driven M-learning Application Authors Collins N. Udanor [email protected] Faculty of Physical Sciences, Department of Computer Science, University Nsukka,, Nigeria of Nigeria O.U. Oparaku [email protected] Faculty of Engineering, Department of Electronic Engineering, University of Nsukka,, Nigeria Nigeria. Abstract The future of the web is on mobile devices. Application users have migrated from the desktop to the web. Now the next stage of the Web will be building apps and mobile UIs on top of our collective data. On the part of developers, application development is moving from object-oriented development to agent-oriented programming. This paper presents a fusion of these two trends in computing. The need for ubiquitous access to information and communication, as well as the portability of devices has prompted a lot of research interests in mobile technologies. One of such recent interests is in the field of mobile learning (M- learning), an offshoot of the more established e-learning. This paper presents the development of a multi- agent driven m-learning application using the Java Agent Development Environment (JADE). Key Words Agent, JADE, IMLS, M-learning I. INTRODUCTION The need to re-conceptualize learning in the mobile age has given rise to intensive research work on Mobile learning. In recent times, this need has also propelled researchers to recognize the essential role of mobility and communication in the process of learning.
    [Show full text]
  • Proceedings of International Conference on Advancement in Engineering & Technology
    Interscience Research Network Interscience Research Network Conference Proceedings - Full Volumes IRNet Conference Proceedings 7-1-2012 Proceedings of International Conference on Advancement in Engineering & Technology Dr. Sushanta Panigrahi Follow this and additional works at: https://www.interscience.in/conf_proc_volumes Part of the Biomedical Engineering and Bioengineering Commons, Civil and Environmental Engineering Commons, Computer Engineering Commons, and the Electrical and Computer Engineering Commons Proceedings of International Conference On Advancement in Engineering & Technology (ICAET-2012) 1st JULY, 2012 BANGALORE, India Organized by: ASTAR, INDIA About ICAET-2012 International Conference on Advancement in Engineering and Technology (ICAET). ICAET aims to bring together researchers, scientists, engineers, and scholar students to exchange and share their experiences, new ideas, and research results about all aspects of Computer Science, Electronics and Communication engineering, and discuss the practical challenges encountered and the solutions adopted. The conference will be held every year to make it an ideal platform for people to share views and experiences in Computer Science, Electronics and Communication Engineering and related areas. ICAET invites original contributions on topics covered under broad areas such as (but not limited to): Scientific and engineering computing Problem-solving environments Advanced numerical computation and optimization Complex systems: modeling and simulation Signal and System theory,
    [Show full text]
  • Bridging Patterns: an Approach to Bridge Gaps Between SE and HCI
    Information and Software Technology 48 (2006) 69–89 www.elsevier.com/locate/infsof Bridging patterns: An approach to bridge gaps between SE and HCI Eelke Folmer a,*, Martijn van Welie b,c, Jan Bosch a a Department of Mathematics and Computing Science, University of Groningen, P.O. Box 800, 9700 AV Groningen, The Netherlands b Department of Computer Science, Faculty of Sciences, Vrije Universiteit, Amsterdam, The Netherlands c Satama Interactive, Amsterdam, The Netherlands Received 17 September 2004; received in revised form 10 February 2005; accepted 19 February 2005 Available online 7 November 2005 Abstract Adding usability improving solutions during late stage development is to some extent restricted by the software architecture. However, few software engineers and human–computer interaction engineers are aware of this important constraint and as a result avoidable rework is frequently necessary. In this paper we present a new type of pattern called a bridging pattern. Bridging patterns extend interaction design patterns by adding information on how to generally implement this pattern. Bridging patterns can be used for architectural analysis: when the generic implementation is known, software architects can assess what it means in their context and can decide whether they need to modify the software architecture to support these patterns. This may prevent part of the high costs incurred by adaptive maintenance activities once the system has been implemented and leads to architectures with better support for usability. q 2005 Elsevier B.V. All rights reserved. Keywords: Software engineering; HCI; Interaction design patterns; Software architecture 1. Introduction A software product with poor usability is likely to fail in a highly competitive market; therefore software developing organizations are paying more and more attention to ensuring the usability of their software.
    [Show full text]