软件工程电子教案

上传人:206****923 文档编号:51714541 上传时间:2018-08-16 格式:PPT 页数:512 大小:2.79MB
返回 下载 相关 举报
软件工程电子教案_第1页
第1页 / 共512页
软件工程电子教案_第2页
第2页 / 共512页
软件工程电子教案_第3页
第3页 / 共512页
软件工程电子教案_第4页
第4页 / 共512页
软件工程电子教案_第5页
第5页 / 共512页
点击查看更多>>
资源描述

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

1、软 件 工 程使用教材:软件系统开发技术(修订版)1第一章 软件工程概述21.1 软件工程的背景和历史n1968年由NATO (北大西洋公约组织)在德国 Garmish召开的学术会议上,Feitz Bauer首 先提出了“软件工程”概念。3软件工程与编程n前者是一门学科, 一种科学理论来指 导软件系统开发, 标准化,自动化的 过程n考虑如何分解一个 系统,以便各人分 工开发;考虑如何 说明每个部分的规 格要求;怎样才能 易于维护n单纯的代码编写n是软件工程发展的 前身n是软件工程中占据 很少时间和空间的 一部分4计算机学科的发展计算机科学 (CS)计算机科学 (CS)计算机工程 (CE)软件工

2、程 (SE)信息系统 (IS)计算学科 (computing discipline)560年代以来n工厂管理n病人监护n工资统发n图书馆管理n机票预定n学籍管理6早期 第二阶段 第三阶段 第四阶段 面向批处理 多用户 分布式系统 强大的桌面系统 有限的分布 实时 嵌入“智能” 面向对象技 术 自定义软件 数据库 低成本硬件 专家系统软件产品 消费者的影响 人工神经网络 并行计算 网络计算机195019601970198019902000Evolution of software#7为什么发展如此之快n不准确的时间和金钱的估算n软件质量的低下n相对硬件产品开发软件开发费用的增加n维护、增强软件系

3、统的必要性n硬件价格大幅度下降8软件技术面临的问题 规模 复杂性 生产率 9Windows95有1000万行代码Windows2000有5000万行代码例 :Exchange2000和 Windows2000开发人员结构 Exchange2000Windows2000项项目经经理25人约约250人开发发人员员140人约约1700人测试测试 人员员350人约约3200人10人月神话焦油坑 n史前史中,没有别的场景比巨兽在焦油坑中 垂死挣扎的场面更令人震撼。上帝见证着恐 龙、猛犸象、剑齿虎在焦油中挣扎。它们挣 扎得越是猛烈,焦油纠缠得越紧,没有任何 猛兽足够强壮或具有足够的技巧,能够挣脱 束缚,它

4、们最后都沉到了坑底。 11软件危机的主要特征n软件开发周期大大超过规定 日期;n 软件开发成本严重超标;n 软件质量难于保证。12软件工程的定义Fritz Bauer在NATO会议上给出的定义:“软件工程是为了经济地获得可靠的和 能在实际机器上高效运行的软件而确立和使 用的健全的工程原理(方法)。”13软件工程的定义(2)IEEE【IEE83】给出的软件工 程定义:“软件工程是开发、运行 、维护和修复软件的系统方法 。”14软件工程的定义(3)IEEE【IEE93】给出了一个更加 综合的定义:“将系统化的、规范的、 可度量的方法应用于软件的开 发、运行和维护的过程,即将 工程化应用于软件中。”

5、15软件工程是一门交叉学科软件工程的主要研究内容u软件开发技术:软件开发方法学软件开发过程软件工具和软件工程环境 u软件工程管理:软件管理学软件经济学软件心理学软件工程所包含的内容不是一成不变的, 随着人们对软件系统的研制开发和生产的理解。 应用发展的眼光看待它。16软件工程 一种层次化技术 工具 方法 过程 质量焦点 Software engineering layers软件工程三个要素:方法、工具、过程17软件工程与一般工程的差异u软件是逻辑产品而不是实物产品u软件的功能依赖于硬件和软件的运行环境以及人 们对它的操作u软件设计的复杂性u软件特征: 功能的多样性实现的多样性能见度低软件结构合

