Tutorials


We will be hosting a number of tutorial sessions at this year's RE conference:

All full-day tutorials take place from 8:30 - 17:00. Morning tutorials are from 8:30 - 12:00. Afternoon tutorials take place from 13:30 - 17:00.
Coffee breaks will be held from 10:00-10:30 and 15:00-15:30, and lunch will take place from 12:00-13:30.

September 24

Full-Day Tutorials:
September 25

Half-Day Tutorials:
AM:
PM:


T4. Writing Good Requirements

Instructor: Erik Simmons

Abstract:

Poor requirements practices are widely recognized as one of the top causes of product defects, project delays, and cost overruns. Yet, a practical solution that balances effective results with the everyday pressures of product development can be hard to find. Teams struggle with questions such as "How much detail is enough?", "What is the difference between requirements and design?", and "What requirements practices are right for my project?"

Writing Good Requirements is based on a popular and successful course taught to thousands of students at Intel over the last twelve years. Designed for practitioners and rarely taught outside Intel, it covers selected best practices that have shown particular merit for specifying requirements across a range of project and product types. The techniques presented are scalable, and have been employed on projects using both agile and traditional methodologies. Rather than presenting a rigid methodology or process, the emphasis is on best practices that can be tailored and flexibly applied.

Topics include: The purpose of requirements; detail level and timing issues, common problems with natural language requirements; specifying functional and quality requirements using Planguage; other supplementary specification tools such as algorithms, diagrams, and use cases.

The tutorial contains examples from actual requirements documents in original and improved formats. Small-group exercises and discussions reinforce the content and techniques through the day.


Instructor Bio:

Erik Simmons works at Intel Corporation, where he is responsible for creation, implementation, and evolution of requirements engineering practices and supports other corporate platform and product initiatives. Erik's professional interests include software development, decision making, heuristics, development life cycles, systems engineering, risk, and requirements engineering. He has made invited conference appearances in New Zealand, Australia, England, Belgium, France, Germany, Finland, Switzerland, Canada, and the US. Erik holds a Master's degree in mathematical modeling and a Bachelor's degree in applied mathematics from Humboldt State University, and was appointed to the Clinical Faculty of Oregon Health Sciences University in 1991.








T7. Applying Model Driven Engineering and Domain Specific Languages to Requirements Engineering

Instructors: Bruce Trask and Angel Roman

Abstract:

Model Driven Engineering (MDE) brings together multiple technologies and critical innovations and formalizes them into effective tools and approaches for all phases of Software Engineering. Requirements Engineering is a perfect candidate as a target for MDE technologies and when properly done can set the groundwork for a stable, effective and fast development cycle. The result of effective application of MDE to Requirements Engineering dovetails synergistically with other MDE work done throughout the software development lifecycle. This tutorial will cover the basic patterns, principles and practices of MDE and how they can be effectively applied to the concerns of Requirements Engineering. The three main MDE categories include the development of Domain Specific Languages (DSL), Domain Specific Editors (and Views), and Domain Specific Transformation Engines or Generators. Expressed in terms of language development technology, these mirror the development of the Abstract Syntax, Concrete Syntax and Semantics of a new Domain Specific Language. This tutorial will cover the basic effective patterns, principles and practices for developing these MDE software artifacts and particularly in the context of eliciting, capturing, prototyping, analyzing, verifying and tracing software requirements for complex domains. The tutorial will show how to apply these concepts as effective means with which to both raise levels of abstraction and domain specificity and thus increase power and value of tools and languages that allow developers to tackle the complexities of today’s system and software requirements. It will also show how to effectively leverage abstraction without sacrificing the ability to robustly and precisely refine these abstractions to solve complex real world requirements problems. This tutorial will also include how to integrate the MDE Requirements Engineering artifacts with other software development artifacts and techniques so as to have a holistically consistent software systems and development. It will show how to simultaneously leverage MDE and Agile Software Development to all aspects of Requirements Engineering. To show these patterns and principles in action, this tutorial will cover the details of how to leverage MDE Language Workbenches and frameworks.


Instructor Bios:

Bruce Trask

