精品课程《软件工程》PPT.ppt
《精品课程《软件工程》PPT.ppt》由会员分享,可在线阅读,更多相关《精品课程《软件工程》PPT.ppt(182页珍藏版)》请在三一办公上搜索。
1、软件工程,软件工程,第一章 概述,使用规范说明,单击此处添加标题,一、软件定义,程序文档数据,按事先设计的功能和性能要求执行的指令序列,能使程序正常操作信息的数据结构,与程序开发、管理、维护和使用有关的图文资料,二、软件的特点和分类,软件是一个逻辑实体,而不是具体的物理实体,因而具有抽象性,软件生产与硬件生产不同,没有明显的制造过程,软件不会用坏,但比较难维护,软件本身是复杂的,使人类能够创造的最复杂的产物,软件本身成本昂贵,软件分类见表1.2,三、软件危机,1、什么是软件危机:如何开发软件,以满足不断增长,日趋复杂的需求;如何维护数量不断膨胀的软件产品。,2、软件危机的表现,3、产生软件危机
2、的原因,单击此处添加标题,文字内容,文字内容,文字内容,单击此处添加段落文字内容,单击此处添加段落文字内容,单击此处添加段落文字内容,单击添加段落文字单击添加段落文字单击添加段落文字单击添加段落文字。单击添加段落文字单击添加段落文字单击添加段落文字单击添加段落文字。,单击此处添加标题,单击此处添加标题,单击添加内容文字单击添加段落文字单击添加段落文字单击添加段落文字单击添加段落文字。,单击此处添加段落文字内容,单击此处添加段落文字内容单击此处添加段落文字内容,单击此处添加段落文字内容单击此处添加段落文字内容,单击此处添加标题,单击添加,单击添加,单击添加,单击添加,单击添加内容文字,单击添加内
3、容文字,单击添加内容文字,单击添加内容文字,单击此处添加标题,单击此处添加标题,文字内容,文字内容,文字内容,双击添加标题文字,单击此处添加标题,此处添加内容,单击添加段落文字单击添加段落文字,此处添加内容,单击添加段落文字单击添加段落文字,1,2,3,4,5,6,7,双击添加标题文字,此处添加内容,单击添加段落文字单击添加段落文字,此处添加内容,单击添加段落文字单击添加段落文字,此处添加内容,单击添加段落文字单击添加段落文字,此处添加内容,单击添加段落文字单击添加段落文字,此处添加内容,单击添加段落文字单击添加段落文字,双击添加标题文字,单击此处添加标题,单击添加内容文字,单击此处添加标题,
4、单击添加图片标题文字,单击此处添加标题,单击此处添加段落文字内容单击此处添加段落文字内容,单击此处添加段落文字内容单击此处添加段落文字内容,单击此处添加段落文字内容单击此处添加段落文字内容,单击此处添加段落文字内容单击此处添加段落文字内容,文字内容,文字内容,文字内容,单击此处添加标题,单击此处添加标题,单击添加段落文字单击添加段落文字单击添加段落文字单击添加段落文字。单击添加段落文字单击添加段落文字单击添加段落文字单击添加段落文字。,单击此处添加标题,此处添加标题,单击添加段落文字单击添加段落文字,单击添加段落文字单击添加段落文字,单击添加段落文字单击添加段落文字,单击添加段落文字单击添加段
5、落文字,单击此处添加标题,单击此处添加段落文字内容单击此处添加段落文字内容,双击添加标题文字,单击此处添加段落文字内容单击此处添加段落文字内容,单击此处添加段落文字内容单击此处添加段落文字内容,双击添加标题文字,单击此处添加标题,内容,标题,单击此处添加段落文字内容,单击此处添加段落文字内容,单击此处添加段落文字内容,内容,内容,此处添加内容,单击添加段落文字单击添加段落文字,此处添加内容,单击添加段落文字单击添加段落文字,此处添加内容,单击添加段落文字单击添加段落文字,The end谢谢 本次课程到此结束,25,软件生存周期及模型,第二章,26,一、软件工程研究内容,27,1、软件生存周期(
6、Life cycle),软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。软件生存周期通常包括可行性研究和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等活动(GB8567中规定)。,28,29,2、软件生存周期模型概念,模型是为了理解事物而对事物作出的一种抽象,它忽略了不必要的细节,是事物的一种抽象形式。,软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。它确立了软件开发和演绎中各阶段的次序以及各阶段活动的准则,确立开发过程所必须遵守的规定和限制等。,目前有瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等。,2023/9/14,30,3、软件工程的传
7、统途径,瀑布模型(Waterfall Model),31,二、瀑布模型,瀑布模型,1970年由W.Royce提出,瀑布模型是传统软件工程的基础。瀑布模型的基本思想是将软件生命周期划分为若干明确定义的阶段。每一阶段活动具有严格性,要实施评审工作,以便及早发现错误,改正错误;以文档形式驱动的,上一阶段的结果作为本阶段的输入;,32,1、软件定义时期,基本任务:回答 要解决的问题是什么?该问题有行的通的解决办法吗?若有解决问题的办法,则需要多少费用、资源、时间?结束标准:提出关于问题性质、工程目标和规模的问题定义书面报告;提出可行性研究报告;若问题值得去解决,制定项目开发计划。,可行性研究和项目开发
8、计划,需求分析,基本任务:回答“为了解决这个问题,目标系统必须做什么”,确定目标系统的功能。结束标准:给出软件需求说明书,33,2、软件开发时期系统设计,概要设计,基本任务:回答“概括地说,应如何解决这个问题”。把确定的各项功能需求转换成需要的体系结构。设计软件的结构,确定程序由哪些模块组成及模块间的关系,同时设计该项目的应用系统的总体数据结构和数据库结构。结束标准:给出概要设计文档。,详细设计,基本任务:回答“应怎样具体地实现这个系统”。为每个模块完成的功能进行具体描述,把功能描述转变为精确的、结构化的过程描述。结束标准:设计出程序的详细规格说明。,34,2、软件开发时期系统实现,编码,基本
9、任务:把每个模块的控制结构转换成计算机可接受的程序代码。写出的程序应是结构好,清晰易读,并且与设计一致。结束标准:以某种程序设计语言表示的源程序清单。,测试,基本任务:通过各种类型的测试使软件达到预定的要求。结束标准:软件合格,能交付用户使用。,35,3、软件维护时期,基本任务:通过各种必要的维护活动使系统持久地满足用户需要。,36,4、技术审查和管理复审,技术审查是从技术角度进行的审查,是保证软件质量和降低软件成本的重要措施。在每一阶段结束前进行,对于持续时间很长的开发阶段,在阶段中间还要根据需要进行多次正式的或非正式的技术审查。技术审查通常由技术专家组成的审查小组来承担审查工作。审查过程包
10、括:准备和阅读被审文档、开审查会、返工、复查。管理复审的主要任务是在软件生存周期的每个重要的里程碑,对工程项目的成本、实际花费的经费、投资回收的前景、项目的进度等经济因素从管理角度进行审查。从管理角度对软件开发工程进行复审,是对工程进行管理和控制的主要手段,对发现的问题可以及时采取措施加以解决,必要时甚至可以取消开发工程以避免更大的损失。,37,软件产品,现有系统目标系统,Capability Maturity Model forsoftware,38,5、瀑布模型特点,是一个理想化过程。会掩饰项目中真正的风险,当你太晚发现它们时已无济于事。过程逆转性很差,因为上游的错误会在下游进行发散性传播
11、。所以逆转会造成很大损失。缺乏灵活性;特别是无法解决软件需求不明确或不准确的问题后期错误,修正代价高。纯瀑布模型的缺点是在项目开始的时候,在设计工作完成前和代码写出来前,很难充分描述需求。瀑布模型最主要的问题是缺乏灵活性。必须在项目开始前说明全部需求。但这恰恰是非常困难的。,6、瀑布模型适用场合,当有一个稳定的产品定义和很容易被理解的技术解决方案时,纯瀑布模型特别合适当你对一个定义得很好的版本进行维护或将一个产品移植到一个新的平台上,瀑布模型也特别合适。纯瀑布模型能够降低管理费用,因为你可以预先完成所有计划。对于那些容易理解但很复杂的项目,采用纯瀑布模型比较合适,因为可以用顺序方法处理问题。在
12、质量需求高于成本需求和进度需求的时候,它尤为出色。当开发队伍的技术力量比较弱或者缺乏经验时,瀑布模型更为适合。,39,40,7、瀑布模型变种:V型模型,该方法是对瀑布模型的修正,强调了验证活动,41,8、瀑布模型变种:生鱼片模型,把阶段重叠起来的瀑布模型起源于日本硬件开发模型(富士通施乐),软件概念,需求分析,架构设计,详细设计,编码和调试,系统测试,42,8、瀑布模型变种:生鱼片模型,传统的瀑布模型强调阶段之间最小的重叠,而生鱼片模型强调大幅度的重叠,即在需求分析完成之前就可以进行架构设计和部分详细设计纯瀑布模型强调在任意两个阶段交接时,文档从一个团队交给另一个完全隔离的团队,但是如果一个团
13、队完成各个阶段任务时,可以没有那么多文档。问题:缺点是什么?生鱼片模型因为阶段重叠,因而里程碑不明确,很难有效地进行过程跟踪和控制。,43,9、瀑布模型变种:具有子项目的瀑布模型,纯瀑布模型的一个问题是必须完成全部的架构设计后才能进行详细设计,但是,整个系统中有些部分可能有些特殊性,可以有自己的步骤,即将这些部分划分为为子项目。问题:该模型有何问题?这种方法的主要风险是相关性无法预料。,44,10、瀑布模型变种:能够降低风险的瀑布模型,纯瀑布模型要求在开始架构设计前,必须将用户的所有需求都搞清楚,但是实际中是很困难的。可降低风险的瀑布模型是在顶端,即需求分析和架构设计阶段引入螺旋以便降低风险。
14、在该螺旋中,先开发一个用户界面原型,采用系统情节串联图版(system storyboarding)引导用户提出需求,记录用户与系统的交互操作方式,或者采用其它需求获取方法。,45,演化模型,先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。,46,三、螺旋模型,螺旋模型将瀑布模型与演化模型结合起来,并且加入两种模型均忽略了的风险分析。螺旋模型沿着螺线旋转,自内向外每旋转一圈便开发出更完善的一个新版本。制定计划 确定软件目标,选定实施方案,弄清项目开发的限制条件;风险分析 分析所选方案,考虑如何识别和消除风险;实施工程 实施软件开发客户评估
15、评价开发,提出修正建议。,47,三、螺旋模型,螺旋模型是一种风险驱动的模型。螺旋模型需要有相当丰富的风险评估经验和专门知识。,2023/9/14,48,Risk analy-sis,Prototype 1,Simulations,models,benchmarks,Requirements plan,life-cycle plan,Concept of operation,Prototype 2,Risk analysis,Software requirements,Requirements validation,Develop-ment plan,Risk analysis,Prototyp
16、e 3,Software product design,Design validation and verification,Integration and test plan,Risk analysis,Operational prototype,Detailed design,Unit test,Code,Integration and test,Acceptance test,Implementation,Plan next phases,Develop,verify next-level product,Determine objectives,alternatives,constra
17、ins,Evaluate alternatives,identify,resolve risks,Cumulative cost,Progress through steps,The spiral model,49,螺旋模型,决定目标、方案和限制,评价方案、识别风险、弱化风险,开发、验证、下一级产品,计划下一阶段,集成测试,50,四、增量模型,需求分析,设计,编码,测试,第1块,第1次集成,第2次集成,第3次集成,第N次集成,第4次集成,第1块,第1块,第1块,第1块,第N块,第4块,第3块,第2块,第2块,第2块,第2块,第3块,第3块,第4块,51,四、增量模型,遵循递增方式进行软件开发。
18、开发一部分,向用户展示一部分。增量模型是一种非整体开发的模型。适用条件:1)使用面向对象语言或第四代语言;2)需求可能发生变化,客户接受分阶段交付;3)分析设计人员对应用领域不熟悉,难以一步到位;4)项目风险高;,52,五、原型模型-概念,快速原型模型:先开发一个“原型”软件,完成主要功能,展示给用户并征求意见,然后逐步完善。探索型原型:用于需求分析阶段;实验型原型:用于设计阶段;演化型原型:软件开发全过程,及早向用户提交一个原型系统。原型运用方式:抛弃策略和附加策略。,53,五、原型开发过程-开发步骤,原型开发步骤:快速分析:分析人员与用户配合,迅速确定系统的基本要求。要根据原型所要体现的特
19、征,描述基本需求。关键是要注意分析描述内容的选取。构造原型:在软件工具支持下尽快实现一个可运行的系统。运行原型:是发现问题、消除误解、开发者与用户充分协调的一个步骤。评价原型:评价原型的特性,纠正误解与错误,增添新要求或提出要求变动,提出全面的修改意见。修改:原型开发的循环。,54,五、原型模型的评价,原型的优点:可及早为用户提供有用的产品。可及早发现问题,随时纠正错误。减少技术、应用风险,缩短开发时间,减少费用。促使用户主动参与开发活动,促进各类人员的协调,减少误解,适应需求的变化,能有效提高系统质量。原型存在的问题:缺乏丰富而强有力的软件工具和开发环境。缺乏有效的管理机制,还未建立起自己的
20、开发标准。对设计人员水平和开发环境要求较高。在多次重复改变原型的过程中,程序员会感到厌烦。系统的易变性对测试有一定影响,难于做到彻底测试,更新文档较为困难。,2023/9/14,55,五、原型模型-快速原型法,快速原型法(Prototyping)适用于用户驱动的系统(即需求模糊或随时间变化的系统),Prototype,Feedback,Modification,56,快速原型模型,57,六、喷泉模型,主要用于采用面向对象技术的项目喷泉体现迭代和无间隙的特征软件的某些部分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分在分析、设计、实现等各项活动之间无明显边界,58,六、喷泉模型,
21、体现了迭代和无间隙的特性。系统某个部分常常重复工作多次,相关对象在每次迭代中随之加入演进的软件成分。无间隙是指在各项开发活动,即分析、设计和编码之间不存在明显的边界。喷泉模型是对象驱动的过程。,59,60,七、迭代模型(RUP模型),Rational Unified Process,初始,精化,构建,移交,9个核心流程,对初学者来说,使用比较困难,61,八、智能模型,智能模型是基于知识的软件开发模型,它把瀑布模型和专家系统综合在一起。该模型在各个开发阶段都利用了相应的专家系统来帮助软件人员完成开发工作。为此,建立了各个阶段的知识库,将模型、相应领域知识和软件工程知识分别存入数据库。以软件工程知
22、识为基础的生成规则构成的专家系统与包含应用领域知识规则的其他专家系统相结合,构成该应用领域的开发系统。,62,63,64,九、软件生存周期模型的剪裁,在一个成熟的IT企业或软件组织内部,通常要根据各种软件开发模型的特点,结合本单位的开发经验和行业特点的具体实际,还需要定制适合本单位的“生存周期模型裁剪指南”,有针对性地对选定的软件开发模型中定义的生存周期,进行适当剪裁,使它完全适合于本单位的需求。所谓裁剪,就是对原模型中定义的内容进行增、改、删,去掉对本单位不适用的内容,同时进一步细化,从而构成了完全适合本单位的“软件生存周期模型裁剪指南”。该指南在软件组织内部,专供高层经理和项目经理在软件策
23、划中选取软件开发模型时使用。,65,在软件开发过程中必须遵循的软件工程原则有:抽象与自顶向下、逐层细化信息隐蔽和数据封装模块化局部化确定性一致性和标准化完备性和可验证性,十、软件工程原则,66,软件工程的基本原理有:按软件生存期分阶段制定计划并认真实施;坚持进行阶段评审;坚持严格的产品控制;使用现代程序设计技术;明确责任,使得工作结果能够得到清楚的审查;用人少而精;不断改进开发过程。,十一、软件工程的基本原理,67,案例分析,整定软件采用了以原型模型为主的软件开发模型。故障分析是电力系统中非常基本的运算,算法比较成熟,软件用户对此模块的功能也较熟悉,需求变动相对较小,因而本功能模块可以采用瀑布
24、模型。但由于我们已有故障分析程序,只需对该程序的接口、部分功能算法进行修改和调整,所以采用原型模型较为合适。软件开发阶段中重点关注需求分析阶段,弄清楚已有程序与用户需求间的差距。图形建模在建模范围方面基本明确,但在具体内容方面仍有不确定性,原因是用户对此功能模块的想法还不够清晰,通常用“待基本的出来后再讨论”来回答一些细节问题。此外,我们有以前其他项目的图形建模软件基础,所以本模块采用了演化型原型模型,采用附加策略。先在以前图形建模的软件基础上去除一些不需要的内容和添加新的内容,向用户提交初步的原型系统,然后再根据用户的意见进行修改,在反复多次中才达成需求的彻底清晰,此时本模块软件也可以基本开
25、发完成。整定计算是专业性很强的内容,通常需要较多的整定人员工作经验,而整定经验的获得往往无法一次完成,因此开发方需要经常与用户交流沟通。此外,整定计算模块用户最关心的是软件的可用性,即计算过程是否方便、透明,计算结果是否合理。因此,整定计算也采用了原型模型,以某种原理的保护为例反复设计与修改整定的流程,直到满足用户的可用性和实用性为止,其他原理的保护整定则以此为模板进行开发。,68,总结,掌握:软件生存期各个阶段的基本任务;软件生存期模型。了解:软件生存期的各种模型及特点。,69,第三讲,软件要求定义,70,学习内容,可行性研究项目开发计划软件需求分析,71,项目来源,合同:为别人做;,立项:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 精品课程 PPT
链接地址:https://www.31ppt.com/p-6012976.html