【教学课件】第1章软件开发方法(二)软件工程.ppt
《【教学课件】第1章软件开发方法(二)软件工程.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第1章软件开发方法(二)软件工程.ppt(76页珍藏版)》请在三一办公上搜索。
1、第1章 软件开发方法(二)软件工程,计算机教学实验中心,第2|76页,主要内容,软件工程软件工程的目标软件工程的原理软件开发活动软件工程方法学,“软件工程是一种描述规范。”Michael Jackson,软件工程概述,第4|76页,软件工程专家Boehm定义运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。IEEE1983年给出的定义以优质、高效、低成本为目标,研究开发、运行和维护软件以及使之退役的系统方法。其中,“软件”的定义为:计算机程序、方法、规则、相关的文档资料以及在计算机上运行时所必需的数据。本教科书给出的定义运用系统的、规范的和可定量的方法
2、来开发、运行和维护软件。,第5|76页,软件工程学,软件工程是一门交叉学科,涉及到计算机科学、管理科学、工程学和数学。软件工程的理论、方法、技术都是建立在计算机科学的基础上;用管理学的原理、方法进行软件生产管理;用工程学的观点进行费用估算、制定进度和实施方案;用数学方法建立软件可靠性模型以及分析各种算法。,了解并掌握软件的开发步骤、方法、准则。为了:克服、解决“软件危机”改进“软件生产”方法、工具提高软件的生产率,为什么学习软件工程?,第7|76页,软件工程的目标,开发生产尽可能多的软件产品;提高软件的生产效率;满足应用的功能需要和具有较好的软件性能;能按时、按质完成软件开发任务;降低软件开发
3、成本。,第8|76页,软件工程原理,自1968年提出“软件工程”的概念以来,专家学者又陆续提出了100多条关于软件工程的准则。著名软件工程专家于1983年发表的一篇论文中提出了软件工程的七条基本原理。他认为这七条原理是确保软件产品质量和开发效率的最小准则集合。,第9|76页,软件工程七条基本原理,用分阶段的生命周期计划严格管理坚持进行阶段评审实行严格的产品控制采用现代程序设计技术结果应能清楚地审查开发小组人员少而精承认不断改进软件工程实践的必要性,第10|76页,软件开发活动,软件工程过程是由一系列软件工程的阶段任务和活动组成。1995年ISO将软件生存周期的活动和任务划分为3个过程:主要过程
4、(需求、设计、构造、测试和维护)支持过程(软件配置、软件工程管理、软件过程和软件质量)组织过程(基础设施建设、工具和方法、改进和培训),第11|76页,一.主要过程,主要过程包括的软件开发活动和任务是:软件需求软件设计软件构造软件测试软件维护,第12|76页,1、软件需求,任务:收集、分析、理解、确定用户的要求;然后把用户的要求精确、完整地描述表达出来。目的:要回答“要解决什么问题?”,既系统“做什么?”。分两步骤:可行性研究、制定软件开发计划结果:可行性报告、软件计划、需求说明书需求说明书是让用户理解:“什么是他们真正需要的”。,第13|76页,了解用户需求有关的问题,什么是需求?希望,功能
5、,限制,必需品,任何必要的东西;什么时候?从确定方案开始;为什么?用户的需求是开发需要的依据;来自哪里?来自用户,工业标准,和实践经验;如何实现?使所有相关的人参与需求分析活动,通过有效的交流实现;谁来做?用户,工程管理人员,开发人员,维护人员。,第14|76页,需求分析的难点,问题的复杂性。涉及因素多而;如运行环境和系统功能等。交流障碍。涉及不同类型人员较多,知识背景、角度、角色的不同;不完备性和不一致性。用户对问题的陈述有矛盾、片面性等造成。需求易变性。需求是变化的。,第15|76页,需求活动,识别问题 通过调研和收集资料,了解用户的确切需求,并将用户提出的功能行为和特殊要求等用双方都能理
6、解的表达方式逐条列出。在整个分析期间要和用户充分协商。可行性研究 对于大型复杂问题,要对用户的要求及实现环境从技术、经济和社会因素三个方面进行可行性研究,以确定问题是否可解。分析建模 建立软件求解模型;信息、行为和表示。需求规格化及编写文档 需求规格说明书、初步用户使用手册等。,第16|76页,2、软件设计,任务:给出实现系统的实施蓝图。目的:要回答“如何解决该问题?”,既系统“怎样做?”。步骤:概要设计:解决系统的模块划分、模块的层次结构及数据库设计。详细设计:解决每个摸块内部算法和数据结构。结果:系统设计说明书和模块功能说明书,第17|76页,软件设计工作,软件设计要做的工作总的可以归结为
7、:软件系统结构(软件结构)设计、数据设计、界面设计和过程设计。设计办法是功能分解,包括:采用某种设计方法,将一个复杂的系统按功能划分成模块;确定每个模块的功能;确定模块之间的接口,即模块之间传递的信息;评价模块结构的质量。,第18|76页,软件设计准则,(1)软件结构准则;分层结构、便于控制;软件结构的深度和宽度要适中;具有合理的扇出和扇入数。(2)模块化准则;分解复杂问题;(3)模块独立性准则;应使模块之间和与外部环境之间接口的复杂性尽量地减小;模块应具有低耦合、高内聚;(4)数据和过程描述清晰、可区分(表达式);(5)成果可重复。,第19|76页,软件设计方法,面向数据流的设计方法;又进一
8、步细分为变换流和事务流方法;结构化设计方法;面向数据结构的设计方法;Jackson方法;Warnier方法 面向对象方法,第20|76页,3、软件构造,任务:根据设计说明书中每个模块的控制流程编写出相应的源程序。目的:写出高质量的代码和相应的文档。构造要注意使系统更易于使用和系统的可重用性。选择合适的开发工具及系统软件、数据库软件、中间件等。制定编程规范。结果:源程序和文档,第21|76页,4、软件测试,任务:检查、发现程序中的错误,提高系统可靠性。目的:保证系统的正确性、可靠性和可用性。回答:“该系统是否能实现规定的操作?”。方式:模块测试、组装测试、确认测试和系统测试结果:测试报告和软件修
9、改报告等。,第22|76页,测试包括,单元测试。对一个模块的测试,一般以白盒法测试为主,多个模块可以并行进行。集成测试。最终将本项目所有模块集成在一起测试,交出完整程序产品。确认测试。以用户为主的测试。证实系统能否正确地实现其功能。系统测试。软件只是整个应用系统的一部分。最后要集成为一个整体,包括硬件、软件以及相关的其它设备。此时的测试称系统测试。,第23|76页,测试与测试,阿尔法测试:对于商品软件在研制方有客户(订货方)参与的确认测试叫阿尔法测试。贝塔测试:指在若干客户场地由客户组织,最终用户参与的测试,此时所有文档均予冻结,作为本软件版本的基线。对于新软件,改版则为里程碑。,第24|76
10、页,设计测试用例应考虑的问题,界面:内界面主要检查参数个数及类型匹配。外界面主要检查I/O文件、数据格式、类型匹配。模块的数据结构:类型是否不正确或不一致?初始化、缺省值使用情况;变量名拼错;上、下界溢出等数据异常,测试能否正确处理等。边界条件:保证在边界值的情况下模块依然可以正确操作,值出界时要有正确反应。独立路径:保证至少所有语句都要执行一次,每个条件或子条件都执行一次更好。错误处理路径:不管程序有无异常处理都要察看出错处理路径。特别要考察是否死机。,第25|76页,程序调试,调试是在测试发现错误之后排除错误的过程。调试过程会发生两种结果:找到原因并把问题排除;没找到问题的原因。调试是软件
11、开发过程中最艰苦的脑力劳动。在调试过程中遇到的错误有所不同,错误的后果越严重,查找错误原因的压力也越大。通常,压力会导致软件开发人员在改正一个错误的同时可能引入更多的错误。,第26|76页,调试策略,试探法。大概分析、估计错误的位置。回溯法。确定最先出现“症状”的地方,然后沿程序的控制流程往回追踪源程序,直到找出错误源为止。对分查找法。若已知程序中若干个关键点的正确值,然后用调试工具在关键点附近处输入正确值;若输出正确,则故障在前半部分;否则,再查后半部分。归纳法。从线索出发,通过分析线索之间的关系而找出故障。主要步骤为:收集有关数据,组织数据,导出假设,证明假设。,第27|76页,调试的启发
12、性原则,这部分内容大多是心理学的问题:要思考,不要盲目地修改程序,至使错误越改越多;如陷入困境,放到第天去解决;陷入绝境后,要与别人交谈你的问题,或许对你有所启发;避免用试验法。不要在问题没有搞清楚之前,就改动程序,这样对找出错误不利,程序越改越乱,以致于面目全非。,第28|76页,5、软件维护,任务:改正软件系统在使用过程中发现的隐含错误,扩充在使用过程中新的功能要求。目的:维护软件系统的正常运行。回答:系统是否满足用户的应用要求。阶段结果:软件系统的问题报告和软件修改报告。,第29|76页,软件维护的原因,软件的原有功能和性能可能不再适应用户的要求;软件的工作环境改变了(例如,增加了新的外
13、部设备),软件也要做相应的变更;软件运行中发现错误,需要修改。,第30|76页,维护活动分类,校正性维护:指为了识别和纠正错误,修改软件性能上的缺陷,进行确定和修改错误的过程。占整个维护工作的15%。适应性维护:为了使本软件适应硬件和软件的变化而修改软件的过程称为适应性维护。占整个维护活动的25%。完善性维护:增加软件功能、增强软件性能、提高运行效率而进行的维护活动称为完善性维护。占整个维护工作的55%。预防性维护:为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护。只占整个维护活动的5%。,第31|76页,维护活动流程,建立维护机构,组织维护活动:制定维护申请报告;审查维护申请报
14、告并批准;进行维护并做详细记录;复审。,第32|76页,二.支持过程,支持过程包括的软件开发活动和任务是:软件配置管理软件工程管理软件过程软件质量,第33|76页,软件配置管理,软件修改后会发生什么呢?同步更新当两个或两个以上的角色各自工作在同一产物上时,最后一个修改者会破坏前者的工作。通知不达当被若干开发者共享的产品中的问题被解决时,修改未被通知到一些开发者。多个版本软件修改与文档不一致。新版本公布的管理和监控。配置和变更管理提供了准则管理演化系统中的多个变体,跟踪给定软件创建过程中的版本。,第34|76页,软件工程管理,软件工程管理是一门艺术。其主要活动有:管理项目的框架、计划配备执行监控
15、项目的实践准则、管理风险的框架。项目管理是过程管理的主要体现:(1)建立与客户的通信;(2)作计划,定义资源、时限、落实到开发组;(3)风险分析,评估所采用的技术和管理带来的风险;(4)工程,即软件分析与设计;(5)构造和发布,即编码、测试、交付、安装、文档、培训;(6)客户评审,获得客户的反馈。,第35|76页,软件过程,软件过程是生产软件的一系列可预测、可控制活动的步骤,即把用户要求转化为软件产品的一系列有序开发活动的集合。软件过程给出了软件开发所要遵循的基本路线,它的重要性在于它使一组开发活动具有了一致性和结构,从而使在软件开发过程中人们能够使用自己熟悉的技术和工具设计和开发软件,并能保
16、持软件产品和服务在一定程度上的一致性和质量。过程的重要性还在于它能够获取经验并将这些经验传授给别人。但是,Wasserman在1996年提出:“应用类型和组织文化之间的巨大差别使得过程本身规范化是不可能的”。相反,他建议不同类型的软件,使用不同的过程。,第36|76页,软件质量,软件质量保证SQA活动,贯穿于软件过程始终。开发单位成立SQA小组负责全面质量管理。在开发项目计划时就要做出SQA计划。其工作:各种测试 测试软件是否满足规格说明要求。各种评审 为多种人员参与的讨论会,以规格说明或各种标准,规范为准评价各项软件工作。各种审计 以职能人员为主审,审查软件过程产物是否符合标准或规格说明书。
17、报告和记录 所有测试、评审、审计都要详细记录并写出报告,报告和记录均要整理、归档。以上活动均应在软件质量保证计划中列出。,第37|76页,三.组织过程,组织过程包括的软件开发活动和任务是:基础设施建设软件工程工具和方法改进培训,第38|76页,基础设施建设,建立、维护和管理用于软件开发过程中其他活动的硬件和软件的基础设施;建立、维护和管理用于软件开发过程中其他活动的软件开发工具和方法;建立、维护和管理用于软件开发过程中其他活动的开发技术、技术规范和标准;建立、维护和管理用于软件开发过程中其他活动的其他基础设施。,第39|76页,软件工程工具和方法,程序的开发、运行都是在支持软件的基础上作出的。
18、支持软件的总和称之为软件开发环境。早期的环境只有最必要的软件工具;例如语言的编译器、连接器、加载和运行工具、排错、信息显示及编辑工具。称为最小环境工具集。70年代中期,软件工程师迫于软件危机的压力,提出了计算机辅助软件工程(CASE)的设想,开发出一系列工具尽量使软件过程的各项活动自动化、半自动化。相应问题:工具日益增多,给使用者带来不便,例如,各工具的使用方法、格式、参数等差异的问题。这就在客观上产生了对于集成的CASE工具的需求。,第40|76页,计算机辅助软件工程CASE,人们期望,借助CASE工具,有朝一日软件开发人员可以像在自动流水线上生产计算机那样生产软件。CASE 工具具有如下特



- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 软件 开发 方法 软件工程

链接地址:https://www.31ppt.com/p-5658160.html