计算机软件及应用23五个也为ppt课件

上传人:bin****86 文档编号:55138177 上传时间:2018-09-25 格式:PPT 页数:75 大小:904.50KB
返回 下载 相关 举报
计算机软件及应用23五个也为ppt课件_第1页
第1页 / 共75页
计算机软件及应用23五个也为ppt课件_第2页
第2页 / 共75页
计算机软件及应用23五个也为ppt课件_第3页
第3页 / 共75页
计算机软件及应用23五个也为ppt课件_第4页
第4页 / 共75页
计算机软件及应用23五个也为ppt课件_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《计算机软件及应用23五个也为ppt课件》由会员分享,可在线阅读,更多相关《计算机软件及应用23五个也为ppt课件(75页珍藏版)》请在金锄头文库上搜索。

1、软件工程 (Software Engineering),引子,回答最重要的问题,Q1-什么是软件工程?,软件工程是一种工程形式,它运用计算机科学和数学原理,针对软件问题获得一种经济有效的解决方案 用系统的、规范的、可度量的方法,开发、运行和维护软件,软件工程是采用系统工程学和管理学相结合的原理、方法和技术来指导、管理和实施软件的各种活动,包括软件开发、运行、维护和服务等,Q2-软件工程的基本目标是什么?,高质量就是最大程度地满足客户需求、帮助客户获得成功 高生产力就是以最小的成本获得最好的收益,即在规定的时间和预算之内完成软件开发、维护和服务等任务,高质量 &高生产力,Q3-为什么要讨论软件工

2、程?,软件危机的出现和加剧 软件系统越来越复杂 软件环境变化很快 软件用户的需求越来越高,Q4-软件工程带来的益处又是什么?,规范软件开发的行为,从而提高软件的可维护、可移植性和可靠性 提供许多科学的方法、最佳实践和工具,帮助人们高效地、系统地、正确地构造软件 帮助我们建立有效的、平稳的并能持续改进的软件过程,预防缺陷、降低成本,最终多快好省地提供优质的软件产品或服务,为组织赢得利润、获得竞争力,Q5-软件工程的基本思想是什么?,将软件看成一个系统 通过迭代来完善软件系统,逐渐逼近客户的需求 软件开发是工程和艺术的统一、创造性和规范性的统一 过程决定产品,持续改进过程 质量以预防为主、重在文化

3、建设 以顾客为导向、软件即服务 个人和团队并重 向传统的成熟工业学习 适合自己的,才是最好的,软件工程学科构成,计算机科学 工程学 管理学 用工程学的方法来进行软件开发,并通过良好的管理来控制开发,软件工程组成部分,软件需求分析 软件设计与体系结构 软件编码技术 软件测试 软件过程与管理,几个误区,1、软件开发就是编程 2、软件工程是高层的事 3、软件工程等工作了再学 4、软件工程都是理论的东西,软件工程课程性质,计算机学科的专业必修课,软件工程专业的核心必修课 以其为导论形成了一系列软件工程类课程 软考中占分最多的课程 软件人才定位的分界线 软件工程是目前计算机科学领域最活跃的研究方向,是获

4、得工业界支持最多的研究热点,也是学科交叉最活跃的领域,CC2001,CS-AR计算机体系结构与组织 CS-AL算法与复杂性 CS-HC人机交互 CS-OS操作系统 CS-PF程序设计基础 CS-SP社会与职业问题 CS-SE软件工程 CS-DS离散结构 CS-NC以网络为中心的计算 CS-PL程序设计语言 CS-GV图形学与可视化计算 CS-IS智能系统 CS-IM信息管理 CS-CN数值计算科学,SE2004,SE-CMP 计算基础 SE-FND 数学和工程基础 SE-PRF 职业实践 SE-MAA 软件建模与分析 SE-DES 软件设计 SE-VAV 软件验证与确认 SE-EVO 软件进化