Bruce Trask has been developing real world complex Distributed Real-Time Embedded systems for over 24 years specializing in MDE as applied to these systems in the last 10 years. He has been involved with the entire lifecycle of most of the projects he has participated in from conception, through requirements, through development, testing, integration, fielding and support. He has also been teaching Modeling, MDE, Object Orientation, Design Patterns, UML, C++, CORBA and Framework courses for over 10 years. He is a regular speaker/presenter at international software industry conferences. He has delivered tutorials at the OMG. Bruce Trask is the CEO of MDE Systems Inc.

Angel Roman

Angel Roman is the Chief Software Architect of MDE Systems and an expert on the Eclipse Development environment and its application frameworks and modeling frameworks. He has presented at various industry conferences on topics such as Software Defined Radios and MDE Technologies. He has been involved with projects concerning MDE, Eclipse Development, Embedded Linux Systems and OSGi.



T8. Using EARS+ (Easy Approach to Requirements Syntax Plus) to vary the level of detail in Natural Language requirements

Instructor: Alistair Mavin

Abstract:

Black box system requirements are often written in unconstrained natural language (NL), which is inherently imprecise. During system development, any problems in system requirements inevitably propagate to lower levels. This creates unnecessary volatility and risk, which impact programme schedule and cost. To mitigate this problem, there is a need to provide simple, practical guidance for authors of NL requirements. Easy Approach to Requirements Syntax (EARS) is a philosophy for authoring NL requirements through the application of a template with an underlying ruleset. EARS has proved popular with practitioners because it is lightweight, there is little training overhead, and the resultant requirements are easy to read.

In practice, requirements authoring is usually an iterative process; first-pass requirements can be quite a simple description of required system behaviour, whilst subsequent iterations are used to add detail. EARS is an effective mechanism for the expression of simple requirements, but does not adequately define precise, rigorous requirements. To address these shortcomings, the enhanced EARS+ template has been developed. EARS+ provides a mechanism to vary the level of detail in NL requirements during iterative requirements authoring. The requirement author can add clauses such as stakeholder, action and object, which have defined syntax. This produces a precise description of the required system behaviour. The practitioner can choose which clauses to apply, thereby tailoring each requirement to the appropriate level of detail, whilst maintaining the readability of NL.

This interactive tutorial will:
  • introduce the EARS+ approach
  • illustrate worked examples of both simple and detailed requirements
  • demonstrate the evolution of requirements through the development lifecycle
  • include a group discussion on the benefits of adopting the approach
Participants be provided with a quick reference guide and will leave with a working knowledge of EARS+, ready to apply the approach to their own requirements.

Instructor Bio:

Alistair Mavin (Mav) is a requirements specialist at Rolls-Royce PLC based in Derby, UK. He has previously worked as a requirements and systems engineering consultant at Praxis High Integrity Systems in Bath and as a research assistant in the Centre for Human Computer Interaction Design at City University in London. He has carried out systems engineering and requirements engineering projects in a range of industries including defence, aerospace, rail and automotive. He has experience in the development and delivery of requirements engineering training.

Mav has published many papers on requirements engineering and is a regular contributor to the IEEE "RE" conference series. He is a member of the "RE" conference series Industry Committee, a member of the British Computer Society's Requirements Engineering Specialist Group Committee and is a chartered engineer.



T9. Aligning Product Line Business and Technical Strategies (Mapping Product Line Requirements to a Product Line Architecture)

Instructors: Mike Mannion and Juha Savolainen

Abstract:

In the consumer product market space a commercial challenge is to offer personalization of products and services for individual customers at a mass production price. One solution is the development of a software product line platform comprising a set of products that have similar functions, behaviours and properties but with sufficient variability to capture customer differences. However, as a product line evolves, customer requirements change and new products are added to the product line, software producers realize the platform cannot be "stretched" indefinitely. The central problem is striking a balance between development efficiency through increasing platform commonality and customer dissatisfaction with products that have unwanted features/properties. The introduction of multiple product lines may be a better alternative. In practice, achieving the balance is a compromise between satisfying customers' requirements, minimising the costs of changes to the product line platform, and a vendor's mission, capability and capacity. This tutorial will explore the broader challenges of product line evolution but focus on platform management through describing techniques for mapping changing variability between product line requirements and a product line platform architecture, and describe the contexts for deploying multiple product lines as an alternative.


