软件工程和软件过程改进.docx

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

最新文档


当前位置:首页 > 建筑环境 > 建筑工程


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!