5、 SE-PRO 软件过程 SE-QUA 软件质量 SE-MGT 软件管理,软件工程课程,2、课程的安排1)课堂教学2)小组课题3)专题讨论4)课堂发言,软件工程的教学目标,从根本上改变编程即开发的错误思想 学会设计软件 了解软件开发的全过程 对软件开发的非技术因素有充分的认识 初步建立软件标准化的思想,学生可以系统了解软件项目开发与维护的一般过程,掌握开发高质量软件的方法,以及能够有效地策划和管理软件开发活动,为今后从事计算机大规模开发与维护打下坚实的基础。 熟悉软件工程活动内容 掌握面向对象的分析、设计方法、UML建模 掌握测试的基本原则和技术 了解软件计划,管理,维护等内容,教材和参考书,

6、教材 软件工程 清华大学出版社 钱乐秋、赵文耘等编著 参考书 软件工程:实践者的研究方法 机械工业出版社 roger s.pressman编著 软件工程导论清华大学出版社 朱少民编著 人月神话,课程安排,1 软件工程概述 2 系统工程 3 需求工程 4 设计工程 5 人机界面设计 6 软件测试 7 软件项目管理,课程安排(实验),用UML进行面向对象分析与设计建模,成绩评定,平时成绩 30%(点名 ,课堂作业,小组报告) 实验 20% 期末考试 50%(闭卷笔试),关键词,规范 思想,第一章 概论,计算机软件 软件工程 软件过程 软件过程模型 敏捷软件开发 CASE工具与环境*,1.计算机软件

7、,定义 特点 分类 软件语言 发展 软件危机,1. 软件的定义,计算机软件指计算机系统中的程序及其文档 程序是计算任务的处理对象和处理规则的描述 文档是为了便于了解程序所需的阐明性资料,文档一般是给人看的,不一定装入计算机,软件 = 程序+文档 程序 = 算法+数据结构+数据,软件的特点,软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算 软件是被开发的或被设计的,它没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大 软件不会磨损和老化 其他特点 软件的开发和运行常受到计算机硬件的限制,对计算机硬件有着不同程度的依赖性 软件的开发至今尚未完全实现自动化 软

8、件成本相当昂贵 相当多的软件工作涉及到社会因素,软件的分类,系统软件 属于计算机系统中最靠近硬件的一层,其它软件一般都通过系统软件发挥作用,它与具体的应用领域无关。 如操作系统、编译程序等 支撑软件 支持软件的开发和维护的软件。 如数据库管理系统、网络软件、软件开发环境等。 应用软件 特定应用领域专用的软件。,软件语言,软件语言是用于书写计算机软件的语言。 它主要包括: 需求定义语言(requirements definition language ) 用来书写软件需求定义 软件需求包括功能需求和非功能需求 功能性语言(functional language ) 用来书写软件功能规约(func

9、tional specification) 软件功能规约只刻画软件系统“做什么”的外部功能,而不涉及系统“如何做”的内部算法。 设计性语言(design language ) 用来书写软件设计规约(design specification) 软件设计规约刻画软件“如何做”的内部算法,是软件实现的依据 实现性语言(programming language) 文档语言(documentation language ) 用来书写软件文档,软件的发展,1946-1956年 从计算机问世到实用的高级程序语言出现前 没有系统的软件开发方法和管理机制、自定义软件、批处理、有限分布 1956-1968年 从实

10、用的高级程序语言出现到软件工程出现前 产生人机交互的新概念、多用户、实时、数据库。 1968年-至今 从软件工程出现到现在,软件危机,含义 计算机软件的开发和维护过程中所遇到的一系列严重问题 许多软件项目不能满足客户的要求 许多软件项目超出预算和时间安排典型表现 产生原因 克服途径,软件危机,典型表现 对软件开发成本和进度的估计常常很不正确 用户对“已完成的”软件系统不满意的现象经常发生 软件产品的质量往往靠不住 软件常常是不可维护的 软件通常没有适当的文档资料 软件成本在计算机系统总成本中所占的比例逐年上升 软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势,软件危机,产生原因

11、软件是逻辑产品,开发进度、成本难以估计 缺乏或不完整、不一致的文档给维护带来困难 用户对软件需求的描述往往不够精确,有遗漏,有二义 软件开发人员对需求的理解与用户的本来愿望有差异 大型软件项目需多人协同完成,缺乏管理经验 开发人员不能有效地、独立自主地处理大型软件的全部关系 缺乏有力的方法学和工具的支持 软件项目的特殊性和人类智力的局限性 克服途径 消除错误的概念和做法 推广使用成功的开发技术和方法 使用软件工具和软件工程支持环境 加强软件管理,2.软件工程,软件工程定义 软件工程框架 软件工程基本原理 软件工程方法,软件工程定义,Fritz Bauer:软件工程是为了经济地获得可靠的和能在实