6、理性差u智力密集及知识产权保护18软件工程知识结构2001年5月ISO/IEC JTC 1(ISO和IEC的第一联合 技术委员会)发布了 SWEBOK指南V0.95(试用 版) SWEBOK把软件工程学科的主体知识分为10个知 识领域。19软件工程知识结构n 软件需求 n 软件设计 n 软件构造 n 软件测试 n 软件维护 n 软件配置管理 n 软件工程管理 n 软件工程过程 n 软件工程工具和 方法 n 软件质量20“软件工程”课程与其它软件专业课的区别(1) 立足于系统的整体。(2) 讲授系统分析、系统设计、测试及维护的理论和方法。(3) 构筑一个软件系统,实践软件开发全过程。21“软件工

7、程”课程教学的目标u转变对软件的认识:上升程序 系统u 转变思维定式:上升程序员 系统工程师(系统分析员)22软件产品的标准化软件开发过程的标准化23软件的工业化生产过程应具备的特点:F明确的工作步骤F详细具体的规范化文档F明确的质量评价标准“一个好的工业,应有一套 良好的标准来配套”24软件工程技术的两个特点u 强调规范化u 强调文档化251.2 软件和软件生命期模型(Software Life Cycle)软件产品或软件系统从设计、投入使用 到被淘汰的全过程。26软件生存期的阶段划分(1)可行性研究与计划 (2)需求分析 (3)总体设计 (4)详细设计 (5)实现 (6)集成测试 (7)确

8、认测试 (8)使用和维护成长期(开发期)怀孕期(计划期 )成年期(运行期)27新的国际标准定义的软件生存过程(1995 ISO/IEC 12207)软件生存期过程支持过程组织过程主要过程获 取 过 程供 应 过 程开 发 过 程运 行 过 程维 护 过 程文 档 编 制 过 程配 置 管 理 过 程质 量 保 证 过 程验 证 过 程确 认 过 程联 合 评 审 过 程审 核 过 程问 题 解 决 过 程管 理 过 程基 础 设 施 过 程改 进 过 程培 训 过 程28软件工作的范围只考虑编写程序 涉及整个 软件生存 周期扩展到29软件开发模型是软件开发全部过程、活动和任务 的结构框架。它能

9、直观表达软件开发全过程,明确规定 要完成的主要活动、任务和开发策略。 软件开发模型 也常称为:软件过程模型软件生存周期模型软件工程范型软件开发模型30可行性研究与计划需求分析设计编码运行维护测试定义 阶段开 发 阶 段维护阶段瀑布模型(Waterfall Model)31开发软件不仅仅是编程32按照传统瀑布模型开发软件的特点1.阶段间具有顺序性和依赖性。2.推迟实现的观点。3.每个阶段必须完成规定的文档;每个阶段结束前完成文档审查,及早改正错误。33原型模型(快速原型模型)原型范型用户测试 运行原型建造/修改原型听取用户意见34采用原型模型的软件生存周期分析定义 系统需求生成 原型系统 设计程

10、序 设计编码测试运 行 和维护原型化含原型化的 软件生存期351.3 软件质量的评价n成功的标准:用户在用用用户可很容易做完要做的事n失败的根本原因:开发人员写出的东西达不到用户要求(人的问题.技术问题)36质量与生产率n质量是软件需求方最关心的问题,用户即使 不图物美价廉,也要求个货真价实 n质量与生产率之间有着内在的联系,高生产 率必须以质量合格为前提 n质量与生产率的提高就指望程序员与程序经 理 n非得在质量与生产率之间分个主次不可,那 么应该是质量第一,生产率第二 37质量与生产率(2)n质量直接体现在软件的每段程序中,高质量 自然是开发人员的技术追求,也是职业道德 的要求 n高质量对

