软件工程培训课件.ppt

上传人:F****n 文档编号:97889353 上传时间:2019-09-07 格式:PPT 页数:512 大小:2.82MB
返回 下载 相关 举报
软件工程培训课件.ppt_第1页
第1页 / 共512页
软件工程培训课件.ppt_第2页
第2页 / 共512页
软件工程培训课件.ppt_第3页
第3页 / 共512页
软件工程培训课件.ppt_第4页
第4页 / 共512页
软件工程培训课件.ppt_第5页
第5页 / 共512页
点击查看更多>>
资源描述

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

1、2019/9/7,1,课名: 软 件 工 程,主 讲: 谢 明 志 Email:,使用教材:软件系统开发技术(修订版) 潘锦平 施小英 姚天昉 西安电子科技大学出版社,2019/9/7,2,第一章 软件工程概述,2019/9/7,3,1.1 软件工程的背景和历史,1968年由NATO (北大西洋公约组织)在德国Garmish召开的学术会议上,Feitz Bauer首先提出了“软件工程”概念。,2019/9/7,4,软件工程与编程,前者是一门学科,一种科学理论来指导软件系统开发,标准化,自动化的过程 考虑如何分解一个系统,以便各人分工开发;考虑如何说明每个部分的规格要求;怎样才能易于维护,单纯的

2、代码编写 是软件工程发展的前身 是软件工程中占据很少时间和空间的一部分,2019/9/7,5,计算机学科的发展,计算机科学 (CS),计算机科学 (CS),计算机工程 (CE),软件工程 (SE),信息系统 (IS),计算学科 (computing discipline),2019/9/7,6,60年代以来,工厂管理 病人监护 工资统发 图书馆管理 机票预定 学籍管理,早期 第二阶段 第三阶段 第四阶段 面向批处理 多用户 分布式系统 强大的桌面系统 有限的分布 实时 嵌入“智能” 面向对象技术 自定义软件 数据库 低成本硬件 专家系统 软件产品 消费者的影响 人工神经网络 并行计算 网络计算

3、机,1950,1960,1970,1980,1990,2000,Evolution of software#,2019/9/7,8,为什么发展如此之快,不准确的时间和金钱的估算 软件质量的低下 相对硬件产品开发软件开发费用的增加 维护、增强软件系统的必要性 硬件价格大幅度下降,2019/9/7,9,软件技术面临的问题,规模 复杂性 生产率,Windows95有1000万行代码 Windows2000有5000万行代码,例:,Exchange2000和 Windows2000开发人员结构,2019/9/7,11,人月神话焦油坑,史前史中,没有别的场景比巨兽在焦油坑中垂死挣扎的场面更令人震撼。上帝

4、见证着恐龙、猛犸象、剑齿虎在焦油中挣扎。它们挣扎得越是猛烈,焦油纠缠得越紧,没有任何猛兽足够强壮或具有足够的技巧,能够挣脱束缚,它们最后都沉到了坑底。,2019/9/7,12,软件危机的主要特征,软件开发周期大大超过规定 日期; 软件开发成本严重超标; 软件质量难于保证。,2019/9/7,13,软件工程的定义,Fritz Bauer在NATO会议上给出的定义: “软件工程是为了经济地获得可靠的和能在实际机器上高效运行的软件而确立和使用的健全的工程原理(方法)。”,2019/9/7,14,软件工程的定义(2),IEEE【IEE83】给出的软件工程定义: “软件工程是开发、运行、维护和修复软件的

5、系统方法。”,2019/9/7,15,软件工程的定义(3),IEEE【IEE93】给出了一个更加综合的定义: “将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。”,软件工程是一门交叉学科,软件工程的主要研究内容 软件开发技术:软件开发方法学 软件开发过程 软件工具和软件工程环境 软件工程管理:软件管理学 软件经济学 软件心理学 软件工程所包含的内容不是一成不变的, 随着人们对软件系统的研制开发和生产的理解。 应用发展的眼光看待它。,2019/9/7,17,软件工程 一种层次化技术,工具,方法,过程,质量焦点,Software engineering

6、layers,软件工程三个要素:方法、工具、过程,2019/9/7,18,软件工程与一般工程的差异,软件是逻辑产品而不是实物产品 软件的功能依赖于硬件和软件的运行环境以及人们对它的操作 软件设计的复杂性 软件特征: 功能的多样性 实现的多样性 能见度低 软件结构合理性差 智力密集及知识产权保护,2019/9/7,19,软件工程知识结构,2001年5月ISO/IEC JTC 1(ISO和IEC的第一联合技术委员会)发布了 SWEBOK指南V0.95(试用版) SWEBOK把软件工程学科的主体知识分为10个知识领域。,2019/9/7,20,软件工程知识结构,软件需求 软件设计 软件构造 软件测试

7、 软件维护 软件配置管理 软件工程管理 软件工程过程 软件工程工具和方法 软件质量,2019/9/7,21,“软件工程”课程 与其它软件专业课的区别,(1) 立足于系统的整体。 (2) 讲授系统分析、系统设计、 测试及维护的理论和方法。 (3) 构筑一个软件系统,实践 软件开发全过程。,2019/9/7,22,“软件工程”课程教学的目标,转变对软件的认识: 上升 程序 系统 转变思维定式: 上升 程序员 系统工程师 (系统分析员),2019/9/7,23,软件产品的标准化,软件开发过程的标准化,2019/9/7,24,软件的工业化生产过程应具备的特点: 明确的工作步骤 详细具体的规范化文档 明

