软件工程教案概述

上传人:san****019 文档编号:70544805 上传时间:2019-01-17 格式:PPT 页数:66 大小:1MB
返回 下载 相关 举报
软件工程教案概述_第1页
第1页 / 共66页
软件工程教案概述_第2页
第2页 / 共66页
软件工程教案概述_第3页
第3页 / 共66页
软件工程教案概述_第4页
第4页 / 共66页
软件工程教案概述_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《软件工程教案概述》由会员分享,可在线阅读,更多相关《软件工程教案概述(66页珍藏版)》请在金锄头文库上搜索。

1、第一章 软件工程概述,Company Logo,软件工程概述,1.1 软件概述 1.2 软件危机 1.3 软件工程 1.4 软件过程 1.5 软件开发方法 1.6 软件工程工具 1.7 软件工程课程学习资源 1.8 “学生档案管理系统”案例介绍,Company Logo,1.1 软件概述,软件的概述及特点 软件的分类,什么是软件,软件是指与操作一个计算机有关的计算机程序、进程以及可能相关的记录和数据。 软件的工作是告诉计算机做什么和如何做。 软件具有与硬件明显不同的特点: 软件是被开发或设计的,而不是被制造的 软件不会“磨损” 复杂性是软件的一个固有特性,软件的复杂性,为什么会有这么多的软件开

2、发项目失败?答案只有一个词,即复杂性。 我们该怎么办?简单地用一个词来回答就是组织(Organization)。,Company Logo,软件的概述及特点,软件是计算机系统中不可或缺的一部分,它与硬件合为一体,从而完成特定的系统功能。 程序是人们为了完成特定的功能而编制的一组指令集,它由计算机的语言描述,并且能在计算机系统上执行。而软件不仅包括程序,还包括程序的处理对象数据,以及与程序开发、维护和使用有关的图文资料,即文档。 计算机系统由软件和硬件组成。当建造硬件时,人的创造性过程最终被转换成有形的形式。,Company Logo,软件的概述及特点,作为计算机系统的重要组成部分,计算机软件功

3、能的发挥依赖于计算机硬件的支持,它与硬件相比,具有以下一些特点: 软件是一种逻辑实体,具有抽象性。 软件的生产与硬件的制造不同。 软件在运行使用过程中,不会磨损。 软件的开发至今尚未完全摆脱手工艺的开发方式。 软件的开发和运行必须依附于特定的计算机系统环境。,Company Logo,软件的概述及特点,图 11 硬件失效曲线图,Company Logo,软件的概述及特点,图 12 软件失效曲线图,Company Logo,软件的分类,图 13 软件的分类,Company Logo,1.2 软件危机,软件危机的表现与原因 软件危机的启示,计算机软件发展的三个时期:,早期时代(60年中期以前) 软

4、件作坊(60-70年代) 软件工程,软件技术面临的问题:,复杂性 生产率,例:Windows95有1000万行代码 Windows2000有5000万行代码 Windows2000开发人员结构:,软件灾难故事,受医用线性加速器的过度辐射,造成6人严重烧伤或死亡。 火星气候轨道航天器撞到了火星的表面。 几架“黑鹰”直升机撞毁,多人罹难。 COMFIRM旅游预订系统在经过1.25亿美元的投资后流产。 F22战机的一个软件故障(边界值测试的漏洞) 2007年北京机场信息系统瘫痪。 国外开发的2008北京奥运售票系统瘫痪。,失效原因,软件复杂度 非线性(多线程)软件 对不期待的输入或条件估计不足 与外

5、设接口动作异常 硬件或操作系统与软件不兼容 管理不善 测试不充分 粗心大意,失效原因,想走捷径 不向管理部门通报问题 风险分析不充分 数据输入错误 错误的输出解释 对软件过于自信 缺乏生产高质量软件的市场或法律压力,不按工程生产软件的代价,不得不重新构造代码; 由于不良的代码结构造成昂贵的维护代价; 产生出含有错误或不可靠的代码; 由于误解而不得不重写代码; 很难集成系统中各独立成份; 项目管理困难; 超出预算和工期。,Company Logo,什么是软件危机: 指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 软件危机包括两个方面的问题: 如何开发软件,怎样满足对软件的日益增长的需要

