软件工程学习笔记之基本理念
2016-03-03 21:03
197 查看
21:06:12
[b] 软件工程指的是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。[/b]
这里有两个过程,首先是开发,其次是维护。这样说主要是因为软件工程是随着各种问题的出现而发展来的。最早期软件的规模比较小,编写者和使用者往往是同一个人。这种个体化的环境使得软件的设计是在人的脑袋中进行的一个隐含的过程,除了程序清单以外,没有其他文档资料留下来。60年代中期到70年代中期是第二个时期,社会进步,软件的需求大大增加,先前个体化的软件不能满足日益增长的客户的需求,况且个体化的软件不便于软件的维护,“软件危机”出现了。1968年北大西洋公约组织的计算机科学家在联邦德国召开国际会议,讨论解决软件危机问题,在这次会议上正式提出了并使用了“软件工程”这个名称,一门新兴的工程学科就此诞生了。
一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,这就如同一个人要经过胎儿、儿童、中年、老年直到最终死亡的漫长时期一样。通常把软件经历的这个漫长的时期称为生命周期。一般来说,软件生命周期由软件定义、软件开发和软件维护三个时期完成。
(1)软件定义。此阶段过程为问题定义、可行性研究和需求分析。问题是什么?关于规模和目标的报告书。有可行的解吗?系统的高程逻辑模型,数据流图,成本/效益分析。系统碧玺做什么?系统的逻辑模型,数据流图,数据字典,算法描述。
(2)软件开发。总体设计、详细涉设计、编码、单元测试和综合测试。概括的说,应该如何解决这个问题?可能的解法:系统流程图,成本/效益分析,推荐的系统结构:层次图或结构图。怎么具体的实现这个系统?编码规格说明:HIPO和PDL。正确的程模块:源程序清单、单元测试方案和结果。符合要求的软件:综合测试方案和结果,完整一致的软件配置。
(3)软件维护。持久的满足用户需求的软件?完整准确的维护记录。
软件工程有7条基本原理。
(1)用分阶段的生命周期计划严格管理。
往往不成功的软件大多数都是因为计划不周造成的。
不同层次的管理员人员都必须按照极化各尽其职的管理软件开发和维护工作,决不能受客户或上级人员的影响而擅自背离预定计划。
(2)坚持进行阶段审评。
经过专家统计,软件的错误大部分是在编码之前造成的,设计错误占63%,编码错误占27%。因此软件的质量保证不能在编码结束后才去确认,要在每个阶段确定无误后,才能继续往下。
(3)实行严格的产品控制。
不能随便更改需求。
(4)采用现代程序设计技术。
意思就是要与时俱进,吸取先进的计算机语言的优点。
(5)结果应该能清楚的审查。
(6)开发小组的人员应该少而精。
意思就是要有水平,素质好的人。不是那种白养人的事业单位。素质好的人员的开发效率比素质低的人员开发效率可能高出几倍甚至几十倍。况且错误是很少的。人多,交流就是一个问题,增加通信开销,说白了,同样的工资,为啥不要少点人呢。当人数为N时,通信路径就有N(N-1)/2条。
(7)承认不断改进软件工程实践的必要性。
总结:软件的生命周期有具体的阶段,每个阶段完成一些任务,交出最终的软件配置的一个或者几个成分(文档或者程序);在完成每个阶段的任务时采用行之有效的结构分析和结构设计和适当的辅助工具;在每个阶段结束时都进行严格的技术审查和管理复审。
[b] 软件工程指的是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。[/b]
这里有两个过程,首先是开发,其次是维护。这样说主要是因为软件工程是随着各种问题的出现而发展来的。最早期软件的规模比较小,编写者和使用者往往是同一个人。这种个体化的环境使得软件的设计是在人的脑袋中进行的一个隐含的过程,除了程序清单以外,没有其他文档资料留下来。60年代中期到70年代中期是第二个时期,社会进步,软件的需求大大增加,先前个体化的软件不能满足日益增长的客户的需求,况且个体化的软件不便于软件的维护,“软件危机”出现了。1968年北大西洋公约组织的计算机科学家在联邦德国召开国际会议,讨论解决软件危机问题,在这次会议上正式提出了并使用了“软件工程”这个名称,一门新兴的工程学科就此诞生了。
一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,这就如同一个人要经过胎儿、儿童、中年、老年直到最终死亡的漫长时期一样。通常把软件经历的这个漫长的时期称为生命周期。一般来说,软件生命周期由软件定义、软件开发和软件维护三个时期完成。
(1)软件定义。此阶段过程为问题定义、可行性研究和需求分析。问题是什么?关于规模和目标的报告书。有可行的解吗?系统的高程逻辑模型,数据流图,成本/效益分析。系统碧玺做什么?系统的逻辑模型,数据流图,数据字典,算法描述。
(2)软件开发。总体设计、详细涉设计、编码、单元测试和综合测试。概括的说,应该如何解决这个问题?可能的解法:系统流程图,成本/效益分析,推荐的系统结构:层次图或结构图。怎么具体的实现这个系统?编码规格说明:HIPO和PDL。正确的程模块:源程序清单、单元测试方案和结果。符合要求的软件:综合测试方案和结果,完整一致的软件配置。
(3)软件维护。持久的满足用户需求的软件?完整准确的维护记录。
软件工程有7条基本原理。
(1)用分阶段的生命周期计划严格管理。
往往不成功的软件大多数都是因为计划不周造成的。
不同层次的管理员人员都必须按照极化各尽其职的管理软件开发和维护工作,决不能受客户或上级人员的影响而擅自背离预定计划。
(2)坚持进行阶段审评。
经过专家统计,软件的错误大部分是在编码之前造成的,设计错误占63%,编码错误占27%。因此软件的质量保证不能在编码结束后才去确认,要在每个阶段确定无误后,才能继续往下。
(3)实行严格的产品控制。
不能随便更改需求。
(4)采用现代程序设计技术。
意思就是要与时俱进,吸取先进的计算机语言的优点。
(5)结果应该能清楚的审查。
(6)开发小组的人员应该少而精。
意思就是要有水平,素质好的人。不是那种白养人的事业单位。素质好的人员的开发效率比素质低的人员开发效率可能高出几倍甚至几十倍。况且错误是很少的。人多,交流就是一个问题,增加通信开销,说白了,同样的工资,为啥不要少点人呢。当人数为N时,通信路径就有N(N-1)/2条。
(7)承认不断改进软件工程实践的必要性。
总结:软件的生命周期有具体的阶段,每个阶段完成一些任务,交出最终的软件配置的一个或者几个成分(文档或者程序);在完成每个阶段的任务时采用行之有效的结构分析和结构设计和适当的辅助工具;在每个阶段结束时都进行严格的技术审查和管理复审。
相关文章推荐
- x-Utils在android5.0下报错的解决方案
- Android Studio如何取消与SVN的关联
- 数据库中的分组
- 关于Popup的一些技巧
- poj2096概率dp
- Python3解决vs输出中文报错问题
- 多重集组合数 (DP)
- SPRING IN ACTION 第4版笔记-第四章ASPECT-ORIENTED SPRING-009-带参数的ADVICE2
- 蓝桥杯 蚂蚁感冒 不要模拟!
- Codeforces Round #316 (Div.2) C. Replacement
- XTU 1205 Range
- javascript中的prompt()用法
- bzoj 1084: [SCOI2005]最大子矩阵 dp
- rpm方式安装部署gitlab
- iOS中使用正则表达式 RegexKitLite
- showDialog()和onCreateDialog()方法过时,如何创建一个Dialog?
- 构建之法阅读笔记01
- 关于popupwindow无法正常弹出的一些低级错误
- java笔记1
- java DES加密解密