首页 软件工程 (1)

软件工程 (1)

举报
开通vip

软件工程 (1)null软件工程软件工程陈惠明第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软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括程序正常执行所需的数据,以及有关描述程序操作和使用的文档。 其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操...

软件工程 (1)
null软件工程软件工程陈惠明第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软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括程序正常执行所需的数据,以及有关描述程序操作和使用的文档。 其中,程序是按事先 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。 软件=程序+数据+文档 1.1.2 软件的特征1.1.2 软件的特征1.软件开发不同于硬件设计 ①软件设计更依赖于设计人员的业务素质、智力以及人员组织、合作和管理,而硬件设计与人的关系较小; ②硬件设计成本占整个产品成本的一小部分;软件设计成本占整个产品成本的大部分 2.软件生成不同于硬件制造 硬件制造过程复杂,期间可能引入质量问题;软件的制造只是简单的复制过程; 3.软件维护不同于硬件维护 硬件运行初期有较高的故障率,修复故障后故障率下降到一个较低和稳定的水平,随着时间的推移故障率会再次升高,这是因为硬件将受到磨损的损害,达到一定程度就报废; 软件是逻辑产品,不会磨损和老化,但使用过程的维护却比硬件复杂。1.1.3 软件危机1.1.3 软件危机软件危机产生的原因 ①软件维护费用急剧上升,直接威胁计算机应用的扩大; (纠错性维护 完善性维护 适应性维护) ②软件生产技术进步缓慢是加剧软件危机的重要方面; (缺乏正确的方法论指导软件开发)我国软件文档规范我国软件文档规范《计算机软件开发规范》 《计算机软件需求说明编制指南》 《计算机测试文件编制规范》 《计算机软件配置管理计划规范》 1.2 软件工程学范畴1.2 软件工程学范畴 “软件工程”—1968年北大西洋公约组织在联邦德国提出。 软件工程:把软件当成一种工业产品,采用工程化的原理与方法对软件进行计划、开发和维护。软件工程学软件工程学软件工程学软件开发技术软件工程管理软件开发方法学软件工具软件工程环境软件管理学软件经济学软件度量学1.2.1 软件开发方法学1.2.1 软件开发方法学早期:软件开发无章可循,属于个人活动60年代:结构化程序设计80年代:面向对象程序设计1.2.2 软件工具1.2.2 软件工具编译程序 编辑程序 连接程序 操作系统1.2.3 软件工程环境1.2.3 软件工程环境方法与工具相结合,加上配套的软硬件支持就形成了环境。1.2.4 软件工程管理1.2.4 软件工程管理软件工程管理的目的是为了按照进度及预算完成软件计划,实现预期的经济和社会效益。包括:成本估算、进度安排、人员组织和质量保证等多方面的内容,还涉及管理学、度量学和经济学多个学科。1.3软件工程的发展1.3软件工程的发展1.3.1 3种编程范型: 1.过程式编程范型 2.面向对象编程范型 3.基于构件技术的编程范型1.3.2 3代软件工程1.3.2 3代软件工程1.从编程范型到软件开发过程 2.软件工程的分代 ①传统软件工程——以结构化程序设计为基础 结构化分析→结构化设计→面向过程编程→软件测试 ②面向对象软件工程——以面向对象程序设计为基础 面向对象分析与对象抽取→对象详细设计→面向对象的编码与测试 ③基于构件的软件工程——以软件复用为目标、领域工程为基础 领域分析与测试计划制定→领域设计→建立可复用构件→按“构件集成模型”查找和集成构件1.4 软件工程的应用1.4 软件工程的应用1.4.1 在各种规模软件开发中的应用 1.4.2 软件工程的成就与发展展望第2章 软件生存周期与软件过程第2章 软件生存周期与软件过程2.1 软件生存周期 2.2传统软件工程 2.3软件演化模型 2.4形式化方法模型 2.5统一过程和敏捷过程 2.6软件可行性研究2.1 软件生存周期2.1 软件生存周期需求分析软件分析软件设计(总体设计和详细设计)编码(测试)软件测试运行维护2.2 传统软件过程2.2 传统软件过程2.2.1瀑布模型 1.阶段间的顺序性和依赖性 2.推迟实现的观点 3.保证质量的观点 4.存在问题:只有开发人员能够做出准确的需求分析,才能够得到预期的结果null用户需求需求分析需求规格说明书软件分析与总体设计软件结构图详细设计模块说明编码系统测试确认测试综合测试单元测试程序清单瀑布模型的阶段与文档2.2.2 快速原型模型2.2.2 快速原型模型首先建立一个能够反映用户主要需求的原型,让用户实际看一下未来系统的概貌,以便判断哪些功能是符合需要的,哪些方面还需要改进。然后将原型反复改进,直至建立完全符合用户要求的新系统。null需求原型开发原型评价最终系统设计最终系统实现快速原型法的过程模型2.3 软件演化模型2.3 软件演化模型2.3.1增量模型 2.3.2螺旋模型 计划 风险分析 建立原型 用户评审 2.3.3构件集成模型增量模型增量模型增量1:需求设计实现和集成交付客户增量2:需求设计实现和集成交付客户增量3:需求设计实现和集成交付客户增量n:需求设计实现和集成交付客户nullnull2.4 形式化模型2.4 形式化模型2.4.1转换模型 2.4.2净室模型2.5 统一过程和敏捷过程2.5 统一过程和敏捷过程2.5.1统一过程 描述了软件开发中各个环节应该做什么、怎么做、什么时候做以及为什么做,描述了一组以某种顺序完成的活动。其结果是一组有关系统的文档,例如模型和其它一些描述,以及最初问题的解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 等。 2.5.2敏捷过程 是一种以人为核心、以迭代方式循序渐进进行开发的方法,其软件开发的过程称为敏捷过程。在这一过程中软件项目被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。null需求分析设计实现测试初始细化构造迁移迭代1迭代2迭代n-1迭代n统一过程统一过程1.初始阶段 ①对需求有一个大概的了解,确定系统中大多数角色和用例,但此时的用例是简要的 ②划分主要子系统,给出系统的体系结构概貌 ③分析项目执行的风险 ④考虑时间、经费、技术、项目规模和效益等因素 ⑤制定开发计划统一过程统一过程2.细化阶段 ①进行需求分析 ②进行技术风险分析 ③进行技能风险分析 ④进行政策风险分析 ⑤进行高层分析和设计,并作出结构性决策 ⑥产生简要体系结构,包括用例列 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 、领域概念模型和技术平台等 ⑦为构造阶段制定计划统一过程统一过程3.构造阶段 识别出剩余用例 4.迁移阶段 完成最后的软件产品和验收测试,并完成用户文档的编制和用户培训工作。敏捷过程敏捷过程1.敏捷开发的原则 ①个人和交互胜过过程和工具 ②可以运行的软件胜过面面俱到的文档 ③客户合作胜过合同谈判 ④响应变化胜过遵循计划敏捷过程敏捷过程2.敏捷过程开发应遵循的12条原则 ①通过尽早地、不断地提交有价值的软件使客户满意 ②即使到了开发后期,也欢迎改变需求。敏捷过程利用变化为客户提供竞争优势 ③以几个星期到几个月为周期,尽快不断地提交可运行的软件 ④在整个项目开发期间,业务人员和开发人员必须天天在一起工作 ⑤以积极向上的员工为中心,建立项目组,给他们提供所需的环境和支持,并对他们的工作予以充分的信任 ⑥在团队内部,最有效、效率高的传递信息的方法,就是面对面的交流 ⑦测试项目进展的首要依据是可运行的软件 ⑧敏捷过程提倡可持续的开发、责任人、开发者和用户应该为能够保持一个长期的、恒定的开发速度而努力敏捷过程敏捷过程2.敏捷开发应遵循的12条原则 ⑨时刻关注技术上的精益求精和好的设计,以增强敏捷能力 ⑩简单是最根本的 ⑾最好的架构、需求和设计出于自组织的团队 ⑿每隔一定时间,团队要反省如何才能更有效地工作,然后相应地调整自己的行为2.5.3极限编程2.5.3极限编程1.价值观 交流、简单、反馈和勇气 即:加强交流;从简单做起;寻求反馈;勇于实事求是A 2.过程 采用循环迭代的开发方法,将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈及其他一系列的方法,使开发人员和客户都可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时调整开发过程。极限编程极限编程极限编程的12个核心实践 ①完整团队 ②计划对策(发布计划和迭代计划) ③测试(先编测试后写代码) ④简单设计 ⑤结对编程 ⑥小软件版本 ⑦设计改进 ⑧持续集成 极限编程极限编程极限编程的12个核心实践 ⑨代码集体共有 ⑩编码 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 (统一的编码标准,包括命名、注释、格式等) ⑾系统比喻 ⑿可持续的速度2.6 软件的可行性研究2.6 软件的可行性研究2.6.1 可行性研究的内容和步骤 1.研究的内容 A.经济可行性 B.技术可行性 C.运行可行性 D.法律可行性 2.研究的步骤 A.对当前系统进行调查和研究 B.导出新系统的解决方案 C.提出推荐的方案 D.编写可行性论证 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 可行性研究可行性研究2.6.2软件风险分析 1.风险识别 以下是常见的风险子类与需要检查的内容 A.产品规模风险 B.商业影响风险 C.与客户相关的风险 D.过程风险 E.技术风险 F.开发环境风险 G.人员结构和经验风险 2.风险预测 A.建立风险可能性尺度 B.估计对产品和项目的影响 3.风险的驾驭和监控 A.与在职人员协商,了解其可能流动的原因 B.在项目开始前,把缓解这些流动的相关工作列入风险驾驭计划 C.项目开始时,做好人员流动的准备,并采取措施确保一旦人员离开时,项目仍能继续 D.制定文档标准并建立一种机制,保证文档都能及时生产 E.对所有工作都进行仔细审查,使更多的人能够按计划进度完成自己的工作 F.对每个关键性技术岗位注意培养后备人员 2.6.3项目实施计划2.6.3项目实施计划1.项目实施计划 2.质量保证计划 3.软件测试计划 4.文档编制计划 5.用户培训计划 6.综合支持计划 7.软件分发计划第3章 结构化分析与设计第3章 结构化分析与设计3.1概述 3.1.1结构化分析设计的由来 SA ——structure Analysis SD——structure Design2 SA和SD的流程2 SA和SD的流程结构化分析(工具:DFD 、PSPEC) 分析模型(分层 DFD图)+SRS 结构化设计(工具:SC图) 初始化模型 最终设计模型3.基本任务和指导思想3.基本任务和指导思想(1)结构化分析 ①建立分析模型 ②编写需求规格说明书 ③主要指导思想——抽象和分解 (2)结构化设计 ①软件设计=总体设计+详细设计 ②SC图需分两步完成 ③软件设计指导思想——分解和细化3.1.2 SA模型的组成与描述3.1.2 SA模型的组成与描述例 3.1 教材销售系统 (1)通过对现实环境的调研,获取当前系统的具体模型 (2)分析需求,建立系统分析模型,提炼出当前系统的逻辑模型 (3)整理综合需求,编写系统需求规格说明书 (4)验证需求,完善补充对目标系统的描述
本文档为【软件工程 (1)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_019138
暂无简介~
格式:ppt
大小:464KB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2012-01-12
浏览量:22