您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 苏州大学软件工程导论复习重点
软件工程课程的内容软件工程学概述结构化方法学(生命周期方法学)面向对象方法学软件项目管理可行性研究需求分析形式化说明技术总体设计详细设计实现维护面向对象方法学引论面向对象分析面向对象设计面向对象实现第1章软件工程学概述•重点:–1.产生软件危机的原因–2.消除软件危机的途径–3.软件工程的基本原理–4.软件生命周期的三个时期和八个阶段–5.软件过程模型:瀑布模型、快速原型模型、增量模型、螺旋模型•复习要点:–1.软件生命周期的3个时期、8个阶段–2.软件工程方法学:传统方法学和面向对象方法学–3.软件过程模型:瀑布模型、快速原型模型、增量模型、螺旋模型第2章可行性研究•重点–1.画系统流程图的方法–2.画数据流图的方法–3.数据字典的用途–4.数据字典的实现•复习要点–1.可行性研究主要研究系统的哪些可行性?–2.掌握数据流图的画法–3.数据流图与程序流程图的区别第3章需求分析•重点–1.需求分析的任务–2.获取需求的方法–3.分析建模–4.实体-联系图•复习要点※–1.需求分析的基本任务是分析系统做什么,确定系统的逻辑功能。–2.需求分析阶段建立3种模型:数据模型、功能模型、行为模型。–3.掌握实体-联系图(E-R图)的画法。第5章总体设计•重点–1.设计原理:模块化、模块独立–2.面向数据流的设计方法•复习要点–1.模块独立的两个定性标准度量:内聚和耦合。–2.面向数据流的设计方法第6章详细设计•重点–1.结构程序设计–2.过程设计的工具:程序流程图、N-S图、判定表•复习要点※–1.程序的基本控制结构有哪些?–2.程序流程图和N-S图(盒图)的基本符号–3.会画程序流程图、N-S图和判定表、判定树第7章实现•重点–1.编码风格–2.测试步骤–3.Alpha和Beta测试–4.白盒测试:逻辑覆盖–5.黑盒测试:等价划分–6.调试途径•复习要点–1.测试的目的、任务及分类(黑盒测试和白盒测试)–2.Alpha和Beta测试–3.掌握逻辑覆盖法–4.掌握等价划分法和边界值分析法第8章维护•重点–1.软件维护的定义–2.软件维护的类型–3.软件维护的过程–4.决定软件可维护性的因素•复习要点–1.软件维护:改正性维护、适应性维护、完善性维护、预防性维护–2.决定软件可维护性的因素:可理解性、可测试性、可修改性、可移植性、可重用性第9章面向对象方法学引论•重点–1.面向对象方法学与结构化方法学的区别–2.面向对象的基本概念:对象与类–3.面向对象建模的三种模型:对象模型、动态模型、功能模型–4.用例图–5.三种模型之间的关系•复习要点–1.面向对象方法学与结构化方法学的区别–2.面向对象方法学及意义–3.面向对象建模的三种模型及三种模型之间的关系–4.面向对象方法学的优点第10章面向对象分析•重点–1.建立对象模型:确定类与对象、确定关联–2.建立动态模型:编写脚本、画事件跟踪图、画状态图–3.建立功能模型:画基本系统模型、画功能级数据流图•复习要点–1.建立对象模型、动态模型、功能模型–2.动态模型和功能模型中包含了对象模型中的操作(即服务或方法)–3.面向对象分析的首要工作是建立问题域的对象模型。第11章面向对象设计•重点–1.启发规则–2.设计数据管理子系统–3.确定类中应用的服务–4.设计实现服务的方法•复习要点–1.面向对象设计准则有哪些?–2.数据存储管理模式有哪些?–3.需要综合考虑对象模型、动态模型和功能模型,才能正确确定类中应用的服务。–4.设计实现服务的方法第12章面向对象实现•重点–1.提高可重用性的方法–2.测试类的方法•复习要点–1.面向对象实现包括哪两项工作?–2.提高可重用性的方法有哪些?–3.测试类的方法有哪些?13第1章软件工程学概述1、什么是软件危机?P12、软件危机产生的原因有哪些?P33、什么是软件工程?P54、软件工程方法学包含哪些要素?P95、在软件过程中有哪些模型?他们各自的特点是哪些?P15—P2214第2章可行性研究1、可行性研究的目的是什么?P252、应从哪些方面研究可行性?P253、如何画系统流程图?P27—P304、如何画数据流图?P30—P375、了解数据字典及成本效益分析。15数据流图(DataFlowDiagram,DFD)是描述系统中数据流程的图形工具,它标识了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换为逻辑输出所需的加工处理。2.4数据流图2.4数据流图(DFD)数据存储数据源点或终点处理加工名数据流数据流名文件名实体名箭头圆或椭圆单或双杠矩形框还有一些辅助的图例:一、数据流图的图符四种基本图形符号:TAB*CTAB*CTAB+CTAB+CTABC+TABC+*与+或互斥+162.4数据流图举例:储户储户1记录存款信息打印存款信息存款单存款信息存款存单3计算利息4打印利息清单存款信息利息值利息清单D1存款信息存款信息217细化后的计算机储蓄系统软件结构计算机存储系统数据输入数据处理数据输出记录存款信息计算利息修改记录打印存单打印利息清单输入相关取款信息输入存款相关信息存款处理取款处理18第3章需求分析1、需求分析的基本任务是什么?P46-P482、分析建模2.1什么是模型?模型:就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规则组成。2.2数据模型(E-R)、功能模型(2.4节数据流图)、行为模型(状态转换图是行为模型的基础)3、要从哪些方面验证软件需求?P6019第4章形式化说明技术软件工程的使用方法非形式化:用自然语言描述需求规格说明半形式化:用数据流图或实体—联系图建立模型形式化:描述系统性质的基于数学的技术1、有穷状态机P67—P722、Petri网技术P72—P7520第5章总体设计1、在设计过程中,总体设计一般有哪两个主要阶段组成?P812、什么模块化?模块独立性包含哪些内容?度量准则是什么?P85—P893、启发规则有哪些?P90—P924、描绘软件结构的图形工具P92-P945、面向数据流的设计方法P95—P102215.2设计原理5.2.1模块化模块是程序对象有名字的集合。例如,过程、函数、子程序、宏等,是构成软件系统结构的基本元素。模块化就是将系统划分为若干个模块,每个模块完成一个子功能。模块化的目的是将系统“分而治之”,模块化能够降低问题的复杂性,使软件结构清晰,易阅读、易理解,易于测试和调试,因而也有助于提高软件的可靠性。22模块化降低软件复杂度的简单证明5.2.5模块独立5.2.5模块独立“模块”,又称“构件”,一般指用一个名字可调用的一段程序。它一般具有如下三个基本属性:⑴功能即指该模块实现什么功能,做什么事情。必须注意:模块功能,应是该模块本身的功能加上它所调用的所有子模块的功能。⑵逻辑即描述模块内部怎么做。⑶状态即该模块使用时的环境和条件。所谓模块的独立性,是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他模块的接口是简单的。即功能专一,模块之间无过多的相互作用的模块。这种类型的模块可以并行开发,模块独立性越强,开发越容易。独立性强的模块,还能减少错误的影响,使模块容易组合、修改及测试。235.2.5模块独立性模块独立性的度量标准是两个定性准则:耦合性用于描述模块之间联系的紧密程度。内聚性用于描述模块内部联系的紧密程度。模块独立性比较强的模块应该是具有高内聚性和的低耦合度。24变换中心变换输入输出图5.8变换型数据流图的基本模型5.5.1概念–变换流25图事务型数据流图的基本模型事务中心输入流接收路径加工路径…5.5.1概念–事务流26变换分析设计:把具有变换流特点的数据流图按预先确定的模式映射成软件结构。不具有显著的事务特点。虽然在任何情况下都可以使用变换分析方法设计软件结构,但是在数据流具有明显的事务特点时,也就是有一个明显的“发射中心”(事务中心)时,还是以采用事务分析方法为宜。两者的主要差别仅在于由数据流图到软件结构的映射方法不同。27第6章详细设计1、结构程序设计中有哪几种基本控制结构?P1082、了解人机界面的设计。3、掌握过程设计的工具(程序流程图、盒图、PAD图,判定树)P114—P1194、面向数据结构的设计方法(Jackson图)5、程序复杂度的定量度量(McCabe)286.1结构程序设计6.1结构程序设计图6.13种基本的控制结构296.1结构程序设计其他常用的控制结构图6.2其他常用的控制结构306.3.1程序流程图程序流程图是最早出现且使用较为广泛的算法表达工具之一,能够有效地描述问题求解过程中的程序逻辑结构。程序流程图中经常使用的基本符号如图6.3所示。图6.3程序流程图中使用的符号31N-S图又称为盒图,它是为了保证结构化程序设计而由Nassi和Shneiderman共同提出的一种图形工具。在N-S图中,所有的程序结构均使用矩形框表示,它可以清晰地表达结构中的嵌套及模块的层次关系。N-S图中,基本控制结构的表示符号如图6.4所示。6.3.2N-S图326.3.2N-S图图6.4盒图的基本符号33图6.5PAD中基本符号(a)顺序结构;(b)分支结构;(c)多分支CASE结构;(d)当型循环;(e);直到型循环;(f)语句标号;(g)定义6.3.3PAD图346.3.3PAD图图6.6使用PAD图提供的定义功能来逐步求精的例子356.4面向数据结构的设计方法6.4面向数据结构的设计方法Jackson方法和Warnier方法是最著名的两个面向数据结构的设计方法36Jackson方法是由英国的M.A.Jackson在1975年首先提出的,他同时还提出了与这种方法配套使用的、用于描述系统数据结构和程序结构的图形工具,被称为Jackson图。Jackson方法从目标系统的输入、输出数据结构入手,导出程序框架结构,再补充其他细节,就可得到完整的程序结构图。这一方法对输入、输出数据结构明确的中、小型系统特别有效,如商业应用中的文件、表格处理。该方法也可与其他方法结合,用于模块的详细设计。6.4面向数据结构的设计方法6.4.1Jackson图37图6.8三种基本结构在Jackson图中的表示符号(a)顺序结构;(b)选择结构;(c);循环结构6.4.1Jackson图(a)(c)(b)386.4面向数据结构的设计方法6.4.2改进的Jackson图图6.9改进的Jackson图396.5程序复杂程度的定量度量定量度量程序复杂程度的方法很有价值:把程序的复杂程度乘以适当常数即可估算出软件中错误的数量以及软件开发需要用的工作量,定量度量的结果可以用来比较两个不同的设计或两个不同算法的优劣;程序的定量的复杂程度可以作为模块规模的精确限度。406.5程序复杂程度的定量度量6.5.1McCabe方法McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果称为程序的环形复杂度。为了突出表示程序的控制流,人们通常使用流图(也称为程序图)。所谓流图实质上是“退化了的”程序流程图,它仅仅描绘程序的控制流程,完全不表现对数据的具体操作以及分支或循环的具体条件。416.5程序复杂程度的定量度量图6.16把程序流程图影射成流图42环形复杂度定量度量程序的逻辑复杂度。有了描绘程序控制流的流图之后,可以用下述3种方法中的任何一种来计算环形复杂度。(1)流图中的区域数等于环形复杂度。(2)流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。(3)流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。6.5.1计算环形复杂度的方法43第7章实现1、编码2、测试技术P139—P1693、调试的途径有哪些?P1684、软件可靠性和可用性的基本概念P16944编码:把软件设计结果翻译成用某种程序语言书写的程序。测试:软件测试的目的是在软件投入生产性运行前,尽可能多的发现软件中的错误。实现编码和测试457.2软件测试基础7.2软件测试基础软件测试:为发现程
本文标题:苏州大学软件工程导论复习重点
链接地址:https://www.777doc.com/doc-2054146 .html