Dependable Software Systems

Course Information

The Master of Engineering Leadership (MEL) in Dependable Software Systems offers a bold approach to professional graduate education in engineering. Sixty per cent of the courses you’ll take are technical in nature and offered through the UBC Faculty of Applied Science. The remaining 40 per cent are business courses offered through UBC Sauder’s Robert H. Lee Graduate School.

Many courses use a flipped classroom format. This means you are expected to independently review course content ahead of classroom time through assigned readings and lecture videos. The classes themselves are then an opportunity for engaged learning – discussing and applying what you’ve learned through case studies, group project work, experiments and demonstrations.

Course Overview

Dependable Software Systems Courses

Winter term: January to April

CPEN 522: Software Verification & Testing

This is a course on concepts, principles and techniques related to software testing and formal program verification. Students will become acquainted with both the strengths and limitations of various functional and structural testing methods, as well as techniques for proving the functional correctness of sequential programs. Topics include black-box and white-box test case design strategies, incremental integration testing techniques, inspections and reviews, axiomatic verification, predicate transforms and function-theoretic verification. Students will have the opportunity to practice the techniques presented in class via optional exercises.

By the end of this course, students will be able to:

  • Explain different types of software testing.
  • Explain how to generate tests from requirements and apply test adequacy measurement and enhancement.
  • Explain and perform different types of testing including control-flow-based testing, data flow-based testing, regression testing and mutation-based testing.
  • Explain and perform model-based test generation.
  • Explain and use effective program debugging techniques.
  • Describe and perform static and dynamic source code analysis.
  • Identify fault-prone software components and security vulnerabilities.
  • Apply software testing tools.
  • Define and describe some of the key ideas in software verification including propositional satisfiability, Binary Decision Diagrams, model checking, bounded model checking, and probabilistic model checking.
  • Use formal software verification tools.

CPEN 523: Software Project Management

This course will include a critique of the “thermostat model” of project management found in WBS (Work Breakdown Structure), Gantt and PERT charts, and much of the common wisdom represented in the PMBOK. We will look at how a new breed of techniques and tools are emerging, more suited to software development, with iterative development and agile methods, including XP, Scrum, Lean Development, Adaptive Development, RUP, SaFE, Nexus and others.

By the end of this course, students will be able to:

  • Recognize and distinguish different kinds of software projects.
  • Select or adapt life cycle and practices to a given project.
  • Estimate effort and cost of software development.
  • Track progress on multiple aspects: time, risk, deliveries, quality, staff.
  • Understand key issues dealing with people and teams.
  • Understand some of the legal and ethical issues surrounding software projects.
  • Understand communication issues, especially in large or global projects.
  • Reflect on your own practice.
  • Develop and maintain a software development plan.

APPP 503: Organizational Leadership

Understand the behaviour of people and groups and how this applies to management and leadership within professional organizations. This course explores motivation, group dynamics, organizational structure, leadership styles and tools for assessing organizational effectiveness. The course is collaboratively delivered with the Faculty of Commerce and Business Administration.

By the end of this course, students will be able to:

  • Apply theoretical principles of leadership and organization behaviour in a variety of organizational contexts and industries.
  • Diagnose organizational behaviour and people management challenges and find solutions that deliver business results and ensure employee engagement.
  • Understand what it takes to build effective manager-employee relationships, given the realities of power, motivation and commitment in an organizational setting.
  • Develop and present recommendations for organizational leadership challenges using the case study analysis approach.

BA 580B: Strategy & Innovation

This course provides an introduction to the principles and frameworks of strategic management, as well as concepts surrounding the creation or expansion of innovation capabilities, within organizations. Strategic management involves analysis, planning and execution of initiatives that achieve objectives in support of organizational goals. Innovation generally involves the development of revolutionary new or evolutionary improvements to existing ideas, methods, products, services, or combinations thereof that are adopted. The course will also consider the changing nature of organizational strategy and innovation in an environment of increasing globalization, digitization and automation. Entrepreneurship and intrapreneurship will be recurring themes throughout the course. The course will emphasize actionable lessons and models that students, regardless of their professional or academic backgrounds, can apply in practice to create tangible and valuable outcomes across organizational types, growth stages, and industries.

By the end of this course, students will be able to:

  • Understand strategic decision making and organizational innovation processes.
  • Analyze business situations using relevant concepts and tools.
  • Understand business approaches for managing strategy and innovation programs and projects.
  • Create and present plans for solutions to organizationally important challenges.
  • Communicate effectively about planning and delivering on strategy and innovation.

APPP 505: Analytics & Interpretation for Applied Sciences

Professionals who can manage analytics and “big data” are highly sought after by companies across the world. This course will provide students with the opportunity to identify, interpret and utilize key analytics from real-world data sets. Graduates will feel comfortable with the latest data collection methods, measurement and presentation tools, be able to interpret data and identify trends, and understand the role of big data and predictive analytics across several different industries.

By the end of this course, students will be able to:

  • Discuss data analytics and data visualization principles and methods.
  • Design and develop interactive visualizations and dashboards using Tableau.
  • Use advanced features and functionalities of Tableau.
  • Present and communicate analysis findings to different target audiences.
  • Understand how to clean and transform different kinds of data to facilitate exploration and analysis.
  • Design and develop interactive visualizations and dashboards using Tableau.
  • List use cases for effective visual analytics.
  • Recognize issues related to ethics, privacy, governance, provenance and integrity when working with data.

Summer term: May to August

APPP 506C: Capstone Project Part 1

A capstone design project is a major component of any engineering curriculum: it is the culmination of a course of study enabling students to showcase the knowledge and skills they have acquired. Teams of four to five students will solve an open-ended problem in software engineering for an industry partner in the greater Vancouver area. This project will also allow students to deepen their skills in project management and professional practice.

