软件工程和软件过程改进_第1页
软件工程和软件过程改进_第2页
软件工程和软件过程改进_第3页
软件工程和软件过程改进_第4页
软件工程和软件过程改进_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件开发方法开发方法分类自顶向下开发方法和自底向上开发方法形式方法和非形式方法整体性方法和局部行方法软件自动化方法软件开发模型•瀑布模型•演化模型:增量模型,螺旋模型,构件组装模型,并发开发模型•喷泉模型对软件复用和生存周期中多项开发活动的集成提供了支持,主要面对对象的开发方法。无间隙是指在开发活动,即分析,设计和编码之间不存在明显的边界。•智能模型基于知识的软件开发模型。应用基于规则的系统,采用规约和推理机制。•RAD模型线性顺序模型,强调极短的开发周期和可复用程序构件的开发。RAD方法包含业务建模,数据建模,处理建模,应用生成,测试及反复五个阶段。并非所用应用软件都适合使用RAD。•原型模型3.第4代技术•能使软件工程师在较高级别上说明软件的某些特征,然后利用工具根据开发者的说明自动生成源代码。•关键在于说明软件的能力,它用特定的语言来完成或者以一种用户可以理解的问题描述方法来描述待解决的图形来表示。•开发者还必须进行测试,写成有意义的文档,并完成其他软件工程范型中同样要求的所有集成活动。必须考虑维护是否能够迅速实现。原型化方法(用户没有明确的需求)•原型的分类水汽原型和垂直原型(结构化,行为化)抛弃型原型和演化型原型(解决需求不确定)实验型,探索型和演化型抛弃式原型,演化式原型和递增式原型•哪些系统适合原型法(系统结构,逻辑结构,用户特征,应用约束,项目管理,项目环境)•原型生命周期•原型法的准则大多数的应用系统都能从一个小的系统结构集合(批处理,联机处理)中导岀。多数系统使用一个常用和熟悉的功能集合。大多数的输入编辑能从一个小的编辑模型集合中导出。基于一个4步的报表模型生成应用系统的报表。有一个正确的设计结构集合,对原型将会产生积累作用。•原型法的策略用第三范式规范数据,建立应用系统的数据模型。大多数富有成效的建立模型的途径是利用组合工程最有成效的建立模型的途径是“裁剪和粘贴”。用系统举例。字典驱动的软件结构。文档的自动化。小的原型化队伍。(2-3人)交互式的和综合的原型开发者的工作台。陈述性规格说明。终端用户报表生成器。专业的原型化人员。开发人员参加原型化。•混合原型化策略只对屏幕的原型化使用购买到的应用系统作为初始原型。可行性分析中的原型化子系统原型化原型与需求建议最终用户进行原型化。•原型化中心开发,生产,信息,原型化中心•原型化与项目管理过程估计,费用重新分配,变化控制,活动停止敏捷方法XP中每次发布的内容不是演示版,而是实用版。XP的核心是其总结的沟通,简单,反馈,勇气四大价值观。XP方法论属于轻量级,也就是文档量少,遵从“代码就是文档”的思想。XP是适合于中小型团队在需求不明确或者迅速变化的情况下进行软件开发。XP的12中最佳实践计划游戏,小型发布,隐喻,简单设计,测试先行,重构,结对编程,集体代码所有制,持续集成,每周工作40小时,现场客户,编程标准。净室软件工程•使用盒结构规约(或形式化方法)进行分析和设计建模,并且强调将正确性验证,而不是测试,作为发现和消除错误的主要机制。•使用统计的测试来获取认证被交付的软件的可靠性所必需的出错率信息。总体规划与软件定义1.任务•制定软件的开发战略•确定组织的主要信息需求,形成软件的总体结构方案,安排项目开发计划。•制定系统建设的资源分配计划。2.步骤对当前系统进行初步的调查。分析和确定系统目标。分析子系统的组成以及基本功能。拟定系统的实施方案。进行系统的可行性分析。变形可行性报告。方法•关键成功因素法。•战略目标集转化法。•企业系统规划方法。目标系统框架分析•分析管理目标和系统目标根据系统调查的结果进行分析,总结出现行系统中的关键问题,做出问题表根据问题表,构造目标的层次结构对目标树种的各项分目标进行分析。将目标树按各层分目标在系统中所起的作用重新绘制。•确定系统范围和功能绘制出系统的总数据流程图。根据系统方案的要求,用户的要求和现行系统的环境及确定系统边界的原则在总数据流图上圈出系统范围。与用户讨论,协商修改有关内容。确定系统范围,并做分析说明。•确定系统总体结构和投资概算计算机系统软硬件设备投资系统开发费系统安装维护费用人员培训费可行性分析经济可行性技术可行性管理上的可行性开发环境的可行性※可行性分析的步骤核实问题定义与目标。研究分析现有系统。现有系统的物理模型(怎么做)现有系统的逻辑模型(做什么)新系统的逻辑模型-新系统的物理模型为新系统建模。系统上下文关系范围图实体关系图用例模型域模型IPO表用户复核。提出并评价解决方案确定最终推荐的解决方案草拟开发计划提交可行性分析报告6.成本/效益分析项目的成本:基础建设支出,一次性支出和运行维护费用。项目的收益:一次性继续收益,非一次性的经济收益,非经济收益。详细调查•原则自顶向下全面展开存在的不一定是合理的分工和协助相结合点面相结合展开调查主动沟通的工作方式•方法收集资料开调查会个别访问书面调查参加业务实践发电子邮件•注意事项事先计划调查态度调查顺序研究分析新旧系统的分析和比较•目的评估旧系统存在的问题,评估升级旧系统的价值和升级的代价寻找旧系统中存在的主要问题,为新系统的设计目标提供参考在新系统方案确定后,进行新旧系统的比较以便验证新系统的设计是否完备理解新旧系统之间的差异,确定新旧系统转换的技术路线•原则比较新旧系统复杂问题控制规模•转换策略直接转换逐步转换并行转换需求分析目标是深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的借口细节,定义软件的其他有效性要求。任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。在系统需求分析阶段,就要拟定系统的目标、范围和需求,明确项目视图和范围。工具主要有数据流图、数据词典、结构化语言、判定表及判定树等。1.需求工程•需求开发需求定义需求获取需求分析需求验证•需求管理需求分类•业务需求•用户需求•功能需求•非功能需求需求定义方法•严格定义方法所有需求都能够被预先定义开发人员与用户之间能够准确清晰的交流采用图形模型/文字可以充分体现最终系统修改定义不完善的系统代价昂贵且实施困难严格方法的生命周期的各个阶段的划分都是正确的•原型定义方法并非所有的需求都能在系统开发前都被准确的说明。项目参加者之间通常都存在交流上的困难,原型提供了克服该困难的一个手段。需要实际的、可供用户参与的系统模型。有合适的系统开发环境和快速的系统建造工具。反复是完全需要和值得提倡的,但需求一旦确定,就应遵从严格的方法。需求捕获方法•用户访谈•用户调查•现场观摩•阅读历史文档•联合讨论会需求分析方法・结构化分析方法•面向对象分析方法•面向问题域的分析业务流程分析1.通过调查掌握基本情况描述现有业务流程(绘制业务流程图)业务处理单位,业务处理,表格制作,数据收集,储存,业务流向确认现有业务流程对业务流程进行分析发现问题,提出解决方案提出优化后的业务流程业务流程再造(BPR)•有一个明确的、具有启发性的目标,即共同远景。•充分考虑客户的价值•必须服务统一指挥•充分做好横向及纵向沟通•认识流程再造的2大要素:信息技术/信息系统和人员组织管理•树立典型,逐步推进,充分利用变革的涟漪效应数据流图数据流,加工,数据存储,外部实体•原则明确系统边界自顶向下,逐层分解在局部上循环由外向里的原则•步骤识别系统的输入和输出绘制系统的内部数据流对复杂的加工进行分解就草图进行检查和合理布局和用户交流检查、修改和完善•注意事项•数据流图上所有图像符号只限于4中基本图形元素•顶层数据流图必须包括4种基本元素,缺一不可•顶层数据流图上的数据流必须封闭在外部实体之间•每个加工至少有一个输入数据流和一个输出数据流,一个加工的输出数据流只由他的输入数据流确定•数据流必须经过加工,即必须进入加工或从加工中流出•在数据流图中,需按层给加工框编号,编号表明该加工处在那一层,以及上下层的父图与子图的对应关系•规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致•可以在数据流图中加入物质流,帮助用户理解数据流图•图上每个元素都必须有名字•数据流图中不可夹带控制流数据字典•数据元素•数据结构•数据流•数据储存•外边实体•加工(处理)软件需求说明书•用好的结构化和自然语言编写文本型文档。•建立图形化模型,这些模型可以描绘装换过程、系统状态和它们之间的变化、数据关系、逻辑流或对象类和他们的关系。•编写形式化规格说明,这可以通过使用数学上的精确的形式化逻辑语言来定义需求。总体结构设计•模块是组成系统的基本单位,它的特点是可以组合、分解和更换。一个模块应该具备4个要素,分别是输入和输出、处理功能、内部数据和程序代码。•模块独立性是指软件系统中每个模块只设计软件要求的具体子功能,而和软件系统中其他的模块接口是简单的。模块独立的概念是模块化、抽象、信息隐藏和局部化概念的直接结果内聚TOC\o"1-5"\h\z内聚性:高 低功能内聚顺序内聚通信内聚过程内聚时间内聚逻辑内聚巧合内聚模块独立性:强 弱功能单一功能分散耦合耦合性:低 高非直接耦合数据耦合标记耦合控制耦合外部耦合公共耦合内容耦合模块独立性:强 弱3.设计原则•分解与协作原则•自顶向下的原则•信息屏蔽、抽象的原则•一致性原则•明确性原则•模块直接的耦合尽可能小,模块内聚性要尽可能强•模块的扇入系数和扇出系数要合理(3-4,不能大于7)来自网络Arthas.V.R整理•模块的规模适中4.划分子系统•子系统要具有相对独立性•子系统之间的数据的依赖性要尽量小•子系统划分的结果应使数据冗余较小•子系统的设置应考虑今后管理发展的需要•子系统的划分应便于系统分阶段实施•子系统的划分应考虑到各类资源的充分利用子系统结构设计•每个子系统如何划分为多个模块•如何确定子系统之间、模块传送的数据及调用关系•如何评价改进模块的质量•如何从数据流图导出模块结构图子系统结构设计原则:•模块具有较强的独立性,即内聚性强,耦合性弱。•模块之间的链接只能存在上下级之间的调用关系,不能有同级之间的横向关系•整个系统呈树状结构,不允许有网状结构或交叉调用关系出现。•所有模块都必须严格的分类编码并建立归档文件。模块结构图:模块:口调用:~'数据: *控制:• 6.模块结构变换型:输入,变换中心(数据加工),输出事务型:事务层,操作层,细节层详细设计1.代码设计•必须保证足够的容量,以包括规定范围内的所有对象。•按属性系统化•分类要有一定的柔性,不至于在出现变更时破坏分类的结构•注意本分类系统与外系统、已有系统的协调。2.输出设计•确定输出的内容•选择输出设备与介质•确定输出格式输入设计原则:•最小量原则•简单性原则•早检验原则•少转换原则内容:•确定输入数据的内容•输入方式设计•输入格式设计•校对方式设计(人工校对,二次输入校对,数据平衡校对)数据储存设计用户界面设计(菜单,操作提示,操作权限管理)安全控制设计(环境因素和数据处理因素)软件测试1.基本原理•应尽早并不断的进行测试•测试工作应该避免由原开发软件的人或小组承担•设计测试方案的时候,不仅要确定输入数据,而且要根据系统功能确定预期输出结果。•在设计测试用例时,不仅要设计合理有效的输入条件,也要包括不合理、失效的输入条件•在测试程序时,不仅要检验程序是否做了该做的事,还要检测程序是否做了不该做的事•严格按照测试计划来进行,避免测试的随意性•妥善保管测试计划、测试用例,昨晚软件文档的组成部分,为维护提供方便。2.测试过程•拟定测试计划(测试内容,精度安排,测试需要的环境和条件,测试培训的安排)•编制测试大纲,作为测试的依据•根据测试大纲设计和生成测试用例,产生测试设计说明文档(测试的项目,输入的数据,测试的过程,预期的结果)•执行程序,实施测试•生成测试报告,并给出建议3.测试方法•人工测试代码审查(检查代码与设计是否一致,检查代码的逻辑表达是否正确和完善,检查代码的结构是否合理)个人复查(小规模程序,开发人员)抽查(3-5人测试小组,非开发人员)会审•机器测试黑盒(功能测试(集成)•是否有错误的功能或遗漏的功能•界面是否有误?输入是否能够正确接收?输出是否正确?•是否有数据结构或者外部数据库访问错误?•性能是否能否接受?•是否有初始化或终止性错误?技术•等价类的划分•边界值分析•错误推测•因果图白盒(结构测试(单元)原则•程序模块中的所有独立路径至少执行一次•在所有的逻辑判断中,去真和假的两种情况至少都执行一次•每个循环都应在边界条件和一般条件各执行一次•测试程序内部的数据结构的有效性覆盖•语句覆盖•判定覆盖•条件覆盖•判定/条件覆盖•组合条件覆盖•路径覆盖4.测试步骤用户需求和验收测试计划 确认测试功能需求和系统测试计划 系统测试体系结构和集成测试计划 集成测试详细设计和单元测试计划 单元测试编码单元测试•检查模块是否实现了详细设计说明书规定的功能和算法•发现编程和详细设计中产生的错误•单元测试计划应该在详细设计阶段制定•模块借口,局部数据结构,详细的执行通路,出错处理,边际条件等集成测试•非增殖式•增殖式自顶向下自底向上混合增殖式方式衍变的自顶向下的增殖方式自底向上-自顶向下的增殖方式测试用例 >驱动模 >测试模块I i 被测模 1桩模块 桩模块确认测试•有效性测试•软件配置审查•验收测试a测试(开发者测试)B测试(用户测试)系统测试•恢复测试(容错性)•安全性测试•强度测试•性能测试•可靠性测试•安装测试调试•试探法•回溯法•对分查找法•归纳法•演绎法软件运行与维护改正性维护:17%---21%适应性维护:18%---25%完善性维护:50%---60%预防性维护:4%1.相关因素1)系统的大小2)程序设计语言3) 系统的年龄4)数据库技术的应用5)先进的软件开发技术2.程序修改•分析和理解程序•修改程序•重新验证程序再工程•再工程是对现有软件的重新开发过程,包括逆向工程(反向工程)、新需求的考虑(软件重构)和正向工程三个步骤。•再工程的基础是系统理解。软件重构•软件重构是对源代码、数据进行修改,使其易于修改和维护,以适应将来的变更。•软件重构并不修改软件体系结构,而是关注模块的细节。逆向工程1) 过程的设计表示2) 程序和数据结构信息3) 数据和控制流模块4) 实体关系模块{抽象程度依次提高}系统评价•立项评价•中期评价•结项评价运行管理•语句审计•特权审计•对象审计文档管理•文档管理的制度化•文档要标准化、规范化•文档管理的人员保证•维护文档的一致性•维护文档的可追踪性构件与软件的复用1.软件复用•水平式复用•垂直复用复用组织:•REBOOT环境:为复用开发和利用复用进行开发(开发构件和复用构件)・STARS关注过程、体系结构和复用三者的集成。STARTS认为软件生产线开发的软件周期应该包括过程驱动、软件体系结构、领域工程、课复用构件库这四个概念。复用过程:•可复用的构件的开发•构件组织和管理•支持的角色•复用人员:领域工程师,构件工程师,应用工程师复用原则:•需要顶层管理领导,并需要有长期的回收的经费支持。•为了渐进的推行系统的复用,需要规划和调节的体系结构、开发过程、组织结构,并以小规模的先行项目为典型示范,而后在铺开。•为了复用,先规划体系结构及其逐步实施的过程•过度到明确的复用组织机构,将可复用构件的创建工作与复用工作分离开,并且提供明确的支持只能。•在真实的环境中,进行可复用构件的创建和改进工作。•要将应用系统和可复用构件作为一个经济核算的产品整体进行管理,应当注重公用构件在应用系统及其子系统领域中的高盈利作用。•要认识到单独的对象技术或者单独的构件技术都是不够的•采用竞赛和更换负责人的办法,进行开发单位的文化建设和演化•对基础设施、复用教育、技巧培训,要投资和持续的改进•要采用度量方法测量复用过程,并要优化复用程序。2.构件技术•可复用构件库的组织方式有枚举分类、关键词分类、多面分类、超文本组织法和可复用构件的3C模型。•软件构件的复用的步骤可分为检索与提取构件、理解与评价构件、修改构件和构件的合成其中构件的合并又分为基于功能的合成技术和基于数据的合成技术。•三个主要流派为OMG的CORAB,Microsoft的COM/DCOM和SUN的EJB/J2EE•构件系统应当为复用者提供简便灵活的“门面”(facade)。软件开发环境•软件开发环境应该包括工具集成、界面集成和方法集成•软件开发环境可由环境机制和工具集构成•按功能划分,环境机制由和分为环境信息库、过程控制和消息服务、用户界面规范。•软件开发环境具体有集成性、开放性、可裁剪性、数据格式一致性、风格统一的用户界面等特性。ICASE信息库•数据完整性•信息共享•数据-工具集成•数据-数据集成•方法学实践•文档标准化软件体系结构概念软件体系结构(软件架构,软件构架)为软件系统提供了一个结构、行为和属性的高级抽象由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件体系结构建模•结构模型ADL•框架模型•动态模型•过程模型•功能模型•4+1逻辑视图:最终用户:功能需求开发视图:编程人员:软件管理场景视图进程视图:系统集成人员:性能可扩充性吞吐量等物理视图:系统工程人员:系统拓补、安装、通信等软件体系结构风格•分层系统应用软件业务软件中间件系统软件•客户/服务器输入数据请求按钮输出数据一业务管输入数据请求按钮输出数据一业务管「鶴*獗II表示层SQL开始请求郦師SQLSQL开始请求郦師SQLSQL请求绪束数据层功能层软件过程改进1.CMM模型•初始级•可重复级(需求管理,软件项目计划,软件项目跟踪与监控,软件子合同管理,软件质量保证,软件配置管理)•已定义级(集成软件管理,组件协调,组织过程交点,组织过程定义,培训程序,软件产品工程,同级评审)•已管理级(定量软件过程,软件质量管理)来自网络Arthas.V.R整理•优化级(技术改进管理,过程改进管理,缺陷预防)2.PSP(个人软件过程)TSP(团队软件过程)•需要有高层主管和各级管理人员的支持,以取得必要的资源,这是实施TSP必须具备的物质基础;•软件过程的改进需要全体有关人员的积极参与,他们不仅需要有改进的热情和明确的目标,而且需要对当前过程有很好的了解;•任何过程改革都有一定的风险,都有一个实践、改革、评审直至完善的循环往复、持续改善的过程,不可能一蹴而就;•项目组的开发人员需要经过PSP的培训,使之直具备自我改善的能力;•整个开发单位的能力成熟度在总体上应处于CMM二级以上。CMM/TSP/PSP三者的结合原则CMM建立组织级能力TSP生产并父付冋质量的产品费用期限技能PSP建立个人的技能CMM的关键过程域与PSP和TSP的对应关系级别CMM的18个关键过程域提供者优化级缺陷预防PSP

技术变更管理PSP过程变更管理PSP可管理级定量的过程管理PSP软件质量管理PSP已定义级组织过程管理PSP组织过程定义PSP培训大纲无集成软件管理PSP软件产品工程PSP组织协调TSP冋行专家评审PSP可重复级需求管理TSP软件项目规划PSP软件项目追踪和监控PSP软件子合冋管理无软件质量保证TSP软件配置管理TSP5.软件过程评估标准ISO/IEC15504•概念和引导指南(参考件)•过程和过程能力的参考模型(标准件)•进行评估(标准件)•进行评估的指南(参考件)•评估模型和指示器指导(参考件)•评估人员资格指南(参考件)•过程改进指南(参考件)•供应者过程能力评定指南(参考件)•词汇表(标准件)过程和过程类别软件生存周期过程组过程类过程名子过程名基本过程组顾客供方过程(CUS)获取获取准备对供方的选择对供方的监督顾客验收供应需求操作操作运行使用顾客支持工程过程类(ENG)开发系统需求分析和设计软件需求分析软件设计软件构造

软件集成软件测试系统集成和测试系统和软件维护支持过程组支持过程类(SUP)文档编制配置管理质里保证验证确认联合评审审计问题解决组织过程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论