201771030125-王英雪 实验一 软件工程准备一<构建之法与博客首秀> 三个问题 学习初感悟
项目 | 内容 |
---|---|
班级博客 | 点我呀! |
作业要求 | 看这里! |
课程学习目标 | 提出三个问题并以写博客的形式记录下来 |
参考文献 | 现代软件工程讲义 |
问题一:软件工程究竟是什么?
- 在现代软件工程讲义一书中给出了以下定义:软件工程是把系统的,有序的,可量化的方法应用到软件的开发,运营,和维护上的过程。软件工程包括下列领域:软件需求分析,软件设计,软件构建,软件测试和软件维护.软件工程和下列的学科相关:计算机科学,计算机工程,管理学,数学,项目管理学,质量管理,软件人体工学,系统工程,工业设计,和用户界面设计.我们在开发运营,维护软件的过程中有很多技术,做法,习惯,和思想体系。软件工程把这些相关的技术和过程统一到一个体系中,叫“软件开发流程”,软件开发流程的目的是为了提高软件开发,运营,维护的效率;以及用户满意度,可靠性,和软件的可维护性。
- 如果说到操作系统自己立马就能反应过来它是用来管理资源提供接口的,但是提起软件工程觉得知道它却又描述不出来,没有一个整体的框架。
问题二:编程能力一般的学生可以学好软件工程吗?
-
IT教育不光是代码! 软件教育不是孤立体,希望在软件教育中把文科的知识联系进来,和设计联系起来; 把软件/IT 行业有趣的发展历史放进来 (讲讲图灵,冯·诺依曼,讲讲Smalltalk, 各种语言的源和流)。培养学生对这个行业的兴趣、热情和敏感。 提倡互动,介绍同学上相关的论坛,网站,开拓视野。
-- 引用自《对大学IT专业教育的反馈》
- 个人体会编程一般就很难学好相关的专业知识。
问题三:我们已经学过JAVA,操作系统,线性代数等课程那么我们如何有效的将软件工程与以前学过的知识联系起来?
- 在邹欣老师的博客里我再次看到了构建管理,源代码管理,软件设计, 软件测试,项目管理是软件工程的核心,对这些概念我们已经有了一定的了解,接下来我们怎么做才能有效利用所学知识。
- 构建:程序,在这里指的是源程序,就是一行一行的代码。仔细看过去,它们的确是建立在数据结构上的一些算法。但是光有代码还是不行的,这些一行一行的代码不会自己运行,得有人编译成机器能懂的目标代码,而编译不仅仅是 cc 和 link 命令,对于一个复杂的软件,我们不但要有合理的软件架构(Software Architecture), 软件设计和实现 (Software Design & Implementation), 我们还要用各种文件来描述各个程序文件之间的依赖关系,编译参数,链接参数,等等。这些都是软件的构建。
- 源代码管理:软件团队的各个人员每天都在不断地修改各种源代码,怎么保证软件在不断的修改中能保证质量,不至于崩溃?有些时候,我们要为某个需求写一些特殊功能,然后不久要把这些功能再合并回主要版本。有些程序还有32位版本,64位版本等这是源代码管理(Source Code Control)的问题