2018-2019-1 20189221 《构建之法》第一周学习总结

2018-2019-1 20189221 《构建之法》第1周学习总结

教材学习内容总结

第 1 章 概论

  • 理论和知识点:
    计算机科学的领域,软件工程与计算机科学的关系,软件的特性,软件工程的定义与组成部分

1.1 软件 = 程序 + 软件工程

  • 程序 = 数据结构 + 算法
  • 简单的应用程序--->满足各种功能的应用软件--->保证服务质量的软件服务
  • 软件工程的要求质量保证、用户体验、国际化和本地化
  • 软件工程的工作有源代码管理、配置管理、软件项目的管理、需求分析、软件测试、程序理解、软件维护/服务维护
  • 软件企业 = 软件 + 商业模式
  • 软件开发的不同阶段
    • 玩具阶段
    • 业余爱好阶段
    • 探索阶段
  • 商业软件vs爱好者写的程序

1.2 软件工程是什么

软件工程是把系统的, 有序的, 可量化的方法应用到软件的开发, 运营, 和维护上的过程。

软件工程包括下列领域: 软件需求分析, 软件设计, 软件构建, 软件测试, 和软件维护.

软件工程和下列的学科相关: 计算机科学, 计算机工程, 管理学, 数学, 项目管理学, 质量管理, 软件人体工学, 系统工程, 工业设计, 和用户界面设计.

1.2.1 软件的特殊性

  • 复杂性
  • 不可见性
  • 易变性
  • 服从性
  • 非连续性

1.2.2 软件工程与计算机科学的关系

计算机科学中偏理论的领域,大多与数学、离散数学、数理逻辑密切相关
计算机科学中偏实践的领域,大多和数据以及其他学科发生关系
软件工程和人的行为、现实社会的需求息息相关
工程师的宗旨是:我构建,故我在
软件项目的特点:

  • Build To Learn
  • Build To Show
  • Build To Serve
  • Build To Win

1.2.2 软件工程与计算机科学的关系
三大类基础知识领域:计算基础、数学基础和工程基础
“没有银弹“,霍夫斯维塔定律,Cocomo模型

\[Person*Mounth=2.4*KLoC^{1.05} \]

1.2.4 软件工程的目标——创造“足够好”的软件

  • 用户满意度
  • 可靠性
  • 软件流程的质量
  • 可维护性

1.3 练习与讨论

  • 自动生成四则运算的小程序

  • 支持分数计算的小程序

教材学习中的问题和解决过程

在看1.2.2 软件工程和计算机科学的关系时不是很能理解两者的区别
之前查看课后的内容和讨论时发现了邹老师博客,阅读了微软学术搜索项目 10个版本的历程,对软件工程在项目中实践有了更深的了解:
项目计划步骤--> 项目的核心价值是什么, 决定不做什么 --> 决定开发周期[计划;实现;测试并上线 ]--> 项目人员--> 联系合作

参考资料

posted @ 2018-10-26 00:03  古厉  阅读(273)  评论(2编辑  收藏  举报