收藏 分享(赏)

信息系统工程概论课件3【ppt】.ppt

上传人:无敌 文档编号:1416496 上传时间:2018-07-15 格式:PPT 页数:29 大小:413.01KB
下载 相关 举报
信息系统工程概论课件3【ppt】.ppt_第1页
第1页 / 共29页
信息系统工程概论课件3【ppt】.ppt_第2页
第2页 / 共29页
信息系统工程概论课件3【ppt】.ppt_第3页
第3页 / 共29页
信息系统工程概论课件3【ppt】.ppt_第4页
第4页 / 共29页
信息系统工程概论课件3【ppt】.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、信息系统工程概论(3),符长青博士,第3章 软件工程,软件是计算机中与硬件相互依存的另一部分,包括计算机运行时所需要的各种程序、相关数据及其说明文档。程序是按照事先设计的功能和性能要求执行的指令序列;数据是是程序能正常操纵信息的数据结构;文档是与程序开发维护和使用有关的各种图文资料。现代信息技术设备己成为高度智能和软件化的产品,无论是计算机、通讯、还是网络,软件的工作量都己经大大超过硬件。 软件包含三层含义: (1)个体层次:包括计算机系统中的程序及文档。 (2)整体层次:在特定的计算机系统中所有上述个体层 次软件的总称。 (3)学科层次:开发、维护和使用软件过程中所涉及的 理论、方法、技术所

2、构成的学科。,应用软件的分类,管理信息类 字表处理软件 教育软件 游戏软件 翻译软件 杀毒软件 其他各种应用软件和工具软件,软件的特性,软件是一种逻辑实体,具有抽象性。 软件没有明显的制造过程。软件存在退化、过时和淘汰问题。软件对硬件和环境有着不同程度的依赖性。至今尚未完全摆脱手工作坊式的开发方式。 软件是复杂的,而且以后会更加复杂。软件的成本相当昂贵。软件工作牵涉到很多社会因素。,软件危机,1、 软件危机指的是在计算机软件的开发和维护过程中所遇到的一系列严重问题: (1)软件成本日益增长 (2)软件开发的进度难于控制 (3)估计软件工作量很困难 (4)软件质量难于保证 (5)软件维护困难 2

3、、 软件危机产生的原因: (1)用户需求不明确 (2)缺乏正确的理论指导 (3)软件规模越来越大 (4)软件复杂度越来越高,软件工程,软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法去进行软件的开发和维护的学科。 1软件工程的特点 强调规范化 强调文档化 2软件工程原则 选取适宜开发模型 采用合适的设计方法 提供高质量的工程支持 重视开发过程的管理 3软件工程的内容 软件开发模型、软件开发方法、软件过程、软件工具、软件开发环境、计算机辅助软件工程(CASE)、软件经济学,软件工程方法,软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术及管理方法。 方法:软件工

4、程方法为软件开发提供了“如何做”的技术,是完成软件工程项目的技术手段; 工具:软件工具是人类在开发软件的活动中智力和体力的扩展和延伸,为软件工程方法提供了自动的或半自动的软件支撑环境; 过程:软件工程的过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。,软件工程研究的热点课题,开发工具软件:第一阶段的重点是着眼于提高程序员的工作效率,开发了形形色色的软件开发工具,如编辑、编译、跟踪、排错、源程序分析、反汇编、反编译等工具软件;配套工具箱:第二阶段是把零散的开发工具软件归拢起来,集成为在配套的工具箱;软件工程环境:第三阶段在工具箱的基础上增加了文件管理、数据库支持

5、、版本管理、软件配置管理等功能,逐步形成了所谓的软件工程环境;软件模型:第四阶段软件工程研究的重点转到软件开发模型和生命期方法两个课题上,即如何划分软件开发过程的不同阶段,包括需求分析、概要与详细设计、编程、测试、维护等,而“瀑布模型”的出现就是企图把其他行业中进行工程项目的做法搬到软件行业中来。它强调在编程之前一定要把用户需求彻底弄个明白,以及软件开发工作要分阶段进行。,软件工程方法的基本原理,(1)用分阶段的生命期计划严格管理 (2)坚持进行阶段评审 (3)实行严格的产品控制 (4)采纳现代程序设计技术 (5)结果应能清楚地审查 (6)开发小组的人员应少而精 (7)承认不断改进软件工程实践

6、的必要性,软件开发的生命期方法,软件工程采用的生命期方法就是从时间角度对软件开发和维护的复杂问题进行分解,把软件生存期依次划分为若干个阶段,每个阶段有相对独立的任务,而且比较简单,便于不同开发人员分工协作,从而降低了整个软件开发的难度。 1软件定义时期 (1)问题定义 (2)可行性研究 (3)需求分析 2软件开发时期 (1)总体设计(概要设计) (2)详细设计 (3)编码和单元测试 (4)综合测试 3软件维护时期,软件开发过程模型和开发方法,一、软件开发过程模型 (1)瀑布模型 (2)螺旋模型 (3)快速原型模型 (4)增量模型 (5)喷泉模型 (6)构件组装模型二、软件开发方法 1Parna

