Invited Industry Presentations (IIP)
Wednesday, May 16, 2001
S7
Challenges in Software Development Practice
Session chair:
Dewayne E. Perry,
University of Texas at Austin, USA
Global Software Development: The Bell Labs Collaboratory
David Atkins,
Bell Laboratories Lucent Technologies, USA;
Mark Handel,
University of Michigan, USA;
James D. Herbsleb and
Audris Mockus,
Bell Laboratories Lucent Technologies, USA;
Dewayne E. Perry,
University of Texas at Austin, USA; and
Graham Wills,
Bell Laboratories Lucent Technologies, USA
Software development is a global enterprise for many large corporations. Searching for talent across national boundaries, and integrating groups thrown together by mergers and acquisitions are but two of the many forces conspiring to change the organizational context of software development.
For the past three years, a group of researchers from Bell Labs and the University of Michigan have been working to understand and address global development issues. The project has four concurrent threads of activity:
- empirical studies of global development,
- collaboration tools for awareness and communication,
- organizational models for distributing work over sites, and
- best practices for global development.
Does More Necessarily Mean Better? The Software Performance and Reliability Bottleneck
Mantis Cheng,
ACD Systems, Canada
Processor speed has been increasing dramatically for the past 20 years. On the other hand, software is getting bulkier and slower. Many popular software applications have a lot of 'bells and whistles'; most users know less than 5% of all supported features. Users don't see performance improvement as processor speed increases. We are no better off than we were 15 years ago. As a discipline, software engineering is young and full of promise. However, with current software practices, if we asked software engineers to design cars, we would have to restart our cars every mile (unreliable), fill up our tanks every hour (inefficient), and upgrade our engine control software every week (feature-laden).
What's wrong with the software industry? What have we not taught our graduates about software design? Is there a much deeper problem in our software engineering culture? In order to produce better software, does it always mean that we need to add more and more features? To release a product ahead of the competition, should the users be the beta-testers? This endless cycle of field upgrades must stop.
Let us discuss why we need a deeper appreciation of software performance and reliability. What are the bottlenecks? What are the remedies?
Software Engineering in a Startup
Aleta Ricciardi,
Valaran Corporation, USA
Startups face enormous demands that affect the rigor with which they might adhere to software engineering and quality plans. Investors are impatient to see product, existing competitors have momentum and presence that must be countered, the processes and quality metrics are being defined along with, if not behind, product specification and development, and the development organization can often double within one or two weeks. Processes cannot assume a status quo, or even a predictably changing environment.
This talk will present lessons from the trenches: process definition, knowledge capture, product delivery, educating QA, company structure, and some interestingpossibly hereticalobservations.
Wednesday, May 16, 2001; 10:30 a.m.12:00 p.m.
S15
Technology Drivers for Web and Mobile Phone Services
Session chair:
Mikio Aoyama,
Niigata Institute of Technology, Japan
Technology Drivers and Research Challenges of Future e-Business
Stuart Feldman,
IBM T. J. Watson Research Center, USA
The rapid growth of electronic commerce has resulted from a confluence of business social, and political drives and major progress in information technology. We expect continuing rapid changes in underlying hardware, and a growing need for new services and systems. E-Business systems have moved from a fringe activity to the core of modern business, with consequent requirements for reliability and trustworthiness, but must also change on "web time". This talk will address some of the changes underway, and the great challenges these pose to the engineering of software, and the opportunities these present to the research community.
Challenge of Keitai Software: Software Engineering for Next Generation Mobile Phone Systems
Yoshiiku Hanai,
Fujitsu Limited, Japan; and
Mikio Aoyama,
Niigata Institute of Technology, Japan
Keitai, a tiny mobile phone, provides amazing functionality including Internet browser, music player, video communication, games, and running of Java. It becomes a ubiquitous user interface to the Internet. The development of mobile phone software is a new and big challenge of software engineering. It resembles a product-line of large-scale embedded real-time software with an extremely short development cycle-time. Thus, it requires a new development techniques comprising agile software process, reuse along with a product-line, evolutionary-development, development management and high assurance.
This talk reports the current status and challenge of software development for mobile Internet phones.
Web Services and Software Engineering: Challenges and Opportunities
Sanjiva Weerawarana,
IBM T. J. Watson Research Center, USA
Web services are an evolving new platform for distributed computing. The components of the Web services stack include SOAP, WSDL, UDDI and XML Schema. The Web services stack can be compared to the CORBA stack to illustrate its features.
Authoring, debugging, testing, deploying and managing of Web Services provide a new set of challenges for the software engineering community. Innovative software engineering solutions will be critical to the success of the Web services platform.
In this talk we will present the Web services platform and discuss some of the opportunities open to the software engineering community in helping shape its success.
Wednesday, May 16, 2001; 2:00 p.m.3:30 p.m.
S19
Frontiers of Component Technologies
Session chair:
Gene F. Hoffnagle,
IBM Corporation, USA
Enterprise Methodology =/= Software Development Methodology
Jim Q. Ning,
Accenture, USA
Many researchers and practitioners in the software engineering community consider methodologies as processes and guidelines that support software development and project management activities. What we may have overlooked is that software applications never exist in vacuum; they are used to solve business problems and create value for the businesses. This presentation will focus on non-application elements of a methodology.
At a high level, an enterprise methodology must include:
- A Planning Component for business planners and architects to define corporate strategies, understand stakeholder requirements, identify value creating opportunities, create business cases, and define enterprise architectures;
- A Development Component for designers and developers to analyze, design, build, and implement applications and associated business processes, training, organization elements, work environment, etc.;
- A Management Component for program directors and project managers to direct, coordinate, estimate, manage, and monitor the development work; and
- An Operating Component to guide the day-to-day operations of the business applications and processes to deliver business value.
The presentation will explain why the non-application aspects of the methodology are critical to the success of software development projects and exemplify the ideas based on presenter's experiences in creating enterprise-level methodologies for Accenture and for a large client organization.
Mining Selected Components: The Options Analysis for Reengineering (OAR)
Dennis Smith,
Liam O'Brien,
and John Bergey,
Carnegie Mellon Software Engineering Institute, USA
The problem of legacy system migration has been an acute one from the perspective of industry. While there has been significant progress over the last decade in reverse engineering, the focus of most work is at the level of an entire software system. However, in many cases when mission critical applications have moved to new architectures, particularly to product line architectures, there is a need for mining selected components, rather than entire applications. This talk provides a context for the problem and outlines OAR, a method to support making decisions on the identification of relevant components for mining, as well as an estimation of the resources and effort involved.
Achieving Usability through Software Architecture
Len Bass,
Carnegie Mellon Software Engineering Institute, USA; and
Bonnie E. John,
Carnegie Mellon University, USA
In this talk, we present an approach to improving the usability of software systems based on software architectural decisions.
We make specific connections between aspects of usability such as the ability for a user to "undo" or "cancel" and software architecture. Designers can use this collection both to generate solutions to those aspects of usability that they choose to include in their system and to evaluate their systems for specific aspects of usability. We present the results of using this approach evaluations and designs of actual systems.
Wednesday, May 16, 2001; 4:00 p.m.5:30 p.m.