Instructor Bios:

Mike Mannion

Prof Michael Mannion is a Vice-President and Professor of Computing at Glasgow Caledonian University, UK. He has a BSc in Computer Science from Brunel University and a PhD in Artificial Intelligence from Bristol University and has several years' software engineering industrial experience. His research interests include product-line engineering, software engineering and engineering education. He is a Chartered Engineer, and a member of the British Computer Society, IEEE and ACM. He has published more than 60 papers.





Juha Savolainen

Dr Juha Savolainen is Software Systems Manager at Danfoss Power Electronics. He has extensive experience in working closely with numerous product lines in helping them to manage and realize variability. His main research interests include requirements engineering, software architectures and product line development. He has published more than 50 papers.



T10. Product Management for Software and Systems

Instructor: Christof Ebert

Abstract:

This tutorial provides practical training on product management based on "best practices" in companies. Covering the entire product life cycle it offers a reference framework split into the five phases of inception, development, market launch, deployment and service. For each of these phases the tutorial offers a well-balanced program of overview, short case studies and mutual learning in interactive sessions and discussions. It provides insight into best practices around strategy building, translating strategy into a project vision, portfolio management, requirements elicitation, creating and managing the project business case, prioritizing requirements, customer and market interaction, uncertainty management, project execution, quality assurance, release management, service delivery and support.

The tutorial will take the software or IT product manager's perspective to provide a comprehensive view on what matters to be successful on the market and as a business. The subject will be introduced by way of an interactive guided tour through the entire product life cycle, looking at relationships with other functions (e.g., project manager, marketing and quality), mapping the processes, and dealing with vertical and horizontal/cross-functional communication. Asking the questions "what is the specific value of product management at this point" or "what would happen if at this particular stage our product management process was flawed" will provide an understanding of the value and potential of software or systems product management. Short examples will offer opportunities to underpin the learning with practical examples and "by doing". The tutorial complements the participants' knowledge and problem solving competences in the subject area and enables them to implement effective upstream processes in their companies.

This tutorial fits particularly well to RE-2012 because of its holistic view on product value and requirements under uncertain (economic) conditions. It emphasizes a perspective across the product's life cycle. And it directly links to the core of currently ongoing evolution and definition of the product management body of knowledge, thus allowing the audience to not only learn but also influence this crucial discipline, which is essential for the success of each single enterprise and person attending RE-2012.

The intended audience consists of engineers and management in all domains where software products and solutions are conceived or created. This covers specifically product managers, program managers, project leaders, requirements engineers, system analysts, quality managers and researchers or lecturers in the domains of requirements engineering and product management. There is no specific technical knowledge required for attendees.


Instructor Bio:

Dr. Christof Ebert is managing director at Vector Consulting Services. He supports clients around the world to improve product strategy and product development and to manage organizational changes. Prior to that, he held global management positions for fifteen years at Alcatel-Lucent. Dr. Ebert serves on a number of advisory and industry bodies. An internationally renowned keynote speaker, he teaches at the University of Stuttgart and authored several books including his most recent book "Global Software and IT" published by Wiley in 2012. Contact him at christof.ebert@vector.com.







T11. Writing Security Objectives

Instructor: Brenda Larcom

Abstract:

Security requirements are even more challenging to elicit and specify than most non-functional requirements, due to intelligent post-deployment attackers who change the rules after the product has been shipped, stakeholders' differing definitions of security, the lack of widely accepted scales and pre-deployment meters, security experts' tendency to focus on security technology rather than the goals that motivate it, and the inherent difficulties of describing a negative.

In this interactive tutorial, participants learn a structure for specifying high-level security requirements, and a method for eliciting these security objectives. After a brief introduction to security objectives, participants construct a simple example from start to finish. Participants define attackers, balance stakeholders' conflicting security needs, choose a useful level of abstraction for modeling high-level security goals, generate threats to prioritize, and prioritize the negative security outcomes that really matter. The tutorial concludes with a brief discussion of how to use security objectives, and how to integrate security objectives into an Agile development lifecycle.

