软件工程这门课怎么学?
从切身经历学
- 开发一个实用的(小)产品,解决实际问题
- 体会软件开发过程的各个阶段
- 学习并运用编程语言,工具,理论,合作技巧来解决问题
- 能总结自己和团队在各个阶段的得失
从间接经验学
- 分析已有项目的得失
从同学那里学
- 三人行,必有我师焉。择其善者而从之,其不善者而改之
- 通过对编程和代码复审,学习别人的长处
- 从团队不同角色那里学习
- 从别的团队那儿学习
什么是软件工程?
软件工程
是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程
软件工程包括下列领域
软件需求分析、软件设计、软件构建、软件测试和软件维护
软件工程和下列的学科相关
计算机科学、计算机工程、管理学、数学、项目管理学、质量管理、软件人体工学、系统工程、工业设计和用户界面设计
软件工程和软件开发流程
人们在开发、运营、维护软件的过程中有很多技术、做法、习惯和思想体系。软件工程所这些相关的技术和过程统一到一个体系中,叫“软件开发流程”。
软件开发流量的目的是为了提高软件开发、运营、维护的效率,并提高软件的质量、用户满意度、可靠性和软件的可维护性
Program = data structure+algorithm(程序=数据结构+算法)
Software = Program+Software Engineering(软件=程序+软件工程)
Software Company=Software + Business Model(软件公司=软件+商业模型)
软件的特性
复杂性、不可见性、易变性、服从性、非连续性