IN4MATX 43

IN4MATX 43 introduces software engineering through the people, processes, and tools behind real-world software systems.

These notes are organized week by week so classmates can review core ideas such as requirements, architecture, testing, collaboration, and software quality.

IN4MATX 43 主要介绍软件工程,关注真实软件系统背后的人、流程与工具如何协同工作。

这些笔记按周整理,方便同学回顾需求、架构、测试、协作方式和软件质量等核心主题。

Week 1

Foundations of Software Engineering

An overview of what software engineering is, why software matters, and the core principles that shape the rest of the course.

Last edited on April 14, 2026

AvailableOpen →
Week 2

Requirements Engineering

Software failures, why requirements matter, requirements analysis and specification, the requirements document, specification methods, and Ziv's Law.

Last edited on April 24, 2026

AvailableOpen →
Week 3

Use Cases and Software Engineering Ethics

Use cases, actors, basic/alternative/exception flows, use case diagrams and models, plus the ACM/IEEE Software Engineering Code of Ethics.

Last edited on April 24, 2026

AvailableOpen →
Week 4

Software Architecture

Why architecture matters, its elements, prescriptive vs. descriptive views, architectural erosion, and the six architectural styles.

Last edited on April 24, 2026

AvailableOpen →
Week 5

Software Design and UML

From architecture to detailed design, the six design approaches, abstraction, UML class diagrams (associations, multiplicity, aggregation vs. composition), cohesion, coupling, and information hiding.

Last edited on May 2, 2026

AvailableOpen →
Week 6

User-Centered Design and Usability

How to make software that meets the user's needs: why usability matters, the eight user-centered design methods (interviews, personas, scenarios, storyboards, wireframes, design guidelines, heuristic evaluation, user testing), and Nielsen's ten heuristics.

Last edited on May 10, 2026

AvailableOpen →
Week 7

Quality Assurance and Software Testing

How do we know the software works? Verification vs. validation, the four QA technique families, the basic testing process, IEEE testing terminology (mistake/fault/error/failure), the three levels of testing (unit/integration/system), six ways to choose test cases, test oracles, and how to know when we're done testing.

Last edited on May 21, 2026

AvailableOpen →
Week 8

Test Case Selection — Black-Box, White-Box, and Other QA Techniques

How do we actually choose test cases? Black-box (specification-based) testing with equivalence class partitioning and boundary value analysis, combinatorial testing, white-box (structural) testing with control-flow graphs and coverage criteria (statement / branch / condition / path), plus inspections and code reviews, formal methods, static analysis, and the Quiz 7 study guide.

Last edited on May 25, 2026

AvailableOpen →
Week 9

Software Process and Life Cycle Models

From testing to process: why software engineering needs a defined process, what a model is, and the eight life cycle models (build-and-fix, waterfall, rapid prototyping, incremental, spiral, RUP, XP, Agile/Scrum) — including the fourteen XP practices, the Agile Manifesto and its principles, Ziv's Law, a side-by-side comparison of all models, and the Quiz 9 / final exam study guide.

Last edited on May 31, 2026

AvailableOpen →
Final Review

Final Review Notes

Cumulative, exam-ready review organized as eight "big questions" mapped to each weekly quiz: what software engineering is (No Silver Bullet, the four essential difficulties), requirements, use cases, professional ethics (ACM code), software architecture and the six architectural styles, detailed design with UML class diagrams, user-centered design and Nielsen's ten heuristics, and software testing (black-box/white-box, coverage criteria) — plus the eight process models, a one-page cheat sheet, the top-ten exam traps, and a knowledge tree.

Last edited on June 30, 2026

AvailableOpen →
Week 1

软件工程基础

概览软件工程是什么、软件为什么重要,以及贯穿整门课的核心原则。

最后编辑于 2026 年 5 月 21 日

已就绪打开 →
Week 2

需求工程

软件失败案例、需求为何至关重要、需求分析与规格说明、需求文档、规格说明方法,以及 Ziv 定律。

最后编辑于 2026 年 5 月 21 日

已就绪打开 →
Week 3

用例与软件工程伦理

用例、参与者(actor)、基本/替代/异常流、用例图与用例模型,以及 ACM/IEEE 软件工程伦理准则。

最后编辑于 2026 年 5 月 31 日

已就绪打开 →
Week 4

软件架构

为什么需要架构、架构的组成要素、规范性与描述性架构、架构侵蚀,以及六种架构风格。

最后编辑于 2026 年 5 月 31 日

已就绪打开 →
Week 5

软件设计与 UML

从架构走向详细设计、六种设计方法、抽象、UML 类图(关联、多重性、聚合与组合)、内聚、耦合,以及信息隐藏。

最后编辑于 2026 年 5 月 31 日

已就绪打开 →
Week 6

以用户为中心的设计与可用性

如何让软件真正满足用户需求:为什么可用性重要、八种以用户为中心的设计方法(访谈、人物画像、场景、故事板、线框图、设计准则、启发式评估、用户测试),以及 Nielsen 十大启发法。

最后编辑于 2026 年 5 月 21 日

已就绪打开 →
Week 7

软件质量保证与测试

我们怎么知道软件真的能工作?验证与确认(verification vs. validation)、四类质量保证方法、基础测试流程、IEEE 测试术语(mistake/fault/error/failure)、测试的三个层次(单元/集成/系统)、六种测试用例选取方法、测试预言(test oracle),以及如何判断测试已经完成。

最后编辑于 2026 年 5 月 21 日

已就绪打开 →
Week 8

测试用例的选取——黑盒、白盒与其他质量保证方法

我们究竟该如何挑选测试用例?黑盒(基于规格)测试中的等价类划分与边界值分析、组合测试、白盒(基于代码结构)测试中的控制流图与覆盖准则(语句/分支/条件/路径),以及检查与代码评审、形式化方法、静态分析,再加上 Quiz 7 复习提纲。

最后编辑于 2026 年 5 月 31 日

已就绪打开 →
Week 9

软件流程与生命周期模型

从测试走向流程:软件工程为什么需要一个定义良好的流程、模型是什么,以及八种生命周期模型(边写边改、瀑布、快速原型、增量、螺旋、RUP、XP、敏捷/Scrum)——包括 XP 的十四条实践、敏捷宣言及其原则、Ziv 定律、所有模型的横向对比,以及 Quiz 9 / 期末考复习指南。

最后编辑于 2026 年 5 月 31 日

已就绪打开 →
Final Review

期末复习笔记

面向期末的 cumulative 复习版,按 8 个"大问题"对应每周 Quiz 组织:软件工程是什么(No Silver Bullet、四大本质困难)、需求、用例、职业伦理(ACM 准则)、软件架构与六种架构风格、UML 类图详细设计、以用户为中心的设计与 Nielsen 十大启发法、软件测试(黑盒/白盒、覆盖准则)——再加上八种过程模型、一页速记、高频易错点 Top 10 和知识树。

最后编辑于 2026 年 6 月 30 日

已就绪打开 →