




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程陈惠明第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.软件生成不同于硬件制造
硬件制造过程复杂,期间可能引入质量问题;软件的制造只是简单的复制过程;3.软件维护不同于硬件维护硬件运行初期有较高的故障率,修复故障后故障率下降到一个较低和稳定的水平,随着时间的推移故障率会再次升高,这是因为硬件将受到磨损的损害,达到一定程度就报废;软件是逻辑产品,不会磨损和老化,但使用过程的维护却比硬件复杂。我国软件文档规范《计算机软件开发规范》《计算机软件需求说明编制指南》《计算机测试文件编制规范》《计算机软件配置管理计划规范》1.2软件工程学范畴“软件工程”—1968年北大西洋公约组织在联邦德国提出。软件工程:把软件当成一种工业产品,采用工程化的原理与方法对软件进行计划、开发和维护。软件工程学软件工程学软件开发技术软件工程管理软件开发方法学软件工具软件工程环境软件管理学软件经济学软件度量学1.2.1软件开发方法学早期:软件开发无章可循,属于个人活动60年代:结构化程序设计80年代:面向对象程序设计1.2.2软件工具编译程序编辑程序连接程序操作系统1.2.3软件工程环境方法与工具相结合,加上配套的软硬件支持就形成了环境。1.2.4软件工程管理软件工程管理的目的是为了按照进度及预算完成软件计划,实现预期的经济和社会效益。包括:成本估算、进度安排、人员组织和质量保证等多方面的内容,还涉及管理学、度量学和经济学多个学科。1.3软件工程的发展1.3.13种编程范型:1.过程式编程范型2.面向对象编程范型3.基于构件技术的编程范型1.3.23代软件工程1.从编程范型到软件开发过程2.软件工程的分代①传统软件工程——以结构化程序设计为基础结构化分析→结构化设计→面向过程编程→软件测试②面向对象软件工程——以面向对象程序设计为基础面向对象分析与对象抽取→对象详细设计→面向对象的编码与测试③基于构件的软件工程——以软件复用为目标、领域工程为基础领域分析与测试计划制定→领域设计→建立可复用构件→按“构件集成模型”查找和集成构件1.4软件工程的应用1.4.1在各种规模软件开发中的应用1.4.2软件工程的成就与发展展望第2章软件生存周期与软件过程2.1软件生存周期2.2传统软件工程2.3软件演化模型2.4形式化方法模型2.5统一过程和敏捷过程2.6软件可行性研究2.1软件生存周期需求分析软件分析软件设计(总体设计和详细设计)编码(测试)软件测试运行维护2.2传统软件过程2.2.1瀑布模型1.阶段间的顺序性和依赖性2.推迟实现的观点3.保证质量的观点4.存在问题:只有开发人员能够做出准确的需求分析,才能够得到预期的结果用户需求需求分析需求规格说明书软件分析与总体设计软件结构图详细设计模块说明编码系统测试确认测试综合测试单元测试程序清单瀑布模型的阶段与文档2.2.2快速原型模型首先建立一个能够反映用户主要需求的原型,让用户实际看一下未来系统的概貌,以便判断哪些功能是符合需要的,哪些方面还需要改进。然后将原型反复改进,直至建立完全符合用户要求的新系统。需求原型开发原型评价最终系统设计最终系统实现快速原型法的过程模型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统一过程
描述了软件开发中各个环节应该做什么、怎么做、什么时候做以及为什么做,描述了一组以某种顺序完成的活动。其结果是一组有关系统的文档,例如模型和其它一些描述,以及最初问题的解决方案等。2.5.2敏捷过程
是一种以人为核心、以迭代方式循序渐进进行开发的方法,其软件开发的过程称为敏捷过程。在这一过程中软件项目被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。需求分析设计实现测试初始细化构造迁移迭代1迭代2迭代n-1迭代n统一过程1.初始阶段①对需求有一个大概的了解,确定系统中大多数角色和用例,但此时的用例是简要的②划分主要子系统,给出系统的体系结构概貌③分析项目执行的风险④考虑时间、经费、技术、项目规模和效益等因素⑤制定开发计划统一过程2.细化阶段①进行需求分析②进行技术风险分析③进行技能风险分析④进行政策风险分析⑤进行高层分析和设计,并作出结构性决策⑥产生简要体系结构,包括用例列表、领域概念模型和技术平台等⑦为构造阶段制定计划统一过程3.构造阶段识别出剩余用例4.迁移阶段完成最后的软件产品和验收测试,并完成用户文档的编制和用户培训工作。敏捷过程1.敏捷开发的原则①个人和交互胜过过程和工具②可以运行的软件胜过面面俱到的文档③客户合作胜过合同谈判④响应变化胜过遵循计划敏捷过程2.敏捷过程开发应遵循的12条原则①通过尽早地、不断地提交有价值的软件使客户满意②即使到了开发后期,也欢迎改变需求。敏捷过程利用变化为客户提供竞争优势③以几个星期到几个月为周期,尽快不断地提交可运行的软件④在整个项目开发期间,业务人员和开发人员必须天天在一起工作⑤以积极向上的员工为中心,建立项目组,给他们提供所需的环境和支持,并对他们的工作予以充分的信任⑥在团队内部,最有效、效率高的传递信息的方法,就是面对面的交流⑦测试项目进展的首要依据是可运行的软件⑧敏捷过程提倡可持续的开发、责任人、开发者和用户应该为能够保持一个长期的、恒定的开发速度而努力敏捷过程2.敏捷开发应遵循的12条原则⑨时刻关注技术上的精益求精和好的设计,以增强敏捷能力⑩简单是最根本的⑾最好的架构、需求和设计出于自组织的团队⑿每隔一定时间,团队要反省如何才能更有效地工作,然后相应地调整自己的行为2.5.3极限编程1.价值观交流、简单、反馈和勇气即:加强交流;从简单做起;寻求反馈;勇于实事求是A2.过程采用循环迭代的开发方法,将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈及其他一系列的方法,使开发人员和客户都可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时调整开发过程。极限编程极限编程的12个核心实践①完整团队②计划对策(发布计划和迭代计划)③测试(先编测试后写代码)④简单设计⑤结对编程⑥小软件版本⑦设计改进⑧持续集成极限编程极限编程的12个核心实践⑨代码集体共有⑩编码标准(统一的编码标准,包括命名、注释、格式等)⑾系统比喻⑿可持续的速度2.6软件的可行性研究2.6.1可行性研究的内容和步骤1.研究的内容A.经济可行性B.技术可行性C.运行可行性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.制定文档标准并建立一种机制,保证文档都能及时生产E.对所有工作都进行仔细审查,使更多的人能够按计划进度完成自己的工作F.对每个关键性技术岗位注意培养后备人员2.6.3项目实施计划1.项目实施计划2.质量保证计划3.软件测试计划4.文档编制计划5.用户培训计划6.综合支持计划7.软件分发计划第3章结构化分析与设计3.1概述3.1.1结构化分析设计的由来SA——structureAnalysisSD——structureDesign2SA和SD的流程结构化分析(工具:DFD、PSPEC)分析模型(分层DFD图)+SRS结构化设计(工具:SC图)初始化模型最终设计模型3.基本任务和指导思想(1)结构化分析
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- CAQIS 1001-2012车载智能控酒仪
- CAB 1016-2012车用充气泵
- 计算机在医疗领域的应用与发展考核试卷
- 海底油气管道新型材料研究与开发进展考核试卷
- 领导科学中的时间管理试题及答案
- 美团餐饮商家线上流量扶持及转化提升合同
- 虚拟货币交易平台交易风险评估补充协议
- 淘宝电商平台客服外包隐私保护合同
- 离职员工保密协议及行业竞争限制合同(酒店管理行业)
- 虚拟偶像IP与音乐产业合作运营协议
- 全国扶贫开发信息系统业务管理子系统用户操作手册20171110(升级版)
- 4.1自由扩散和协助扩散课件高一上学期生物人教版必修1
- 主动脉夹层完整版课件
- 《飞向太空的航程》名师课件
- 科学普及讲座模板
- 国开《Windows网络操作系统管理》形考任务5-配置DNS服务实训
- 团体标准组织综合绩效评价指标体系
- DL∕T 995-2016 继电保护和电网安全自动装置检验规程
- 2024年广东省广州市市中考化学试卷真题(含答案)
- 2023-2024学年广东省珠海市八年级(下)期末数学试卷(含答案)
- 清华大学2024年强基计划数学试题(解析)
评论
0/150
提交评论