软件工程第1章概述.ppt_第1页
软件工程第1章概述.ppt_第2页
软件工程第1章概述.ppt_第3页
软件工程第1章概述.ppt_第4页
软件工程第1章概述.ppt_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程,徐晓君,课程性质:考试课 学时:64(48+16) 学分:4 成绩分配:50%+50% 本课程讲述软件工程的基本概念、原理、方法和工具,系统地介绍目前流行的和较成熟的软件工程技术。 学习软件开发与维护的普遍原理和基本技术,提高软件开发维护的效率。 前续课程:数据库原理、数据结构、软件开发工具 后续课程:毕业实践、毕业设计,目录,概述 软件计划 软件需求分析 软件总体设计 软件详细设计 软件编码 软件测试 软件实施与维护 软件项目管理 面向对象软件工程技术,第1章概述,本章要点 软件 软件工程 软件危机 软件生存周期 软件开发模型 软件开发方法,1.1软件工程学的几个基本概念,1.1.1 软件与软件工程 1.软件及其组成 软件是指计算机程序及其有关的数据和文档的集合,软件的发展,第一代(20世纪40年代中期到60年代中期): 程序设计阶段。 第二代(从20世纪60年代中期到70年代初期): 程序系统阶段,软件=程序+文档阶段 1968年北大西洋公约组织正式提出“软件工程”(software engineering)的术语 第三代(从20世纪70年代中期到90年代): 软件工程阶段。 这阶段的主要任务是为了克服软件危机,适应软件发展的需要,而采用“工程化的生产” 方式。 第四代技术阶段(从20世纪80年代中期至今):软件产业在世界经济中已经占有举足轻重的地位。,2.软件危机与软件工程,软件危机:在软件开发和维护过程中所遇到的一系列严重问题。 软件危机包含下述两方面的问题: 如何满足日益增长的软件需求 如何维护数量不断膨胀的已有软件 软件危机的主要表现 供求矛盾 软件成本与开发进度难以估计 软件产品不符合用户的实际需要 软件的可靠性差 软件的维护费急剧上升,软件危机产生的原因 目标不清 情况不明 通信误解 步骤混乱 不遵守统一的标准 解决软件危机的途径 组织良好、管理严密、各类人员协同配合 统一开发标准 使用软件开发辅助工具,3.软件工程,软件工程: 1983年美国IEEE软件工程标准术语对软件工程下的定义为:软件工程是开发、运行、维护和修复软件的系统方法. 1993年,IEEE为软件工程的定义是: “软件工程是将系统化的、规范化的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件中的方法的研究。 本书: 采用工程的概念、原理、技术和方法来研制和维护软件。,软件工程是指导计算机软件开发和维护的工程学科。 软件工程采用工程的概念、原理、技术和方法来开发与维护软件。 软件工程的目标是以较少的投资获取较高质量的软件,1.1.2软件工程的任务及研究范围,软件工程主要研究的内容: 软件的规范与标准 p9 软件开发技术 软件工程方法学 软件工具和软件支撑环境 软件管理,1.软件工程方法学,软件工程方法学是编制软件的系统方法,它确定软件开发的各个阶段,规定每个阶段的活动、产品、验收的步骤和完成准则 三要素: 方法:完成软件开发任务的技术方法(定义说明法、结构化的构造方法、文档资料描述方法)。为软件开发提供了“如何做”的技术 工具:为了支持软件的开发和维护而研制的程序系统。(需求分析工具、编辑程序、编译程序、排错工具等) 过程:把输入转化为输出的一组彼此相关的资源和活动。规定了完成任务的工作阶段、工作内容、产品、验收的步骤和完成的准则,2、软件工具和软件支撑环境,软件工具是指可以用来帮助开发、测试、分析、维护其他计算机程序及文档资料的一类程序。 需求分析工具 设计工具 编码工具 确认工具 维护工具,软件支撑环境:在基本软硬件基础上,提供一组能支持软件生存周期的工具。 组成: 数据库 一组工具 命令或调用方式,3、软件管理,目的: 合理地使用人力、物力资料,以最少消耗来开发软件,保证软件质量,最有效地组织力量,制定计划,保证各类资源与各种活动协调同步。 内容: 工程计划管理 费用管理 人员组织管理 质量管理等。,1.1.3软件生存周期,软件生存周期:软件产品或软件系统从计划、分析、设计、投入使用到被淘汰的全过程。 软件生存周期中,软件开发与维护时的费用越低,软件的使用寿命越长,产生的价值就越大,这就是掌握软件工程学的目的。,软件生存周期各阶段及相应的任务,软件计划 问题定义:确定系统的目标、规模、基本任务 可行性研究:经济、技术、法律等是否可行 软件开发 需求分析:确定系统应具备的具体功能 总体设计:系统的模块功能、模块结构及模块间相互调用关系、接口 详细设计:每个模块内部过程的描述 编码 测试 软件运行、维护,每一阶段的工作都以前一阶段的结果为依据,并作为下一阶段的前提。 每个阶段都要进行复审,主要检查是否有高质量 文档资料。前一阶段复审通过,后一阶段才能开始。 软件生命周期划分的原则: 各阶段的任务彼此间尽可能相对独立 同一阶段的工作任务尽可能相同。,1.1.4软件开发模型,瀑布模型 快速原型 喷泉模型 螺旋模型,1.瀑布模型,瀑布模型的特点,软件生命周期的顺序性 适合于在软件需求比较明确、开发技术比较成熟、工程管理比较严格的场合。 文档驱动 尽可能推迟软件的编码 保证质量 每个阶段都要完成规定的文档 每个阶段都要对已完成的文档进行复审以便早日发现隐患,排除故障。,快速原型模型是指快速开发一个可以运行的原型系统,该原型系统所能完成的功能往往是最终产品能完成功能的一个子集。请用户试用原型系统,以便能准确地认识到他们的实际需求是什么,然后书写软件系统的需求规格说明文档,根据这份文档开发出来的软件可以满足真实需求。 创建快速原型从设计用户界面开始,所建立的原型所能完成的功能,往往是用户需求的主要功能,该方法鼓励用户参加开发过程,用户参与原型 运行和评价,能充分地与开发方协调一致。开发期间,原型还可以作为终端用户的教学模型,开发者一边进行软件开发,一边让用户学习使用,若用户发现软件功能不符合自己的实际,可以及时提出意见,开发者应立即进行修改,如此反复进行,直到用户满意为止。,2.快速原型,2.快速原型,原型的作用是获得用户的真正需求,三种类型,1.渐增式的原型(增量模型) 优点:在较短的时间内向用户提交能完成一定功能的产品,并使用户有较充裕的时间学习和适应产品 方法:增量开发 增量提交,增量开发:在软件需求分析和设计阶段采用整体开发方式,在编码和测试阶段采用增量开发模型开发方式,先对部分功能进行编码、测试,提交用户试用,增量提交:所有阶段都采用增量模型开发方式。先对某部分功能进行需求分析、设计、编码、测试,提交给用户试用,充分听取用户意见,再对另 一部分功能进行分析、设计等,提交给用户试用,直到所有功能开发完毕。,2.用于验证软件需求的原型 系统分析人员在确定了软件需求后,从中选出某些应验证的功能,用适当的工具快速构造出可运行的原型,由用户试用和评价。可以丢弃。 3.用于验证设计方案的原型 在概要设计和详细设计过程中可以用原型来验证总体结构或某些关键算法。可以丢弃,也可做为最终产品的一部分。,3.喷泉模型,典型的面向对象软件开发模型 着重强调不同阶段之间的重叠 是一种以用户需求为动力,以对象作为驱动的模型,概念模型分析 建立系统模型(对象模型、过程模型) 系统设计:模型对象和过程的规范描述 对象设计与实现 测试:测试所有的对象及对象相互之间的关系是否符合要求 系统组装集成 演化:喷泉模型主张分析和设计过程的重叠,不严格加以区分,模块集成过程要反复经过分析、设计、测试、集成这几个阶段,每次集成都使系统功能在原有基础上得到扩展,因此,称为系统演化,4.螺旋模型,1.2软件开发的原则和方法,原则: 自顶向下 将复杂系统进行分解,由高度抽象到逐步具体的方法,形成树状结构 模块结构 将软件系统分解成若干个模块,方法 1、非自动形式系统开发方法 系统流程图 采用自顶向下功能分割法。 工具:事务流程图、处理流程图、计算机化流程图、程序说明书 适用于系统分析与设计 结构分析法 采用自顶向下数据流分割法。 工具:数据流程图、数据字典、判定表、结构化语言等 适用于系统分析,结构化设计法 采用模块化结构方法 工具:模块结构图、模块说明书 适用于软件系统设计 数据结构法 采用身顶向下数据结构分割法 工具:数据结构图、程序结构图 适用于小规模系统设计 层次-输入-处理-输出方法(H- I-P-O ) 采用自顶向下分层图描述功能及其输入、处理、输出 工具:HIPO图和I-P-O图 适用于软件系统分析和设计,2、半自动形式的系统开发方法 软件需求工程法 问题说明语言与分析法 3、自动形式的系统开发方法,练习1,快速原型法是用户和设计者之间的一种交互过程,适用于A系统。它从设计用户界面开始,首先形成B,然后用户C并就D提出意见。它是一种E型设计过程。,A: 1、需求不确定性较高的 2、需求确定的 3、管理信息 4、决策支持,B: 1、用户使用手册 2、系统界面原型 3、界面需求分析说明书 4、完善用户界面,C: 1、阅读文档资料 2、改进界面的设计 3、模拟界面的运行 4、运行界面的原型,D: 1、使用发种编程语言 2、程序结构 3、同意什么,不同意什么 4、执行速度是否满足要求,E: 1、自外向内 2、自底向上 3、自顶向下 4、自内向外,练习2,A是将软件生命周期的各个阶段依线性顺序连接,用文档驱动的模型。 B是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。,A、B: 1、瀑布模型 2、快速原型模型 3、喷泉模型 4、螺旋模型,练习3,假设你要开发一个软件,它的功能是把987238.8378这个数开方,所得到的结果精确到小数点后四位,一旦实现并测试完成后,该产品将被抛弃。你打算选用哪种软件生命周期模型?,答: 快速原型,原因是这个软件功能非常简单,可以很快地容易实现,而且实现并测试完之后,该产品将被抛弃。,练习4,假设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论