12、际机器上高效运行的软件而建立和使用的好的工程原则 IEEE: 软件工程是(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中;(2)(1)中所述方法的研究 计算机科学技术百科全书:软件工程是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法制作软件的工程,软件工程框架,目标 生产具有正确性、可用性以及价格合宜的产品 过程 生产一个最终满足需求且达到工程目标的软件产品所需要的步骤 原则 选取适宜的开发模型 采用合适的设计方法 提供高质量的工程支持 重视软件工程的管理,软件工程基本原理,确保软件储安平质量和开发效率原理的最小集合7条基本原理 用分

13、阶段的生命周期计划严格管理 坚持进行阶段评审 尽早发现在软件开发过程中犯的错误 实行严格的产品控制 在软件开发过程中不应随意改变需求 采用现代程序设计技术 结果应能清楚地审查 规定开发组织的责任和产品标准,从而使得说得到的结果能够清楚地审查 开发小组的人员应该少而精 承认不断改进软件工程实践的必要性,软件工程方法学,方法学(也称范型):软件生命周期全过程中使用的一套技术的集合 三要素:方法、工具和过程 传统方法学(结构化范型) 要么面向行为,要么面向数据 自顶向下顺序完成各阶段任务 面向对象方法学 对象+类+继承+用消息通信 多次反复迭代的演化过程 降低软件产品的复杂性,提高其可理解性,简化软

14、件开发和维护工作,促进软件重用,3.软件过程,软件过程是软件生存周期中的一系列相关的过程。 过程是活动的集合,活动是任务的集合。 软件工程过程是为了获得高质量软件所需完成的一系列任务框架,它规定了各项任务的工作步骤,软件生存周期,软件生存周期是指软件产品或软件系统从产生、投入使用到被淘汰的全过程。 大体可分为6个阶段: 计算机系统工程 需求分析 设计 编码 测试 运行和维护,计算机系统工程,确定待开发软件的总体要求和范围,以及它与其它计算机系统元素之间的关系 进行成本估算,做出进度安排 进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中作

15、出选择。,需求分析,主要解决待开发软件要“做什么”的问题 确定软件的功能、性能、数据、界面等要求,生成软件需求规约,设计,主要解决待开发软件“怎么做”的问题。 软件设计通常可分为系统设计(也称概要设计或总体设计)和详细设计。 系统设计的任务是设计软件系统的体系结构,包括软件系统的组成成分、各成分的功能和接口、成分间的连接和通信,同时设计全局数据结构; 详细设计的任务是设计各个组成成分的实现细节,包括局部数据结构和算法等。,编码、测试、运行和维护,编码用某种程序设计语言,将设计的结果转换为可执行的程序代码。 测试 发现并纠正软件中的错误和缺陷。测试主要包括单元测试、集成测试、确认测试和系统测试。

16、 运行和维护 在软件运行期间,当发现了软件中潜藏的错误或需要增加新的功能或使软件适应外界环境的变化等情况出现时对软件进行修改。,4.软件过程模型,软件过程模型是软件开发全部过程、活动和任务的结构框架 也称软件开发模型或软件生存周期模型,软件过程模型,典型的软件过程模型有: 瀑布模型(waterfall model) 演化模型(evolutionary model) 增量模型(incremental model) 原型模型(prototyping model) 螺旋模型(spiral model) 喷泉模型(water fountain model) 基于构件的开发模型(component-based development model) 形式方法模型(formal methods model),瀑布模型,主要思想 软件开发过程与软件生命周期是一致的 相邻二阶段之间存在因果关系 需对阶段性产品进行评审,文档驱动,瀑布模型,优点 软件生命周期模型,使软件开发过程可以在分析、设计、编码、测试和维护的框架下进行; 软件开发过程具有系统性、可控性,克服了软件开发的随意性 。 缺点 缺乏灵活性,难以适应需求不明确或需求经常变化的软件开发 开发早期存在的问题往往要到交付使用时才发现,维护代价大,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > 其它

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