您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 软件工程每章复习重点
软件工程复习资料2010.6.10olunx整理1/27考试题型:选择20`填空20`简答30`分析30`第一章概述1.软件危机软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题,如软件费用、软件可靠性、软件维护、软件生产、软件重用等。2.软件生存周期软件生存周期是指一个软件从提出需求开始直到该软件报废为止的整个时期。通常,软件生存周期包括可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等活动,可以将这些活动以适当方式分配到不同阶段去完成。3.软件开发过程模型a)瀑布模型瀑布模型将软件开发过程划分为需求定义与分析、软件设计、软件实现、软件测试和运行维护等一系列基本活动,并且规定这些活动自上而下、相互衔接的固定次序。b)快速原型模型快速原型模型需要迅速建造一个可以运行的软件原型,以便理解和澄清问题,使开发人员与用户达成共识,最终在确定的客户需求基础上开发客户满意的软件产品。软件工程复习资料2010.6.10olunx整理2/27c)增量模型增量模型是一种非整体开发的模型,在增量模型中,软件被作为一系列的增量构件来设计、编码、集成和测试,从而适应用户逐步细化需求的形成过程。d)喷泉模型喷泉模型是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。e)螺旋模型螺旋模型将瀑布模型和快速原型模型结合起来,将软件过程划分为若干个开发回线,每一个回线表示开发过程的一个阶段。软件工程复习资料2010.6.10olunx整理3/27f)型式化方法模型型式化方法模型又称变换模型。该模型结合了形式化软件开发方法和程序自动生成技术,采用形式化需求规格说明和变化技术等技术手段,生产目标程序系统。g)基于构件的开发模型基于构件的开发过程模型是使用可重用的构件或商业组件建立复杂的软件系统,即在确定需求描述的基础上,开发人员首先进行构件分析和选择,然后设计或者选用已有的体系结构框架,复用所选择的构件,最后将所有的组件集成在一起,并完成系统测试。4.软件开发的方法a)结构化方法结构化方法由结构化分析,结构化设计和结构化程序设计组成,是一种面向数据流的开发方法。该方法采用自顶向下、逐步求情的指导思想,应用较广,技术成熟。b)Jackson方法Jackson方法是一种面向数据结构的开发方法。Jackson方法是以数据结构为驱动的,适合于小规模的项目。c)维也纳开发方法维也纳开发方法是一种形式化的开发方法,软件的需求用严格的形式语言描述,然后把描述模型逐步变换成目标系统。d)面向对象开发方法面向对象开发方法包括面向对象分析、面向对象设计和面向对象实现。面向对象开发方法有Booch方法、Coad方法和OMT(ObjectModelingTechnology)方法等。为了统一各种面向对象方法的术语、概念和模型,1997年推出了统一建模语言,即UML语言。它是面向对象的标准建模语言,通过统一的语义和符号表示,使各种方法的建模过程和表示统一起来,将成为面向对象建模的工业标准。软件工程复习资料2010.6.10olunx整理4/27第二章需求分析1.可行性研究的任务a)技术可行性对要开发的项目的功能、性能和限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目是否能够实现。b)经济可行性进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。c)社会可行性要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。2.成本估算方法a)自顶向下估算方法估算人员参照以前完成的项目所耗费的总成本,来推算将要开发的软件总成本,然后把它们按阶段、步骤和工作单元进行分配。b)自底向上估算方法将待开发的软件细分,分别估算每一个子任务所需要的开发工作量,然后将它们加起来,得到软件的总开发量。c)差别估算方法将开发项目与一个或多个已完成的类似项目进行比较,找到与某个相类似项目的若干不同之处,并估算每个不同之处对成本的影响,导出开发项目的总成本。d)专家判断技术一个或多个专家根据所具有的专业知识和丰富经验,通过近似的猜测估计出项目成本。Delphi方法是最流行的专家评估技术。e)类比估算法一种比较科学的传统估算方法,它通过新项目与历史项目的比较得到规模估算。3.成本估算模型COCOMO模型(理解)书本P274.常用的需求分析的方法面向数据流的结构化分析方法(SA)面向数据结构的Jackson方法(JSD)面向数据结构的结构化数据系统开发方法(DSSD)软件工程复习资料2010.6.10olunx整理5/27面向对象的分析方法(OOA)等5.结构化分析方法结构化分析方法适合于数据处理类型软件的需求分析。具体来说,结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。a)数据流图i.定义数据流图(DataFlowDiagram,简称DFD)描绘系统的逻辑模型,是结构化系统分析的主要工具。数据流图(DFD)是描述软件系统中数据处理过程的一种有力的图形工具。由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。ii.数据流图中的主要图形元素iii.画数据流图步骤1.首先画系统的输入输出,即先画顶层数据流图。顶层流图只包含一个加工,用以表示被开发的系统,然后考虑该系统有哪些输入数据,这些输入数据从哪里来;有哪些输出数据,输出到哪里去。2.画系统内部,即画下层数据流图。一般将层号从0开始编号,采用自顶向下,由外向内的原则。iv.注意事项1.命名。不论数据流、数据存储还是加工,合适的命名使人们易于理解其含义。2.一般不画物质流。数据流反映能用计算机处理的数据,并不是实物,因此对目标系统的数据流图一般不要画物质流3.父图与子图的平衡。子图的输入输出数据流和父图相应加工的输入输出数据必须一致,此即父图与子图的平衡。4.局部数据存储。当某层数据流图中的数据存储不是由图中相应加工的外部接口,而只是本图中某些加工之间的数据接口,则称这些数据存储为局部数据存储。5.提高数据流图的易理解性。注意合理分解,要把一个加工分解成几个功能相对独立的子加工,这样可以减少加工之间输入、输出数据流的数目,增加数据流图的可理解性。软件工程复习资料2010.6.10olunx整理6/27v.数据流图的层次结构为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。vi.结构化分析方法步骤示例这个数据流图只是一个高层的系统逻辑模型,它反映了目标系统要实现的功能数据流图绘制步骤1.首先确定系统的输入和输出2.根据商店业务,画出顶层数据流图,以反映最主要业务处理流程3.经过分析,商店业务处理的主要功能应当有销售、采购、会计三大项。主要数据流输入的源点和输出终点是顾客和供应商。4.然后从输入端开始,根据商店业务工作流程,画出数据流流经的各加工框,逐步画到输出端,得到第一层数据流图。软件工程复习资料2010.6.10olunx整理7/27vii.检查和修改数据流图的原则1.数据流图上所有图形符号只限于前述四种基本图形元素。2.数据流图的主图必须包括前述四种基本元素,缺一不可。3.数据流图的主图上的数据流必须封闭在外部实体之间。4.每个加工至少有一个输入数据流和一个输出数据流。5.在数据流图中,需按层给加工框编号。编号表明该加工所处层次及上下层的亲子关系。6.规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子图的平衡。7.可以在数据流图中加入物质流,帮助用户理解数据流图。8.图上每个元素都必须有名字。软件工程复习资料2010.6.10olunx整理8/279.数据流图中不可夹带控制流。10.初画时可以忽略琐碎的细节,以集中精力于主要数据流。b)数据字典i.定义数据字典(DataDictionary)是关于数据的信息的集合,通过数据字典对数据流程图中的各个元素作精确的定义与说明。它是数据流图的补充工具。数据字典与数据流图配合,能清楚地表达数据处理的要求。二者构成需求规格说明书的主要部分。词条描述——对于在数据流图中每一个被命名的图形元素,均加以定义,其内容有:名字,别名或编号,分类,描述,定义,位置,其它等。ii.数据字典的内容及格式数据字典是为分析人员和用户查找数据流图中有关名字的详细定义而服务的,因此也像其他任何字典一样,要把所有条目按一定次序排列起来,以便查阅。数据字典有以下四类条目:数据流、数据项、数据存储、基本加工。其中,数据项是组成数据流和数据存储的最小元素。1.数据流条目给出了DFD中数据流的定义,主要部分是列出该数据流的各组成数据项。在定义数据流及数据存储组成时,通常要用到表2.4给出的符号。2.数据存储条目是对数据文件内容的定义,主要内容举例如下:数据存储名称:学生成绩库别名:无组成:学生学号+课程编码+成绩+备注软件工程复习资料2010.6.10olunx整理9/27组织方式:以学号为记录关键字升序排列。3.数据项条目给出某个数据单项的定义,内容通常为数据项的值类型、允许取值范围等,其定义结构与数据流条目类似。4.加工条目是用来说明DFD中基本加工的处理逻辑,对其他非基本加工则不必进行加工说明。加工条目主要由输入数据、加工逻辑和输出数据等部分组成,加工逻辑描述把输入数据转换为输出数据的过程,是加工条目的主体。为了使加工逻辑直观易读,有几种常用的描述方法,它们是结构化语言、判定表和判定树。加工条目内容举例如下:加工名称:查阅库存编号:1.2输入:合格订单输出:供货订单或缺货订单加工逻辑:根据库存记录IF订单项目数量该项目库存量的临界值THEN可供货处理ELSE此订单缺货,登记,待进货后再处理ENDIFiii.数据字典的实现数据字典的建立可以用手工和自动两种方式实现。手工方式是指把每一个字典条目写在卡片上,由专人管理和维护。自动方式是借助数据字典处理程序,把字典条目输入到计算机中,用计算机对它进行检索和维护。第三章系统设计1.概要设计a)基本任务i.设计软件系统结构:1.采用某种设计方法,将一个复杂的系统按功能划分成模块。2.确定每个模块的功能。3.确定模块之间的调用关系。4.确定模块之间的接口,即模块之间传递的信息。5.评价模块结构的质量.ii.数据结构设计:采用“逐步细化”的方法,如采用数据字典描述逐步细化。设计有效的数据结构(如队列,线性表,链表等),大大简化软件模块处理过程的设计。b)编写概要设计文档:i.概要设计说明书。ii.数据库设计说明书:主要给出所使用的DBMS简介、数据库的概要模型、逻辑设计、结果。iii.用户手册:对需求分析阶段编写的用户手册进行补充。iv.修订测试计划,对测试策略、方法、步骤提出明确要求。c)模块的独立性i.模块独立性,是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它的模块的联系最软件工程复习资料2010.6.10olunx整理10/27小且接口是简单的.ii.一般采用两个准则度量模块独立性。即模块间耦合和模块内聚iii.耦合是模块之间的互相连接的紧密程度的度量。iv.内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。v.模块独立性比较强的模块应是高内聚低耦合的模块。d)软件系统设计技术2.详细设计a)任务i.确定每个模块的具体算法。ii.确定每个模块的内部数据结构及数据库的物理结构。iii.确定模块接口的具体细节。(即确定模块接口的详细信息,包括模块之间的接口信息、模块与系统外部的接口信息及用户界面等。)iv.为每个模块设计一组测试用例。v.编写文档,参加复审。b)详细设计可采用的工具i.(传统的)程序流程图程序流程图是最早出现且使用较为广泛的算法表达工具之一,能够有效地描述问题求解过程中的程序逻辑结构。程序流程图中经常使用的基本符号如图所示。软件
本文标题:软件工程每章复习重点
链接地址:https://www.777doc.com/doc-5201909 .html