Software Engineering: Intro-
duction
UBCx: SoftEng1x - https://courses.edx.org/courses/course-
v1:UBCx+SoftEng1x+1T2018/course/
Thursday, 23 June y г.
The Software Engineering: Introduction course consists of 6 weeks of ma-
terial. Each week consists of 1 module, and those modules all have a simi-
lar structure.
M Module Name Lecture Topics
o
Q
d
uiz
ul Overall learning goal
e
1 Process Four M
ul-
Learn about software development processes commonly used in in- ti-
dustry, including Traditional approaches (Waterfall and Spi- ple
ral) and more modern Agile approaches (XP, TDD, and Scrum). Ch
oic
e
Qu
iz
2 Specifications Six M
EDX 1
Learn how specifications help customers and software engineering ul-
teams communicate. Learn about the process of gathering and vali- ti-
dating requirements, and how to create high quality user stories as ple
specifications. Ch
oic
e
Qu
iz
3 Testing Six M
ul-
Learn about the testing process for large-scale software systems. ti-
Deep dive into the intricacies of white box testing and coverage, ple
black box testing and equivalence class partitioning, assertions and Ch
testability. oic
e
Qu
iz
4 High Level Design Six M
ul-
Learn about high level design guidance to help improve the evolv- ti-
ability and maintainability of software systems over time. Take a ple
closer look at abstraction, technical representations, APIs, REST, Ch
coupling and cohesion, and the SOLID design principles. oic
e
Qu
iz
5 Low Level Design Eight M
EDX 2
Learn about low level design guidance for implementing software ul-
systems. Learn how and when to use the Singleton, Strategy, State, ti-
Facade, Decorator, MVC and MVP design patterns. ple
Ch
oic
e
Qu
iz
6 Construction Six M
ul-
Learn about advanced software construction topics in the context of ti-
software engineering, such as non-structural properties, static analy- ple
sis and linters, automation, code smells, and refactoring. Ch
oic
e
Qu
iz
Software Engineering: Introduction 1
MODULE 1: Process 4
MODULE 2 6
MODULE 3 6
MODULE 4 6
MODULE 5 6
MODULE 6 6
EDX 3
MODULE 1: Process
PROGRAMMING LANGUAGES - TypeScript, JavaScript
TypeScript has many great resources, but the TypeScript Handbook or
the TypeScript Deep Dive would be good places to start. If you are start-
ing from scratch, it is really important that you do not just read a bunch of
code but actually write some. The TypeScript Playground or a JavaScript
REPL can be a lightweight way to do this.
Overview
Welcome to Process, the first module in Software Engineering: Introduc-
tion. In this module, we will explore how software development processes
can help structure the diverse set of activities involved in building modern
systems. While learning about several common processes used in industry,
we will discuss the benefits and drawbacks of each approach, as well as
how to choose the best process for your specific team and project.
Learning Goals
• Learn about the different types of stakeholders and the types of doc-
umentation they use to communicate during the software develop-
ment process
• Learn about Traditional software processes, including Waterfall and
Spiral approaches
• Learn about more modern Agile software processes, including Ex-
treme Programming, Test Driven Development, and Scrum method-
ologies
WHAT
WHO
EDX 4
HOW
WHEN
Stakeholders
- Developers
- QA
- DevOps
- Managers
- Sales
- Users
- Support
Documentation: communication between stakeholders
Specification, Development, Validation, Deployment/Evolution
TRADITIONAL SOFTWARE PROCESS - WATERFALL, SPIRAL
MODERN - SCRUM
EDX 5
MODULE 2
MODULE 3
MODULE 4
MODULE 5
MODULE 6
EDX 6