Software Engineering Research Center An NSF Industry - University Cooperative Research Center Aditya Mathur, Purdue University Director Robert Cowan, West Virginia University Assistant Director Fire invented Outline for Presentation The SERC Organization - History of I/UCRCs and NSF mission - Our Affiliates and the Administration - Industry and University Partnerships Current Research Projects Technology Transfer Examples Virtual SERC (VSERC) National Science Foundation Promoting the Progress of Science Support research and education in science and engineering - Foster the interchange of scientific information among scientists and engineers in the United States and foreign countries - Technology Transfer via industry/university partnerships Industry/University Cooperative Research Centers (IUCRCs) Developed by NSF in 1970’s 50+ centers nation-wide - SERC: I/UCRC for Software Engineering True partnership between industry and university researchers Secrets of Success The SERC IUCRC Established: 1986 Purdue University Ball State University University of Florida University of West Florida Added in 1994 Oregon Associated Universities University of Oregon Portland State University Oregon State University Oregon Graduate Institute Added in 1998 West Virginia University Tenured Faculty Current Affiliates Army Research Lab: Atlanta,GA AveStar Inc.: Fairmont, WV Telcordia: Morristown, NJ British Telecom Labs: Martlesham Heath, England Dynamix Inc.: Eugene, OR ManTech: Fairmont, WV Motorola, Inc.: Schaumburg, IL NASA IV&V: Fairmont, WV Northern Telecom: Richardson, TX Northrop Grumman: Melbourne, FL Northrop Grumman: Rolling Meadows, IL Tivoli Systems, Inc: Indianapolis, IN Examples of Research Projects Metrics,Tools for Measurement of Software Design Quality Methods for Assessing and Assuring Data Quality Testing Distributed Systems Testing Video Games Evaluation of ROI on V&V Activities Software Process Improvement Modeling and Tools Computer-Based Instructional Technologies Test Coverage Analysis and Test Optimization Software Reuse Industry and University Network Companies Universities Army Research Lab Bellcore British Telecom Labs Dynamix ManTech Motorola, Inc. Nortel Northrop Grumman, IL Northrop Grumman, FL Tivoli Systems, Inc., IN Oregon Associated Schools Partnership Purdue University Ball State University University of Florida University of West Florida West Virginia University provide is composed of Industrial Advisory Board Collaboration Researchers produce is available to Technology and Software Permission (2) . SERC Administration SERC Policy Board National Science Foundation Industrial Advisory Board Director: Aditya Mathur Assistant Director: Robert Cowan Site Director: Stuart Faulk Site Director: Aditya Mathur Site Director: Steve Thebaut University of Oregon Purdue University University of Florida Portland State University Ball State University University of West Florida Site Director: Ali Mili West Virginia University Oregon State University Oregon Graduate Institute Sharing Facilities Benefits to Universities Source of fresh research problems access to industrially generated data and technology fast turn-around on proposals publishable research satisfaction of seeing research used in industry potential for additional funding from other NSF programs The Lab After Hours Benefits to Industry Influence selection of research projects exploit innovations that may lead to new products improve software quality and productivity of software engineers new software engineering technology….access to expertise use of unique laboratories, facilities satisfy corporate commitment to support university research interaction with peers technical reports on-site short courses and seminars summer interns, potential future employees SERC Funding National Science Foundation Participating Universities Industrial Affiliates - support faculty and graduate student projects Membership Fees - $30,000 per year full membership - $5,000 per year limited membership (for small businesses only) Learning the Rules Semi-Annual SERC Showcase Poster sessions Researcher presentations IAB member presentations Potential company presentations Software demonstrations IAB and SERC Admin. meetings . Industrial Request For Proposals: IRFPs IAB SERC Staff interact with to generate IRFPs Broadcast IRFPs to SERC Universities Purdue+ Florida+ Oregon+ West Virginia+ Broadcast Proposals from Researchers to Industrial Affiliates Army Research Lab Bellcore British Telecom Labs Dynamix Motorola Nortel Northrop Grumman, IL Northrop Grumman, FL Tivoli Systems, Inc. A Lab Mentor and Software Evolution Jens Palsberg Purdue University Problem: When requirements change, can a new software version be evolved automatically and efficiently? Approach: Genetic programming. Rationale: With genetic programming we can evolve programs by means of natural selection. To go from one software version to the next, it may be much faster to start with the previous version instead of starting from scratch. Status: In our current genetic programming system, medium-sized imageprocessing software can be evolved from scratch. Goals: Quantitative assessment of how well genetic programming can evolve new versions of software. Guidelines for conducting the evolution process. Study applications of the technology to SERC affiliate projects, beyond image processing. Data Quality Ahmed Elmagarmid Purdue University Problem: Approaching data quality in a more comprehensive way than what is currently being done. Existing scrubbing tools fail to realize that data is a complex entity that is replicated, dynamic, and tightly coupled to the business processes. Approach: (a) Define a framework for data quality: Including dimensions, requirements, policies, and a taxonomy for dealing with and improving data quality, and, (b) Develop a methodology that deals properly with the issues of initial cleanup, continuous cleanup, and process improvements. The methodology must be comprehensive, implementable, and measurable. Goals: Data quality has been a major cause of customer dissatisfaction, lost business, and inability to meet business objectives. While quality has a clearer meaning when it comes to software, it is much more poorly defined when it comes to data. A generally acceptable and operational definition of data quality refers to Accuracy, Consistency, Currency, and Completeness of data. The specific goal of this project is to develop a methodology that deals with all aspects of data quality. Software Maintenance:Spotlighting the Code Norman Wilde University of West Florida Description: “Where in this program is functionality X implemented?” Method: Use test cases as probes to locate functionalities Example: Where is call forwarding implemented? run small set of test cases that involve forwarding a call run set that does not involve the call analyze traces to look for program components that were executed in first set and not second set Goal: Spotlight code fragments Tech Transfer: to make Software Recon an affiliate productivity aid on affiliate projects Tech Transfer Examples: Norman Wilde Bellcore Maintenance of OO Programs 1991 - 1993 Bellcore concerned about the maintainability of OOPs, requested SERC research on this topic Over two summers, UWF conducted interviews w/Bellcore programmers and performed study of OO tools in use at Bellcore Study identified maintenance issues and tool needs for OOPs - earliest research on this topic Results used in defining Bellcore’s programming environment Bellcore/UWF jointly authored papers in “IEEE Transactions on SE” and “IEEE Software” UWF student hired by Bellcore to continue work Norman Wilde: Technology Transfer (cont.) Northrop Grumman (RM) Software Recon tool 1995 - current trial of Software Recon conducted at RM on a NG in-house C language code management system several tool improvements made based on feedback from NG programmers C Software Recon tool now in use NG request Ada Recon tool, now under develop. Norman Wilde: Technology Transfer (cont.) Northrop Grumman (FL) Recovery of Design Threads 1995 - 1997 NG software engineers suggest Recon could be used to recover “design threads” from JSTARS, large battle management system collaborate on a trial, which successfully recovered threads joint authored paper to appear in “Journal of Systems and Software” Design Metrics Dolores and Wayne Zage Ball State University Description: During the software design process, developers should be able to infer more about the software they are developing. Computing metrics allows one to choose the best design, as well as identify stress points that may lead to difficulty during coding and maintenance. (Currently developing OO design metrics.) Method: Use metrics De and Di and D(G) to identify error-prone modules in a software design. Use DB (design balance) and DC (design connectivity) to gain a better understanding of a developing system. Various strategies have been employed by current affiliates to correct or monitor troublesome modules. Goal: Improve software development processes and products. Technology Transfer Example: Zages Bellcore, Northrop Grumman, Army Research Lab NG started by using the metrics’ ability to predict error-prone modules in a missile defense system. Since then, incorporated DM into software development methodology as NG strives to go from Level 3 to Level 4. Calculating the Zages’ metrics is included in the set of requirements for new projects. DMAA and DMAC now in use at affiliate sites. Ball State Research Team DM DM DM SEI Level 4 DM Northrop Grumman Technology Transfer Example: Zages Bellcore, Northrop Grumman, Army Research Lab At Bellcore: DM have been excellent predictors of stress points in telecommunications software DM technology moving from Bellcore research to Bellcore development groups Bellcore and BSU joint papers BSU DM team student interns at NGC and Bellcore in Summer 1997 Metrics Directed Verification of SDL Designs Dolores and Wayne Zage Ball State University Motorola Goal: Apply DM technology to identify stress points in SDL designs and assess the utility and effectiveness of design metrics on such designs. Method: Map DM primitives to SDL design artifacts. Calculate metrics and and determine if stress points are error-prone. Predicting the Performance of Software Process Improvements David Raffo, Portland State University Description: Previous research: Process Tradeoff Method (PTA) predicts the impact of process improvements on: development cost product quality task schedule Current Project: Further develop these methods by applying the techniques to address a specific question: What is the impact of implementing the Personal Software Process (PSP) in a real world development setting? Goal: Accommodate new processes, process changes, and project environments Develop graphical and quantitative process models which can generally be used to predict the impact of implementing CMM KPAs and other process changes Analysis of Software Process Models and Metrics: Moving to Levels 4 and 5 of the CMM David Raffo & Warren Harrison Portland State University Description: Develop innovative application of TQM principles to software project management using software process models and metrics. Approach: Develop a suite of software process and product metrics along with software process models which together can be used in an integrated framework to support project management and process planning decisions. Goal: Develop a systematic approach to help companies achieve the Quantitative Process Management, Software Quality Management, and the Continuous Process Improvement KPAs of the CMM. Estimating Software Reliability During Conceptual Design Bruce D’Ambrosio Oregon State University Description: Traditional reliability estimation methods depend on data from product testing. However, many software technologies are evolving so rapidly that failure rates of existing systems may not provide a good indication of reliability of systems under design and development, even in the early, conceptual design phase. Approach: Develop models of software reliability based on expert judgement combined with statistical information. Exploit advances in Bayesian probability theory to develop software reliability models which can combine expert estimates of factors influencing reliability with statistical information. Goal: Develop methods and tools for predicting the reliability of complex software systems during early design. Computer-aided Testing for Reusable Software Components Mark Yang University of Florida Description: Reuse has been widely discussed and promoted in the software industry, but many aspects of current practice has to be modified in order for reuse to be practical. For example, the change of reliability when a component is used in a new environment has not been well investigated. Without some guidelines, we may not have the confidence to reuse a component. How should the component be re-tested, and if necessary be modified? (cont.) Computer-aided Testing for Reusable Software Components (cont.) Mark Yang University of Florida Approach: To study reliability estimation methods under a changing environment To figure out the number of new test cases needed in order to meet the reliability requirement in a new environment To build a tool that takes the old testing results, usage records, new environments, and new reliability requirement as inputs and outputs the number of new test cases To assess software reliability estimation methods from the reuse point of view. Which one is the best choice for reuse? Goal: To build a tool that can certify reusable components based on past testing history and present requirements Testing Distributed Systems Aditya Mathur and Sudipto Ghosh Purdue University Description: Testing distributed systems composed of software components for tolerance to component failures, security and correctness of implementation. Developing interface based fault injection methods between components and metrics in order to assess the adequacy of testing. Method: Identify the source of errors and failures in a distributed system Develop and validate metrics to assess test adequacy Study the behavior of system under component failure (cont.) Testing Distributed Systems (cont.) Aditya Mathur and Sudipto Ghosh Purdue University Goal: Develop a methodology to assess the tolerance of a distributed system to failures occurring in one or more of its components Develop and assess software fault injection testing methodology for distributed systems Develop metrics for the assessment of adequacy of tests of distributed systems Develop a prototype assessment tool for experimentation Technology Transfer Examples: Aditya Mathur and Sudipto Ghosh Bellcore Fault Injection Testing 1994-1997 Bellcore explored the possibility of using fault injection testing technology for software systems Study identified research issues involved in fault injection testing and tool design for fault injection testing Over 3 years Purdue and Bellcore conducted studies on the application of the fault injection testing technique on Bellcore’s systems Bellcore/Purdue jointly authored paper in Quality Week 97, Europe Purdue student hired as a summer intern by Bellcore Architecture Based Estimation of Software Reliability Aditya Mathur, Pietro Michielan, Manuela Schiona Purdue University Description: Traditional methods for software reliability assessment treat a software system as a “whole” and are applicable very late in the development cycle We have proposed CBRE (Component-Based Reliability Estimation) to overcome the problems associated with traditional methods. CBRE can also be applied to obtain early estimates of system reliability, i.e., prior to code availability. The current focus is on (cont.) comparing CBRE with Laprie-Kanoun method of component-based reliability estimation evolving models of inter- and intra-component dependencies, determining ways of applying CBRE in early stages of development. Architecture Based Estimation of Software Reliability (cont.) Aditya Mathur, Pietro Michielan, Manuela Schiona Purdue University Collaboration: This project is supported in part by a tie-project grant from the NSF. The tie is with Professor Kishor Trivedi from the Center for Advanced Communications at Duke University. Other collaborators include: Dr. Jose Maldonado, University of Sao Paulo, Brazil. Professor Nozer Singpurwalla, George Washington University Dr. Alberto Pasquini of ENEA, Rome, Italy “Endless Frontier, Limited Resources”* Industry must increase its contribution to the U.S. R&D enterprise. Industry must overcome private sector barriers to partnerships. Industrial R&D must grow. Industry must focus its research priorities. Industry must take timely advantage of the leading-edge results coming out of U.S. universities and government labs. *http://nii.nist.gov/pubs/coc_rd/rd_cover.html Educational Activities Re-training Courses 10-week, 400-hour hand-on course in Software Engineering offered to 30 employees of Raytheon during summer of 1998. Specialized Course Modules 1-week modules in Design, Testing, WEB-site Construction and Management, Java, and other languages. Master in Software Engineering Oregon Associated Universities (http://www.omse.org/)