您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 软件工程-原理、方法与应用【第三版】复习总结
第一章绪论1.每18个月芯片的性能和速度均提高一倍,每隔12年软件生产大约提高一倍。2.软件:是能够完成预定功能和性能的可执行的计算机诚信度。包括使程序正常执行所需的数据,以及有关描述程序操作和使用的文档。即:软件=程序+文档3.软件的特征:软件的开发不同于硬件设计、不同于硬件制造、不同于硬件维修。4.软件危机出现的原因:软件维护费用的急剧上升,直接威胁计算机应用的扩大;软件生产技术进步缓慢,是家居软件危机的重要原因。--------------------------------------------------------------------------------------------------------------------------------------------------------------------5.软件工程学的范畴:软件开发技术(软件开发方法学、软件工具、软件工程环境)、软件工程管理(软件管理学、软件经济学、度量学)。6.软件工程:是指导计算机软件开发和维护的工程学科。它采用工程的概念、原理、技术和方法来开发与维护软件,目的是为了实现按照预期的进度和经费完成软件生产计划,同时提高软件的生产率和可靠性。7.软件的发展:大体经历了程序、软件、软件产品3个阶段。8.工具和方法是软件开发技术的2大支柱。9.3种编程泛型:过程式编程泛型、面向对象编程泛型、基于构件技术的编程泛型10.面向对象程序设计中,数据和操作被封装在一个对象中,对象之间则是通过消息相互联系。11.构件:标准化/规格化的对象类。12.常用变成力度的大小来比较3种编程泛型的差异。粒度由小到大依次是:过程式编程范式、面向对象编程范式、基于构件的编程泛型。13.软件工程的分化:传统软件工程:结构化分析-》结构化设计-》面向过程编码-》软件测试面向对象软件工程:OO分析与对象抽取-》对象详细设计-》面向对象的编码与测试基于构件的软件工程(以可复用构件和测试工具为后盾):领域分析和测试计划定制-》领域设计-》建立可复用构件库-》按‘构件集成模型’查找与集成构件14.分析先于设计,设计先于编码,使程序(的结构)适合于问题(的结构)。第二章软件生存周期与软件过程1.软件生存周期:计划、开发、运行3个时期。需求分析-》软件分析-》软件设计-》编码测试-》软件测试-》运行维护2.需求分析(用户视角):功能需求、性能需求、环境约束、外部接口描述。3.软件分析(开发人员视角):建立与需求模型一致的,与实现无关的软件分析模型。4.软件设计:总体设计/概要设计、详细设计(确定软件的数据结构和操作)。5.单元测试通常与编码同时进行。6.软件测试:单元测试、集成测试、系统测试。7.Boehm软件生存周期的划分:系统需求、软件需求、概要设计、详细设计、编码纠错、测试和预运行、系统维护。--------------------------------------------------------------------------------------------------------------------------------------------------------------------8.瀑布模型特点:阶段间的顺序性和依赖性、推迟实现的观点、保证质量的观点。9.瀑布模型存在的问题:只有在需求分析准确的前提下,才能得到预期的结果。快速原型模型:原型系统只包括对未来系统的主要功能以及系统的重要接口。特点:快速开发工具、循环、低成本。种类:渐进型、抛弃型。10.常见的演化模型(渐增式、迭代式):增量模型、螺旋模型。11.增量模型:结合瀑布模型的顺序特征与快速原型法的迭代特征。增量:小而可用的软件一般情况下,第一个增量是软件的核心部分。如(增量一:需求-设计-实现和集成-交付客户)12.螺旋模型(目前最常用):当项目按照顺时针方向沿螺旋线移动时,每轮螺旋包含:计划、风险分析、建立原型、用户评审4种活动。(高风险的大型软件采用此方法)13.构件集成模型:适应于面向对象的软件开发。利用预先封装好的构件来构造应用软件系统。14.软件开发方法可区分:形式化方法、非形式化方法。15.形式化开发模型:转换模型、净室模型16.转换模型:是将形式化软件开发和程序自动生成技术相结合的一种软件开发模型。转换模型的开发过程:确定性实话的需求规格说明书、进行自动化的程序变换、对形式化开发记录进行测试。转换模型的常用技术:基于模型的需求规格说明书及其变换技术;基于代数结构的需求规格说明书及其变换技术;基于时序逻辑的需求规格说明书及其验证技术以及基于可视化的技术。17.净室模型:是一种形式化的增量开发模型。力求在分析和设计阶段消除错误。18.统一过程RUP包括4个阶段:初始、细化、构造、迁移。以用例为驱动,以系统架构为中心的迭代与增量过程。每个阶段又分为若干次迭代,每次迭代都有一个核心工作流,有5个活动(需求、分析、设计、实现、测试)。19.敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。20.敏捷开发的价值观:个体和交互胜过过程和工具、可以工作的软件胜过面面俱到的文档、客户合作胜过合同谈判、响应变化胜过遵循计划。21.软件可行性研究:经济可行性、技术可行性、运行可行性、法律可行性。22.可行性研究的步骤:对当前系统进行调查研究、导出新系统的解决方案、提出推荐方案、编写可行性论证报告。23.可行性论证报告的内容:系统概述、可行性分析、结论意见。24.软件风险分析包括:风险识别(项目风险、技术风险、商业风险)、风险预测、风险的驾驭和监控。25.软件计划的7种类型:项目实施计划、质量保证计划、软件测试计划、文档编制计划、用户培训计划、综合支持计划、软件分发计划。第三章结构化分析与设计1.结构化设计SD;结构化分析SA;软件需求规格说明书SAS;结构图SC;数据字典DD;状态转换图STD;数据流图DFD2.瀑布模型的生命周期:需求定义与分析-》总体设计-》详细设计-》编码-》测试-》维护3.系统的开发流程(SA和SD流程):结构化分析(工具:DFD,PSPEC)------》分析模型(分层DFD图)+SRS结构化设计(工具:SC图)(映射)------》初始设计模型(初始SC图)初始设计模型(初始SC图)(优化)------》最终设计模型(最终SC图)4.结构化分析的基本步骤:自顶向下,功能分解(分层DFD)、由后向前,定义数据和加工(DD,PSPEC)、根据需要,分析复杂数据和动态模型(E-R图,CFD,CSPEC,STD)、编写软件需求规格说明书SRS。5.SA需求分析的两项基本任务:建立系统分析模型、编写SRS。6.分析模型组成:功能模型、数据模型、行为模型3种。7.抽象和分解是结构化分析的主要指导思想,细化的实质是分解。分解和细化是软件设计的策略。8.SD阶段把分析模型中的DFD图转换为最终SC图。9.传统软件的开发技术:结构化设计、模块设计。10.软件设计:总体设计/概要设计(初始SC图、最终SC图)、详细设计(用逐步细化的方法,完成模块的说明)。11.需求分析的步骤:需求获取、需求提炼、需求描述、需求验证。12.SA模型的组成13.SA模型同时覆盖了信息模型、功能模型、行为模型3种模型。14.DFD图不能表示程序的控制结构(如选择、循环结构)。15.加工规格说明通常用结构化语言、判定表、判定树作为描述工具。16.软件中的数据分为3类:数据项(数据元素)、数据流(多个相关数据项)、数据文件和数据库。17.数据字典的组成:数据项、数据流、数据存储(文件或数据库)、加工(处理逻辑)、外部项(人、物或其它软件系统)。18.SD模型是由SA模型映射而来的。SA模型的数据字典可转换为待开发系统的数据设计数据流图可转换为体系结构设计(SC图)与接口设计加工规格说明可转换为模块内部的详细过程设计19.SD模型的组成:从上到下依次是:过程设计、接口设计、体系结构设计、数据设计。--------------------------------------------------------------------------------------------------------------------------------------------------------------------20.结构化分析的基本步骤:自顶向下对系统进行功能分解,画出DFD图;由后向前定义系统的数据和加工;编制DD和PEPES;写出SRS。21.把不需要分解的加工成为基本加工。把逐步分解成为“自顶向下,逐步细化”。22.DFD的优点:便于实现,便于使用。23.传统的软件设计可细分为:面向数据流设计(SD方法)、面向数据结构设计(Jackson方法)。24.用数据流图表示逻辑模型,在设计阶段,按照数据流图的不同类型(变换型、事务型)转换为相应的软件结构。25.结构化设计通常从DFD图到SC图的映射开始。26.面向数据流的设计方法:从DFD图到SC图的映射的4个步骤:复审DFD图,必要时可再次进行修改或细化;鉴别DFD图的结构特征:事务?变换?;按照规则,把DFD图为初始的SC图;改进初始的SC图。27.变换型结构:由输入、变换中心和输出三部分组成。事务型结构:具有在多种事务中选择执行某类事物的能力。28.变换映射的步骤:划分DFD图的边界、建立初始SC图的框架、分解SC图的各个分支。事务映射的步骤:在DFD图上确定边界、画出SC图框架、分解和细化接受分支和发送分支。29.优化结构设计的指导规则:对模块分割、合并和变动调用关系的指导规则、保持高扇入/低扇出的原则、作用域/控制域规则。30.模块设计(详细设计)的主要任务是编写软件的模块设计说明书。目的是确定模块采用的算法和块内数据结构。31.模块设计的原则:清晰第一的设计风格、结构化的控制结构、逐步细化的实现方法。32.“结构化”保证程序的清晰、易读,“逐步细化”实现程序的正确、可靠。33.结构化程序设计原理和逐步细化的实现方法是完成模块设计的基础。第四章面向对象和UML1.面向对象的基本特征:抽象、封装、集成、多态。2.面向对象开发的优点:提高软件系统的可复用性、可扩展性、可维护性。--------------------------------------------------------------------------------------------------------------------------------------------------------------------3.元素之间的联系有:关联、泛化、依赖、实现、聚集、组合。4.UML的4个抽象层次:用户模型、模型、元模型、元元模型。5.UML的2类图:静态图(用例图、类图、对象图、构件图、部署图);动态图(状态图、时序图、协作图、活动图)5种视图:用例视图、逻辑视图、进程视图、构件视图、部署视图。6.UML的特点:同意标准、面向对象、表达能力强,可视化。7.UML模型作为测试阶段的依据:单元测试使用类图和类规格说明;集成测试使用构件图和协作图;系统测试使用用例图来验证系统行为。8.UML静态建模机制包括:用例图、类图、对象图构件图、部署图。用例图有:系统边界、用例、参与者、关联等。用例之间存在的关系:扩展关系、包含关系。包与包之间的关系有:依赖、泛化。9.UML动态建模机制包括:状态图、时序图、协作图、活动图。10.消息:简单消息、同步消息、异步消息。状态图有:初态、终态、中间态。11.时序图中的消息可以是信号或操作调用。12.时序图着重体现交互的时间顺序;协作图着重体现交互对象间的静态链接。13.时序图和协作图适合描述单个用例中几个对象的行为;活动图适合表现跨越多用例或多线程的复杂行为。14.构件图可以用来表现、编译、链接、执行时构件间的依赖关系。15.UML用图表示语法,用元模型表示语义,采用模型来描述系统的结构(静态特征)以及
本文标题:软件工程-原理、方法与应用【第三版】复习总结
链接地址:https://www.777doc.com/doc-212974 .html