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个版本的历程,对软件工程在项目中实践有了更深的了解:
项目计划步骤--> 项目的核心价值是什么, 决定不做什么 --> 决定开发周期[计划;实现;测试并上线 ]--> 项目人员--> 联系合作