Tools and examples used in the tutorial are free and open source; participants may wish to bring a laptop with Excel 2010 or later.


Instructor Bio:

Brenda Larcom is a Senior Security Associate at Stach & Liu, a security consulting firm providing IT security services to the Fortune 1000 and global financial institutions as well as U.S. and foreign governments. Her employers over the past 17 years include Verio, Cray, Amazon, IOActive, Intel and Zscaler. Brenda is a co-founder and the lead developer for Trike (http://www.octotrike.org/), an open source threat modeling methodology and tool that partially automates the art of security analysis. Her current work focuses on secure architecture and integrating security into Agile development practices. Brenda is a regular speaker at security industry conferences as well as private events; past venues include ToorCon, ShmooCon, MiniMetricon, BayThreat, and B-Sides.







T12. Requirements Reuse with Concern-Driven Development

Instructors: Gunter Mussbacher and Jorg Kienzle

Abstract:

Many modeling languages have been developed that allow concerns to be encapsulated at a specific phase such as requirements or design. However, these languages need to work together to truly capitalize on benefits promised by concern-driven development (CDD), i.e., improved productivity, reusability, and maintainability when concerns are encapsulated across software development phases. We present a tool-supported approach for CDD of reactive systems based on the automated, tool-supported transformation of workflow models at the requirements level into design models. The presented approach enables practitioners to use the right modeling language for the right modeling task, enables encapsulation of concerns across these phases, and hence represents a first step toward an end-to-end methodology for CDD. The approach is centered around the Aspect-oriented User Requirements Notation (AoURN) for requirements models and Reusable Aspect Models (RAM) for design models.

We first discuss CDD with the help of a fully developed example that demonstrates how (i) an AoURN requirements model is automatically transformed into a RAM design model and (ii) how design-specific elements in the RAM model are subsequently completed. In the second part, an exercise gives participants the opportunity to gain hands-on experience with our tools by extending this example.

CDD Tool Installation Instructions

Instructor Bios:

Gunter Mussbacher

Gunter Mussbacher is a postdoctoral fellow at Carleton University. He received a Ph.D. in computer science from the University of Ottawa in 2010. His general research interests lie in requirements engineering, the User Requirements Notation (URN), model-driven requirements engineering, and aspect-oriented modeling. In his thesis, he developed the Aspect-oriented User Requirements Notation (AoURN), a framework that enables goal-oriented, scenario-based, and aspect-oriented modeling in a unified way. As a research engineer for the Strategic Technology department of Mitel Networks, he applied and taught URN concepts. Gunter also has taught software engineering undergraduate courses as well as URN and AoURN tutorials for industry and at international conferences such as ICSE, AOSD, MODELS, and RE. He has published in the Requirements Engineering Journal (REJ) and in the Transactions on Aspect-Oriented Software Development (TAOSD), and co-edited with Daniel Amyot the URN standard (ITU Recommendation Z.151 11/2008). Gunter is an organizer or program committee member of the Requirements Engineering (RE), MODULARITY:aosd, and System Design Languages (SDL) conferences and several workshops (MoDRE, CMA, EA, AOM, SAM). For details see: http:/www.site.uottawa.ca/~gunterm/.

Jorg Kienzle

Jorg Kienzle is an associate professor at the School of Computer Science of McGill University, where he heads the Software Engineering Lab. He holds a Ph.D. and engineering diploma from the Swiss Federal Institute of Technology in Lausanne (EPFL). His current research interests are in the area of model-driven engineering and aspect-oriented software development. He has co-organized 15 workshops on aspect-oriented modeling at MoDELS and AOSD in the past 10 years, and organized 4 1-week aspect-oriented modeling workshops at the Bellairs McGill Research Institute. He has edited a special issue of the Journal Transactions on Aspect-Oriented Software Development on aspect-oriented modeling, and edited an LNCS volume regrouping the best papers of the MODELS 2011 satellite events. He served among others on the program committees of MODELS, AOSD, and ECMFA, and is the PC chair for AOSD 2013. For details: see http://www.cs.mcgill.ca/~joerg/Home/Jorgs_Home.html.



List of cancelled tutorials.