[工学]软件工程 教程

上传人:油条 文档编号:49706577 上传时间:2018-08-01 格式:PPT 页数:44 大小:557.50KB
返回 下载 相关 举报
[工学]软件工程 教程_第1页
第1页 / 共44页
[工学]软件工程 教程_第2页
第2页 / 共44页
[工学]软件工程 教程_第3页
第3页 / 共44页
[工学]软件工程 教程_第4页
第4页 / 共44页
[工学]软件工程 教程_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《[工学]软件工程 教程》由会员分享,可在线阅读,更多相关《[工学]软件工程 教程(44页珍藏版)》请在金锄头文库上搜索。

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

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

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

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

5、统软件工程以结构化程序设计为基础v结构化分析结构化设计面向过程编程软件测试v面向对象软件工程以面向对象程序设计为基础v面向对象分析与对象抽取对象详细设计面向对象的编码与测试v基于构件的软件工程以软件复用为目标、领域工程为基础v领域分析与测试计划制定领域设计建立可复用构件按“构件集成模 型”查找和集成构件1.4 软件工程的应用v1.4.1 在各种规模软件开发中的应用v1.4.2 软件工程的成就与发展展望第2章 软件生存周期与软件过程v2.1 软件生存周期v2.2传统软件工程v2.3软件演化模型v2.4形式化方法模型v2.5统一过程和敏捷过程v2.6软件可行性研究2.1 软件生存周期需求分析软件分

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

7、发原型评价最终系统设计最终系统实现快速原型法的过程模型2.3 软件演化模型v2.3.1增量模型v2.3.2螺旋模型v计划v风险分析v建立原型v用户评审v2.3.3构件集成模型增量模型增量1:需求设计实现和集成交付客户增量2:需求设计实现和集成交付客户增量3:需求设计实现和集成交付客户增量n:需求设计实现和集成交付客户标识候选构件查找构件若存在则提取构件若不存在则构造构件将新构件存入库中进行下一次迭代2.4 形式化模型v2.4.1转换模型v2.4.2净室模型2.5 统一过程和敏捷过程v2.5.1统一过程v 描述了软件开发中各个环节应该做什么、怎么做、什么时候做以 及为什么做,描述了一组以某种顺序

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

9、行需求分析v进行技术风险分析v进行技能风险分析v进行政策风险分析v进行高层分析和设计,并作出结构性决策v产生简要体系结构,包括用例列表、领域概念模 型和技术平台等v为构造阶段制定计划统一过程v3.构造阶段v 识别出剩余用例v4.迁移阶段v 完成最后的软件产品和验收测试,并完成 用户文档的编制和用户培训工作。敏捷过程v1.敏捷开发的原则v个人和交互胜过过程和工具v可以运行的软件胜过面面俱到的文档v客户合作胜过合同谈判v响应变化胜过遵循计划敏捷过程v2.敏捷过程开发应遵循的12条原则v通过尽早地、不断地提交有价值的软件使客户满意v即使到了开发后期,也欢迎改变需求。敏捷过程利用变化为客户提供 竞争优

10、势v以几个星期到几个月为周期,尽快不断地提交可运行的软件v在整个项目开发期间,业务人员和开发人员必须天天在一起工作v以积极向上的员工为中心,建立项目组,给他们提供所需的环境和支 持,并对他们的工作予以充分的信任v在团队内部,最有效、效率高的传递信息的方法,就是面对面的交流v测试项目进展的首要依据是可运行的软件v敏捷过程提倡可持续的开发、责任人、开发者和用户应该为能够保持 一个长期的、恒定的开发速度而努力敏捷过程v2.敏捷开发应遵循的12条原则v时刻关注技术上的精益求精和好的设计,以增强 敏捷能力v简单是最根本的v最好的架构、需求和设计出于自组织的团队v每隔一定时间,团队要反省如何才能更有效地工

11、 作,然后相应地调整自己的行为2.5.3极限编程v1.价值观v交流、简单、反馈和勇气v即:加强交流;从简单做起;寻求反馈;勇于实事求是Av2.过程v采用循环迭代的开发方法,将复杂的开发过程分解为一个个 相对比较简单的小周期;通过积极的交流、反馈及其他一系 列的方法,使开发人员和客户都可以非常清楚开发进度、变 化、待解决的问题和潜在的困难等,并根据实际情况及时调 整开发过程。极限编程v极限编程的12个核心实践v完整团队v计划对策(发布计划和迭代计划)v测试(先编测试后写代码)v简单设计v结对编程v小软件版本v设计改进v持续集成极限编程v极限编程的12个核心实践v代码集体共有v编码标准(统一的编码

12、标准,包括命名、 注释、格式等)v系统比喻v可持续的速度2.6 软件的可行性研究v2.6.1 可行性研究的内容和步骤v1.研究的内容vA.经济可行性vB.技术可行性vC.运行可行性vD.法律可行性v2.研究的步骤vA.对当前系统进行调查和研究vB.导出新系统的解决方案vC.提出推荐的方案vD.编写可行性论证报告可行性研究v2.6.2软件风险分析v1.风险识别v以下是常见的风险子类与需要检查的内容vA.产品规模风险vB.商业影响风险vC.与客户相关的风险vD.过程风险vE.技术风险vF.开发环境风险vG.人员结构和经验风险v2.风险预测vA.建立风险可能性尺度vB.估计对产品和项目的影响v3.风

13、险的驾驭和监控vA.与在职人员协商,了解其可能流动的原因vB.在项目开始前,把缓解这些流动的相关工作列入风险驾驭计划vC.项目开始时,做好人员流动的准备,并采取措施确保一旦人员离开时,项目仍能继续vD.制定文档标准并建立一种机制,保证文档都能及时生产vE.对所有工作都进行仔细审查,使更多的人能够按计划进度完成自己的工作vF.对每个关键性技术岗位注意培养后备人员2.6.3项目实施计划v1.项目实施计划v2.质量保证计划v3.软件测试计划v4.文档编制计划v5.用户培训计划v6.综合支持计划v7.软件分发计划第3章 结构化分析与设计v3.1概述v3.1.1结构化分析设计的由来vSA structu

14、re AnalysisvSDstructure Design2 SA和SD的流程v结构化分析(工具:DFD 、PSPEC)v分析模型(分层 DFD图)+SRSv结构化设计(工具:SC图)v初始化模型v最终设计模型3.基本任务和指导思想v(1)结构化分析v建立分析模型v编写需求规格说明书v主要指导思想抽象和分解v(2)结构化设计v软件设计=总体设计+详细设计vSC图需分两步完成v软件设计指导思想分解和细化3.1.2 SA模型的组成与描述v例 3.1 教材销售系统v(1)通过对现实环境的调研,获取当前系统的具 体模型v(2)分析需求,建立系统分析模型,提炼出当前 系统的逻辑模型v(3)整理综合需求,编写系统需求规格说明书v(4)验证需求,完善补充对目标系统的描述

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

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