Anna Liu, Microsoft Australia,
Albert Zuendorf, University of Kassel, Germany,
Schedule: all Morning Tutorials will run 9:00AM-12:30PM. All Afternoon Tutorials will run 2:00PM-5.30PM. Full-Day Tutorials will run from 9:00AM until 12:30PM, and from 2:00PM until 5:30PM, with a lunch break between 12:30PM and 2:00PM
(F1) Evaluating Dependability Attributes of Component-Based Specifications
Ivica Crnkovic and Lars Grunske
Day: Sunday 20 May 2007, Full Day Tutorial Venue: Ramsey
Summary: Component-Based Development (CBD) and more specifically Component-based Software Engineering (CBSE) are established in many application domains. There is strong trend in applying the same approach in different domains of dependable systems, in particular safety-, mission- or business-critical systems. However, a precondition of a successful application of CBD in these domains is the existence of theories, methods and technologies to predict and evaluate dependability attributes such as safety, reliability, availability, maintainability, performance, security and temporal correctness, based on component-based specifications. The experience has shown that this is not a trivial task, since most of CBD technologies do not have built-in support for dependability. This tutorial gives an analysis of current methodologies of attribute-specific evaluation methods for dependable component-based systems; we identify limitations of the current technologies and discuss existing and possible new solutions to overcome these limitations both from a research-oriented and practical perspective. The tutorial is aimed for researchers and practitioners either working with CBD or dependability, or who are interested in getting deeper insights in these areas.
Ivica Crnkovic is a professor of industrial software engineering at Mälardalen University, Sweden, where he is the chair of the Software Engineering Laboratory and the scientific leader of the industrial software engineering research, member of the scientific team and management of Mälardalen Real-Time Research Centre (MRTC) and Swedish Foundation for Strategic Research Center for Predictable Development of embedded systems (PROGRESS). His research interests include component-based software engineering, embedded systems, software development environments and tools, software configuration management, and software engineering in general. Prof. Crnkovic is the author of more than 90 refereed articles and papers on software engineering topics, and a co-author and co-editor of two books: "Building Reliable Component-Based Systems", and "Implementing and Integrating Product Data Management and Software Configuration Management". He has been co-program chair and co-organizer of several conferences and workshops related to software engineering: general chair for ESEC/FSE 2007, CBSE symposium 2004 and 2006, Euromicro SEAA & DSD 2006, program chair for Euromicro SEAA 2005, co-organiser and co-program chair of CBSE3-CBSE6 workshops at ICSE conferences, Euromicro conference CBSE tracks 2000-2006, etc. He is participating in several research projects related to component-based development and embedded systems (ARTIST and ARTIST2 Network of excellence, Swedish Foundation for Strategic Research project SAVE, SAVE++, PROGRESS), etc.) and actively participated in the ARTIST education group working on the proposal for curriculum of master education for embedded systems. Prof. Crnkovic has given several tutorials, seminars and invited talks in prestigious conferences and summer schools, or industrial events.
Lars Grunske is Boeing postdoctoral research fellow at The University of Queensland, Australia and is an active researcher in the field of architecture specification and model-based systems development of dependable systems. He has authored and co-authored over 30 research publications in the last 4 years in the field of architecture evaluation and model-driven software development and is recognized for his work on encapsulated safety evaluation models, which are as an example used to determine hazard probabilities of software architectures. The results of this research influenced the tools UWG3 (Fault Tree Analysis) and ESSAREL (Embedded Systems Safety and Reliability Analyser) developed at the Hasso Plattner Institute and the Fraunhofer Institute for Experimental Software Engineering in cooperation with the companies Daimler-Chrysler AG and Siemens AG. hese tools build on the concepts of Component Fault Trees (CFTs) and State-Event-Fault Trees (SEFTs) and are currently used in industrial projects. Additionally, his work on hierarchical typed hypergraphs and hypergraph transformation systems as described in his PhD thesis builds the basis for transformations of hierarchical architecture specifications. Dr Grunske has given several invited talks and seminars in several industrial events and international conferences.
(H1) Requirements Engineering So Things don't Get Ugly
Day: Sunday 20 May 2007, Half Day Tutorial (Morning) Venue: Nicollet Room
Summary: Regardless of which report you read, the battle cry is loud and clear “Projects are failing more often than they are successful. Something must be done!” But what??? That’s the million dollar question. A great start for fixing this long-standing software development crisis is with requirements; we must fully understand what we are developing before we can develop the right product for our customers. Readers will probably shake their head and say “Of course we do” but the statistics show that even though this seems to be a “no brainer” we still aren’t doing it. This tutorial will explore some tried and true as well as some innovative methods that can help contractors and their customers through the quagmire of requirements elicitation and management. A typical requirements analysis and management process will be scrutinized with class participation including various options for tailoring to make it successful for an organization.
Deb Jacobs has more than 28 years experience in information technology, including system/software engineering, project management, process improvement, and proposal development. She has helped many organizations be more successful in development and management. She uses this experience with various organizations providing consulting services and training. She has authored many technical articles, the popular book Accelerating Process Improvement Using Agile Techniques, and is currently working on her new book Requirements Engineering So Things Don’t Get Ugly.
(H2) Testing Concurrent Java Components
Paul Strooper and Luke Wildman
Day: Sunday 20 May 2007, Half Day Tutorial (Morning) Venue: Duluth Room
Summary: Testing concurrent software is notoriously difficult due to problems with non-determinism and synchronisation. While tools and techniques for the testing of sequential components are well-understood and widely used, similar tools and techniques for concurrent components are not commonly available. This tutorial will look at the problems associated with testing concurrent components and propose techniques for dealing with these problems. The ConAn (Concurrency Analyser) testing tool supports these techniques for the testing of concurrent Java components and will be discussed and demonstrated in the tutorial. The limitations of the techniques and ConAn, as well as additional V&V tools and techniques, such as static analysis and model checking, to address these limitations will be presented.
Paul Strooper is an Associate Professor in the School of IT&EE at The University of Queensland. He received the BMath and MMath degrees in Computer Science from the University of Waterloo, and the PhD degree in Computer Science in 1990 from the University of Victoria. His main research interest is software engineering, especially software specification, verification, and testing. He has had substantial interaction with industry through collaborative research projects, training and consultation in the area of software V&V. He is a member of the editorial board of the Journal on Software Testing, Verification and Reliability, of the Steering Committee for the Asia-Pacific Software Engineering Conference, and the Chair of the Steering Committee for the Australian Software Engineering Conference.
Luke Wildman is a Senior Research Officer in the School of IT&EE at The University of Queensland. His research interests include practical techniques for the effective testing of concurrent software components in general and tools for the testing of Java components in particular. He was previously employed at the Software Verification Research Centre and has been performing consultancy and training for the high integrity systems community for 10 years.
(H3) Empirical Methods in Software Engineering Research
Walter F. Tichy and Frank Padberg
Day: Sunday 20 May 2007, Half Day Tutorial (Afternoon) Venue: Nicollet Room
Summary: Over the past decade, empirical methods have gained acceptance for validating tools and methods in software research. This tutorial aims at acquainting participants with the main methods used in empirical work in software research, enabling them to evaluate empirical results for validity as well as providing the basis for carrying out empirical studies. A wide range of empirical approaches are covered, including case studies, experiments, field studies, and surveys. These approaches are introduced by prominent examples from the software engineering literature. Common pitfalls are pointed out. Participants also critique empirical papers in small discussion groups, based on worksheets with prepared questions.
Walter F. Tichy has been professor of Computer Science at the University of Karlsruhe, Germany, since 1986, and was dean of the faculty of computer science from 2002 to 2004. Previously, he was senior scientist at Carnegie Group, Inc., in Pittsburgh, Pennsylvania and served six years on the faculty of Computer Science at Purdue University in West Lafayette, Indiana. His primary research interests are software engineering and parallelism. He is currently directing research on a variety of topics, including empirical software engineering, software architecture, software tools, cluster computing, and programming environments for multicore computers. He has consulted widely for industry. Walter earned an M.S. and a PhD in Computer Science from Carnegie Mellon University in 1976 and 1980, resp. He is director of the Forschungszentrum Informatik, a technology transfer institute. He is co-founder of ParTec, a company specializing in cluster computing. He was program co-chair for the 25th International Conference on Software Engineering (2003). Dr. Tichy is a member of ACM, GI, and the IEEE Comptuer Society.
Frank Padberg received the master's degree in mathematics from the University of Erlangen, Germany, and the Ph.D. degree in computer science from the University of Saarbrücken, Germany. He is a senior researcher at the Faculty of Informatics, University of Karlsruhe, Germany. Previously, he held a fixed-term position as a professor of software engineering at the University of Clausthal, Germany. He has been supported by fellowships and research grants from the Deutsche Forschungsgemeinschaft DFG. Before joining the university, he gave seminars within the industry on networking technology and operating systems. He has published papers on a number of different topics in software engineering, including software process modeling and simulation, software reliability, extreme programming, and software inspections.
(H4) Lean Software Development
Mary Poppendieck and Tom Poppendieck
Day: Sunday 20 May 2007, Half Day Tutorial (Afternoon) Venue: Duluth Room
Summary: Lean Software Development is the application of the principles of the Toyota Product Development System to software development. Toyota has been extremely successful developing complex new vehicles, which include a vast amount of embedded software, in a very short time and always on time. These cars enjoy strong demand and generate substantial profit in a hotly competitive industry. This tutorial examines the underlying engineering principles Toyota uses to develop vehicles and shows how they can be applied to software development. When correctly applied, lean software development results in high quality software that is developed quickly, at the lowest possible cost, and delivers superior value to customers. In addition, the success of many of the practices of Agile Software Development can be explained by understanding the principles of Lean Software development.
Why Lean is Important - As global competitiveness comes to the software development industry, the search is on for a better way to create first-class software rapidly, repeatedly, and reliably. Lean initiatives in manufacturing, logistics, services, and product development have led to dramatic improvements in cost, quality and delivery time; can they do the same for software development? The short answer is “Absolutely!” Of the many methods that have arisen to improve software engineering processes, Lean is emerging as one that is grounded in decades of work understanding how to make processes better. Lean thinking is centered on a philosophy of empowering the people doing the work to constantly improve their product and their processes. It focuses on giving customers what they want, when and where the want it, without a wasted motion or wasted minute.
Mary Poppendieck has been in the Information Technology industry for thirty years. She has managed solutions for companies in several disciplines, including supply chain management, manufacturing systems, and digital media. As a seasoned leader in both operations and new product development, she brings a practical, customer-focused approach to software development problems. As Information Systems Manager in a video tape manufacturing plant, Mary first encountered the Toyota Production System, which later became known as Lean Production. She implemented one of the first Just-in-Time systems in 3M, resulting in dramatic improvements in the plant's performance. A popular writer and speaker, Mary’s classes on managing software development offer a fresh perspective on project management. Her book Lean Software Development: An Agile Toolkit, was published in 2003 and won the Software Development productivity Award in 2004. A sequel, Implementing Lean Software Development: From Concept to Cash, was published in 2006.
Tom Poppendieck has 25 years of experience in computing including eight years of work with object technology. His modeling and mentoring skills are rooted in his experience as a physics professor. His early work was in IT infrastructure, product development, and manufacturing support, and evolved to consulting project assignments in healthcare, logistics, mortgage banking, and travel services. Tom Poppendieck is an enterprise analyst and architect, and an agile process mentor. He focuses on identifying real business value and enabling product teams to realize that value. Tom specializes in understanding customer processes and in effective collaboration of customer, development and support specialists to maximize development efficiency, system flexibility, and business value. Tom is co-author of the book Lean Software Development: An Agile Toolkit, published in 2003, and its sequel, Implementing Lean Software Development: From Concept to Cash, published in 2006.
(F2 - Cancelled) Get Your Experience Factory Ready for the Next Decade - Ten Years After "How to Build and Run One"
Vic Basili, Frank Bomarius and Raimund Feldmann
Day: Monday 21 May 2007, Full Day Tutorial Venue: Hennepin Room
Summary: Ten years after the last presentation of the tutorial “The Experience Factory: How to Build and Run One” at ICSE 19 in Boston, the basic approach for building a Learning Software Organization is in use in many organizations. However, defining and implementing a successful Experience Factory (EF) is still a challenge. In this tutorial we take a look at proven concepts on how to identify and structure the content of the Experience Base (EB), discuss solutions for how to implement an EB using state-of-the-art technologies, and present processes for how to set-up, run, evaluate, and maintain an EF in an organization. The tutorial is based on the authors’ organizations’ experiences with implementing EF’s in research, industry, and government environments and relevant publications that have addressed these issues in the last decade. This tutorial aims at industry practitioners, anagers and developers alike, who want to learn more about how to successfully design, implement and run an EF. Attending this tutorial will help participants to initially set-up or to further develop and improve their organization’s EF.
Victor Basili is Professor of Computer Science at the University of Maryland. He holds a Ph.D. in Computer Science from the University of Texas and honorary degrees from the Universities of Sannio (Italy) and Kaiserslautern (Germany). He was a founding director of the Fraunhofer Center - Maryland and the Software Engineering Laboratory (SEL) at NASA/GSFC. He works on measuring, evaluating, and improving the software process and product. He has authored over 200 journal and refereed conference papers. He is a recipient of a 1989 NASA Group Achievement Award, a 1990 NASA/GSFC Productivity Improvement and Quality Enhancement Award, the 1997 Award for Outstanding Achievement in Mathematics and Computer Science by the Washington Academy of Sciences, the 2000 ACM SIGSOFT Outstanding Research Award, and the 2003 IEEE Computer Society 2003 Harlan Mills Award. He is co-editor-in-chief of the Journal of Empirical Software Engineering. He is an IEEE and ACM Fellow.
Prof. Dr. Frank Bomarius graduated from the University of Kaiserslautern in Computer Science with a minor in Electrical Engineering in 1986 and received his Ph.D. (Dr. rer. nat.) in Computer Science in 1991. He was researcher at the German Research Center for Artificial Intelligence in the area of Multi-Agent Systems. In 1993 he became a team leader and software developer at Tecmath GmbH. Since 1996 he is head of the department “Competence Management” and since 2000 deputy director of the Fraunhofer IESE. He holds a professorship at the University of Applied ciences in Kaiserslautern and teaches computer science in the Department of Engineering. At IESE Frank transfers SPI programs to software organizations, applying the Quality Improvement Paradigm (QIP), the Goal/Question/Metric (GQM) and the Experience Factory (EF) approach. He is doing applied research and technology transfer in the area of Learning Software Organizations (LSO), introduces EF-based knowledge management into industrial engineering and production settings and is currently doing research in the field of ambient intelligence applications. Frank is serving as organizer, program chair and program committee member in national and international conferences. He is member of the IEEE Computer Society, the German Computer Society (GI) and the Working Group for Artificial Intelligence of the GI.
Raimund L. Feldmann received his M.S. degree (Diplom) in Computer Science with a minor in Economics from the University of Kaiserslautern, Germany in 1996. His research interests are focused on experience and knowledge repositories and software process improvement. From 1997 to 2003, Raimund was as an employee of the project “Development of Large Systems with Generic Methods”, funded by the German Science Foundation (DFG). Currently, Raimund is the technical lead for Knowledge & Experience Management at the Fraunhofer Center, Maryland (CESE). He is involved in the DoD Acquisition Best Practice Clearinghouse project, a web-based EF for providing Software Engineering and System Engineering best practices for government employees and contractors. Before he joined CESE in 2004, Raimund participated in several technology transfer projects in Germany. Among other projects, he was involved in developing the software-kompetenz.de portal (VSEK), funded by the Department of Education and Research of the German Federal Government, to offer up-to-date SE knowledge to Germanys Small and Medium-Sized Enterprises.
(F3) Engineering Safety and Security Related Requirements for Software Intensive Systems
Donald G. Firesmith
Day: Monday 21 May 2007, Full Day Tutorial Venue: Lasalle Room
Summary: Many software-intensive systems have significant safety and security ramifications and need to have their associated safety- and security-related requirements properly engineered. It has been observed by several consultants, researchers, and authors that inadequate requirements are a major cause of accidents involving software-intensives systems, and poor security requirements prevent the early incorporation of security concerns into the architecture. Yet in practice, there is very little interaction between the requirements, safety, and security disciplines and little collaboration between their respective communities. Most requirements engineers, safety engineers, and security engineers know little about their respective disciplines. Also, safety and security engineering typically concentrates on architectures and designs rather than requirements because hazard and threat analysis typically depends on the identification of hardware and software components, the failure of which can cause accidents and venerabilities which can enable successful attacks. This leads to safety- and security-related requirements that are often ambiguous, incomplete, unverifiable, and even missing. This tutorial begins with a single common realistic example of a safety- and security-critical system that will be used throughout to provide good examples of safety- and security-related requirements. The tutorial provides a consistent ontology of safety, security, and requirements concepts and terminology, provides clear definitions and descriptions of the different kinds of safety- and security-related requirements, and finishes with a practical consistent combined process for engineering them.
Donald Firesmith is a senior member of the technical staff in the Acquisition Support Program at the Software Engineering Institute (SEI), where he helps the US Department of Defense acquire large complex software-intensive systems. With over 25 years of industry experience, he has published 5 software engineering books, primarily in the areas of software development methods and object orientation. He is the founding chair of the OPEN Process Framework (OPF) Repository organization www.opfro.org, which provides the world’s largest free open-source website documenting over 1,100 reusable development method components. He has a regular column on requirements engineering in the Journal of Object Technology (JOT). He has published dozens of articles (see www.donald-firesmith.com/Firesmith/Articles.html), spoken at numerous conferences, and has been the program chair or on the program committee of several international conferences and workshops. He has taught several hundred courses in industry in object technology, management, requirements, architecture, and testing. He is currently finishing the manuscript of Engineering Safety- and Security-Related Requirements for Software-Intensive System, the book on which this course is built.
(H5) Architecture Knowledge Management: Challenges, Approaches and Tools
Ian Gorton and Ali Babar
Day: Monday 21 May 2007, Half Day Tutorial (Morning) Venue: Ramsey
Summary: Capturing the technical knowledge, contextual information, and rationale surrounding the design decisions underpinning the system architectures and software components can greatly improve the software development process. If not managed, this critical design knowledge is implicitly embedded in the architecture, becoming tacit knowledge which erodes as personnel on the project change. Moreover, the unavailability of architecture knowledge precludes organizations from growing their architectural capabilities. In this tutorial, we highlight the benefits and challenges in capturing and managing software architecture knowledge for supporting an architecture-centric software development process. We discuss various approaches to characterize software architecture knowledge based on the requirements of a particular domain. We describe various concepts and approaches to manage the software architecture knowledge from both management and technical perspectives. We also demonstrate the utility of captured architecture knowledge to support software architecture activities with a case study covering the use of architecture knowledge management techniques and tool in an industrial project. The specific architecture knowledge management technology used during the tutorial is BRedB, a software tool developed in National ICT Australia. Finally, the ways in which Wikis can be used to manage architecture knowledge are discussed.
Ian Gorton is a Chief Scientist at the US Department of Energy’s Pacific Northwest National Laboratory. Previously he was a Principal Senior Research Scientist with the National ICT Australia. Until March 2004 he was Chief Architect in Information Sciences and Engineering at the US Department of Energy's Pacific Northwest National Laboratory. Previously he has worked at Microsoft and IBM, as well as in other research labs. His interests include software architectures, particularly those for large-scale, high-performance information systems that use commercial off-the-shelf (COTS) middleware technologies. He received a PhD in Computer Science from Sheffield Hallam University.
Ali Babar is a Senior Research Fellow with Lero, the Irish Software Engineering Research Centre. Previously, he was a researcher with the National ICT Australia. He has also been designing and delivering software engineering courses as an adjunct academic since 2000. Previously, he also worked as a software engineer and an IT consultant for several years in Australia. He received an MSc in computing sciences from the University of Technology, Sydney. Recently, he has completed his Ph.D. degree in Software Engineering from the University of New South Wales, Australia. His current research interests include software architecture design and evaluation, architecture knowledge management, tooling support, software product line, global software development, and process improvement.
(H6) Mining Software Engineering Data
Tao Xie, Jian Pei and Ahmed E. Hassan
Day: Monday 21 May 2007, Half Day Tutorial (Afternoon) Venue: Ramsey
Summary: Software engineering data (such as code bases, execution traces, historical code changes, mailing lists, and bug databases) contains a wealth of information about a project’s status, progress, and evolution. Using well-established data mining techniques, practitioners and researchers can explore the potential of this valuable data in order to better manage their projects and to produce higher quality software systems that are delivered on time and on budget. This tutorial presents the latest research in mining Software Engineering (SE) data, discusses challenges associated with mining SE data, highlights SE data mining success stories, and outlines future research directions. Attendees will acquire the knowledge and skills needed to perform research or conduct practice in the field and to integratedata mining techniques in their own research or practice.
Tao Xie is an Assistant Professor in the Department of Computer Science at North Carolina State University. He received his Ph.D. in Computer Science from the University of Washington at Seattle in 2005. His research interests are in automated software testing and mining software engineering data. His research has exploited data mining techniques to mine both dynamic and static program information. He has served on program committees of ASE 2006/2007, AOSD 2007, ICSM 2007, and ISSRE 2006 as well as a number of other international conferences and workshops. Besides doing research, he has contributed to understanding and building the software engineering research community. He presented a tutorial on Data Mining for Software Engineering, with Dr. Jian Pei, at KDD’06.
Jian Pei is an Assistant Professor of Computing Science at Simon Fraser University, Canada. He received the Ph.D. degree in Computing Science from Simon Fraser University, Canada, in 2002. His research interests can be summarized as developing effective and efficient data analysis techniques for novel data intensive applications. Particularly, he is currently interested in various techniques of data mining, data warehousing, online analytical processing, and database systems, as well as their applications in bioinformatics, privacy preservation, software engineering, and education. He has has served regularly in the organization committees and the program committees of many international conferences and workshops. He presented a tutorial on Data Mining for Software Engineering, with Dr. Tao Xie, at KDD’06 as well as a number of other tutorials at KDD'01, '04, ICDE'04, '05, PAKDD'01, and WAIM'05.
Ahmed E. Hassan is an Assistant Professor with the Department of Electrical & Computer Engineering at the University of Victoria. He received both the Ph.D. and MMath degrees from the School of Computer Science at the University of Waterloo in Canada. His research interests include mining software engineering data, performance engineering, and distributed fault tolerant systems. Dr. Hassan spent the early part of his career (5 yrs) helping architect the Blackberry wireless platform at Research InMotion (RIM). He contributed to the development of protocols, simulation tools, and software to ensure the scalability and reliability of RIM’s global infrastructure. Dr. Hassan spearheaded the organization and creation of the Mining Software Repositories (MSR) workshop series at ICSE and its associated research community. He recently co-edited a special issue of the IEEE Transaction on Software Engineering (TSE) on MSR. He is currently the chair of the steering committee for the MSR workshop.
(F4) Migration of Legacy Assets to Service- Oriented Architecture Environments
Dennis Smith and Grace Lewis
Day: Tuesday 22 May 2007, Full Day Tutorial Venue: Hennepin Room
Summary: This tutorial addresses the problem of the migration of legacy assets to Service-Oriented Architecture (SOA) environments. It addresses how to develop a realistic strategy for performing such a migration, taking into account both the business needs of the organization and the technical content of the organization's existing systems portfolio.The tutorial also outlines an approach for performing an overall analysis and making decisions on the legacy assets that are candidates for migration. It highlights the challenges of building an SOA-based system and presents development issues from three perspectives: the application developer, the infrastructure developer, and the service provider. The needs and concerns of each of these participants are considered in order to develop successful SOA-based systems. Because there is a current trend of organizations leveraging the value of their legacy systems by exposing all or parts of it as services within an SOA environment, the concerns and needs of the service provider will be presented in greater detail. SMART, a method for making decisions on the migration of legacy assets as services within an SOA environment, that considers all three perspectives, will be presented. A case study using the method will provide a real world context for its applicability. Open issues and current research topics will be outlined.
Dennis Smith is a Senior Member of the Technical Staff and Lead of the Integration of Software-Intensive Systems (ISIS) Initiative at the Software Engineering Institute (SEI). This initiative focuses on developing and applying methods, tools and other technologies that enhance the effectiveness of complex networked systems and systems of systems. Previously, he was a member of the Product Line Systems Program and technical lead in the effort for migrating legacy systems to product lines. In this role, his team developed the method Options Analysis for Reengineering, OAR, to support reuse decision-making. He has published a variety of books, articles and technical reports, and has given talks and keynotes at conferences and workshops. Dennis has been general chair of two international conferences, IWPC99 and STEP99. Dennis holds an M.A. and PhD from Princeton University, and a B.A. from Columbia University.
Grace Lewis is a Senior Member of the Technical Staff at the Software Engineering Institute. She is currently the lead for the System of Systems Engineering team within the Integration of Software-Intensive Systems (ISIS) initiative. Her current interest and projects are service-oriented architecture, technologies for interoperability, modernization of legacy systems, and characterization of software development life cycle activities in systems of systems environments. Her latest publications include several reports published by Carnegie Mellon on these subjects and a book in the SEI Software Engineering Series. She is also a member of the technical faculty for the Master in Software Engineering program at CMU. Grace holds a B.Sc. in Systems Engineering and an Executive MBA from Icesi University in Cali, Colombia; and a Master in Software Engineering from Carnegie Mellon University.
(F5) Agile Methods: Crossing the Chasm
Frank Maurer and Grigori Melnik
Day: Tuesday 22 May 2007, Full Day Tutorial Venue: Lasalle Room
Summary: A fleet of emerging agile methods of software development (with eXtreme Programming and Scrum being the most broadly used) is both gaining popularity and generating lots of controversy. Real-world examples argue for and against agile methods. Several leading software engineering experts suggest that synthesizing the agile with traditional approaches may provide developers with a comprehensive spectrum of methods. This high-level overview tutorial provides background to understand how agile teams are trying to solve modern software development issues. A number of industry cases (both successes and failures) and existing empirical evaluations are to be presented.
Dr. Frank Maurer is the head of the e-Business engineering (ebe) group at the University of Calgary. His research interests are agile software methodologies, web engineering, globally distributed software development, experience & knowledge management, and integrating agile methods with interaction design. More information about his research can be found at the ebe.cpsc.ucalgary.ca/ebe/. Currently, the group focuses on empirical investigations of agile techniques as well as on tool development for agile software teams. He is a member of the Agile Alliance, a Certified Scrum Master, a founding member of the Canadian Agile Network (CAN) - Le Réseau Agile Canadien (RAC) and part of the organizers of the Calgary Agile Methods Users Group. He currently serves as the Academic Program Chair for Agile 2007, the Experienec Track chair for ICSE 2007 and as the Associate Editor in Chief of IEEE Software for the Processes and Practices Area.
Grigori Melnik is a researcher, software engineer, and educator with 15 years of meaningful industrial and academic experience. He is currently affiliated with the University of Calgary and SAIT Polytechnic, where he conducts applied research and teaches senior software engineering courses. His areas of expertise include agile methods, empirical software engineering, software testing and test automation, e-business Software engineering, and software economics. Prior industrial engagements include Microsoft Canada Money and SmallBiz portal projects, Pan-Canadian Online Learning Portal with the Council of Ministers of Education, Canada, and The Canadian Agile Network - Le Réseau Agile Canadien. Grigori is an agile enthusiast who has been involved with the agile community since 2000. He is a Certified Scrum Master, a ember of the Agile Alliance, and a regular contributor and speaker to agile conferences and workshops around the world. Grigori is the Research Chair of the Agile 2007 conference. He is also a guest editor of the IEEE Software Magazine issue devoted to Test-Driven Development. He is the leader of the Calgary Agile Methods User Group (CAMUG). Grigori is a member of ACM, IEEE, IEEE Computer Society, IFPUG, and SIAM.
(F6) Cost-Benefit Analysis of Software Development Techniques and Practices
Day: Tuesday 22 May 2007, Full Day Tutorial Venue: Ramsey
Summary: Investigations of software development practices, processes, and techniques frequently report separately on the costs and benefits of a phenomenon under study, but rarely comment on the combined bottom-line implications. In particular, tensions between the quality and productivity effects are hard to reconcile, making objective, high-level insights elusive. For example, is a practice that is believed to improve product quality significantly, but incurs a mild developer productivity penalty economically feasible? In other words, do the benefits outweigh the costs? And if they do, under what assumptions? The tutorial addresses such questions through effects synthesis and behavioral analysis. It leverages well-known and simple economic concepts and models to wrap empirical findings. The approach that emerges is equally applicable to the assessment of software projects. The tutorial is geared towards researchers and practitioners interested in software processes, process improvement, project management, process/project measurement, and empirical software engineering. The orientation is quantitative. Format involves lectures (theory and examples) and a hands-on study (bring a laptop with spreadsheet software installed).
Hakan Erdogmus is a Senior Research Officer at the NRC Institute for Information Technology in Ottawa, Canada. He is an adjunct professor in the University of Calgary’s Computer Science Department, where he has taught a graduate course on software engineering economics for the past two years. Since 1999, he has presented and published extensively on economics-based decision making in software development, notably on cost-benefit analysis of agile software development practices and on IT project evaluation using financial techniques. He is the 2003 recipient of the Eugene L Grant Award in Engineering Economy from the American Society for Engineering Education, the editor in chief of IEEE Software, and a co-editor of the book Value-Based Software Engineering (published by Springer). Hakan holds a PhD in Telecommunications Engineering from INRS, Université du Québec, Montreal, an MSc in Computer Science from McGill University, Montreal, and a BSc in Computer Engineering from Bogazici University, Istanbul.
(H7) Languages for Safety- Critical Software: Issues and Assessment
Day: Tuesday 22 May 2007, Half Day Tutorial (Morning) Venue: Nicollet Room
Summary: Safety-critical systems (whose anomalous behavior could have catastrophic consequences such as loss of human life) are becoming increasingly prevalent; standards such as DO-178B, originally developed for the certification of commercial avionics, are attracting attention in other communities. The requirement to comply with such standards imposes constraints (on quality assurance, traceability, etc.) much beyond what is typical for Commercial-Off-The-Shelf Software. One of the major decisions that affects the development of safety-critical software is the choice of programming language(s). Specific language features, either by their presence of absence, may make certification easier or harder. Indeed, full general-purpose languages are almost always too complex, and restricted subsets are required. This tutorial compares several languages currently in use or under consideration for safety-critical systems -- C (and also C++), Ada, and Java -- and assesses them with respect to their suitability to be constrained for use for such purposes. It specifically examines the MISRA C subset, SPARK, and the in-progress effort to develop a safety-critical profile of the Real-Time Specification for Java. The tutorial also identifies the challenges that Object Oriented Programming imposes on safety certification and indicates possible future directions.
Dr. Benjamin Brosgol, a senior member of the technical staff of AdaCore, has been involved with programming language design and implementation for more than 25 years, concentrating on languages and technologies for high-reliability systems. He participated in the design of both Ada 83 and Ada 95, and was editor of the Safety and Security Annex of the Ada 95 standard. Under Sun Microsystems' Java Community Process Dr. Brosgol was a member of the Expert Group for JSR-001 (Real-Time Specification for Java, or "RTSJ"), and he is currently a member of the Expert Groups for JSR-282 (RTSJ v1.1) and JSR-302 (Safety-Critical Java Technology). Dr. Brosgol is a member of ACM and IEEE and is a past chair of the ACM Special Interest Group on Ada (SIGAda). He has delivered presentations on safety-critical software technology at SSTC and Ada Europe conferences, and he has conducted tutorials on programming language topics at TOOLS, SIGAda, and Ada Europe conferences. He holds a B.A. in Mathematics from Amherst College, and M.S. and Ph.D. degrees in Applied Mathematics from Harvard University.
(H8) Developing Secure Embedded Systems: Pitfalls and How to Avoid Them
Day: Tuesday 22 May 2007, Half Day Tutorial (Afternoon) Venue: Nicollet Room
Summary: Embedded software is increasingly used in security-critical applications. Building secure embedded software is however still very challenging. It is very challenging to design software that is correctly embedded into the system context so that the overall system will be secure. Based on practical experiences from related industrial R&D projects, the tutorial gives a hands-on introduction into how to correctly develop secure embedded software and how to securely embed it into the system context. The tutorial will report on experiences and lessons learnt, and on common pitfalls in designing such systems. Tutorial participants will gain up-to-date knowledge on the state of the art in secure embedded systems and on how to use this technology securely.
Jan Jürjens is a Senior Lecturer (comp. US Assoc. Prof.) at The Open University (GB), having previously lead the Competence Center for IT-Security, Software & Systems Engineering, TU Munich (Germany). Doctor of Philosophy in Computing from the University of Oxford and author of "Secure Systems Development with UML" (Springer, 2004), "IT Security" (Springer 2007), and various publications on computer security and safety and software engineering. Founding chair of the working group on Formal Methods and Software Engineering for safety and Security within the German Society for Informatics (GI) and member of the executive board of the Division of Safety and Security within the GI, the executive board of the committee on Modeling of the GI, the advisory board of the Bavarian Competence Center for Safety and Security, the working group on e-Security of the Bavarian regional government, and the IFIP Working Group 1.7 "Theoretical Foundations of Security Analysis and Design". See www.jurjens.de/jan.
(F7) Aspect-Oriented Design in Java/AspectJ and Ruby
Day: Saturday 26 May 2007, Full Day Tutorial Venue: Ramsey
Summary: We will study practical techniques for using Aspect-Oriented Programming (AOP) in "production" Java and Ruby applications. Our emphasis will be on design principles, but we will also cover when to use AOP techniques, the pitfalls to avoid, the current tools and techniques available, and emerging trends, such as implications for architectures and frameworks.
Dean Wampler is a Senior Trainer, Mentor, and Consultant for Object Mentor, Inc. With 17 years of industry experience, he is an expert in Aspect- and Object-Oriented Programming, Agile Methods, and enterprise application development using Java and Ruby.
(F8) Variability Management in Software Product Line Engineering
Klaus Pohl and Andreas Metzger
Day: Saturday 26 May 2007, Full Day Tutorial Venue: Nicollet Room
Summary: Many industry sectors are facing the challenge of how to satisfy the increasing demand for individualized software products, software-intensive systems, or service-oriented systems. The software product line engineering (SPLE) paradigm has proven to empower organizations to develop a diversity of software products at lower cost, in shorter time, and with higher quality when compared with the development of single systems. Key to SPLE is to exploit the commonalities of the product line members and to explicitly define and manage the variability between those members. As a software professional, researcher, or student, this tutorial will provide you with an in-depth understanding of product line variability, how it differs from variability in software or in “traditional” development artifacts, and how it can be managed throughout the development process and across all product line development artifacts. You will learn how to employ orthogonal variability modeling (OVM) to document product line variability. OVM offers three main benefits for variability management: 1) OVM models abstract from the commonalities of the product line members and from how product line variability in the development artifacts is realized. Thus, OVM models simplify the communication of product line variability; 2) In OVM, product line variability is documented in one central model and related to other product line development artifacts like requirements, components or test cases. Thus, product line variability between the different development artifacts can be traced and kept consistent. 3) OVM models can be understood by stakeholders even if they do not understand the “traditional” development models (e.g., component diagrams or state charts). Thereby, a common understanding of product line variability between all stakeholders can be achieved. Further, you will learn how to employ OVM models for documenting product line variability in requirements and how to systematically map that product line variability to reusable product line test cases.
Dr. Klaus Pohl is the scientific director of the Irish Software Engineering Research Center (Lero) and holds a full professorship for software systems engineering at the University of Duisburg-Essen. He received his Ph.D. and his habilitation in computer science from RWTH Aachen. He leads major research and technology transfer projects in the area of product line engineering and requirements engineering. He served, among others, as program chair for the IEEE Intl. Requirements Engineering Conference (RE 2002), the Experience Reports Track of the ICSE 2005, the German Software Engineering Conference (SE 2005), the Intl. Software Product Line Conference (SPLC 2005), the Intl. Conference on Advanced Information Systems Engineering (CAiSE 2006), and he was a member of the organizing committee of the 1st International Workshop on Variability Modeling of Software-intensive Systems (VaMoS). Klaus Pohl is (co-)author of over 100 refereed publications and various edited volumes and books including the text book “Software Product Line Engineering -- Foundations, Principles, and Techniques” (Springer, 2005). He is a member of the ACM, the IEEE Computer Society and of the GI, the German Informatics Society. URL: www.sse.uni-essen.de/wms/en/
Dr. Andreas Metzger is senior research assistant at the “Software Systems Engineering” group at the University of Duisburg-Essen. He received his Ph.D. in computer science from the University of Kaiserslautern on the topic of model-based quality assurance. His current research interests include product line engineering -- especially modeling, analyzing and reasoning on product line variability -- as well as requirements-based testing. Andreas Metzger was a member of the organizing committee of the 1st International Workshop on Variability Modeling of Software-intensive Systems (VaMoS). He is a member of the IEEE Computer Society and of the GI, the German Informatics Society. URL: www.sse.uni-essen.de/wms/en/
(F9 - Cancelled) Engineering Medical Information Systems - Architecture, Data and Usability
Jens H. Weber-Jahnke and Morgan Price
Day: Saturday 26 May 2007, Full Day Tutorial Venue: Symphony I
Summary: Publicly funded health care systems are in a crisis in many countries around the world. Aging demographics, exploding cost of medical treatment and limited availability of care providers and facilities clearly signal a need for a reform. Studies predicts that decisive action is required to keep the U.S. health care system from collapsing within the next decade. Similar sustainability challenges exist in most other OECD countries. One key to reforming the health care sector is commonly seen in the pervasive development and adoption of information and communication technologies (ICT). Information processing in health care happens on the peripheral, administrative level as well as at the clinical level, at the point of care. The health care domain has been extremely slow in adopting clinical information systems (CIS). A major reason for this is the level of complexity associated with building them. On one hand, clinical information is inherently complex, on the other hand CIS have to satisfy important non-functional requirements such as security, privacy, usability, interoperability and evolvability. The objective of this tutorial is to present an introduction into the core body of domain-specific engineering knowledge required for developing and evolving CIS and their infrastructures. Software engineers with domain-specific knowledge of concepts and standards relevant to medical information systems are already in short supply and an annual growth of 13-16% is expected in this sector. Target audience are professionals, students, educators and researchers with basic software engineering training. The tutorial will focus on four main parts (1) architecture & infrastructure, (2) data and knowledge, (3) Security & Privacy and (4) Usability and Ergonomics. It will introduce important domain specific standards such as HL7v.3, openEHR and ISO standards. It will jointly be given by a software engineering and a clinician.
Jens Weber-Jahnke is an Associate Professor in the Department of Computer Science, cross-listed with the School of Health Information Science at UVic. He holds a doctoral degree from the University of Paderborn, Germany. He received the German Software Engineering Award in 2000 and was awarded a fellowship of the Advanced Systems Institute of British Columbia. In 2005 and 2006, he was a visiting professor in the UBC department of family medicine. He has over five years of experience with engineering medical information systems. He has been the technical lead of two open source projects in this domain (www.opentapas.org and www.egadss.org). He is a member of the AMIA, HL7, ACM, and IEEE CS and Gesellschaft für Informatik (GI).
Morgan Price is a family physician in British Columbia. He is also Clinical Assistant Professor at the University of British Columbia, Department of Family Practice where he is also Lead Faculty for Informatics. Dr Price is an Adjunct Professor in Computer Sciences at the University of Victoria. He is currently completing a PhD in Health Information Science exploring the application of cognitive usability models and methods in the design and evaluation of health information systems.