UniMate AI

CSSE3012

软件工程

2 学分难度

课程定位 CSSE3012(The Software Process)是 UQ 课程体系中兼顾理论与实践的一门难课程,核心目标是把“会看懂”升级为“会分析、会实现、会解释”。课程通常承担承上启下作用:前接基础概念,后接更高阶专题或项目。对准备走软件、数据、工程或研究路径的同学来说,这类课程的价值不只在分数,更在于建立可迁移的方法框架和稳定交付能力。 技术栈与学习内容 学习内容通常覆盖该方向的关键概念、方法与工具链,并通过练习或作业落实到具体场景。常见会使用 Python、R、MATLAB、C/C++ 或课程指定软件(以官方课纲为准)。课程强调的不只是“得到答案”,还包括假设条件、步骤完整性、结果解释与复现性。也就是说,你需要同时训练知识准确度、实现质量和表达清晰度。 课程结构 课程一般按周推进,前段搭建概念框架,中段进入题型训练与案例应用,后段做综合整合与评估冲刺。考核常见组合为 Quiz/Lab、作业、报告和期末评估。评分不仅看正确率,也看分析逻辑、书写/代码规范与结论表达。多数同学真正拉开差距的阶段在中后期:是否能持续输出,而不是临近截止日突击。 适合人群 适合希望夯实底层能力、提升问题拆解与建模能力、并改善学术或工程表达的同学。若你计划继续修读高阶课程,或希望在实习与求职中提升“把事情做对并讲清楚”的竞争力,这门课很值得投入。建议每周预留

Syllabus