8、确的质量评价标准,“一个好的工业,应有一套 良好的标准来配套”,2019/9/7,25,软件工程技术的两个特点,强调规范化 强调文档化,2019/9/7,26,1.2 软件和软件生命期模型,(Software Life Cycle) 软件产品或软件系统从设计、投入使用到被淘汰的全过程。,2019/9/7,27,软件生存期的阶段划分,(1)可行性研究与计划 (2)需求分析 (3)总体设计 (4)详细设计 (5)实现 (6)集成测试 (7)确认测试 (8)使用和维护,成长期(开发期),怀孕期(计划期),成年期(运行期),2019/9/7,28,新的国际标准定义的软件生存过程(1995 ISO/IE

9、C 12207),软件生存期过程,支持过程,组织过程,主要过程,获 取 过 程,供 应 过 程,开 发 过 程,运 行 过 程,维 护 过 程,文 档 编 制 过 程,配 置 管 理 过 程,质 量 保 证 过 程,验 证 过 程,确 认 过 程,联 合 评 审 过 程,审 核 过 程,问 题 解 决 过 程,管 理 过 程,基 础 设 施 过 程,改 进 过 程,培 训 过 程,2019/9/7,29,软件工作的范围,只考虑 编写程序,涉及整个 软件生存 周期,扩展到,2019/9/7,30,软件开发模型是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主

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

11、用原型模型的软件生存周期,分析定义 系统需求,生成 原型,系统 设计,程序 设计,编码,测试,运 行 和维护,原型化,含原型化的 软件生存期,2019/9/7,36,1.3 软件质量的评价,成功的标准: 用户在用 用户可很容易做完要做的事 失败的根本原因: 开发人员写出的东西达不到 用户要求(人的问题.技术问题),2019/9/7,37,质量与生产率,质量是软件需求方最关心的问题,用户即使不图物美价廉,也要求个货真价实 质量与生产率之间有着内在的联系,高生产率必须以质量合格为前提 质量与生产率的提高就指望程序员与程序经理 非得在质量与生产率之间分个主次不可,那么应该是质量第一,生产率第二,20

12、19/9/7,38,质量与生产率(2),质量直接体现在软件的每段程序中,高质量自然是开发人员的技术追求,也是职业道德的要求 高质量对所有的用户都有价值,而高生产率只对开发方有意义 如果一开始就追求高生产率,容易使人急功近利,留下隐患,2019/9/7,39,不贪污的官就是好官吗,“运行正确”的程序就是高质量的程序吗? 也许运行速度很低并且浪费内存;也许代码写得一塌糊涂,2019/9/7,40,软件的质量因素,软件的质量因素很多,如正确性、精确性、可靠性、容错性、性能、效率、易用性、可理解性、简洁性、可复用性、可扩充性、兼容性等等(还可以列出十几个) 一般说来倾向于可维护性、可靠性、可理解性和效

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

14、,易用性,导致软件易用性差的根本原因是开发人员犯了“错位”的毛病:他以为只要自己用起来方便,用户也一定会满意 当用户真的感到软件很好用时,一股温暖的感觉油然而生,于是就用“友好”来评价易用性,2019/9/7,45,可理解性与简洁性(Note 1),开发人员只有在自己思路清晰时才可能写出让别人能理解的程序 编程时还要注意不可滥用技巧,应该用自然的方式编程 简洁是一种美 如果把学术文章写得很简洁,让人很容易理解,它往往中不了,2019/9/7,46,可复用性与可扩充性,一种方式是原封不动地使用现成的软件构件 一种方式是对现成的软构件进行必要的扩充后再使用 可复用性好的程序一般也具有良好的可扩充性

15、,2019/9/7,47,测试已经开始,返回上级,再,瀑布模型的质量保障体系,2019/9/7,48,小结(Note 2),软件的高质量主要是设计出来的 不是“管”出来的 更不能依赖质量检查。,2019/9/7,49,第二章 可行性研究与计划,2019/9/7,50,系统流程图(Note 3),输入单据 磁盘文件 处理 输出单据,2019/9/7,51,数据流程图,数据源点和终点,变换数据的加工,文件,数据,逻辑关系符号:与、或、异或,2019/9/7,52, 2.1可行性研究基本概念,可行性研究的任务: 可行性研究的主要任务是“了解客户的要求及现实环境,从技术、经济和社会因素等三方面研究并论证本软件项目的可行性,编写可行性研究报告,制定初步项目开发计划。”,2019/9/7,53,可行性研究的内容,(1)技术可行性 (2)经济可行性 (3)操作可行性 (4)社会可行性(法律可行性) (5)抉择,2019/9/7,54,技术可行性(Note 4),度量一个特定技术信息系统解决方案的实用性及技术资源的可用性 考虑的问题 开发风险分析 资源分析 相关技术的发展(现有技术能否实现新系统,技术难点、建议采用技术的先进性),2019/9/7,55,经济可行性,度量系统解决方案的性能价格比

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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