您好,欢迎访问三七文档
当前位置:首页 > 资格认证/考试 > 自考 > 自学考试专题:1204-02333软件工程复习要点
1/42第一章绪论第一节软件工程概念的提出与发展1.软件危机(1)速度:软件的发展水平远远滞后于硬件的发展水平,生产率低下,软件制造仍然是一种人工集约生产方式(2)质量:软件的质量低下,不能满足用户的需求、适应性差(3)成本:软件开发成本居高不下软件开发的速度、软件制品的质量、软件开发成本是软件工程的三个核心问题。2.软件工程的发展近几年,软件复用技术:构件技术、平台技术、需求工程技术、领域分析技术、应用集成技术等。第二节软件开发的本质1.软件软件=程序+文档2.软件开发的本质:“映射”,即实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。3.系统建模运用所掌握的知识,通过抽象,给出系统的一个结构。4.模型模型是一个抽象。模型是在特定意图下所确定的角度和抽象层次上对物理系统的描述,通常包含对该系统边界的描述、对系统内各模型元素以及它们之间关系的语义描述。5.系统模型的类型(1)概念模型:描述软件是什么(2)软件模型:实现概念模型的软件解决方案。包括设计模型、实现模型和部署模型。第二章需求获取第一节需求与需求获取1.需求的定义一个需求是有关一个“要予构造”的陈述,描述了待开发产品/系统功能能力、性能参数或其它性质。2.需求的基本性质2/42(1)必要的(2)无歧义的(3)可测的(4)可跟踪的(5)可测量的3.需求的分类★(1)功能需求,是整个需求的主体。(2)非功能需求:性能需求、外部接口需求、设计约束和质量属性需求。能够区分哪些是功能需求,哪些是性能需求。4.接口需求的类别(1)用户接口(2)硬件接口(3)软件接口(4)通信接口(5)内存约束(6)运行(7)地点需求5.设计约束需求(1)法规政策(2)硬件限制(3)与其它应用的接口(4)并发操作(5)审计能力(6)控制功能(7)高级语言要求(8)握手协议(9)应用的关键程度(10)安全和保密6.质量属性(1)可靠性(2)存活性(3)可维护性(4)用户友好性7.需求发现的技术3/42(1)自悟(2)交谈(3)观察(4)小组会(5)提炼第二节需求规约(SRS)1.需求规约的定义★是一个软件/产品/系统所有需求陈述的正式文档,它表达了一个软件/产品/系统的概念模型。2.需求规约的基本性质★(1)重要性和稳定性程度:对需求进行分级(2)可修改的(3)完整的:没有被遗漏的需求(4)一致的:不存在互斥的需求3.需求规约(规格说明书)的表达(1)非形式化的需求规约(2)半形式化的需求规约(3)形式化的需求规约4.需求规约的作用★(1)需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现(2)需求规约是一个管理控制点(3)对于产品/系统的而设计,需求规约是一个正式的、受控的起始点(4)需求规约是创建产品验收计划和用户指南的基础第三章结构化方法复习建议:自顶向下,逐步求精。本章是整个课程的重点内容,其基本思想、基本原理和基本方法是软件工程理论体系中最经典的内容,考核题型涉及单项选择题、填空题、简答题、综合应用题所有题目类型,占分值25%左右。建议考生在牢记基本概念、基本原理的基础上,对综合应用题多下工夫,多做练习。第一节结构化需求分析1.需求分析面临的挑战4/42(1)问题空间理解(2)人与人之间的通信,“有效沟通”(3)需求的变化性2.结构化分析中的基本术语及表示方法(1)数据流(2)加工(3)数据存储(4)数据源和数据潭3.数据流图DFD图★★要会画DFD图用于建立系统功能模型。是一种描述数据变换的图形化工具,其中包含的元素可以是数据流、数据存储、加工、数据源和数据潭等。4.建模过程(绘制流程图的过程)自顶向下、功能分解(1)建立系统环境图(2)0层图:从0层图开始对流程图中的要素编号(3)1层图(4)……要注意的问题:①黑洞(blackhole),即只有输入而没有输出。②只有输出而没有输入。③灰洞(grayhole),即输入不足以产生输出。灰洞是经常也是不易被察觉的错误。④加工处理只用来表示数据的处理和变化,避免将计算机命令作为处理。⑤数据流必须起于且/或止于处理,即每一个数据流必须有一个处理与之有关,数据流不能起于数据存贮且止于一个数据源/数据潭或另一个数据存贮;也不能起于某个实体且止于另一个数据源/数据潭或数据存贮。5.数据字典定义数据流程图中所有数据流和数据存储的数据结构。顺序结构:+选择结构:|重复结构:{}子界:m..n6.加工的描述★(1)判定表5/42判断表(DecisionTable)也称为决策表,是一个二维表,它说明了每一种条件组合所产生的结果。该表分为四个象限(quadrants)。a)左上限代表所有的条件b)左下限代表可能的结果c)右上限代表每一种条件的取值(用Y和N来表示)d)右下限用X表示所对应的条件组合所产生的结果(2)判定树判断树(DecisionTree)也称为决策树,是用来描述在一组不同的条件下,决策的行动是根据不同条件及其取值来选择的处理过程。业务规则的描述通常可以使用判断树这一过程描述工具。(3)结构化语言7.需求验证(1)验证每一个需求满足5个性质(2)验证需求规格说明书满足4个性质第二节结构化设计分为总体设计和详细设计1.总体设计的任务把系统的功能需求分配到一个特定的软件体系结构中。2.表达软件体系结构的工具(1)模块结构图(2)层次图(3)HIPO图3.模块结构图★结构图(StructureChart)是对软件总体结构的一种图形描述,它显示了软件的层次结构、组织和通讯。也就是说,在结构图中,显示了软件是由哪些模块组成的,这些模块按照什么样的层次结构组织在一起以及模块之间通过什么接口联系在一起。结构图也称之为控制结构图、模块结构图或系统结构图。(1)模块符号(2)模块调用关系(3)模块间的数据传递(4)模块间的控制信息传递(5)循环调用结构(6)选择调用结构6/42(7)数据存储4.层次图层次图中一个矩形框代表一个模块,框间的连线表示调用关系(位于上方的矩形框所代表的模块调用位于下方的矩形框所代表的模块)。5.HIPO图HIPO图是美国IBM公司发明的“层次图加输入/处理/输出图”的英文缩写。为了使HIPO图具有可追踪性,在H图(即层次图)里除了顶层的方框之外,每个方框都加了编号。H图+IPO图6.总体设计步骤将DFD图映射为设计层面的模块及模块调用。(1)变换流(TransformFlow)。基于变换流的数据流程图是一个线性的顺序结构,由输入臂、输出臂和变换中心三部分组成。其中变换中心使系统数据发生本质的变化,输入臂将物理输入变换成逻辑输入,而输出臂则将逻辑输出变换成物理输出。(2)事务流(TransactionFlow)。事务流的数据流程图中有一个事务处理中心,它将输入分为许多相互平行的加工路径,然后根据输入的属性,选择某一加工路径。如下图所示。业务中心完成以下任务:⑴接收事务(即输入数据);⑵分析每个事务并确定它的类型;⑶根据事务的类型选取一条活动通路。任何处理都可以划分为两种转换类型之一:以转换为中心的分解和以业务为中心结构的分解。7.模块执行一个特殊任务的一个过程以及相关的数据结构。模块通常由两部分组成:模块接口和模块体。8.模块化“分而治之”和“抽象”。把一个待开发的软件分解成若干个简单的、具有高内聚低耦合的模块,这一过程称为模块化。模块化是系统设计基本原理/原则之一。9.内聚(Cohesion)是指一个模块内部个成分之间相互关联程度的度量。也就是说,凝聚是对模块内各处理动作组合强度的一种度量。很显然,一个模块的内聚越大越好。(1)偶然凝聚可维护性最差(2)逻辑凝聚(3)时间凝聚(4)过程内聚(5)通信内聚(6)顺序凝聚7/42(7)功能凝聚可维护性最好10.模块耦合耦合(coupling)是对两个模块之间联接程度的一种度量。模块间的依赖程度越大,则其耦合程度也就越大;反之,模块间的依赖程度越小,则其耦合程度也就越小。很显然,为了使软件具有较好的可维护性和可修改性,模块间的关联程度即耦合程度应越小越好。因为耦合程度越小,表明模块间的独立程度越大,这样在修改一个模块时,对其它模块的影响程度就越小,从而使模块的修改工作局限于一个最小范围之内。(1)内容耦合(2)公共耦合(3)数据耦合(4)控制耦合(5)标记耦合原则是:尽量用数据耦合,少用控制耦合,限制公共耦合的范围,避免使用内容耦合。11.启发式规则高内聚、低耦合。(1)改进软件结构,提高软件独立性。模块分解(2)模块规模适中(3)力求深度、宽度、扇出、扇入适中。深度:表示其控制的层数。宽度:同一层次上模块总数的最大值。扇出:一个模块直接控制的下级模块的数目。扇入:有多少个上级模块直接调用它。原则:顶层模块扇出比较大,中间层模块扇出较小,底层模块具有较大的扇入。(4)尽量使模块的作用域在其控制域内。模块的控制域:这个模块本身以及所有直接或间接从属它的模块的集合。模块的作用域:受该模块内一个判断所影响的所有模块的集合。(5)尽力降低模块接口的复杂度(6)力求模块功能可以预测12.详细设计具体描述模块结构图中的每一模块,即给出实现模块功能的实施机制,包括一组例程和数据结构。13.结构化程序设计方法一种基于结构的编程方法,即采用顺序结构、选择结构和重复结构进行编程,其中每一结构只允许一个入口和一个出口。8/42三种基本的控制结构:(a)顺序结构,先执行A再执行B(b)IF-THEN-ELSE型选择(分支)(c)DO-WHILE型循环结构14.详细设计工具(1)程序流程图程序流程图:程序流程图又称为程序框图,它是历史最悠久使用最广泛的描述过程设计的方法,然而它也是用得最混乱的一种方法。(2)盒图(N-S图)出于要有一种不允许违背结构程序设计精神的图形工具的考虑,Nassi和Shneiderman提出了盒图,又称为N-S图。(a)顺序;(b)IF-THEN-ELSE型分支;(c)CASE型多分支;(d)循环;(e)调用子程序A(3)PAD图PAD是问题分析图(ProblemAnalysisDiagram)的英文缩写,自1973年由日本日立公司发明以后,已得到9/42一定程度的推广。它用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。下图给出PAD图的基本符号。(4)类程序设计语言PDLPDL也称为伪码,它是用正文形式表示数据和处理过程的设计工具。PDL具有严格的关键字外部语法,用于定义控制结构和数据结构;另一方面,PDL表示实际操作和条件的内部语法通常又是灵活自由的,以便可以适应各种工程项目的需要。因此,一般说来PDL是一种“混杂”语言,它使用一种语言(通常是某种自然语言)的词汇,同时却使用另一种语言(某种结构化的程序设计语言)的语法。可以作为注释工具直接插在源程序中间。15.设计规约完整准确地描述满足需求规约所要求的所有功能模块,以及伴随功能模块而出现的非功能机制。设计规约包括概要设计规约和详细设计规约。(1)概要设计规约指明高层软件体系结构。系统环境软件模块的结构模块描述文件结构和全局数据文件的逻辑结构测试需求(2)详细设计规约各处理过程的算法算法所涉及的全部数据结构的描述第四章面向对象方法UML统一建模语言(UnifiedModelingLanguage,UML)UML是目前流行的建模语言,特别是在网站开发中广泛应用。10/42UML涉及很多的图,每一种图都有不同的图形符号、作用,在什么情况下用何种图来描述是本章的重点内容。考核题目类型包括单项选择题、填空题、简答题,分值在10%~15%之间。需要考生掌握各种UML图的作用。面向对象建模过程的步骤:(1)需求获取a)建立用况(usecase)模型和用况场景(2)需求分析a)建立活动图和状态图b)类图(建立域模型)c)顺序图(实现用况)(3)编写需求规格说明书(4)需求验证第一节UML术语表1.对象(object)对象(object)是系统中用来描述客观事物的一个实体。一个对象由一组属性和对这组属性进行操作的一组方法组成。对象只描述客观事物本质的
本文标题:自学考试专题:1204-02333软件工程复习要点
链接地址:https://www.777doc.com/doc-8654152 .html