每周大纲

  1. 1

    Introduction to Software Engineering Processes

    ### 📖 核心知识点:软件工程过程导论 课程开篇介绍软件工程作为工业过程的全景视图。学习 Software Development Life Cycle (SDLC) 的主要模型:Waterfall, V-Model, Iterative, Agile (Scrum/Kanban)。理解为什么软件开发需要系统化的过程管理,分析经典软件失败案例(Ariane 5, Therac-25)的根本原因。 - **核心概念/公式**: SDLC 模型比较、Process vs Project 的区别、Software Crisis 的历史背景、CMMI 成熟度等级概念 ⏰ **本周节奏**: 难度 ⭐⭐ | 预计投入 7h(Lecture 2h + Tutorial 2h + 自学 3h) 🎯 **考试关联**: Final Exam (50%, Hurdle ≥40%) 会考各种 SDLC 模型的对比和适用场景分析。 🧪 **Tutorial/Lab**: 讨论经典软件失败案例,分析过程缺失如何导致系统性故障。 📌 **作业关联**: 理解 SDLC 为后续 User Stories (12%) 和 Use Case Modelling (28%) 作业奠定基础。 ⚠️ **易错点**: 不要把 Agile 和 Waterfall 简单对立,实际项目中常混合使用;SDLC 选择取决于项目特征而非个人偏好。 (数据来源:2025 S1 UQ Course Profile,CSSE3012)

    ContentLecturesonsoftwareengineeringprocessesandprocessactivities
  2. 2

    Requirements Engineering & Elicitation

    ### 📖 核心知识点:需求工程与需求获取 学习 Requirements Engineering 的完整流程:Elicitation (获取) → Analysis (分析) → Specification (规约) → Validation (验证)。掌握常用需求获取技术:Interview, Questionnaire, Workshop, Observation, Document Analysis, Prototyping。 - **核心概念/公式**: Functional vs Non-Functional Requirements、Stakeholder Analysis、Requirements Traceability Matrix ⏰ **本周节奏**: 难度 ⭐⭐⭐ | 预计投入 8h(Lecture 2h + Tutorial 2h + 自学 4h)。Practical 从本周开始。 🎯 **考试关联**: 需求类型分类和获取技术的优缺点对比是必考内容。 🧪 **Tutorial/Lab**: 实践 Interview 和 Workshop 技术,从模拟客户获取系统需求。 📌 **作业关联**: User Stories (12%, Due Week 5) 直接基于本周学习的需求获取方法。 ⚠️ **易错点**: 混淆 Functional 和 Non-Functional Requirements(性能、安全性属于 NFR);需求获取时过早进入设计阶段而忽略了真正的用户需要。 (数据来源:2025 S1 UQ Course Profile,CSSE3012)

    ContentLecturesonsoftwareengineeringprocessesandprocessactivities
  3. 3

    User Stories & Agile Requirements

    ### 📖 核心知识点:用户故事与敏捷需求 深入学习 User Story 的编写方法:"As a [role], I want [feature], so that [benefit]"。掌握 INVEST 原则 (Independent, Negotiable, Valuable, Estimable, Small, Testable)。学习 Acceptance Criteria 的 Given-When-Then 格式,以及 Story Points 的估算方法(Planning Poker)。 - **核心概念/公式**: INVEST 原则、MoSCoW Prioritization (Must/Should/Could/Won't)、Epic → Feature → User Story 的层次结构 ⏰ **本周节奏**: 难度 ⭐⭐⭐ | 预计投入 8h(Lecture 2h + Tutorial 2h + 自学 4h) 🎯 **考试关联**: User Story 的编写和评价标准是考试常见题型。INVEST 原则的每个维度都可能被考到。 🧪 **Tutorial/Lab**: 团队协作编写一组 User Stories 并用 Planning Poker 估算。互相 Review 对方的 Story 质量。 📌 **作业关联**: User Stories 作业 (12%, Due April 1) 的核心产出,需要产出完整的 Product Backlog。 ⚠️ **易错点**: User Story 写得太大(应该拆分为 Small);Acceptance Criteria 太模糊无法测试;把技术任务误写为 User Story。 (数据来源:2025 S1 UQ Course Profile,CSSE3012)

    ContentLecturesonsoftwareengineeringprocessesandprocessactivities
  4. 4

    Object-Oriented Analysis & UML

    ### 📖 核心知识点:面向对象分析与UML建模 学习 Object-Oriented Analysis (OOA) 方法论。掌握 UML (Unified Modeling Language) 的核心图表:Use Case Diagram, Class Diagram, Sequence Diagram, Activity Diagram。学习从需求描述中识别 Actor, Use Case, Class, Attribute, Method 的技巧。 - **核心概念/公式**: Use Case 的 Include/Extend 关系、Class Diagram 的 Association/Aggregation/Composition/Inheritance、Sequence Diagram 的消息传递 ⏰ **本周节奏**: 难度 ⭐⭐⭐⭐ | 预计投入 9h(Lecture 2h + Tutorial 2h + 自学 5h) 🎯 **考试关联**: UML 图的绘制和阅读是 Final Exam 的高频考点,通常占 15-20 分。 🧪 **Tutorial/Lab**: 为给定系统绘制 Use Case Diagram 和初步 Class Diagram,练习从文本需求中提取 UML 元素。 📌 **作业关联**: Use Case Modelling (28%, Due May 27, Hurdle) 从本周开始准备。 ⚠️ **易错点**: Use Case 和功能需求不是一回事(UC 描述用户与系统的交互场景);Class Diagram 中 Aggregation 和 Composition 的区别(Composition 有生命周期依赖);箭头方向画反。 (数据来源:2025 S1 UQ Course Profile,CSSE3012)

    ContentLecturesonsoftwareengineeringprocessesandprocessactivities
  5. 5

    Software Requirements Specification (SRS)

    ### 📖 核心知识点:软件需求规约 学习如何编写完整的 Software Requirements Specification (SRS) 文档。掌握 IEEE 830 标准的 SRS 模板结构。学习需求的质量属性:Completeness, Consistency, Unambiguity, Verifiability, Traceability。 - **核心概念/公式**: IEEE 830 SRS 模板、Requirements Traceability Matrix (RTM)、Formal vs Semi-formal vs Informal Specification ⏰ **本周节奏**: 难度 ⭐⭐⭐ | 预计投入 8h(Lecture 2h + Tutorial 2h + 自学 4h) 🎯 **考试关联**: SRS 文档的质量评价标准和需求属性分析是常见考题。 🧪 **Tutorial/Lab**: 评审并改进一份有缺陷的 SRS 文档,识别不完整、不一致、模糊的需求。 📌 **作业关联**: User Stories 作业 (12%) 本周截止提交 (April 1)。 ⚠️ **易错点**: SRS 中混入设计决策(should describe WHAT not HOW);需求编号跳号或重复;Traceability Matrix 中遗漏了 NFR 的追踪。 (数据来源:2025 S1 UQ Course Profile,CSSE3012)

    ContentLecturesonsoftwareengineeringprocessesandprocessactivities
  6. 6

    Prototyping & Design Patterns

    ### 📖 核心知识点:原型开发与设计模式 学习 Prototyping 方法:Throwaway (Rapid) Prototyping vs Evolutionary Prototyping 的区别和适用场景。了解常用 Software Design Patterns:Singleton, Observer, Strategy, Factory Method, MVC (Model-View-Controller)。 - **核心概念/公式**: Low-Fidelity vs High-Fidelity Prototype、GoF 设计模式分类(Creational/Structural/Behavioral)、MVC 架构的职责分离 ⏰ **本周节奏**: 难度 ⭐⭐⭐ | 预计投入 8h(Lecture 2h + Tutorial 2h + 自学 4h) 🎯 **考试关联**: Design Pattern 的识别和应用场景分析是考试常考内容。 🧪 **Tutorial/Lab**: 为项目构建 Low-Fidelity Prototype (线框图/纸上原型),讨论 Design Pattern 在项目中的应用。 📌 **作业关联**: Use Case Modelling 作业需要在设计阶段运用这些方法。 ⚠️ **易错点**: 把 Throwaway Prototype 当成最终产品继续开发;过度使用 Design Pattern 导致 Over-Engineering;MVC 的 Controller 承担过多逻辑变成 Fat Controller。 (数据来源:2025 S1 UQ Course Profile,CSSE3012)

    ContentLecturesonsoftwareengineeringprocessesandprocessactivities
  7. 7

    Verification & Validation (V&V)

    ### 📖 核心知识点:验证与确认 学习 Verification ("Are we building the product right?") 和 Validation ("Are we building the right product?") 的区别。掌握 Review 技术:Walkthrough, Inspection, Peer Review。学习 Testing 的基本概念:Unit Test, Integration Test, System Test, Acceptance Test 的四层测试金字塔。 - **核心概念/公式**: V&V 区别、Testing Pyramid (Unit→Integration→System→Acceptance)、Code Review Checklist、Defect Density 指标 ⏰ **本周节奏**: 难度 ⭐⭐⭐ | 预计投入 8h(Lecture 2h + Tutorial 2h + 自学 4h) 🎯 **考试关联**: V&V 的概念区分和测试层次结构是 Final Exam 的必考知识点。 🧪 **Tutorial/Lab**: 进行 Code Review 实践,使用 Checklist 对同学代码进行 Inspection。 📌 **作业关联**: Research Presentation (10%, Due April 29, Hurdle) 可能涉及 V&V 相关主题。 ⚠️ **易错点**: Verification 和 Validation 的方向经常搞反(Verification 对标 Spec,Validation 对标用户需求);Unit Test 和 Integration Test 的边界划分不清晰。 (数据来源:2025 S1 UQ Course Profile,CSSE3012)

    ContentLecturesonsoftwareengineeringprocessesandprocessactivities
  8. 8

    Software Testing Strategies

    ### 📖 核心知识点:软件测试策略 深入学习测试方法论:Black-Box Testing (Equivalence Partitioning, Boundary Value Analysis) 和 White-Box Testing (Statement Coverage, Branch Coverage, Path Coverage)。学习 Test Case 的设计方法和测试文档的编写规范。 - **核心概念/公式**: Equivalence Partitioning 划分规则、Boundary Value Analysis (min-1, min, min+1, max-1, max, max+1)、Coverage 指标层次 Statement < Branch < Path ⏰ **本周节奏**: 难度 ⭐⭐⭐⭐ | 预计投入 9h(Lecture 2h + Tutorial 2h + 自学 5h) 🎯 **考试关联**: 测试策略和 Test Case 设计是 Final Exam 的高分值考点。Boundary Value Analysis 几乎必考。 🧪 **Tutorial/Lab**: 为给定函数设计 Black-Box 和 White-Box Test Cases,计算 Code Coverage 指标。 📌 **作业关联**: Research Presentation (10%) 的可选主题之一。 ⚠️ **易错点**: Boundary Value 时遗漏 off-by-one 的值;100% Statement Coverage 不等于 100% Branch Coverage;把测试数据和预期结果搞混。 (数据来源:2025 S1 UQ Course Profile,CSSE3012)

    ContentLecturesonsoftwareengineeringprocessesandprocessactivities
  9. 9

    Configuration Management & Version Control

    ### 📖 核心知识点:配置管理与版本控制 学习 Software Configuration Management (SCM) 的核心概念:Configuration Item (CI)、Baseline、Change Control。深入学习 Git 的高级用法:Branching Strategy (GitFlow, Trunk-Based)、Merge vs Rebase、Conflict Resolution。了解 CI/CD (Continuous Integration/Continuous Delivery) 的基本原理。 - **核心概念/公式**: GitFlow 的 Branch 结构 (main/develop/feature/release/hotfix)、Semantic Versioning (MAJOR.MINOR.PATCH)、CI/CD Pipeline 的阶段 ⏰ **本周节奏**: 难度 ⭐⭐⭐ | 预计投入 8h(Lecture 2h + Tutorial 2h + 自学 4h) 🎯 **考试关联**: SCM 概念和 Branching Strategy 的选择理由是常见考题。 🧪 **Tutorial/Lab**: 实践 GitFlow Branching Strategy,模拟多人协作中的 Merge Conflict 解决。 📌 **作业关联**: Use Case Modelling (28%) 团队作业需要良好的版本控制协作。 ⚠️ **易错点**: Merge 和 Rebase 的选择(公共分支不要 Rebase);Semantic Versioning 的 Breaking Change 应该升 MAJOR 而非 MINOR;.gitignore 配置遗漏导致敏感文件提交。 (数据来源:2025 S1 UQ Course Profile,CSSE3012)

    ContentLecturesonsoftwareengineeringprocessesandprocessactivities
  10. 10

    Software Quality & Process Standards

    ### 📖 核心知识点:软件质量与过程标准 学习软件质量的定义和度量方法。掌握 ISO 9126/25010 软件质量模型的六大特性(Functionality, Reliability, Usability, Efficiency, Maintainability, Portability)。学习 CMMI (Capability Maturity Model Integration) 的五个成熟度等级和 ISO 9001 质量管理体系。 - **核心概念/公式**: ISO 25010 质量模型的 8 个特性、CMMI Level 1-5 (Initial→Managed→Defined→Quantitatively Managed→Optimizing)、Technical Debt 概念 ⏰ **本周节奏**: 难度 ⭐⭐⭐ | 预计投入 8h(Lecture 2h + Tutorial 2h + 自学 4h) 🎯 **考试关联**: CMMI 等级描述和 ISO 质量模型的应用是 Final Exam 考点。 🧪 **Tutorial/Lab**: 使用 ISO 25010 质量模型评估一个真实软件产品的质量特性。 📌 **作业关联**: Research Presentation (10%, Due April 29) 截止提交。 ⚠️ **易错点**: CMMI 等级之间的关键差异容易混淆(特别是 Level 3 和 Level 4);质量模型的子特性(如 Security 是 Functionality 下还是独立特性?ISO 25010 中是独立的)。 (数据来源:2025 S1 UQ Course Profile,CSSE3012)

    ContentLecturesonsoftwareengineeringprocessesandprocessactivities
  11. 11

    Software Maintenance & Evolution

    ### 📖 核心知识点:软件维护与演化 学习软件维护的四种类型:Corrective (修复缺陷)、Adaptive (适应环境变化)、Perfective (功能增强)、Preventive (预防性维护)。理解 Lehman's Laws of Software Evolution。学习 Refactoring 技术和 Code Smell 的识别。 - **核心概念/公式**: 四种维护类型的占比(Perfective ~50%, Corrective ~20%, Adaptive ~25%, Preventive ~5%)、Lehman's Laws、常见 Code Smells (Long Method, God Class, Shotgun Surgery) ⏰ **本周节奏**: 难度 ⭐⭐⭐ | 预计投入 8h(Lecture 2h + Tutorial 2h + 自学 4h) 🎯 **考试关联**: 维护类型分类和 Lehman's Laws 是常见考题。 🧪 **Tutorial/Lab**: 分析遗留代码中的 Code Smell 并提出 Refactoring 方案。 📌 **作业关联**: Use Case Modelling (28%, Due May 27, Hurdle) 进入最终冲刺阶段。 ⚠️ **易错点**: 四种维护类型的边界有时模糊(增加新功能同时修改接口算 Perfective 还是 Adaptive?看主要目的);Refactoring 时引入新 Bug 是常见问题。 (数据来源:2025 S1 UQ Course Profile,CSSE3012)

    ContentLecturesonsoftwareengineeringprocessesandprocessactivities
  12. 12

    Process Improvement & Course Review

    ### 📖 核心知识点:过程改进与课程总复习 学习 Software Process Improvement (SPI) 的方法论:IDEAL Model (Initiating→Diagnosing→Establishing→Acting→Learning)、GQM (Goal-Question-Metric) 度量方法。课程整体回顾,串联从需求到维护的完整软件工程生命周期。 - **核心概念/公式**: IDEAL Model 五阶段、GQM 的三层结构、Metrics-based Process Improvement、Agile Retrospective 技术 ⏰ **本周节奏**: 难度 ⭐⭐⭐ | 预计投入 10h(Lecture 2h + Tutorial 2h + 自学 6h)📝 复习周 🎯 **考试关联**: Final Exam (50%, Hurdle ≥35%) 覆盖全部 12 周内容。重点复习 SDLC 模型对比、UML 图绘制、测试策略、质量标准。禁止使用 Generative AI。 🧪 **Tutorial/Lab**: 最后一次 Tutorial,团队完成 Use Case Modelling 作业的最终整合与提交准备。 📌 **作业关联**: Use Case Modelling (28%, Due May 27, Hurdle ≥35%) 即将截止。 ⚠️ **易错点**: Final Exam 涵盖面很广,不能只复习后半学期内容;UML 图的画法细节(如 Use Case 的 Include 用虚线箭头指向被包含的 UC)在考试中很容易失分。 (数据来源:2025 S1 UQ Course Profile,CSSE3012)

    ContentLecturesonsoftwareengineeringprocessesandprocessactivities

