对软件工程的简要认识

实验楼网站上的实验报告:
实验1:编写一个hello world小程序
 链接: https://www.shiyanlou.com/courses/reports/1244052
实验2:命令行菜单小程序V1.0
 链接:https://www.shiyanlou.com/courses/reports/1244691
实验3:内部模块化的命令行菜单小程序V2.0
 链接:https://www.shiyanlou.com/courses/reports/1245103
实验4:用可重入的链表模块来实现命令行菜单小程序V2.5
 链接:https://www.shiyanlou.com/courses/reports/1246261
实验5:用callback增强链表模块来实现命令行菜单小程序V2.8
 链接:https://www.shiyanlou.com/courses/reports/1246576
实验7:将menu设计为可重用的子系统
 链接:https://www.shiyanlou.com/courses/reports/1247633
软件工程(C编码实践篇)》MOOC课程
  链接:http://mooc.study.163.com/course/USTC-1000002006

   软件工程是指用工程化的方式来管理软件项目,其中包含了可行性分析阶段、需求分析阶段、规格说明阶段、概要设计和详细设计阶段、还包括编码阶段、测试阶段以及对系统的维护阶段。每个阶段的侧重点不同,但对于每个大型软件项目来说,这些阶段都是必不可少的。
  可行性分析主要是从技术、工程、经济、法律、风险等方面对软件项目进行管理决策,以决定是否可以进行软件项目的后续工作;需求分析是用户对所希望实现的软件项目所应该具备的功能特征进行描述,对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么,在需求分析阶段,可以通过多种方式建立系统的模型,比如用例图、类图等,可以采取多种方式以获取软件项目需求,比如开调查会、询问专家等方式;规格说明阶段主要是为满足用户需求而提供的解决方案,规定了解系统的行为特征,以确定所获取的需求是否能够满足用户的需要;
  概要设计的主要任务是根据需求分析得到的系统扩展用例图建立目标系统的逻辑模型,其具体任务是将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等;详细设计则是软件项目的具体实现阶段,是对概要设计阶段得到的逻辑模型进行细化,通常采用流程图、伪代码等方式来描述软件项目;
  编码阶段是软件工程的实现阶段,根据详细设计阶段得到的流程图、伪代码进行编程,以真正实现软件项目的具体功能,现在的编程语言有很多,比较受欢迎的是java、php、javascript、c/c++等,每种语言都有各自的优缺点,也有各自适合的应用方面;测试阶段是对编码实现后的软件项目进行检测,以尽可能多的找出编码实现后的软件所潜在的问题和缺陷,测试方式可分为白盒和黑盒测试,也可分为单元测试、集成测试等方式;软件项目的最后阶段同时也是时间最长的阶段是软件的维护阶段,软件维护指根据需求变化或硬件环境的变化对应用程序进行部分或全部的修改。
  软件项目的代码层主要是指软件项目的编码实现阶段,编程人员根据详细分析阶段得到的结果进行编码实现,在这一阶段编程小组需要进行编程分工、选择合适的软件开发工具和开发平台以及选择恰当的软件开发语言,编程人员在编程过程中需要遵循一定的开发规范,比如在软件编码时,需要对代码进行注释,不仅有利于自己对项目的开发实现,有利于软件项目组成员的交流,同时也方便了软件项目的维护人员的后期维护。
  在学习《软件工程(C编码实践篇)》课程中最大的收获是:通过学习该课程,使我对软件工程中的编写代码阶段有了更深入的认识,了解了编码规范的重要性,同时也对Linux环境下编程有了更深的认识。
  学完《软件工程(C编码实践篇)》课程后最大的遗憾是:该课程重点放在了C编码实现阶段,却没有能够对软件工程的其他阶段有比较深入的涉及。

你可能感兴趣的:(软件工程)