7、s方法 2结构化方法(SASD) 3面向数据结构的软件开发方法 (1)Jackson方法 (2)Warnier方法 4面向问题的分析方法(PAM ) 5原型化方法 6面向对象的软件开发方法 7可视化开发方法 8统一建模语言(UML) 9ICASE方法 10软件重用和组件连接,面向对象的软件开发方法,面向对象技术是软件技术的一次革命,在软件开发史上具有里程碑的意义。 随着面向对象编程(OOP)向面向对象设计(OOD)和面向对象分析(OOA)的发展,最终形成面向对象的软件开发方法(OMT)。 面向对象技术基本概念: 对象 类 继承 封装 消息 多态性 构件,常用的程序设计语言,1计算机语言:(1)

8、机器指令;(2)汇编语言;(3)高级语言2基本程序设计语言 BASIC FOPTRAN COBOL C PASCAL LISP C+3第四代语言 VB(Visual Basic) VF (Visual FoxPro) VC (Visual C) Delphi Java SQL(Structure Query Language结构化查询语言) XML(eXtensible Markup Language可扩充标记语言),软件质量特性,(1)精确性 (2)健壮性 (3)安全性(4)通信有效性 (5)处理有效性 (6)设备有效性(7)可操作性 (8)培训性 (9)完备性(10)一致性 (11)可追踪

9、性 (12)可见性(13)硬件系统无关性 (14)软件系统无关性(15)可扩充性 (16)简单性 (17)公用性(18)模块性 (19)清晰性 (20)自描述性(21)结构性 (22)产品文件完备性,软件测试,软件测试通常是指在软件正式投入运行前,对软件用户需求分析、设计和编码的最终复审,是软件质量保证的关键步骤。软件测试的目标是以较少的用例、时间和人力找出软件中潜在的各种错误和缺陷,以确保软件系统的质量。 在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40以上。而在软件开发的总成本中,用在测试上的开销要占30到50。 已经投入使用或市场销售的软件,其中存在的错误和问题很多都和

10、测试的成效有关系。如果测试不充分,那么这些错误和问题会潜伏在软件中,等到用户发现以后,再由开发人员进行维护,改正错误的费用一般是开发阶段的40倍到60倍。,软件测试的目的,软件测试的目标是以较少的用例、时间和人力找出软件中潜在的各种错误和缺陷,以确保软件系统的质量。软件测试目的: 为了发现错误而执行程序的过程。 为了证明程序有错,不是证明程序无错误。 一个好的测试用例是在于它能发现至今未发现的错误。 一个成功的测试是发现了至今未发现的错误的测试。,软件BUG的类型,软件Bug指在计算机程序中存在的一个错误(error)、缺陷(flaw)、故障(fault),这些Bug使程序无法正确的运行。Bu

11、g产生于程序的源代码或者程序设计阶段的疏忽或者错误。 (1)错误(error)即不正确,是指与客观实际不符、不正确的认识、行为、动作等。 (2)缺陷(flaw、defect)指与软件与它的需求不一致的地方,无法正确完成所要求的功能。 (3)故障(fault)是指系统不能执行所要求功能的一种状态。,软件BUG的等级划分,(1)A类(严重Bug) 死循环 由于程序所引起的死机或非法退出 数据库发生死锁 因错误操作导致的程序中断 功能错误 与数据库连接错误 数据通讯错误(2)B类(较严重Bug) 程序错误 程序接口错误 数据库的表、业务规则、缺省值未加完整性等约束条件 (3)C类(一般性Bug) 操

12、作界面错误(包括数据窗口内列名定义、含义是否一致) 打印内容、格式错误 简单的输入限制未放在前台进行控制 删除操作未给出提示 数据库表中有过多的空字段(4)D类(较小Bug) 界面不规范 辅助说明描述不清楚 输入输出不规范 长操作未给用户提示 提示窗口文字未采用行业术语 可输入区域和只读区域没有明显的区分标志,软件测试的基本类型(1),1黑盒测试 黑盒测试也称功能测试或数据驱动测试,它是在已知软件产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,针对软件界面和软件功能进行测试。黑盒测试是一种穷举输入

13、测试方法,测试时只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误 2白盒测试 白盒测试也称结构测试或逻辑驱动测试,允许测试人员对程序内部逻辑结构及有关信息来设计和选择测试用例,对程序的逻辑路径进行测试。测试用例设计的好坏直接决定了测试的效果和结果。检验程序中的每条通路是否都能按预定要求正确工作,而不必顾及它的功能。 3灰盒测试 灰盒测试介于白盒测试与黑盒测试之间,关注输出对于输入的正确性,同时也关注内部表现;但这种关注不像白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态;有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通

