软件工程概论.ppt
《软件工程概论.ppt》由会员分享,可在线阅读,更多相关《软件工程概论.ppt(72页珍藏版)》请在三一文库上搜索。
1、第1章 软件工程概论,(时间:3次课,6学时),第1章 软件工程概论,教学提示:本章主要介绍软件工程学的基本概念和基本方法。包括软件、软件工程的定义;软件生命周期的概念、内容和原则;软件工程的几个典型的过程模型、软件工程的标准及软件开发文档等内容。学习完这些内容后,读者对软件工程学将会有一个比较全面的了解。 教学目标:掌握软件工程学科的研究内容;了解软件生命周期的工作流程及各个阶段的主要任务;了解各种软件过程模型和特点;了解软件工程标准及软件开发文档,为日后的学习打下良好的基础。,第1章 软件工程概论,1.1 软件综述 1.2 软件危机 1.3 软件工程概念 1.4 软件生命周期 1.5 软件
2、过程模型 1.6 软件工程标准 1.7 软件开发文档 1.8 习题,1.1.1 软件的发展 1.1.2 软件的定义 1.1.3 软件的特点 1.1.4 软件的分类,1.1 软件综述,1.1.1 软件的发展,程序设计阶段 20世纪50年代初期至60年代中期 程序系统阶段 20世纪60年代中期到70年代末期 软件工程阶段 20世纪70年代中期至80年代中期 第四阶段,计算机发展的各个阶段的技术表,1.1.2 软件的定义,(1)在运行中提供所希望的功能和性能的指令集(即程序); (2)使程序能够正确运行的数据结构; (3)描述程序研制过程和方法所用的文档。,1.1.3 软件的特点,(1)软件是一种逻
3、辑实体,而不是具体的物理实体,因而它具有抽象性。 (2)软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发中被创造出来的。 (3)在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题。,1.1.3 软件的特点,(4)软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖。 (5)软件的开发尚未完全摆脱手工的开发方式。 (6)软件的开发费用越来越高。,1.1.4 软件的分类,基于软件功能的划分 系统软件、支撑软件、应用软件 基于软件工作方式的划分 实时处理软件、分时软件、交互式软件、批处理软件,1.1.4 软件的分类,基于软件规模的划分 微型软件、小
4、型软件、中型软件、大型软件、巨大型软件、极大型软件 基于软件失效的影响进行划分 基于软件服务对象的范围进行划分 定制软件 、产品软件,1.2 软件危机,软件危机:软件开发和维护过程中遇到的一系列严重问题。 具体表现:,产品不符合用户的实际需要; 软件开发生产率不高,不能满足客观需要; 软件产品质量差; 对软件开发成本和进度的估计不准确; 可维护性差; 软件的文档资料不完整和不合格; 软件成本逐年上升。,产生软件危机的原因(宏观),(1)缺乏总体考虑,没有软件工程学概念或系统工程思想。-软件 (2)对业务了解支离破碎,需求分析不准。-软件 (3)企业依赖激情指挥,企业管理标准化、规范化、科学化程
5、度不高,导致不能成功地应用 “死板”的软件,它依赖于业务的“科学化”、“条理化”、“程序化” -企业,产生软件危机的原因(宏观),(4)企业信息化程度和计算机应用水平低,导致无法准确描述需求。-企业 (5) 一把手对信息管理的重视程度不够。-企业 (6)缺乏相互沟通,业务描述的详尽程度不能达到具备生活常识的人能够轻易理解。-企业、软件,产生软件危机的原因(微观),(1)软件的规模比较庞大,其开发和维护相当困难; (2)开发人员虽然有经验,但还存在着不少错误观点,没有实行工程化的方法; (3)不能与用户及时沟通,不能了解用户的实际需要; (4)没有统一的软件质量管理规范; (5)不能根据环境的变
6、化而随时对产品进行改正。,1.3 软件工程概念,定义:研究如何应用一些科学理论和工程上的技术来指导软件的开发,用较少的投资获得高质量的软件的一门学科。 基本内容:包括理论、结构、方法、工具、环境与规范等。 目标:以较少的投资获得易维护、易理解、可靠和高效率的软件产品。 原则:即分解、抽象和信息隐蔽、一致性和确定性。 原理:工程化和系统化。,1.3 软件工程概念,软件开发工程化 按近代科学及产业形成的一套工程化方法和思想办事。 a. 首先进行系统调查和系统分析; b. 再进行逻辑设计、物理设计; c. 最后才编制实施; d. 反复测试;,1.3 软件工程概念,e. 试运行后,再投入长期运行; f
7、. 在运行中不断维护、完善。 按工程化方法开发,把手工、个体化的脑力劳动方式转变成集体性的有严格分工的脑力劳动,运用先进的软件开发工具,提高开发效率。,1.3 软件工程概念,软件开发系统化 具体内容: (1)强调全面性:对人、财、物、环境、时间、技术、管理和需求等诸多方面进行可行性论证。 (2)强调整体性:研究分析相互联系、作用、配合、制约,分工协作,遵守规定。 (3)按结构化、层次化去认识与处理复杂的软件。 (4)按动态的、发展变化的观点设计软件,尤其是软件的各个接口。,1.3 软件工程概念,B.W.Boehm软件工程原理 (1)严格按照计划进行管理; (2)坚持进行阶段评审; (3)实行严
8、格的产品控制; (4)采用现代化的程序设计技术; (5)结果要能清晰地审查; (6)开发小组成员的素质要好,数量却不易多; (7)要承认不断改善软件工程实践的必要性。,1.4 软件生命周期,制定计划 需求分析和定义 软件设计 程序编写 软件测试 运行/维护,1.4 软件生命周期,制定计划 1、确定要开发软件系统的总目标; 2、给出功能、性能、可靠性以及接口等方面的要求; 3、完成该软件任务的可行性研究; 4、估计可利用的资源 (硬件,软件,人力等)、成本、效益、开发进度; 5、制定出完成开发任务的实施计划,连同可行性研究报告,提交管理部门审查。,1.4 软件生命周期,需求分析和定义 当完成制定
9、计划之后,需要对用户的需求去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言表达出来。 其主要任务是: 对用户提出的要求进行分析并给出详细的定义; 编写软件需求说明书及初步的系统用户手册,提交管理机构评审。,1.4 软件生命周期,软件设计 其主要任务是: 概要设计:把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应; 详细设计:对每个模块要完成的工作进行具体的描述,为源程序编写打下基础; 编写设计说明书,提交评审。,1.4 软件生命周期,程序编写 其主要任务和要求是: 把软件设计转换成计算机可以接受的程序代码,即写成以某一种特定程序设计语言表
10、示的“源程序清单”; 写出的程序应当是结构良好、清晰易读的,且与设计相一致的。,1.4 软件生命周期,软件测试 其主要过程是: 单元测试:查找各模块在功能和结构上存在的问题并加以纠正; 组装测试:将已测试过的模块按一定顺序组装起来; 按规定的各项需求,逐项进行有效性测试,决定已开发的软件是否合格,能否交付用户使用。,1.4 软件生命周期,运行维护 保证正常而可靠地运行,并能使软件不断得到改善和提高,充分发挥其作用。软件维护有四种类型,它们分别完成以下各自的任务: 改正性维护:运行中发现了软件中的错误而进行的修正工作; 适应性维护:为了适应变化了的软件工作环境,而做适当的变更; 完善性维护:为了
11、增强软件的功能而做的变更; 预防性维护:为未来的修改与调整奠定更好的基础而进行的工作。,1.4 软件生命周期,制定计划_解决什么问题,目标及其可行性(技术、人员、财力、社会) 需求分析_做什么、验收标准 总体设计_怎么做 详细设计_具体怎么做 程序编写_实现 软件测试_保证软件质量 运行/维护_保证正常而可靠地运用,1.4 软件生命周期,基本原则 (1)用户参与的原则; (2)“先逻辑,后物理”的原则; (3)“自顶向下”的原则; (4)工作成果描述标准化的原则。,1.4 软件生命周期,核心思想 (1)严格区分工作阶段。 (2)自顶层向下层逐层开发,结构化,模块化。 (3)建立面向用户的观点,
12、充分预料可能发生的外部环境、内部处理、用户需求的变化。 (4)加强调查研究和系统分析,推迟编程和保证开发质量。,1.4 软件生命周期,软件生命周期的内容 管理策略部分 软件开发的规划、进程安排、评估、监控和反馈。 开发策略部分 任务分解结构(各阶段) 优先级结构(软件开发所遵循的基本过程模型) 开发经验 软件开发标准(活动、职责、文档、质量检验 ),1.5.1 瀑布模型 1.5.2 原型模型(快速原型) 1.5.3 RAD模型 1.5.4 演化软件过程模型 1.5.5 形式化方法模型 1.5.6 第四代技术模型,1.5 软件过程模型,瀑布模型(线性顺序模型),1.5.1 瀑布模型,1.5.2
13、原型模型(快速原型),开发思路 对需求简单快速分析后,利用先进的开发工具,尽快构造出一个原型,直至系统提供给用户评价、试用,在试用中不断修改完善原型,直至用户满意为止,否则重新构造一个原型。,1.5.3 RAD模型,快速应用开发(RAD)是一个瀑布式的软件开发模型,强调开发周期要短。RAD模型是瀑布模型的一个“高速”变种,通过使用基于构件的建造方法获得了快速开发。如果对需求理解得很好,且约束了项目范围,RAD过程能使一个开发组在很短时间内创建出“功能完善的系统”。,RAD模型,1.5.4 演化软件过程模型,演化模型是利用一种迭代的思想方法,由软件开发人员渐进地开发,逐步完善软件版本。该模型又可
14、细分为增量模型、螺旋模型、构件组装模型和并发开发模型。,增量模型,calendar time,增量模型,螺旋模型,构件组装模型,并发开发模型(喷泉模型),1.5.5 形式化方法模型,形式化方法模型包含了一组活动,它们带来了计算机软件用数学描述的方法。形式化方法使得软件开发人员能够通过采用一个严格的、数学的表示体系来说明、开发和验证基于计算机的系统。这种方法有一个变种,称为净室软件工程。目前形式化方法模型已被一些软件开发组织采用。,1.5.5 形式化方法模型,1. 形式化模型 形式化方法提供了一种机制,它能够消除使用其他软件工程模型难以克服的问题。二义性、不完整性和不一致性能被更容易地发现和纠正
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 概论
链接地址:https://www.31doc.com/p-2604088.html