跳转至

Software Methodology (软件方法学)

课程编号:COMP3017J

考核形式:50% 期末考试 + 40% 作业 + 10% 课堂表现 (+ 3% 奖励分)

授课教师:米庆

课程介绍

软件方法学专注于软件系统开发中使用的方法、工具和技术。本课程旨在将学生从程序员(Programmer)培养成工程师(Engineer),掌握专业软件开发的完整流程和最佳实践。

考核结构

📊 成绩构成

  • 期末考试 (50%):理论知识和概念理解
  • 作业 (40%)
  • 项目/研究作业 (20%)
  • 课后作业 (20%)
  • 课堂表现 (10%):出勤和课堂参与
  • 奖励分 (3%):额外加分项目

🚀 项目要求:Android日记应用

设计并实现一个Android日记APP,功能包括: - 记录日常想法、感受和经历 - 数据存储和管理 - 用户界面设计 - 基本的日记管理功能

📚 研究作业替代方案

在CCF推荐的会议/期刊上发表研究论文可获得项目/研究部分满分

核心学习内容

📖 主要知识模块

  • 基础概念:软件工程历史与发展、专业软件开发
  • 软件过程:开发生命周期、过程模型
  • 敏捷开发:现代敏捷方法论和实践
  • 需求工程:需求分析、规格说明
  • 系统建模:UML建模、架构设计
  • 设计与实现:软件架构、编码实践
  • 软件测试:测试方法、质量保证
  • 软件演进:维护、重构、版本控制

🔑 核心概念

  • 软件特性:一致性(Conformity)、不可见性(Invisibility)、复杂性(Complexity)、演化性(Changeability)
  • 软件质量:ISO 9126质量特征模型
  • 职业责任:保密性、胜任力、知识产权、计算机滥用
  • 伦理原则:ACM/IEEE软件工程伦理准则

学习资源

📝 期末复习

🚀 项目案例

未整理 - Projects - Android日记应用

课程作业

历年试卷

暂无资源

💡 学习建议

我的理解这是软件工程的一门专业课,主要是软件开发的范式和一些开发思想等。建议可以看人月神话这本书,经典的软件工程理论都有涉及。

这门课的考试不算难,考试前老师会画重点,可以根据上述期末复习资料中参考。

这门课的分组项目比较.....

分组自行分组,但是要求组内成员需要包含三个班级的同学,一定要提前结组,寻找其他班的成员互相结组,否则容易落单。

最后还需要互评所有组,写互评文档,排出名次。

这门课每年的项目开发内容是变化的,24年时安卓日记APP, 正好和移动计算的技术栈重叠了。但是这门课对技术也不是很关注,比较关注需求,文档,开发流程之类的。

另外,一作CCF可以直接不用做Project。