Assessment

考核结构

Lab / Quiz

实验或阶段测验。

20%

Assignment 1

中期作业,考察分析与实现能力。

30%

Assignment 2 / Project

综合项目作业,强调方案落地。

30%

Final Presentation

期末综合评估。

20%

Assignments

作业详情

Assignment 1: Core Analysis

CSSE3012 The Software Process 的核心分析与验证任务。

要求:提交分析报告、实验结果与关键图表/代码。

⏱ 预计 20 小时

Assignment 2: Integrated Project

完成端到端项目或专题研究任务。

要求:包含项目成果、展示材料与复盘。

⏱ 预计 28 小时

From Seniors

学长留下的

基础信息谁都查得到,真正值钱的是过来人的经验。

学姐说

比你早一年的学长留下的真实经验 —— ChatGPT 给不了。

这门课还没有学长经验,你可以是第一个 —— 注册后在课内分享。

往年考点 / 踩坑

这门课暂无往年考点记录。

毕业生去向(整体)

下面是匠人学院毕业生整体去过的公司分布(来自脱敏校友证言)。这是全平台的总体去向,不代表选这门课的人一定去这些公司。

统计自 313 份脱敏校友证言

Deloitte

6 位校友

岗位:Graduate Program · Graduate Consulting · Platform Engineer · Web developer · Platform engineer

Zerologix

4 位校友

岗位:Frontend Dev · junior frontend developer · Front-end Developer · Full Stack Developer

Servian

4 位校友

岗位:Full-stack Developer · Data Engineer · Consultant

关于这块数据,我们说实话

雇主墙来自脱敏毕业生证言(testimonials)的整体分布,无法关联到具体学员或其所选课程;仅作为毕业生去向的总体社会证明展示。

我们没有"某位学长选了这门课、后来进了哪家公司"这种可查询的个人去向档案 —— 校友证言是脱敏的,无法关联到具体的人或他选过的课。所以这里只给整体分布,不给个人路径,不编。