11、所有的用户都有价值,而高生产率 只对开发方有意义 n如果一开始就追求高生产率,容易使人急功 近利,留下隐患 38不贪污的官就是好官吗n“运行正确”的程序就是高质量的程序吗?n也许运行速度很低并且浪费内存;也许代码写得一塌糊涂 39软件的质量因素 n软件的质量因素很多,如正确性、精确性、 可靠性、容错性、性能、效率、易用性、可 理解性、简洁性、可复用性、可扩充性、兼 容性等等(还可以列出十几个) n一般说来倾向于可维护性、可靠性、可理解 性和效率40软件质量因素分类和武学分类 正确性与精确性易 用 性可理 解性 与简 洁性性 能 与 效 率可复 用性 与 可扩 充性少林派、武当派华 山 派昆 仑

12、 派峨 嵋 派崆 峒 派41正确性与精确性 n机器不会主动欺骗人,软件运行不正确或者 不精确一般都是人造成的 n需求分析错了,那么对客户而言这个软件也 存在错误 n如果软件没有100% 地按需求规格执行,那 么这个软件也存在错误n程序员要为“正确”、“精确”四个字竭尽 全力 42性能与效率 n用户都希望软件的运行速度高些(高性能) ,并且占用资源少些(高效率) n旧社会地主就是这么对待长工的:干活要快 点,吃得要少点 n通过优化算法、数据结构和代码组织来提高 软件系统的性能与效率优化的关键n工作是找出限制性能与效率的“瓶颈” 43易用性 n导致软件易用性差的根本原因是开发人员犯 了“错位”的毛

13、病:他以为只要自己用起来 方便,用户也一定会满意 n当用户真的感到软件很好用时,一股温暖的 感觉油然而生,于是就用“友好”来评价易 用性 44可理解性与简洁性(Note 1) n开发人员只有在自己思路清晰时才可能写出 让别人能理解的程序 n编程时还要注意不可滥用技巧,应该用自然 的方式编程 n简洁是一种美 n如果把学术文章写得很简洁,让人很容易理 解,它往往中不了 45可复用性与可扩充性 n一种方式是原封不动地使用现成的软件构件 n一种方式是对现成的软构件进行必要的扩充 后再使用 n可复用性好的程序一般也具有良好的可扩充 性 46可行性研究与计划需求分析设计编码运行维护测试测试已经开始返回上级

14、,再瀑布模型的质量保障体系47小结(Note 2)n软件的高质量主要是设计出来的n不是“管”出来的n更不能依赖质量检查。 48第二章 可行性研究与计划49系统流程图(Note 3)输入单据磁盘文件处理输出单据50数据流程图数据源点 和终点变换数据 的加工文件数据逻辑关系符号:与、或、异或 51 2.1可行性研究基本概念n可行性研究的任务: 可行性研究的主要任务是“了解客户的要求 及现实环境,从技术、经济和社会因素等三 方面研究并论证本软件项目的可行性,编写 可行性研究报告,制定初步项目开发计划。 ”52可行性研究的内容(1)技术可行性 (2)经济可行性 (3)操作可行性 (4)社会可行性(法律

15、可行性) (5)抉择53技术可行性(Note 4)n度量一个特定技术信息系统解决方案 的实用性及技术资源的可用性 考虑的问题n开发风险分析n资源分析n相关技术的发展(现有技术能否实现新系 统,技术难点、建议采用技术的先进性)54经济可行性度量系统解决方案的性能价格比 考虑的问题成本/效益分析n有形成本、效益n无形成本、效益价值和成本的关系n质量与价值、成本的关系n价值/成本的均衡55经济可行性考虑的问题(Note 5)成本和效益的估算 开发成本的估算 开发效益的估算 运行成本的估算 运行效益的估算56成本分析n代码行技术n(page 19)n任务估算技术n(page 20)n总成本、总人力相对误差在 内nPutnam估算模型n(page 21 )nCOCOMO模型比较复杂57效益分析n系统的经济效益使用新系统增加收入使 用心系统可以节省的运行费用n总的效益和软件生存周期有关n货币的时间价值(page23)n投资回收期(page23)n投资回收率(page23)n纯收入(page23)n投资回收率58系统开发和每年运行费用举例1.系统开发费用(一次) .2名系统分析员(450小时/名,45美元/小时) $40,500.5名系统开发人员(275小时/名,36美元/

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

当前位置:首页 > 行业资料 > 其它行业文档

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