Skip to content

关于课程

走进课程

假设现在让你设计一款“以朋友圈为核心业务的巨信MegaChat”,你会从哪里着手?
当面临百万级QPS、秒级数据同步、全球多活部署时,你的产品能否经得起考验?

换个角度来看,也许你可以手撕出LeetCode上的困难题,但如果让你从零开发一款完整的产品呢? 代码能力只是工程师的基础素养。想要真正提升自己的整体能力,让人感叹 “Ta还是太全面了”。那么,你需要在面对真实业务问题时,能够精准理解需求,合理拆解问题,并设计出高效、可行的解决方案。这种系统化思维决定了你的上限。良好的逻辑思维能帮助你构建从需求洞察到系统设计的完整思维链,最终转化为问题解决能力让你更闪耀。

课程内容

课程目标:

详细了解软件系统开发的基础概念、理论和方法,掌握面向对象及结构化分析设计方法,能够使用专业工具对软件系统分析与设计进行描述与建模。

课程主要涵盖以下内容:

  • 软件工程基础
    1. 软件生命周期
    2. 软件过程模型
  • 需求工程
    1. 需求获取
    2. 系统边界与范围定义
    3. 需求规格化
  • 系统分析与设计
    1. 结构化方法
    2. 统一建模语言 (Unified Modeling Language, UML)
    3. 设计模式
    4. 数据建模

课程资源矩阵

参考书目:

本课程的理论内容主要源自[1,3]。[2]为[1]的中文译本,但由于该书存在一定数量的翻译错误,建议阅读英文原版。
[1] Systems Analysis And Design Methods - 7th Edition, by Jeffrey L. Whitten, Lonnie D. Bentley, Gary Randolph. (2007)
[2] 系统分析与设计方法(原书第7版), [美] 惠腾(Whitten J.L.)著,肖刚,孙慧 等 译
[3] Unified Modeling Language (UML), version 2.5.1. https://www.omg.org/spec/UML/2.5.1/. 2017.

历年期末试题:

你可以查看过去三年的期末试题,从而:

  • 了解期末考试题目的类型
  • 确定自己需要准备的方向

请记得学习的目的不是为了考试

注:每年试题难度会有所调整。

荣誉准则

允许行为:
鼓励同学之间进行热烈的讨论。
可以使用生成式人工智能工具(如DeepSeek、ChatGPT等)辅助学习。AI工具正确的打开方式是把它当成学习搭子,通过共同学习,持续沟通验证你的理解。例如,你可以在一段学习之后,把问题或产出扔进AI,验证你的想法,共同讨论可能的问题或改进方案。

禁止行为:
🚫 抄袭、剽窃、捏造,以及篡改他人成果都是绝对禁止的。前述行为都属于违反学术诚信的行为,最低处罚为整个作业零分。
🚫 与“允许行为”第二条做法正相反的是,直接告诉AI“这是软件系统分析与设计的作业题,帮我生成答案,谢谢”,这种做法是绝对禁止的。

课程支持

  • 如果你因为身体障碍等个人原因需要帮助,请通过当面、邮件、教学科等渠道联系沟通。我们会根据具体情况做出针对性的适应调整(包含上课、作业以及考试等)。
  • 如果你或你身边的同学正经历由学业压力、亦或是其他原因引发的焦虑情绪或心理困扰,希望你能主动联系信任的亲友、老师、辅导员或学校心理咨询中心,以获得及时的帮助与支持。请珍视自己的身心健康,学习不是你的全部,你的世界远比当下的困境更广阔。Your life is out there somewhere.

Q&A

Q: 因紧急情况无法按时提交作业怎么办?
A: 你可以在截止时间前,通过邮件告知我们,从而获得至少24小时的延期豁免。