14、过白盒测试来操作,效率会很低,因此需要采取灰盒的方法。,软件测试的基本类型(2),4、测试 测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,发现的错误,可以立刻反馈给开发人员,由开发人员及时分析和处理。目的是评价软件产品的功能、可使用性、可靠性、性能和支持。尤其注重产品的界面和特色。5、测试 测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试,开发者通常不在测试现场。测试着重于产品的支持性,包括文档、客户培训和支持产品的生产能力。只有当测试达到一定的可靠程度后,才能开始测试,它处在整个测试过程的最后阶段。,软件测试的阶段步骤,单元测

15、试(模块测试) 针对每个模块进行的测试,可从程序的内部结构出发设计测试用例,多个模块可以平行地对立地测试。通常在编码阶段进行,必要的时候要制作驱动模块和桩模块。组装测试(集成测试) 在单元测试的基础上,将所有模块按设计要求组装成为系统进行测试。测试过程必须精心组织,应提交集成测试计划、集成测试规格说明和集成测试分析报告。确认测试 验证软件功能和性能及其它特性是否与用户需求分析报告的要求一致。系统测试 将软件放在整个计算机环境下,包括软硬件平台、某些支持软件、数据和人员等,在实际运行环境下进行一系列的测试。,软件测试的影响因素,掌握好测试量是至关重要的,测试不足意味着让用户承担隐藏错误带来的危险

16、,过度测试则会浪费许多资源。测试是软件生存期中费用消耗最大的环节,测试费用除了测试的直接消耗外,还包括其它的相关费用。 需要做多少次测试的主要影响因素: 系统的目的和用途 潜在的用户数量 信息的价值 软件开发的水平 软件测试的时机,软件独立测试机构的作用,(1)客观性 独立的软件测试机构只承担软件测试工作,而没有开发任务,因此可以站在公正客观的立场上,对软件错误抱着客观的态度。这种客观的态度可以解决测试中的心理学问题,既能够以揭露软件中错误的态度工作,也能不受发现的错误的影响。经济上的独立性使其工作有更充分的条件按测试要求去完成。(2)专业性 软件独立测试作为一种专业工作,在长期的工作过程中势

17、必能够积累大量实践经验,形成自己的专业优势。同时软件测试也是技术含量很高的工作,需要有专业队伍加以研究,并进行工程实践。专业化分工是提高测试水平,保证测试质量的必然途径。(3)权威性 由于专业优势,委托软件独立测试机构进行软件测试,其得出的测试结果更准确,结论更具信服力。而测试结果常常和对软件的质量评价联系在一起,由专业化的独立测试机构作出的评价,更客观、公正和具有权威性。,软件测试的原则,应当把“尽早和不断地测试”作为软件开发者的座右铭。程序员除了自己检查以外,还要请其他人参与测试工作。设计测试用例时,应该考虑到合法的输入和不合法的输入,以及各种边界条件,特殊情况下要制造极端状态和意外状态,

18、比如网络异常中断、电源断电等情况。要注意测试中的错误集中发生现象,这和程序员的编程习惯有很大关系对测试结果要有一个确认的过程。一般有A测试出来的软件错误,要有B来确认,严重的错误可以召开评审会进行讨论和分析。要制定严格的测试计划,并考虑到测试的风险回归测试的关联性一定要引起充分的注意,避免修改一个错误而引起出现更多错误。要识别和特别关注少数重要的方面,而忽略多数次要的方面,有时候少数的问题足以致命,这些问题将是软件测试结果中重要性最高的错误。测试报告对软件错误的描述,要准确、完整而简练。要妥善保存好测试过程的所有文档。,软件测试的工具,静态分析工具 动态测试工具 测试数据自动化生成工具 模块测

19、试台 测试合成环境,软件黑盒测试的要点,1功能检测要点 2性能检测要点 3强度测试要点 4余量测试要点 5外部接口和人机交互界面检测要点 6安全性检测要点 7恢复性测试要点 8边界测试要点 9敏感性测试要点 10防范计算机病毒检查要点 11回归测试要点 12计算机配置检查要点 13安装性检查要点 14其它专项测试 15数据相关性分析,软件自动测试,软件自动测试方法是利用自动测试工具进行软件测试,测试过程所执行一系列的操作不需要测试人员的介入。排除影响测试的人为因素,降低测试开销 1自动测试脚本技术 (1)线性脚本技术 (2)结构化脚本技术 (3)共享脚本技术 (4)数据驱动脚本技术 (5)关键字驱动脚本技术 2软件自动测试工具 软件开发项目如何选择合适的软件自动测试工具?建议从功能、价格等方面来权衡和选择: (1)功能 报表功能 集成能力 兼容性 (2)价格 (3)连续性和一致性,谢 谢!,第三章,信息论的基本知识,

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

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报