网站根目录怎么找,做网站时的电话图标,美团网站开发目标,营销型网站建设合同模板1.软件工程概述 
1.1 模型 
1.1.1 增量模型 增量模型又称之为渐增模型#xff0c;也称之为有计划的产品改进模型#xff1b;可以在增量开发的过程中逐步理解需求。 它从一组给定的需求开始#xff0c;通过构造一系列可执行中间版本来实施开发活动#xff0c;在上一版本基础…1.软件工程概述 
1.1 模型 
1.1.1 增量模型 增量模型又称之为渐增模型也称之为有计划的产品改进模型可以在增量开发的过程中逐步理解需求。 它从一组给定的需求开始通过构造一系列可执行中间版本来实施开发活动在上一版本基础上纳入一部分需求以完成下一版本依次类推直至系统完成核心产品即优先级高的产品往往首先开发因此经历最充分的“测试”第一个可交付版本所需的成本低时间少不必等到整个系统开发完成就可以使用需注意不是每个增量都必须要进行风险评估 增量模型是瀑布模型和原型进化模型的综合对软件设计具有更高的技术要求特别是对软件体系结构要求它具有更好的开放性和稳定性能够顺利地实施构件 的集成容易理解管理成本低 增量模型是把软件产品作为一系列增量构建来设计编码集成和测试每个构建由多个相互作用的模块组成并且能够完成特定的功能 该模型的难点如何进行模块的划分 扩展基于构件的软件开发强调使用可复用的软件“构件”设计和构建软件系统对所需的构件进行合格性检验适应性修改并把它集成到新系统中。 
1.1.2 瀑布模型 瀑布模型将开发过程描述为从一个阶段瀑布般转换到另一个阶段的过程将软件生命周期各个活动定为线性顺序连接的若干阶段的模型规定了由前至后的固定次序 瀑布模型可以有效地捕获系统需求 
1.1.3 原型模型 开发人员快速地构造整个系统或者系统的一部分以理解或澄清问题。 原型模型是快速构建软件的原型从初始的原型逐步演化为最终软件产品特别适用于对软件需求缺乏准确认识的情况。 1.1.4 喷泉模型 开发过程中以用户需求为动力以对象为驱动适合于面向对象的开发方法。 克服了瀑布模型不支持软件重用和多项开发活动集成的局限性 
1.1.5 螺旋模型 是风险驱动的将开发活动和风险管理结合起来以减小风险。 是一种演化软件开发过程模型它兼顾快速原型的迭代特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析使软件再无法排除重大风险时有机会停止以减小损失。 同时再每个迭代阶段构建原型是螺旋模型用以减少风险的途径螺旋模型更适合大型的昂贵的系统级别的软件应用 
1.1.6 演化模型 在获取一组基本的需求后通过快速分析构造出该软件的一个初始可运行版本然后逐步演化成为最终软件产品 1.1.7 模型适用 瀑布模型不能适应变化的需求原型增量喷泉均能适应变化的需求    原型模型不适合大规模软件的开发瀑布螺旋喷泉均可以 增量模型不适合大规模团队开发的项目是适用于商业产品的创新模型试题 需求清晰交付时间有严格限制的最适合瀑布模型 技术含量高与客户相关的风险也很多最使用螺旋过程模型  需求不清晰经常发生变化且规模不太大且不太复杂时采用原型化方法最适合 数据处理领域的不太复杂的软件规模不大适合结构化方法进行开发 例题全面采用新技术开发一个系统以替换原有的系统适合选用瀑布模型开发的系统功能与多个部门业务相关希望系统尽快投入使用并不断改善这应该使用 迭代演化模型其实也适合原型模型但是原型模型更适用于需求不明确时以获取需求 1.2 体系结构 
1.2.1 三层c/s体系结构 三层c/s体系结构由逻辑上相互分离的表示层业务层和数据层 表示层向客户提供数据业务层实施业务相数据规则数据层定义数据访问标准。 优点逻辑上相对独立不同层可以用不同的平台软件和开发语言而系统的安装修改和维护在各层都可能进行。 1.3 软件工程的基本要素 包括方法工具和过程 过程是将技术结合在一起的凝聚力使得计算机软件能够被合理地和及时地开发过程定义了一组关键过程区域构成了软件项目管理控制的基础 方法提供了构造软件在技术上需要“如何做”它覆盖了一系列的任务方法也依赖于一些基本原则这些原则控制了每一个技术区域而且包含建模活动和其他描述技术 工具对过程和方法提供了自动或半自动的支持如计算机辅助软件工程CASE。 
1.4 软件设计的任务 任务基于需求分析的结果建立各种设计模型给出问题的解决方案。 从工程管理的角度可以将软件设计分为概要设计阶段和详细设计阶段 概要设计将需求转化为软件的模块划分确定模块与模块之间的调用关系详细设计将模块进行细化得到详细的数据结构化和算法 概要设计文档包含 系统架构模块划分 系统接口数据设计  这4个主要方面的内容包括 体系结构设计数据库设计逻辑数据结构设计特别注意不包括模块内部的算法 结构化设计方法中概要设计阶段进行软件体系结构的设计数据设计和结构设计详细设计阶段进行数据结构和算法的设计 面向对象设计方法中概要设计阶段进行体系结构设计初步类设计/数据设计结构设计详细设计阶段进行构件设计 结构化设计和面向对象设计是两种不同的设计方法结构化设计根据系统的数据流图进行设计模块体现函数过程和子程序面向对象设计基于面向对象的基本概念进行模块体现为类对象和构件等 
1.5 软件需求 软件需求是软件系统必须完成的事以及必须具备的品质 软件需求包括功能需求非功能需求和设计约束三个方面 功能需求是所开发的软件必须具备什么样的性能 非功能需求是指产品必须具备的属性或品质如可靠性性能响应时间和扩展性等到 设计约束通常对解决方案的一些约束说明         
1.6 软件度量 软件复杂性度量是软件度量的一个重要分支。 软件复杂性度量的参数有很多比如 1规模即指令数或源程序行数 2难度通常由程序中出现的操作数所决定的量来表示 3结构通常用与程序有关的度量来表示 4智能度即算法的难易程度 
1.7 其他知识 软件的三种基本控制结构顺序选择重复 I/O软件隐藏I/O操作实现的细节方便用户使用I/O设备I/O软件向用户提供的是逻辑接口I/O软件将硬件与较高层次的软件隔离开来而最高层软件向应用提供一个友好的清晰且统一的接口方便用户使用 可维护性在系统分析阶段的复审过程中应该指出软件的可移植性问题以及可能影响软件维护的系统界面在系统设计阶段的复审期间应该从容易修改模块化和功能独立的目的出发评价软件的结构和过程在系统实施阶段的复审期间代码复审应该强调编码风格和内部说明文档这两个影响可维护的因素。可测试性是可维护性的一个评价指标。 
2. 软件工具与开发环境 逆向工程从源代码得到软件系统的规格说明和设计信息属于软件维护阶段行为因此逆向工程工具属于软件维护工具 
3.软件开发项目管理 项目风险 
4 软件质量管理 5.软件过程管理 
5.1 原型法 原型方法系统原型适用于用户需求不清需求经常变化的情况可以帮助导出系统需求并验证需求的有效性。 原型法能够迅速地开发出一个让用户看得见的系统框架可以用来支持用户界面设计原型法不能用来指导代码优化。 探索性原型的目的是弄清目标的要求确定所希望的特性并探讨多种方案的可行性可以用来探索特殊的软件解决方案 
5.2 极限编程 极限编程是一种轻量级敏捷、高效、低风险、柔性、可预测的、科学的软件开发方式 4大价值观沟通、简单性、反馈、勇气 5个原则快速反馈简单性假设逐步修改体长更改和优质工作 12个最佳实践计划游戏快速指定计划随着细节的不断变化而完善小型发布系统的设计要能够尽可能早地交付隐喻找到合适的比喻传达信息简单设计只处理当前的需求使设计保持简单测试先行先写测试代码然后再编写程序重构重新审视需求和设计重新明确地描述他们以复合新的和现有的需求结对编程有一个非正式的代码审查过程可以获得更高的代码质量但是编码速度与传统的单人编程相当集体代码所有制任何开发人员可以对系统的任何部分进行改变持续集成可以按日甚至按小时为客户提供可运行的版本每周工作40小时现场客户和编码标准系统最终用户代表应该全程配合Xp团队 
5.3  CMM    CMM是软件过程能力成熟度模型该模型按照软件过程的不同程度分为个等级级被认为成熟度最低级被认为成熟度最高一般来说采用成熟度最高的软件过程模型往往可以得到更高质量的软件产品 1997年美国将已有的几个CMM模型结合在一起,构成集成模型(CMMi) 
5. 能力成熟度CMMI CMMI是若干个过程模型的综合和改进提供了连续式模型和阶段式模型两种方法         连续式模型包括6个过程域能力等级 CL0未完成的过程域未执行或未得到CL1种定义的所有目标         CL1已执行的其共性目标是过程将可标识的输入工作产品转换为可标识的输出工作产品以是西安支持过程域的特定目标 CL2已管理的其共性目标是集中于已管理的过程的制度化。根据组织级政策规定过程的运作将使用哪个过程项目遵循已文档化的设计和过程描述所有正在工作的人都有权使用足够的资源所有工作任务和工作产品都被监控控制和评审 CL3已定义级的其共性目标集中于已定义的过程的制度化。过程是按照组织的裁剪指南从组织的标准过程种裁剪得到的还必须收集过程资产和过程的度量并用于将来对过程的改进。 CL4定量管理):其共性目标集中于可定了管理的过程的制度化。使用测试和质量保证来控制和改进过程域建立和使用关于质量和过程执行的质量目标作为管理准则。 CL5优化的使用量化统计学手段改变和优化过程域以满足客户的该表和持续改进计划种的过程域的功效。 5. 敏捷过程 在敏捷开发过程中并列争球法使用了迭代的方法其中把每段时间30天一次迭代称为一个“冲刺”并按需求的优先级别来实现产品多个自组织和自治的小组并行的递增实现产品。 极限编程XP是激发开发人员创造性使得管理负担最小的一组技术 水晶法Crystal认为每一个不同的项目都需要一套不同的策略、约定和方法论       自适应软件开发ASD有个基本的原则 .在自适应软件开发中有一个使命作为指导它设立了项目的目标但不妙时如何达到这个目标 .特征被视为客户键值的关键因此项目是围绕着构造的构建来组织并实现特征 .过程中的迭代是重要的因此重做与做同样的重要变化也包含其中 .变化不视为是一种更正而是软件开发实际情况的调整 确定的交付时间迫使开发人员认真考虑每一个生产版本的关键需求 .风险也包含其中它迫使开发人员首先跟踪最艰难的问题 
5. 统一过程UP 基本特征:以用例和风险驱动,以架构为中心,受控的迭代式的增量开发。