一章节软件工程概论

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.3 软件生存周期(1)
一.软件生存周期的概念 1.在软件项目开发过程中一般要面临如下的问题: (1) 提出问题? (2) 有无解决问题的办法? (3) 达到的标准? (4) 问题如何解决? (5) 解决问题的具体方法? (6) 如何实现? (7) 产品的检验? (8) 产品的使用和维护等。 2.软件生存周期:从软件定义、开发、使用、维护到淘汰的全过 程。
确和正确的要求往往是不实际的。
7
1.4 软件开发的方法和技术(2)
二.渐增型 1.渐增型方法是从问题的部分需求出发,先建立一个不完全的系 统,通过测试运行该系统取得经验和信息反馈,加深对软件需 求的理解,进一步使系统扩充和完善。如此反复,直至软件人 员和用户对所设计完成的软件系统满意为止。 2.在渐增型开发下的软件是随软件开发的过程而逐渐形成的。 3.渐增型开发方法适合于知识型软件的开发,设计系统时对用户 需求的认识开始不是很清楚的,需要在开发过程中不断认识、 不断获得新的知识去丰富和完善系统。多数研究性质的试验软 件,一般采用此方法。 开发过程图解如下所示:
具” 等。
五.软件工程环境 方法与工具的结合,加上配套的软、硬件支持称为软件工程 环境。
它能支持开发者按照软件工程的方法,全面完成生存周期中的各项任 务。
如UNIX环境、Ada环境以及各种工作站。 六.软件工程管理
1.按照进度及预算完成软件计划,实现预期的经济和社会效益。 17 2.软件管理可以借助计算机来实现。
开发阶段流程图
定义软件结构 与数据结构, 确定模块功能、 调用关系接口
评审
修改
接受
确定每个 模块算法
编写程序
修改 静态检查
通过 单元测试, 集成测试, 验收测试。
源程序 清单
测试计划 测试结果
评审
修改
进入运行维护
接受
6
1.4 软件开发的方法和技术(1)
软件开发采用的主要方法有瀑布型、渐增型和变换型三种形式。 一.瀑布型
理解问题
系统目标与范围说明书
可行性研究 理解工作范围
项目计划任务书
需求分析
定义用户要求
需求规格说明书
概要设计
建立软件结构
概要设计说明书
详细设计
各模块的功能实现 程序规格说明书
编码
编写程序
程序清单
测试
发现和排除错误
软件产品
维护
运行和管理
改建的软件产品
4
1.3 软件生存周期(5)
定义阶段流程图
软件项目提出
14
1.5 软件工程学(2)
二.软件工程学所包含的内容 软件开发技术
软件开发方法学 软件工具
软件工程学 软件管理学
软件工程环境 软件工程管理
软件经济学
15
1.5 软件工程学(3)
三.软件开发方法学的形成 无统一的个人活动方法
采用结构化的方法编写程序 “结构分析”与”结构化设计”等软件开发技术 1.各种方法的具体内容虽然各有不同,但都遵循某些
三.变换型 1.从软件需求的形式化规格说明出发,经过一系列的程序变 换,得到最终的程序系统。 2.该方法必须有严格的数学理论和形式化技术的支持,目前 尚处于研究和实验阶段。
问题描述
开发过程图解
软件需求 分析(渐增)
软件设计和



编码(渐增)


变换
变换
变换
13
1.5 软件工程学(1)
一.软件工程 软件工程是指导计算机软件开发和维护的工程学科。 1.它采用工程的概念、原理、技术和方法来开发和维 护软件; 2.它将管理技术与当前经过时间考验的而证明是正确 的技术方法结合起来; 3.它强调使用生存周期方法学和结构分析和结构技术。 4.经过人们长期的努力和探索,围绕着实现软件优质 高产这个目标,从技术到管理两个方面做了大量的 努力,逐渐形成了“软件工程学”这一新的学科。
2
1.3 软件生存周期(3)
定义阶段 开发阶段 维护阶段
问题定义
软件生存周期模型
附:一台机器的生存周期
需求分析
分析需求
产品规格
可行性研究
概要设计
设计
设计图纸
详细设计
制造
机器
编码
测试
使用手册 维护手册
测试
运行维护
运行维护 3
1.3 软件生存周期(4)
软件生存周期各个阶段文档
阶段
基本任务
工作结果
问题定义
18
共同或类似的原则,都对软件开发步骤和文档格式 提出了规范化的要求。 2.软件生产进入了有章可寻的、向结构化和标准化迈 进的“工程化”阶段。
16
1.5 软件工程学(4)
四.软件工具 1.软件工具:帮助开发软件的软件。 2.编译阶段中的编译程序、编辑程序、连结程序、操作系统都属于软 件工具。 3.分析阶段、设计阶段和测试阶段中相对应的“工具箱”或“集成工
1

