软件工程-主要内容.doc
文本预览下载声明
第一章 软件工程学概述
软件危机
软件危机的介绍
1)软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题。
2)软件危机的两个主要问题:如何开发软件,以满足对软件日益增长的需求;
如何维护数量不断膨胀的已有软件。
3)软件危机的典型表现:
(1) 对软件开发成本和进度的估计常常很不准确。
(2) 用户对“已完成的”软件系统不满意的现象经常发生。
(3) 软件产品的质量往往靠不住。
(4) 软件常常是不可维护的。
(5) 软件通常没有适当的文档资料。
(6) 软件成本在计算机系统总成本中所占的比例逐年上升。
(7) 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
产生软件危机的原因
软件本身特点:
缺乏可见性,在运行之前往往难以衡量,质量也难以评价
不会因为长期使用而用坏,软件维护通常意味着修正或修改原来的设计,较难维护。
规模庞大,需分工合作,如何保证每个人的工作合在一起是极端复杂的问题。
软件开发与维护的方法不正确
产生软件危机的原因可归结为两个重要的方面:软件生产本身存在的复杂性;
软件开发所使用的方法和技术。
软件生命周期:一个软件从定义、开发、使用和维护直到最早被废弃。
软件产品必须由一个完整的配置组成(程序、文档、数据)
消除软件危机的途径
正确认识计算机软件
认识到软件开发是一个协同配合、共同完成的工程项目并吸取经验。
推广使用已总结的开发软件成功的技术和方法
开发使用更好的软件工具
软件工程
软件工程的介绍
软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地、高效的开发出高质量的软件并有效地维护它,这就是软件工程。
本质特性:
软件工程关注于大型程序的构造
软件工程的中心课题是控制复杂性
软件经常变化
开发软件的效率非常重要
和谐地合作是开发软件的关键
软件必须有效地支持它的用户
在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。
软件工程的基本原理
用分阶段的生命周期计划严格管理
坚持进行阶段评审
实行严格的产品控制
采用现代程序设计技术
结果应能清楚地审查
开发小组的人员应该少而精
承认不断改进软件工程实践的必要性
软件工程方法学
在软件生命周期全过程中使用的一整套技术方法的集合称为方法学。
软件工程方法学,三要素:方法、工具和过程。
传统方法学
面向对象方法学
软件生命周期:定义、开发、维护
问题定义
可行性研究
需求分析
总体设计
详细设计
编码和单元测试
综合测试
软件维护
软件过程:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。通常使用生命周期模型简洁的描述软件过程。
瀑布模型
1)各个阶段的顺序性和依赖性;
2)划分逻辑设计与物理设计,尽可能推迟程序的物理实现;
3)每个阶段必须完成规定的文档,对其中问题通过复审及早发现,及早解决。
快速还原模型
增量模型
(1) 从部分需求出发,先建立一个不完全的系统,通过测试运行该系统取得经验和信息反馈,加深对软件需求的理解,进一步使系统扩充和完善。如此反复,直至软件人员和用户对所设计完成的软件系统满意为止。
(2) 在渐增型开发下的软件是随软件开发的过程而逐渐形成的。
(3) 渐增型开发方法适合于知识型软件的开发,设计系统时对用户需求的认识开始不是很清楚的,需要在开发过程中不断认识、不断获得新的知识去丰富和完善系统。多数研究性质的试验软件,一般采用此方法。
螺旋模型
喷泉模型
Rational统一过程
敏捷过程与极限编程
微软过程
第二章 可行性研究
可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
问题定义的任务:将用户提出的要求具体化、定量化;确定研制系统的范围,明确研制的边界。
问题定义阶段的工作:
1) 通过调查研究,了解系统需求;
2) 确定系统的功能需求、性能需求、可靠性需求、安全及保密性、资源、开发费用及开发进度等的需求;
3) 问题定义阶段的产品--系统目标与范围说明书。
可行性研究的任务
技术可行性
经济可行性
操作可行性
可行性研究的过程
复查系统规模和目标
研究目前正在使用的系统
导出新系统的高层逻辑模型
进一步定义问题
导出和评价供选择的解法
推荐行动方针
草拟开发计划
书写文档提交审查
系统流程图
系统流程图是描述物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式描绘系统里的每个部件(程序、文件、数据库、表格、人工过程等)。系统流程图表达的是部件的信息流程,而不表示对信息进行加工处理的控制过程。
数据流图
DFD是一种图形化技术,它描绘信息流
显示全部