6、。 如何维护数量不断膨胀的已有软件。,Company Logo,软件危机的表现与原因,软件危机主要表现为: 开发出来的软件产品不能满足用户的需求,即产品的功能或特性与需求不符。 相比越来越廉价的硬件,软件代价过高。 软件质量难以得到保证,且难以发挥硬件潜能。 难以准确估计软件开发、维护的费用以及开发周期。 难于控制开发风险,开发速度赶不上市场变化 。 软件产品修改维护困难,集成遗留系统更困难。 软件文档不完备,并且存在着文档内容与软件产品不符的情况。,Company Logo,软件危机的表现与原因,人们对软件产品认识的不足以及对软件开发的内在规律理解的偏差是软件危机出现的本质原因。具体来说,软

7、件危机出现的原因可以概括为以下几点: 忽视软件开发前期的需求分析 。 开发过程缺乏统一的、规范化的方法论的指导。 文档资料不齐全或不准确。 忽视与用户之间、开发组成员之间的交流 。 忽视测试的重要性。 不重视维护或由于上述原因造成维护工作的困难。 从事软件开发的专业人员对这个产业认识不充分,缺乏经验。 没有完善的质量保证体系。,Company Logo,软件危机的启示,软件危机给我们的最大启示,是使我们更加深刻的认识到软件的特性以及软件产品开发的内在规律。 软件产品是复杂的人造系统,具有复杂性、不可见性和易变性,难以处理。 个人或小组在开发小型软件时使用到的非常有效的编程技术和过程,在开发大型

8、、复杂系统时难以发挥同样的作用。 从本质上讲,软件开发的创造性成分很大、发挥的余地也很大,很接近于艺术。 计算机和软件技术的快速发展,提高了用户对软件的期望,促进了软件产品的演化,为软件产品提出了新的、更多的需求,难以在可接受的开发进度内保证软件的质量。 几乎所有的软件项目都是新的,而且是不断变化的。 “人月神化”现象生产力与人数并不成正比。 为了解决软件危机,人们开始尝试着用工程化的思想去指导软件开发,于是软件工程诞生了。,Company Logo,1.3 软件工程,软件工程概念 软件工程发展 软件工程目标和原则 软件工程知识体,Company Logo,软件工程概念,IEEE对软件工程的定

9、义为:(1)将系统化、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件。(2)对(1)中所述方法的研究。 具体说来,软件工程是以借鉴传统工程的原则、方法,以提高质量,降低成本为目的指导计算机软件开发和维护的工程学科。它是一种层次化的技术。,Company Logo,软件工程概念,图 14 软件工程层次图,Company Logo,软件工程发展,20世纪50年代,软件已经出现,但其作用和人们对其重视程度远远不如硬件 。 60年代,人们开始发现软件和硬件在许多方面都存在着不同 。 70年代,人们开始采用与六十年代的“编码和组装”相反的过程,先做系统需求分析,然后再设计,最

10、后再编码,并把五十年代硬件工程技术最好的方面和改进的软件方向的技术加以总结 。 伴随先前70年代开发的一些“最佳实践”,80年代开始了一系列工作以处理七十年代遗留问题,并且开始改进软件工程的生产效率和可测量性。 90年代,面向对象方法的强劲势头得以持续。 90年代末,出现了许多的敏捷方法 。 在新千年里,对快速应用开发追求的趋势仍在继续,在信息技术、组织、竞争对策以及环境等方面的变革步伐也正在加快。,Company Logo,软件工程目标和原则,软件工程要达到的基本目标包括: 达到要求的软件功能; 取得较好的软件性能; 开发出高质量的软件; 付出较低的开发成本; 需要较低的维护费用; 能按时完

11、成开发工作,及时交付使用。,Company Logo,软件工程目标和原则,为了达到上述目标,软件工程设计、工程支持以及工程管理在软件开发过程中必须遵循一些基本原则。著名软件工程专家B.Boehm综合有关专家和学者的意见并总结了多年来开发软件的经验,提出了软件工程的七条基本原则: 用分阶段的生存周期计划进行严格的管理 坚持进行阶段评审 实行严格的产品控制 采用现代程序设计技术 软件工程结果应能清楚地审查 开发小组的人员应该少而精 承认不断改进软件工程实践的必要性 B.Boehm指出,遵循前六条基本原则,能够实现软件的工程化生产;按照第七条原则,不仅要积极主动地采纳新的软件技术,而且要注意不断总结

