软件工程概论.ppt

上传人:本田雅阁 文档编号:2604088 上传时间:2019-04-16 格式:PPT 页数:72 大小:556.51KB
返回 下载 相关 举报
软件工程概论.ppt_第1页
第1页 / 共72页
软件工程概论.ppt_第2页
第2页 / 共72页
软件工程概论.ppt_第3页
第3页 / 共72页
亲,该文档总共72页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《软件工程概论.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. 形式化模型 形式化方法提供了一种机制,它能够消除使用其他软件工程模型难以克服的问题。二义性、不完整性和不一致性能被更容易地发现和纠正

15、,它不是通过专门的复审,而是通过数学分析来实现。 2. 净室软件过程模型 净室软件工程(Cleanroom Software Engineering)是软件开发的一种形式化方法,它可以生成极高质量的软件。它使用盒结构规约进行分析和设计建模,并且强调将正确性验证而不是测试,作为发现和消除错误的主要机制。它使用测试来获取认证,使被交付的软件的出错率达到最低。,1.5.6 第四代技术模型,它用一种特定的语言来完成或者以一种用户可以理解的问题描述方法图形表示方法来描述待解决问题。 能使软件开发人员在较高级别上说明软件的某些特征。然后开发人员使用工具根据其说明自动生成源代码。 当与构件组装方法结合起来时

16、,4GT模型可能成为软件开发的主流方法。,1.6.1 软件工程标准的意义 1.6.2 软件工程标准的分类 1.6.3 软件工程标准的级别 1.6.4 中国的软件工程标准化工作 1.6.5 软件质量认证,1.6 软件工程标准,1.6.1 软件工程标准的意义,(1)可提高软件的可靠性、可维护性和可移植性(这表明软件工程标准化可提高软件产品的质量); (2)提高软件的生产率; (3)提高软件人员的技术水平; (4)提高软件人员之间的通信效率,减少差错和误解; (5)有利于软件管理; (6)有利于降低软件产品的成本和运行维护成本; (7)有利于缩短软件开发周期。,1.6.2 软件工程标准的分类,软件工

17、程标准的类型 过程标准(如方法、技术、度量等); 产品标准(如需求、设计、部件、描述、计划、报告等); 专业标准(如职别、道德准则、认证、特许、课程等); 记法标准(如术语、表示法、语言等)。,1.6.3 软件工程标准的级别,它可分为以下五个级别: 国际标准 国家标准 行业标准 企业(机构)标准 项目(课题)标准,1.6.3 软件工程标准的级别,1国际标准 由国际联合机构制定和公布,提供各国参考的标准。 ISO(International standards organization)国际化标准组织。 20世纪60年代初,该机构建立了“计算机与信息处理技术委员会”,简称ISO/TC97,专门负

18、责与计算机有关的标准化工作。,1.6.3 软件工程标准的级别,2国家标准 由政府或国家级的机构制定或批准,适用于全国范围的标准 。 GB中华人民共和国国家技术监督局是中国的最高标准化机构,它所公布实施的标准简称为“国标”; ANSI(American national processing institute)美国国家标准协会。这是美国一些民间标准化组织的领导机构,具有一定的权威性; FIPS(NBS)Federal information processing standards(national bureau of standards)美国商务部国家标准局联邦信息处理标准; BS(Brit

19、ish standard)英国国家标准; DIN(Deutsches institut fur normung)德国标准协会; JIS(Japanese industrial standard)日本工业标准。,1.6.3 软件工程标准的级别,3行业标准 由行业机构、学术团体或国防机构制定,并适用于某个业务领域的标准 。 IEEE(Institute of electrical and electronics engineers)美国电气与电子工程师学会。 GJB中华人民共和国国家军用标准。由中国国防科学技术工业委员会批准,适合于国防部门和军队使用的标准。 DOD-STD(Department

20、of defense-standards)美国国防部标准,适用于美国国防部门 。 MIL-S(Military-standard)美国军用标准,适用于美军内部。,1.6.3 软件工程标准的级别,4企业规范 一些大型企业或公司,由于软件工程工作需要,制定适用于本部门的规范。 美国IBM公司通用产品部(General products division),1984年制定的程序设计开发指南,仅供该公司内部使用。,1.6.3 软件工程标准的级别,5项目规范 由某一科研生产项目组织制定,且为该项任务专用的软件工程规范。 计算机集成制造系统(CIMS)的软件工程规范。,1.6.4 中国的软件工程标准化工作

21、,1983年5月中国原国家标准总局和原电子工业部主持成立了“计算机与信息技术标准技术委员会”,下设十三个分技术委员会。 与软件相关的:程序设计语言分委员会和软件工程技术分委员会。 总原则:向国际标准靠拢,对于能够在中国适用的标准一律按等同采用的方法,以促进国际交流。这里,等同采用是要使自己的标准与国际标准的技术内容完全相同,仅稍作编辑性修改。,1.6.4 中国的软件工程标准化工作,中国的软件工程标准分类 1983年以来中国已陆续制定和发布了20项国家标准。(见分类表) 这些标准可分为4类: 基础标准; 开发标准; 文档标准; 管理标准。 已制定的软件工程国家军用标准为12项,以“GJB”为标记