This project course allows student to put in practice what is learned in the other courses of the program. It provides also matter for regular reflection, individually or as a group, on:

  • Selection of methods and tools appropriate for the project.
  • Social interactions within a work group, cooperation and collaboration
  • Project management: time, risk, budget.
  • Communication: written (technical reports, documentation), verbal (making presentations of different style and length), media literacy (use of web, video, animation).

CPEN 533: Error-Resilient Computing Systems

This course focuses on the design of dependable (fault-tolerant and reliable) computing systems. In particular, we will attempt to understand the root causes of faults in computer systems and their impact. We will study both traditional and cutting-edge techniques to build dependable computing systems. Finally, we will explore the practical applications of the techniques in the context of deployed systems. An important thread that runs through the course is the evaluation of dependable systems, and to this end, we will study techniques ranging from analytical modelling to empirical validation. The assignments will give students hands-on exposure to cutting-edge tools and techniques for dependability evaluation.

By the end of this course, students will be able to:

  • Understand and discuss issues related to system survivability, trustworthiness, reliability,dependability and assurance.
  • List common threats to system dependability and their mitigation strategies.
  • Evaluate the reliability of common computing system design patterns using probabilistic models including Markov models and Stochastic Activity Networks.
  • Apply fault-tolerant techniques such as N-version programming, recovery blocks and robust data structures to the design of reliable software systems.
  • Apply dependability mechanisms such as checkpointing, rollback and recovery to the design of parallel and distributed systems.
  • Critique the design of real-world computing systems from a dependability perspective.

APPP 504: Business Acumen for Technical Leaders

An asset to the aspiring technical leader, business acumen is knowing how business works and applying that knowledge with the goal of business improvement. This course offers an elevated perspective of how technical skills contribute to building value in a business. The course immerses aspiring technical leaders in the practical application of core business skills and the development of six core business competencies, which are presented as modules: Managerial Accounting, Strategy and Performance, Market Evaluation, Operations Management, Negotiations and Contract Management and Business-Case Building and Valuation. This course is collaboratively delivered with the Faculty of Commerce and Business Administration.

By the end of this course, students will be able to:

  • Apply theoretical principles of business in a variety of contexts.
  • Analyze and discuss common business situations encountered by managers from multiple angles using the case study analysis approach.
  • Appreciate the importance of each of the functional areas, as well as the inter-connectedness of business decision-making.
  • Appreciate the importance of excellent written and oral communication skills.
  • Understand the importance of effective team work and strong ethical standards in management.
  • Plan and present effective and meaningful presentations.

Fall term: September to December

APPP 506C: Capstone Project Part 2

Students will work in small groups to design and prototype a dependable system, on a topic defined in collaboration with an industrial partner of UBC.

This project course allows student to put in practice what is learned in the other courses of the program. It provides also matter for regular reflection, individually or as a group, on:

  • Selection of methods and tools appropriate for the project.
  • Social interactions within a work group, cooperation and collaboration.
  • Professional practice and ethics.
  • Project management: time, risk, budget.
  • Communication: written (technical reports, documentation), verbal (making presentations of different style and length), media literacy (use of web, video, animation).

CPEN 542: Topics in Computer Security

The course introduces students to the subject of computer security from the technical point of view. Students will learn the principles of computer and information security in general, and of constructing secure systems in particular.

By the end of this course, students will be able to:

  • Articulate the principles of computer and information security.
  • Describe similarities and differences among various symmetric and public key cryptographic techniques.
  • Explain discretionary owner-based, mandatory lattice-based, and role-based access control models.
  • Describe main types of security policies.
  • Articulate the principles of security design.
  • Articulate the defense methods against malicious logic.
  • Explain typical web application vulnerabilities and corresponding countermeasures.
  • Discuss human, business, and economic aspects of computer security.
  • Critique design of real-world software systems from security point of view.

DSS Elective

Students can choose one course from a variety of schools on campus. The course must be of a technical nature, related to software development (including machine learning, data mining or computer graphics), and approved by the program director. Potential courses can be found from the Electrical and Computer Engineering Program and Computer Science Department, although students are not limited to choosing courses from these lists.

UBC Sauder School of Business Courses

Students can choose a UBC Sauder Business Course to gain greater exposure to a particular area of interest. Options include (subject to change):

BASC 550: Operations and Logistics

This course will introduce students to the key concepts and tools needed to understand and effectively manage supply chains and business operations in general. A key concept in this course is the “business process”, and managing and improving such processes.

BAMA 580A: Building Brand with Purpose

This course explores the core principles of branding within the context of social and environmental responsibility including healthcare, sustainability and human rights. Fundamental marketing strategies are reinforced as they relate specifically to: 1) non-profits, 2) social marketing designed to change society’s behaviour and 3) cause-related-marketing within thecorporate sector.

Third Business Option:

Full details to be confirmed in Spring/early Summer 2020.

APPP 502: Sustainability & Leadership

This course helps students build skills to lead change that influences the triple bottom line and explores concepts related to sustainability, change agency systems thinking, awareness and perspective for engagement and communication, adaptive leadership, and change dynamics. It also incorporates case studies in organizational and social change. This course is collaboratively delivered with the Faculty of Commerce and Business Administration.

By the end of this course, students will be able to:

  • Recognize tools, concepts, standards and frameworks used in sustainable business.
  • Analyze current realities, market opportunities and issues related to sustainability across a range of industries.
  • Integrate sustainability-related concepts into their own industry and/or personal experiences.
  • Synthesize, apply and communicate sustainability knowledge to one’s peers.
  • Apply various leadership concepts and tools into their professional practice, and in particular to sustainability-related initiatives.