软件工程1.ppt

上传人:sccc 文档编号:4875819 上传时间:2023-05-20 格式:PPT 页数:44 大小:464.05KB
返回 下载 相关 举报
软件工程1.ppt_第1页
第1页 / 共44页
软件工程1.ppt_第2页
第2页 / 共44页
软件工程1.ppt_第3页
第3页 / 共44页
软件工程1.ppt_第4页
第4页 / 共44页
软件工程1.ppt_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《软件工程1.ppt》由会员分享,可在线阅读,更多相关《软件工程1.ppt(44页珍藏版)》请在三一办公上搜索。

1、软件工程,陈惠明,第1章 绪论,1.1软件危机1.1.1软件的定义1.1.2软件的特征1.1.3软件危机1.2软件工程学的范畴1.2.1软件开发方法学1.2.2软件工具1.2.3软件工程环境12.4软件工程管理,1.1软件和软件危机,1.1.1软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括程序正常执行所需的数据,以及有关描述程序操作和使用的文档。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。软件=程序+数据+文档,1.1.2 软件的特征,1.软件开发不同于硬件设计 软件设计更依赖于设计

2、人员的业务素质、智力以及人员组织、合作和管理,而硬件设计与人的关系较小;硬件设计成本占整个产品成本的一小部分;软件设计成本占整个产品成本的大部分2.软件生成不同于硬件制造 硬件制造过程复杂,期间可能引入质量问题;软件的制造只是简单的复制过程;3.软件维护不同于硬件维护 硬件运行初期有较高的故障率,修复故障后故障率下降到一个较低和稳定的水平,随着时间的推移故障率会再次升高,这是因为硬件将受到磨损的损害,达到一定程度就报废;软件是逻辑产品,不会磨损和老化,但使用过程的维护却比硬件复杂。,1.1.3 软件危机,软件危机产生的原因 软件维护费用急剧上升,直接威胁计算机应用的扩大;(纠错性维护 完善性维

3、护 适应性维护)软件生产技术进步缓慢是加剧软件危机的重要方面;(缺乏正确的方法论指导软件开发),我国软件文档规范,计算机软件开发规范计算机软件需求说明编制指南计算机测试文件编制规范计算机软件配置管理计划规范,1.2 软件工程学范畴,“软件工程”1968年北大西洋公约组织在联邦德国提出。软件工程:把软件当成一种工业产品,采用工程化的原理与方法对软件进行计划、开发和维护。,软件工程学,软件工程学,软件开发技术,软件工程管理,软件开发方法学,软件工具,软件工程环境,软件管理学,软件经济学,软件度量学,1.2.1 软件开发方法学,早期:软件开发无章可循,属于个人活动,60年代:结构化程序设计,80年代

4、:面向对象程序设计,1.2.2 软件工具,编译程序编辑程序连接程序操作系统,1.2.3 软件工程环境,方法与工具相结合,加上配套的软硬件支持就形成了环境。,1.2.4 软件工程管理,软件工程管理的目的是为了按照进度及预算完成软件计划,实现预期的经济和社会效益。包括:成本估算、进度安排、人员组织和质量保证等多方面的内容,还涉及管理学、度量学和经济学多个学科。,1.3软件工程的发展,1.3.1 3种编程范型:1.过程式编程范型2.面向对象编程范型3.基于构件技术的编程范型,1.3.2 3代软件工程,1.从编程范型到软件开发过程2.软件工程的分代传统软件工程以结构化程序设计为基础结构化分析结构化设计

5、面向过程编程软件测试面向对象软件工程以面向对象程序设计为基础面向对象分析与对象抽取对象详细设计面向对象的编码与测试基于构件的软件工程以软件复用为目标、领域工程为基础领域分析与测试计划制定领域设计建立可复用构件按“构件集成模型”查找和集成构件,1.4 软件工程的应用,1.4.1 在各种规模软件开发中的应用1.4.2 软件工程的成就与发展展望,第2章 软件生存周期与软件过程,2.1 软件生存周期2.2传统软件工程2.3软件演化模型2.4形式化方法模型2.5统一过程和敏捷过程2.6软件可行性研究,2.1 软件生存周期,需求分析,软件分析,软件设计(总体设计和详细设计),编码(测试),软件测试,运行维

6、护,2.2 传统软件过程,2.2.1瀑布模型1.阶段间的顺序性和依赖性2.推迟实现的观点3.保证质量的观点4.存在问题:只有开发人员能够做出准确的需求分析,才能够得到预期的结果,用户需求,需求分析,需求规格说明书,软件分析与总体设计,软件结构图,详细设计,模块说明,编码,系统测试,确认测试,综合测试,单元测试,程序清单,瀑布模型的阶段与文档,2.2.2 快速原型模型,首先建立一个能够反映用户主要需求的原型,让用户实际看一下未来系统的概貌,以便判断哪些功能是符合需要的,哪些方面还需要改进。然后将原型反复改进,直至建立完全符合用户要求的新系统。,需求,原型开发,原型评价,最终系统设计,最终系统实现