12、经验。,Company Logo,软件工程知识体,概括来讲,美国IEEE协会和ACM的联合建立“软件工程知识体系指南”的目的主要有以下几点: 促进世界范围内对软件工程的一致观点。 阐明软件工程相对其他学科的位置,并确立它们的分界。 刻画软件工程学科的内容。 提供使用知识体系的主题。 为开发课程表、个人认证和许可材料提供基础。,Company Logo,软件工程知识体,Company Logo,1.4 软件过程,软件过程概念 软件过程标准 软件生存周期模型,Company Logo,软件过程又称为软件生存周期过程,是软件生存周期内为达到一定目标而必须实施的一系列相关过程的集合。它是围绕软件的活动

13、序列,财务、市场等活动不属于软件过程。 在传统的软件工程中,软件产品的生存周期一般可以划分为6个阶段,分别是: 可行性研究 需求分析 软件设计 编码 软件测试 软件维护,软件过程概念,图 15 传统软件生存周期的各个阶段,Company Logo,软件过程标准,图 16 ISO12207软件生存周期过程标准框架,Company Logo,软件过程标准,主过程是构成软件生存周期主要部分的那些过程,正是这些过程启动或进行软件产品的开发、操作或维护。这些过程共有五个,它们是: 获取过程:定义需方(即获取一个系统、软件产品或软件服务的组织)的活动; 供应过程:定义供方(即向需方提供系统、软件产品或软件

14、服务的组织)的活动; 开发过程:定义开发者(即定义和开发软件产品的组织)的活动; 维护过程:定义维护者(即对软件产品进行维护服务的组织)的活动,这个过程包括系统移植和退役; 运行过程:定义运行者(即在计算机系统运行环境中向其用户提供运行服务的组织)的活动。,Company Logo,软件过程标准,支持过程是对另一个过程提供支持的过程。被支持的过程根据需要采用支持性过程,并与该过程结合,帮助软件项目获得成功,并提高质量。支持过程共有如下八个: 文档过程:定义对某生存周期过程所产生的信息进行记录的活动; 配置管理过程:定义配置管理活动; 质量保证过程:定义客观地保证软件产品和过程符合规定要求、遵守

15、已定计划的活动; 验证过程:定义需方、供方或独立的第三方对软件产品进行验证的活动,这些验证活动的深度由软件项目的性质决定; 确认过程:定义需方、供方或独立的第三方对软件产品进行确认的活动; 联合评审过程:定义对某项活动的状态和产品进行评价的活动,这一过程可由任何双方共同采用,其中一方(评审方)评审另一方(被评方); 审计过程:定义对是否符合要求、计划和合同进行确定的过程,这个过程可由任何双方采用,其中一方(审计方)审计另一方(被审方)的软件产品或活动; 问题解决过程:定义对开发、操作、维护或其它过程中发现的问题(包括不一致性)进行分析和排除的过程。,Company Logo,软件过程标准,辅助

16、过程是一个组织用来建立、实施一种基础结构、并不断改进该基础结构的过程。基础结构由一些相关的生存周期过程和人员组成。这些辅助过程有如下四个: 基础设施过程:定义建立生存周期过程的基础结构所需的基本活动; 管理过程:定义在生存周期过程中管理(包括项目管理)的基本活动; 培训过程:定义为提供经过适当培训的人员所需的一些活动; 过程改进过程:定义一个组织(即需方、供方、开发者、操作者、维护者或另一过程的管理者)为了建立、测量、控制和改进其生存周期过程需完成的基本活动。,Company Logo,软件过程标准,该标准适用面很广,对于一个具体软件项目来说,执行该标准时必须加以剪裁,删去一些不适用的过程、活动和任务,必要时还可根据合同要求增加一些特殊的过程、活动和任务。该标准的一项重要内容就是给出了剪裁过程。它包括四项活动: 标识项目环境; 征求输入,考虑受剪裁决策影响的各组织的意见; 选择过程、活动和任务; 将剪裁决策及其原理写成文档。,Company Logo,软件过程标准,此外,该标准还提供了一个简要的剪裁指南,指出在两个层次上应用此剪裁指南的不同考虑: 第

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号