1.3 软件生存周期(2)
二.划分软件生存周期阶段的原则 1.软件生存周期每一个阶段的任务尽可能独立。 2.同一阶段内的任务性质尽可能相同。 3.软件每一个阶段任务的开始和结束有严格的标准。
三.软件生存周期阶段的划分 1.定义阶段:包括问题定义、可行性研究、概要需求 分析。 2.开发阶段:包括总体设计、详细设计、编码、软件 测试。 3.软件维护阶段:运行维护。
1.按照软件生存周期的划分,明确规定每一个阶段的任务。 2.该方法适用于软件需求比较明确、开发技术比较成熟、工程管
理比较严格的情况。 3.该方法的特点
(1)各个阶段的顺序性和依赖性; (2)划分逻辑设计与物理设计,尽可能推迟程序的物理实现; (3)每个阶段必须完成规定的文档,通过复审及早发现问题,
及早解决。 4.开发阶段划分与开发过程如前面软件生存周期所示。 5.问题:要求用户及软件分析员在开始对软件产品提出完全、精
10
1.4 软件开发的方法和技术(5)
原型化开发过程
需求分析
原型开发
用户反馈
原型评价 最终系统设计
最终系统实现
11
1.4 软件开发的方法和技术(6)
MIS原型开发过程图解
系统需求分析、初步设计
确定系统模型
利用快速生成工具实现系统模型
满意否?
不满意
修改设计
满意
系统转换、维护与评价
12
1.4 软件开发的方法和技术(7)
第一章 习 题
1.什么是软件危机? 2. 为什么会产生软件危机? 3.怎样克服软件危机? 4.构成软件项目的最终产品? 5.什么是软件生存周期? 6.软件生存周期为什么划分成阶段? 7.应该怎样来划分阶段? 8.软件开发模型有几种?它们的开发方法有何特点? 9.什么是软件工程? 10.什么是软件工程环境?
确定工作范围、资源 需求和投资成本; 可行性分析; 制定开发进度表。
修改
评审
未审批
通过
确定功能、性能要求; 制定有效性验收标准; 编写初步用户手册。
软件计划
软件项目“搁浅” 软件计划 规格说明
修改
技术评审 可接收
进入开发阶段
5
1.3 软件生存周期(6)
软件结构 图与模块 功能说明
详细设计 描述
确定的软件需求
8
1.4 软件开发的方法和技术(3)
问题描述
渐增型开发过程图解
软件需求 分析(渐增)
软件设计和 编码(渐增)
软件运行 和测试
NO 满意否? YES
软件交付使用
9
1.4 软件开发的方法和技术(4)
4.渐增型—快速的原型化方法 (1)思想:首先建立一个能够反映用户需求的原型,让用户实际了解未 来系统的概貌,确认需要和改建的功能,然后将原型系统反复改建, 最终建立完全符合用户要求的新系统。 (2)方法:原型系统仅包括未来系统的主要功能,以及系统的重要接口; 尽量使用能缩短开发周期饿语言和工具;把原型系统作为基础,通 过补充与修改获得最终的实际系统。 (3)建立原型的过程是帮助定义软件需求的一种手段。 (4)采用原型化技术需处理好以下几个方面的问题: A.功能选择:部分功能,需求可以模拟实现; B.构造原型:着眼于预期评估,一般采用高级语言实现; C.评价与确认:通过运行原型,对软件规格说明书进行评价与确认. D.进一步使用:根据原型实现的特定和环境,可以把原型作为试验的 工具,用完弃之;或使原型全部或部分成为最终系统的组成部分.
相关文档
最新文档