7、,快速原型法的过程模型,2.3 软件演化模型,2.3.1增量模型2.3.2螺旋模型计划风险分析建立原型用户评审2.3.3构件集成模型,增量模型,增量1:,需求,设计,实现和集成,交付客户,增量2:,需求,设计,实现和集成,交付客户,增量3:,需求,设计,实现和集成,交付客户,增量n:,需求,设计,实现和集成,交付客户,2.4 形式化模型,2.4.1转换模型2.4.2净室模型,2.5 统一过程和敏捷过程,2.5.1统一过程 描述了软件开发中各个环节应该做什么、怎么做、什么时候做以及为什么做,描述了一组以某种顺序完成的活动。其结果是一组有关系统的文档,例如模型和其它一些描述,以及最初问题的解决方案

8、等。2.5.2敏捷过程 是一种以人为核心、以迭代方式循序渐进进行开发的方法,其软件开发的过程称为敏捷过程。在这一过程中软件项目被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。,需求,分析,设计,实现,测试,初始,细化,构造,迁移,迭代1,迭代2,迭代n-1,迭代n,统一过程,1.初始阶段对需求有一个大概的了解,确定系统中大多数角色和用例,但此时的用例是简要的划分主要子系统,给出系统的体系结构概貌分析项目执行的风险考虑时间、经费、技术、项目规模和效益等因素制定开发计划,统一过程,2.细化阶段进行需求分析进行技术风险分析进行技能风险分析进行政策风险分析进行高层分析和设计,并

9、作出结构性决策产生简要体系结构,包括用例列表、领域概念模型和技术平台等为构造阶段制定计划,统一过程,3.构造阶段 识别出剩余用例4.迁移阶段 完成最后的软件产品和验收测试,并完成用户文档的编制和用户培训工作。,敏捷过程,1.敏捷开发的原则个人和交互胜过过程和工具可以运行的软件胜过面面俱到的文档客户合作胜过合同谈判响应变化胜过遵循计划,敏捷过程,2.敏捷过程开发应遵循的12条原则通过尽早地、不断地提交有价值的软件使客户满意即使到了开发后期,也欢迎改变需求。敏捷过程利用变化为客户提供竞争优势以几个星期到几个月为周期,尽快不断地提交可运行的软件在整个项目开发期间,业务人员和开发人员必须天天在一起工作

10、以积极向上的员工为中心,建立项目组,给他们提供所需的环境和支持,并对他们的工作予以充分的信任在团队内部,最有效、效率高的传递信息的方法,就是面对面的交流测试项目进展的首要依据是可运行的软件敏捷过程提倡可持续的开发、责任人、开发者和用户应该为能够保持一个长期的、恒定的开发速度而努力,敏捷过程,2.敏捷开发应遵循的12条原则时刻关注技术上的精益求精和好的设计,以增强敏捷能力简单是最根本的最好的架构、需求和设计出于自组织的团队每隔一定时间,团队要反省如何才能更有效地工作,然后相应地调整自己的行为,2.5.3极限编程,1.价值观交流、简单、反馈和勇气即:加强交流;从简单做起;寻求反馈;勇于实事求是A2

11、.过程采用循环迭代的开发方法,将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈及其他一系列的方法,使开发人员和客户都可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时调整开发过程。,极限编程,极限编程的12个核心实践完整团队计划对策(发布计划和迭代计划)测试(先编测试后写代码)简单设计结对编程小软件版本设计改进持续集成,极限编程,极限编程的12个核心实践代码集体共有编码标准(统一的编码标准,包括命名、注释、格式等)系统比喻可持续的速度,2.6 软件的可行性研究,2.6.1 可行性研究的内容和步骤1.研究的内容A.经济可行性B.技术可行性C.运行可行

12、性D.法律可行性2.研究的步骤A.对当前系统进行调查和研究B.导出新系统的解决方案C.提出推荐的方案D.编写可行性论证报告,可行性研究,2.6.2软件风险分析1.风险识别以下是常见的风险子类与需要检查的内容A.产品规模风险B.商业影响风险C.与客户相关的风险D.过程风险E.技术风险F.开发环境风险G.人员结构和经验风险2.风险预测A.建立风险可能性尺度B.估计对产品和项目的影响3.风险的驾驭和监控A.与在职人员协商,了解其可能流动的原因B.在项目开始前,把缓解这些流动的相关工作列入风险驾驭计划C.项目开始时,做好人员流动的准备,并采取措施确保一旦人员离开时,项目仍能继续D.制定文档标准并建立一

13、种机制,保证文档都能及时生产E.对所有工作都进行仔细审查,使更多的人能够按计划进度完成自己的工作F.对每个关键性技术岗位注意培养后备人员,2.6.3项目实施计划,1.项目实施计划2.质量保证计划3.软件测试计划4.文档编制计划5.用户培训计划6.综合支持计划7.软件分发计划,第3章 结构化分析与设计,3.1概述3.1.1结构化分析设计的由来SA structure AnalysisSDstructure Design,2 SA和SD的流程,结构化分析(工具:DFD、PSPEC)分析模型(分层 DFD图)+SRS结构化设计(工具:SC图)初始化模型最终设计模型,3.基本任务和指导思想,(1)结构化分析建立分析模型编写需求规格说明书主要指导思想抽象和分解(2)结构化设计软件设计=总体设计+详细设计SC图需分两步完成软件设计指导思想分解和细化,3.1.2 SA模型的组成与描述,例 3.1 教材销售系统(1)通过对现实环境的调研,获取当前系统的具体模型(2)分析需求,建立系统分析模型,提炼出当前系统的逻辑模型(3)整理综合需求,编写系统需求规格说明书(4)验证需求,完善补充对目标系统的描述,

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号