软工的视频看完了,其实内容也忘了大半,不过整体来说看视频的目的个人觉得还是达到了---对软件工程有了较为宏观的认识.
什么是软件工程?个人觉得最重要的是"工程"二字,就跟我们平常说的土木工程是一个道理。个人或者说小农作坊式的软件开发遇到了瓶颈,效率低下不说,提高和维护都很困难,而且要是开发一个大型软件(就像盖一所大房子)没有统一的规范(你说你定义的是窗体我怎么一看倒觉得是文本框呢?)根本没法往下做。软件工程就这样诞生了,于是大家先商量着来一个标准,然后看看这个软件合不合适做(做了有没有肉吃?做了官府会不会找事?我们现在的技术能不能做?),然后跟客户商量着把需求搞一搞,说好了就开始动工了,一边做一边改,或者做完了再改都行,最后改完了找各种行家看看中不中,最后的最后客户微微一笑,OK!走着,哥几个喝酒吃肉去!
下面浅谈个人对软件工程各阶段的认识:
可行性分析:主要是判断讨论这个软件是否应该做:1:经济可行性,2技术可行性.3:组织,社会可行性.工具:系统流程图或结构图.产生可行性研究报告
需求分析: 明确用户对系统的要求.1:环境要求2:性能要求3:功能要求.建立逻辑模型:使用数据流图DFD,数据字典DD.需求规格说明书(SRS),开始写用户手册
概要设计: 把需求分析得到的DFD转换为软件结构和数据结构包括:划分模块,接口,产生程序流程图,用户界面确定产生概要设计说明书
详细设计: 为软件结构图 (SC)中的每一个模块确定采用的算法和模块内数据结构,用某种选定的表达工具给出清晰的描述。使用工具:程序流程图,N-S图 PAD图,伪代码。产生:详细设计说明书
编码:选定语言,把模块描述转换成源代码
测试:为了发现错误而执行程序的过程 .设计测试用例.测试目标:需求分析、概要设计、详细设计以及程序编码等所得到的文档资料,包括需求规格说明、概要设计说明、详细设计规格说明以及源程序编写测试计划,测试分析报告
运行维护:根据需求变化或硬件环境的变化对应用程序进行部分或全部的修改分为:正确性维护,适应性维护,完善性维护,预防性维护。产生:程序维护手册