22、。,1.6.5 软件质量认证,1ISO 9000 系列标准及软件质量认证 1987年公布 发源于欧洲经济共同体 已有70多个国家在它们的企业中采用和实施这一系列标准 我国发布了与其相应的质量管理国家标准系列GB/T 19000,1.6.5 软件质量认证,2ISO 9000 系列标准的内容 2000新版 ISO 9000系列标准的内容: (1)ISO 9000:基本原则和术语; (2)ISO 9001:开发/设计、生产安装和服务中的质量保证模式; (3)ISO 9002:生产和安装中的质量保证模式; (4)ISO 9003:最终检验和测试中的质量保证模式; (5)ISO 9004:业绩改进指南;

23、 (6)ISO 9011:2000 质量和环境审核指南; (7)ISO 9000-3-1997(即GB/T 19000.3 - 94)质量管理和质量保证标准-第三部分-在软件开发、供应和维护中的使用指南 。,1.6.5 软件质量认证,3新版ISO9000族标准对比现行的1994版而言,具有以下的特点: (1)面向所有组织,通用性强; (2)确立八项原则,统一理念; (3)鼓励过程方法,操作性强; 注:2000版标准的修订采用了过程模式,提倡用过程方法来识别和建立体系。 (4)强化关键:领导作用; (5)自我评价测量,突出改进; (6)关心各相关方,利益共享。,1.6.5 软件质量认证,4制定与

24、实施ISO 9000 系列标准 强调质量并非在产品检验中得到,而是形成于生产的全过程。 要求 “企业具有持续提供符合要求产品的能力”。企业负责人的重视以及企业全体人员的积极参与是取得成功的关键。 强调“质量管理必须坚持进行质量改进”。,1.6.5 软件质量认证,5ISO 9000 3的要点 (1)ISO 9000 3标准不适用于面向多数用户销售的程序包软件,仅适用于依照合同进行的单独的订货开发软件。 (2)ISO 9000 3标准对供需双方领导的责任都作了明确的规定,并没有单纯地把义务全部加在供方身上。 (3)在包括合同在内的全部工序中进行审查,并彻底文件化。 (4)在ISO 9000 3中,

25、最重要的是质量保证“体系”。 (5)供方应实施内部质量审核制度。,1.7.1 软件文档的作用和分类 1.7.2 对文档编制的质量要求 1.7.3 文档的管理和维护,1.7 软件开发文档,是系统开发过程中按照国家软件开发规范编写的一套有价值的资料集合。 是每个阶段工作成果的总结和开展下阶段的工作依据,也是系统维护的依据。 由技术人员编写。 编写方法:人工方式整理和借助软件工具。,1.7 软件开发文档,1.7.1 软件文档的作用和分类 软件文档的作用,文档的分类,文档 应用文档 开发文档 管理文档,需求规格说明书 概要设计说明书 详细设计说明书 测试计划 测试报告,可行性研究报告 项目开发计划 需

26、要变更申请书 项目开发进程月报 项目开发总结报告,用户手册 操作手册 运行日志月报 维护修改建议书,图2.1 按照服务目的的不同划分的文档类型,1.7.2 对文档编制的质量要求,尽可能地简洁、易于阅读和理解,尽量多使用图表。 1针对性 2精确性 3清晰性 4完整性 5灵活性 6可追溯性,1.7.3 文档的管理和维护,(1)软件开发小组应设一位文档保管员,负责集中保管本项目已有文档的两套主文本。这两套主文本的内容完全一致。其中的一套可按一定手续,办理借阅; (2)软件开发小组的成员可根据工作需要在自己手中保存一些个人文档。这些一般都应是主文本的复制件,并注意与主文本保持一致,在做必要的修改时,也

27、应先修改主文本; (3)开发人员个人只保存这主文本中与他工作有关的的部分文档; (4)在新文档取代旧文档时,管理人员应及时注销旧文档。文档的内容有更动时,管理人员应随时修订主文本,使其及时反映更新了的内容;,1.7.3 文档的管理和维护,(5)项目开发结束时,文档管理人员应收回开发人员的个人文档。发现个人文档与主文本有差别时,应立即着手解决。这往往是在开发过程中没有及时修订主文本造成的; (6)在软件开发过程中,可能发现需要修改已完成的文档。特别是规模较大的项目,主文本的修改必须特别谨慎。修改以前要充分估计修改可能带来的影响,并且要按照: 提议评议审核批准实施 的步骤加以严格的控制。,1.8

28、思考与练习,1. 填空题 (1) 通常软件包括_、_、_三方面的内容。 (2) 软件的特点包括_、_、_、_、_、_等。 (3) 解决软件危机的途径是_和_。 (4) 瀑布模型本质上是_一种模型。 (6) 在演化过程模型中,项目开发的各阶段都是_开发的。,1.8 思考与练习,2. 选择题 (1) 软件可以分为系统软件、支撑软件、应用软件等,这是根据( )来划分的。 A. 软件的工作方式 B. 软件的用途 C. 软件的功能 D. 软件的制造过程 (2) 基于软件的服务范围一般将其划分为产品软件和( )。 A. 免费软件 B. 定制软件 C. 管理软件 D. 服务软件 (3) 软件设计包括概要设计和( )。 A. 宏观设计 B. 计算机辅助设计 C. 面向过程的设计 D. 详细设计,1.8 思考与练习,3. 判断题 (1) 软件开发的原型模型的主要优点是能加强对项目管理和控制。 ( ) (2) 高质量的技术文档应该具有灵活性。 ( ) (3) 软件生命周期也可分为分析阶段、开发阶段和维护阶段。 ( ) (4) 解决软件危机的惟一途径是软件开发的结构化。( ) 4. 简答题 (1) 简述软件的发展过程。 (2) 简述软件的分类。 (3) 什么是软件危机? (4) 软件危机主要有哪几种表现?,Q & A? Thanks!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1