2016武汉大学软件工程重点

合集下载

软件工程重点总结(5篇)

软件工程重点总结(5篇)

软件工程重点总结(5篇)第一篇:软件工程重点总结软件的定义:软件是计算机系统中与硬件相互依存的另一部分,软件包括程序、数据及其相关文档的完整集合。

在结构化程序设计时代,程序的最小单位是向对象程序设计时代,程序的最小单位是类,在类中封装了相关的数据及指令代码。

软件的特性:形态特性、智能特性、开发特特性、维护特性、废弃特性、应用特性。

软件的分类:系统软件、应用软件、支撑软软件危机的表现:软件开发周期长、成本高、软件危机发生的原因:(1)缺乏软件开发的工作的计划很难制定。

(2)软件人员与用户的交流存在障碍。

(3)软件开发过程不规范,缺少方法论和规范的指导,开发人员各自为战,缺少整体的规划和配合,不重视文字资料工作,软件难以维护。

(4)随着软件规模的增大,其复杂性往往会呈指数级升高。

(5)缺少有效的软件测评手段,提高用户的软件质量差,在运行中暴露出大量的问题,轻者影响系统的正常使用,重者发生事故,甚至造成生命财产的重大损失。

首次提出“软件工程”的概念的时间是1968年。

按工程化的原则和方法组织软件开发工作是软件工程的定义:软件工程是指导软件开发和维护的工程性学科,它以计算机科学理论和其他相关学科的理论为指导,采用工程化的概念、原理、技术和方法进行软件的开发和维护,把经过时间考验而证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,以较少的代价获得高质量的软件并维护它。

软件工程的目标是运用先进的软件开发技术衡量软件的质量的六个特性:功能性、可靠软件生存期的三个时期:软件定义、软件开定义时期的主要任务是解决“做什么”的问地满足用户的需要。

开发过程中的典型文档包括:软件需求规格计说明书、用户手册。

各个阶段所要完成的基本任务:问题定义与可行性研究、需求分析、软件设计、程序编码和单元测试、集成测试和系统测试、软件运行和维护。

典型的软件生存期模型包括瀑布模型、原型模型、增量模型、螺旋模型等(喷泉模型)。

瀑布模型的特点:1)阶段间具有顺序性和依赖性。

软件工程复习提纲(20160615)

软件工程复习提纲(20160615)

软件工程复习提纲Chapter11.开发文档都有哪些?用图来表示它们之间的关系。

2.说明软件工程研究的内容.3.软件工程的7条基本原理有何现实意义。

4.怎样理解ISO9000的文档体系?质量手册、程序文件、质量记录三者有何联系和区别?5.怎样理解CMMI,如何用CMMI去管理软件企业?6.是否存在这一种现象:搞系统软件的公司不需要采用CMMI和ISO9000模式?CMMI和ISO9000模式只适用于搞应用软件的企业?如果是,为什么,如果不是,又为什么?7.软件工程与信息系统工程有何异同?8.怎样理解元数据?Chapter21.为什么要选择软件开发模型?软件开发模型与软件生存周期有什么关系?2.简述瀑布模型、增量模型、迭代模型、原型模型的优缺点。

3.软件公司的ISO9000或CMM管理体系与软件开发模型有关吗,为什么?4.你对“生存周期模型裁剪指南"有什么看法?5.“图书馆信息系统”的开发选用什么开发模型合适?Chapter31.立项的具体表现形式是什么?2.立项建议书的编制者为什么主要是软件公司的市场销售人员,而不是开发人员?3.什么叫风险分析,技能风险与技术风险有何区别?3.合同、任务书、立项建议书三者有何异同?有何关系?4.对软件项目和产品的“功能、性能、接口"三项指标如何理解?Chapter41.需求分析的目的是什么,需求分析的难点在哪里?2.需求分析的理论基础有哪几条?3.为什么说需求分析是面向流程的?4.解释术语:元数据、实体、中间数据.5.用户需求报告与需求规格书有何差异?6.需求描述有哪几种工具?你喜欢哪一种,为什么?1.简述软件策划的步骤.2.简述软件策划的方法。

3.简述对软件工作产品规模进行量化估计的方法。

4.软件工作产品和软件产品有何异同?5.名称解释:直接人工、直接费用、间接成本、制造费用、管理费用、不可预见费用。

6.怎样理解软件中的度量,它有何作用?Chapter61.概要设计说明书和详细设计说明书有何区别?2.怎么理解“软件概要设计是系统总体结构设计或系统架构设计”?3.模块实现设计包括哪些内容?4.为什么软件设计要遵守“抽象、分解与模块化、低耦合高内聚、封装、接口和实现分离”的设计原理?Chapter71.简述UML的优缺点。

《软件工程》-经典考试例题复习题,重点知识点(含答案)

《软件工程》-经典考试例题复习题,重点知识点(含答案)

1.某旅馆的电话服务如下:可以拨分机号和外线号码。

分机号是从7201至7299。

外线号码先拨9,然后是市话号码或长话号码。

长话号码是以区号和市话号码组成。

区号是从100到300中任意的数字串。

市话号码是以局号和分局号组成。

局号可以是455,466,888,552中任意一个号码。

分局号是任意长度为4的数字串。

要求:写出在数据字典中,电话号码的数据流条目的定义即组成。

电话号码=[分机号|外线号码]分机号=7201 (7299)外线号码=9+[市话号码|长话号码]长话号码=区号+市话号码区号=100 (300)市话号码=局号+分局号局号=[455|466|888|552]分局号=4{数字}4数字=[0|1|2|3|4|5|6|7|8|9]2.为以下程序流程图分别设计语句覆盖和判定覆盖测试用例,并标明程序执行路径。

(1)语句覆盖测试用例令x=2,y=0,z=4作为测试数据,程序执行路径为abcde。

(2)判定覆盖可以设计如下两组数据以满足判定覆盖:x=3,y=0,z=1(1分)(通过路径abce);x=2,y=1,z=2(1分)(通过路径acde)。

或者x=2,y=1,z=1;覆盖路径acdex=1,y=1,z=1;覆盖路径acex=3,y=0,z=1;覆盖路径abce(注意:本题也还可以有其他答案)3.请用判定表画出以下问题的行为逻辑。

人们往往根据天气情况决定出门时的行装。

天气可能下雨,也可能不下雨;下雨或不下雨天气可能变冷,也可能不变冷。

如果天气要下雨,出门时带上雨伞;如果天气变冷,4.对下列子程序进行调试:procedure example(y,z: real; var x: real)beginif (y>1) and (z=0) then x:=x/y;if (y=2) or (x>l) then x:=x+l;end.该子程序接受x, y, z的值,并将计算结果x的值返回给调用程序。

软件工程基础知识点总结

软件工程基础知识点总结

1 是计算机系统中与硬件相互依存的另一部份,是包括程序、数据以及相关文档的完整集合。

1) 程序是软件开辟人员根据用户需求开辟的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。

2) 数据是使程序能够正常操作信息的数据结构.3)文档是与程序开辟、维护和使用有关的图文资料。

国标(GB)计算机软件的定义:与计算机系统的操作相关的计算机程序、规程、规则以及可能有的文件、文档及数据。

21)软件是一种逻辑实体,而不是物理实体,具有抽象性,是计算机的无形部份;2)软件的生产与硬件不同,它没有明显的制作过程;3)软件在运行、使用期间不存在磨损、老化问题;4)软件的开辟、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题;5)软件复杂性高,成本昂贵;6)软件开辟涉及诸多的社会因素3按照功能可以分为:应用软件、系统软件、支撑软件(或者工具软件) 1)应用软件是为解决特定领域的应用而开辟的软件.2)系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。

3)支撑软件是介于系统软件和应用软件之间,协助用户开辟软件的工具软件。

4问题。

软件危机主要体现在以下几个方面:① 软件开辟的实际成本和进度估计不许确② 开辟出来的软件往往不能使用户满意③ 软件产品的质量不高,存在漏洞,需要时常打补丁④ 大量已有的软件难以维护⑤ 软件缺少有关的文档资料⑥ 开辟和维护成本不断提高,直接威胁计算机应用的扩大⑦ 软件生产技术进步缓慢,跟不上硬件的发展和人们需求增长5 .软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开辟与维护软件的学科.1)研究软件工程的主要目的就是在规定的时间、规定的开辟费用内开辟出满足用户需求的高质量的软件系统(高质量是指错误率低、好用、易用、可移植、易维护等)。

2)软件工程的三个要素:方法、工具和过程。

①方法:完成软件工程项目的技术手段;②工具:支持软件的开辟、管理、文档生成;③过程:支持软件开辟的各个环节的控制、管理。

软件工程重点

软件工程重点

第一章软件工程概述1软件的概念软件由两部分组成:计算机程序及其相关文档8 软件三层含义:一、个体含义,软件是指计算机系统中的某个程序及其文档,二、整体含义,软件指在特定计算机系统中所有个体含义的软件的总体,三,科学含义,软件指在开发、使用和维护前述含义下的软件按所涉及的理论、原则、方法、技术所构成的学科,在这种含义下,软件也可称为软件科学。

2特点:1)软件是一种逻辑实体,而不是具体的物理实体2)软件是开发出来的,而不是发明出来的3)软件也许被废弃,但不会被用坏4)以往的软件大多是定制的,而不是装配的5)软件的开发和运营经常受到计算机系统的限制,对计算机系统有着不同限度的依赖。

3软件的分类:1)系统软件:操作系统,编译软件,设备驱动2)应用软件:3)支撑软件:工具软件,需求分析工具,设计工具,测试工具,配置管理工具。

4)可复用软件:标准函数库,数据结构。

4软件工程的定义:指导软件开发和维护的工程性学科,它以计算机科学理论和其他相关学科的理论为指导,采用工程化的概念,原理,技术和方法进行软件的开发和维护,把通过时间考验而证明是对的的管理技术和当前可以得到的最佳技术方法结合起来,以较少的代价获得高质量的软件并维护它。

5软件生存周期 P121)问题定义与可行性研究:到底要解决什么问题,能否解决问题。

是否值得做。

2)需求分析:目的系统应当做什么3)软件设计:目的系统如何做。

4)程序编码与单元测试:编写对的的,可维护的程序代码5)综合测试6)软件维护6瀑布模型 p141)需求分析与定义:通过会商建立起系统功能,限制,目的,然后具体的定义他们,编制系统规格说明。

2)系统与软件设计:系统设计将需求分派给系统硬件和软件,软件设计标记和描述基本的系统构件以及他们之间的关系。

3)实现和单元测试:实现是将软件设计转化为一组程序或程序单元;单元测试检查每个程序单元是否满足设计规定。

4)集成和系统测试5)运营和维护7 Ratinal统一开发过程:用例驱动的,以体系结构为核心的,迭代的增量过程。

软件工程导论复习重点总结很全(第六版)

软件工程导论复习重点总结很全(第六版)

软件工程导论复习重点总结很全(第六版)第1章软件工程学概述1.1软件危机1.1.1软件危机的介绍软件危机(软件萧条、软件困扰:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

软件危机包含下述两方面的问题:如何开发软件,满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。

软件危机的典型表现:1对软件开发成本和进度的估计常常很不准确;2用户对“已完成的”软件系统不满意的现象经常发生;3软件产品的质量往往靠不住;4软件常常是不可维护的;5软件通常没有适当的文档资料;6软件成本在计算机系统总成本中所占的比例逐年上升;7软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。

1.1.2产生软件危机的缘故原由1与软件本身的特点有关2与软件开发与维护的方法不正确有关1.1.3消除软件危机的途径对计算机软件有正确的认识。

认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。

应该推广使用在实践中总结出来的开发软件的成功技术和方法,并继续研究探索。

应该开发和使用更好的软件工具。

总之,为了解决软件危机,既要有技术措施(方法和工具,又要有必要的组织管理措施。

1.21.2.1软件工程的介绍软件工程:是指导计算机软件开发和维护的一门工程学科。

采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

(期中考软件工程的本质特性:软件工程关注于大型程序的构造软件工程的中心课题是控制复杂性软件经常变化开辟软件的效率非常重要和谐地合作是开辟软件的枢纽软件必须有效地支持它的用户在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品1.2.2软件工程的基本原理用分阶段的生命周期计划严格管理保持进行阶段评审实行严格的产品控制采用现代程序设计技术结果应能清楚地审查开辟小组的人员应该少而精承认不竭改良软件工程实践的必要性1.2.3软件工程方法学软件工程包括技术和管理两方面的内容。

软件工程重点整理

软件工程重点整理

软件工程重点(吐血整理林新发)红色的是重点中的重点前而数字是课本页码第一章概论1什么是计算机软件计算机软件指计算机系统中的程序及其文档3软件的特点(1)软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算(2)软件是被开发的或被设计的,它没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大(3)软件的使用没有硬件那样的机械磨损和老化问题4软件的分类(1)系统软件(如操作系统、编译程序等)、(2)支持软件(如数据库管理系统、网络软件、软件开发环境等)、(3)应用软件(如实时软件、嵌入式软件、科学和工程计算软件、事务处理软件、人工智能软件等)6软件工程定义软件工程是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法制作软件的工程7生存周期软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。

这个过程即为计算机软件的生存周期软件生存周期大体可分为如下几个活动:计算机系统工程、需求分析、设计、编码、测试、运行和维护12能力成熟度模型CMM (了解一下)初始级、可重复级、已泄义级、已管理级、优化级18瀑布模型(重》系统工程、需求分析与规约、设计与规约、编码与单元测试、集成测试系统测试、运行与维护第二章系统工程41系统工程的任务(1)识别用户的要求,确泄待开发软件的总体要求和范围,(2)系统建模和模拟(3)进行成本估算,做出进度安排(4)进行可行性分析,即从经济、技术、法律等方而分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中作出选择。

(5)生成系统规格说明书42可行性分析(1)经济可行性(成本、效益、货币的时间价值、投资回收期、纯收入)(2)技术可行性(风险分析、资源分析、技术分析)(3)法律可行性第三章需求工程48软件需求指用户对目标软件系统在功能、行为、性能、设计约朿等方而的期望。

包括:功能需求、性能需求、用户或人的需求、环境需求、界而需求、文档需求、数据需求、资源使用需求、安全保密要求、可靠性需求、软件成本消耗与开发进度需求、其他非功能需求50需求获取方法与策略(重)建立顺畅的通信途径、访谈与调查、观察用户操作流程、组成联合小组、用况51 图3.253创建用况模型的主要步骤(1)确左谁会直接使用该系统,即参与者(Actor)(2)选取其中一个参与者(3)泄义该参与者希望系统做什么,参与者希望系统作的每件事将成为一个用况(4)对每件事来说,何时参与者会使用系统,通常会发生什么,这就是用况的基本过程(5)描述该用况的基本过程54需求分析原则(重)1.必须能够表示和理解问题的信息域2.必须能够定义软件将完成的功能3.必须能够表示软件的行为(作为外部事件的结果)4.必须划分描述数据、功能和行为的模型,从而可以分层次地揭示细巧5.分析过程应该从要素信息移向细节信息第四章结构化分析与设汁62第三段第一句概念(重)软件设汁是把软件需求变换成软件表示的过程,主要包含两个阶段:软件体系结构设计阶段和部件级设计阶段64软件设计的过程(重)制左规范、体系结构和接口设讣、数据/类设计、部件级(过程)设计、编写设计文档、设计评审65设计的原则抽象与逐步求精、模块化、信息隐藏、模块独立(高内聚低耦介)68内聚耦合内聚是一个模块内部各个元素彼此结合的紧密程度的度量耦合是模块之间的相对独立性(互相连接的紧密程度)的度量76图形表示法(重)程序流程图、N-S图、PAD81PDL的例子(重重重重重,有编程大题,可用中文写)PROCEDURE spellcheck IS 查找错拼的单词BEGINsplit document into single words把整个文档分离成单词lood up words in dictionary在字典中查这些单词display words which are not in dictionary显示字典中查不到的单词create a new dictionary 造一新字典END spellcheck外语法(关键字)、内语法(自然语言)第五章结构化分析与设计(重点章)86抽象和分解抽象:从作为整体的软件系统开始(第一层),每一抽象层次上只关注于系统的输入输岀分解:将系统不断分解为子系统、模块……随着分解层次的增加,抽象的级别越来越低,也越接近问题的解(算法和数据结构)自顶向下逐层分解充分体现了分解与抽象的原则87 图5.2实体•关系图数据流图数据字典状态转换图粗制规幼88数据流图(DFD)(重重)数摇流(data flow),由一组固定成分的数据组成,代表数摇的流动方向C 加工(process):描述了綸入数据溢到输出数据溢的变换,即将输入数据流加工成输出数据流—文件(file):使用文件、数据库等保存某些数据结果供以—后使用I I源或宿(source or sink)*由Tfl固定成分的数拯组成,1~'代表数摇的滾动方向91数据流图画法1画出系统的输入和输岀(顶层图)2画岀系统内部(0层图)3画出加工内部(l~n层图)4重复第3步,直至每个尚未分解的加工都足够简单(即不必再分解)97分层DFD的一致性和完整性一致性:父图与子图平衡、数据守恒.局部文件完整性:1每一个加工至少有一个输入数据流和一个输出数据流2在整套分层数据流中,每个文件应至少有一个加工读该文件,有另一个加工写该文件3分层DFD中的每个数据流和文件都必须命名(除了流入或流出文件的数据), 并保持与数据字典一致4分层DFD中的每个基本加工都应该有一个加工规约115结构图名词解释:SA结构化分析SD结构化设计SP结构化程序设计结构图的基本成分有:模块、调用和数拯模块是指具有一左功能的可以用模块爼调用的一组程序语句,如函数、子程序等它们是组成程序的基本单元一个模块具有其外部特征和内部特征在SD中,我们只关注模块的外部特征,而忽略其内部特征调用(call):用从一个模块指向另一个模块的箭头来表示,其含义是前者调用了后者为了方便,有时常用直线替代箭头,此时,表示位于上方的模块调用位于下方的模块数据(data):模块调用时需传递的参数可通过在调用箭头旁附加一个小箭头和数据名来表示深度:程序结构图中控制的层数,例如图中所示的结构图的深度是5宽度:程序结构图中同一层次上模块总数的最大值,例如图中所示的结构图的宽度为7 扇出(fan out):该模块直接调用的模块数目。

《软件工程》要掌握的重点

《软件工程》要掌握的重点

《软件工程》要掌握的重点是:1、结构化分析(SA方法)的基本概念和基本方法,特别是系统流程图、数据流图、数据字典、ER模型的掌握和应用。

2、结构化设计(SD方法)的基本概念和基本方法,包括总体设计与详细设计的各种工具和方法,如软件结构图、NS图、PAD图、判定表、判定树、PDL语言的掌握和应用。

3、软件测试的基本概念和方法,包括黑盒测试(等价类划分、错误推测、边界值分析)和白盒测试(逻辑覆盖、基本路径)各种方法的掌握和应用。

4、软件维护的基本概念。

5、面向对象方法的基本概念。

第一章1.软件的定义2.什么是软件危机?典型表现及产生原因3.软件工程定义。

软件工程的基本原理4.软件工程方法学3要素5.什么是软件的生命周期?各阶段的基本任务是什么?6.瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型各自的特点第二章1.可行性研究的目的与任务2.系统流程图的基本思想3.数据流图的基本思想;数据流图的四个要素4.数据流图的画法5.什么是数据字典。

数据字典的编写方法6。

投资回收期、纯收入第三章1.需求分析的任务2.获取需求的方法。

简易的应用规格说明技术。

3.需求分析过程建立的三种模型4.从哪些方面验证软件需求的正确性。

第五章1.总体设计的任务2.设计原理3.什么是内聚、耦合,与模块独立性的关系。

内聚类型、耦合类型4.结构图的深度、宽度、扇出和扇入5.模块的作用域与控制域的关系6.面向数据流的设计方法基本思想。

变换分析过程第六章1.人机界面设计应考虑的问题。

2.系统响应时间的两个属性3.程序流程图、盒图、PAD图、判定表和判定树的画法4.流图的画法、环形复杂度的计算第七章1。

软件测试的目标、测试原则、测试步骤2。

什么是白盒法?什么是黑盒法?3.单元测试的方法、测试重点,需要编写的辅助程序4.渐增式测试与非渐增式测试的比较5.确认测试的目标、依据、测试方法6.用逻辑覆盖法、基本路径测试法、黑盒测试法设计测试用例第八章1.软件维护的定义、维护的类型2、结构化维护与非结构化维护3.决定软件可维护性的因素。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Ch11.文档分类:开发文档、维护文档、用户文档、管理文档作用:记录软件开发过程的标准描述,解决不可视性;通信和交流;管理和维护;用户服务文档是影响软件可维护性的决定性因素,所以维护期间文档比程序代码重要用户文档描述系统功能和使用方法,不关心具体如何实现系统文档描述系统设计、实现和测试等各方面的内容。

2.软件特点更依赖人;开发成本、进度难估计;正确性难保证;维护困难;不磨损不老化3.软件定义软件是能够完成预定功能和性能的可执行的计算机程序和使程序正常执行所需要的数据,加上描述软件开发过程及其管理、程序的操作和使用的有关文档。

4.软件生产过程模型:瀑布模型优点:规范管理开发过程;文档驱动缺点:初期系统的需求难以完全确定;文档驱动;周期长特点:需求固定;周期长;文档驱动适用范围:需求固定,技术成熟原型模型、快速原型法针对:软件开发初期需求难以确定优点:用户参与;快速缺点:快速;对开发环境要求高适用范围:已有产品;简单而熟悉的领域;有快速原型开发工具;进行产品移植或升级螺旋模型降低风险优点:风险驱动;质量保证;利于维护缺点:对开发人员要求高;用户接受“演化”方法难适用范围:庞大、复杂、高风险的系统;内部开发的大规模软件项目增量模型特点:开放式(利于维护),对开发人员水平要求高优点:任务或功能模块驱动,可以分阶段提交产品缺点:条件比较苛刻(精心的设计)适用范围:需求可能发生变化,分阶段交付给用户;分析设计人员对应用领域不熟悉;中高等风险项目;用户可参与到整个软件开发过程中;使用面向对象或第四代编程语言;软件公司有较好的类库、构件库喷泉模型面向对象生命周期模型特点:迭代、无缝组合模型5.软件生产仍面临三大问题。

是哪三大问题造成问题的根本原因有哪些解决问题的方法三大问题:软件质量、成本与开发进度典型表现:软件开发成本和质量难以准确估计、用户常常不满意“已完成的软件”、软件质量不可靠、软件维护困难、软件缺乏文档、软件成本上升产生原因:软件本身的特点(缺乏可见性、规模庞大等)、软件开发和维护的方法不正确解决途径:正确认识(软件=程序+数据+文档)、工程化方法和技术、开发和使用好的工具软件CH21.可行性研究包括:经济可行性(成本效益分析)、技术可行性(风险、资源的有效性、技术方案)、操作可行性(用户组织内的管理制度、人员素质、操作方式)、法律及社会可行性主要步骤:复查系统规模和目标的描述;研究正在使用的系统的系统流程;导出新系统的高层逻辑模型,数据流图+数据字典;重新定义问题;导出解法;推荐方针;草拟开发计划2.数据流图用途建立新系统逻辑模型的工具;作为与用户与开发人员交流信息的工具;作为分析、设计乃至维护的依据3.数据字典组成名字、别名、描述、定义、位置4.痛苦曲线差的项目计划最终会付出进度拖延、质量低劣、不能满足期望的的代价。

制定项目计划的确是痛苦的,但会减少在项目后期的痛苦,不做计划则将痛苦留在了项目开始以后。

5.工作分解结构将整个项目划分为子元素的程序,逐层对项目进行分解。

作用:项目的认知、协同环境层次、控制层次。

6.项目进度安排成本和工作量估算代码行:(a+4m+b)/6 甘特图CH31.需求分析作用充分理解现实中的业务问题,作为软件设计的基础;为软件项目的成本、时间、风险估计提供准确的依据;减少开发工作量,避免将时间与资源浪费在设计与实现错误的需求上;通过提供需求文档有效的管理系统演化与变更;作为合同的一部分;为最终的验收测试提供标准和依据。

2.需求的分类业务需求(客户对系统高层次目标要求,项目的远景和范畴)、用户需求(用户角度描述系统功能需求与非功能需求,只涉及系统的外部行为)、系统需求(系统应该提供的功能和服务,涉及交互)3.系统性需求功能性需求(完整性、一致性、准确性);非功能性需求(可用性、可靠性、性能、可支持性)采用可度量的特性进行描述4.需求获取技术用户访谈、用户调查、现场调查、文档分析、原型、模型驱动的方法、头脑风暴5.结构化分析 SA核心思想:面向数据流的分解和抽象;模块化;自顶向下逐步求精 DFD(数据流图)、DD (数据字典,描述数据的具体格式)、STD(状态转换图)、E-R图数据模型:实体关系图(描述数据之间的关系)功能模型:数据流图(数据在功能模块之间的流动)行为模型:状态转换图(描述了数据的状态以及状态的转换)6.面对对象分析方法 OOACH4 总体设计1.总体设计必须将用户需求转化为对计算机系统的逻辑定义。

分为系统设计阶段(系统的具体实现方案)、结构设计阶段(软件结构、确定每个程序由哪些模块组成,以及模块之间的相互关系)2.软件质量评价标准有效可靠;结构清晰,具有层次性,无回路调用,模块独立性好(良结构、易测试、易维护、可移植;达到需求、界面友好、简单易学);文档齐全;重用性、开放性;尽量简单3.模块三个基本属性:功能,逻辑(内部怎么做),状态(使用时的环境和条件)特征:抽象 what抽出事物的本质特征和各类问题的共性,找出联系和相似性,加以概括和提取;处理复杂系统的方法是用层次的方法构造和分析它;分层理解问题,自顶向下层层细化。

信息隐藏数据隐藏,细节隐藏。

增加可理解性,修改副作用小,错误副作用小。

局部化把关系密切的模块物理地放的彼此靠近模块化将系统分成若干模块容易设计,使软件结构清晰,易于理解;使软件易于测试和调试,提高可靠性;提高可修改性;有助于软件开发工程的组织管理;可重用;易维护接口成本与块成本模块独立性耦合软件结构内不同模块之间互连程度的度量:零耦合;数据耦合;特征耦合;控制耦合;公共环境耦合;内容耦合(goto)内聚一个模块内各个元素彼此结合的紧密程度(比耦合重要):偶然内聚;逻辑内聚;时间内聚;过程内聚(与DFD有关);通信内聚;顺序内聚;功能内聚4.软件设计的启发规则改进软件结构,提高模块独立性;模块规模适中;深度、宽度、扇入、扇出适当梭形;作用域在控制域内;降低接口的复杂程度模块独立性强、可理解性好;单出单入避免内容耦合;模块功能可预测5.基于数据流结构化设计 SD利用映射把数据流图变换成软件结构层次图表示模块调用关系6.SA\SD方法的特点优点:自顶向下逐步精华;各模块可单独设计、编码、测试、修改缺点:纸上设计,长时间偏离软件实体;开发周期长;剥离了数据与功能之间的关系CH5 详细设计1.结构程序设计程序代码仅使用顺序、选择、循环这三种基本的控制结构进行连接,且每个代码块只有一个入口和出口,只在检测错误和退出循环使用非基本结构技术。

2.详细设计工具程序流程图优点能直观和清晰地描绘过程的控制流程;历史悠久,使用广泛,易学,普遍缺点不是逐步求精的工具,过早考虑控制流程;随意转移控制,容易造成非结构化的程序结构;不易表示数据结构。

盒图特点控制结构作用域明确;不能任意转移控制;易表示嵌套关系、模块的层次结构缺点:负责逻辑情况下难以布局。

PAD图优点结构化程序;结构清晰;表现程序逻辑,易读、易懂、易记;描绘数据结构;支持自顶向下逐步求精缺点不适合初学者,算法未考虑清楚时使用。

判定表多个逻辑条件优点简洁、无歧义缺点无法表示顺序、循环;不能作为通用设计工具。

判定树优点更直观,便于掌握和使用缺点不如判定表简洁,分枝次序决定简洁程度。

过程设计语言(PDL) 伪码优点可作注释;编辑简单;可以转换为代码缺点不如图直观;复杂条件不清晰简单3.面向数据结构的设计方法数据结构->程序处理过程Jackson图优点便于表示层次结构,结构的自顶向下分解;直观,可读性好;既能表示数据结构,也能表示程序结构缺点没有表示条件;不易直接把图翻译成程序;斜线不易打印Jackson (JSD)方法步骤画数据结构的Jackson图;找输入-输出数据结构的对应关系;以输出数据结构为基础,导出程序结构的的Jackson图(有关系的数据单元合画一个处理框、余下的数据单元各画一个);列出所有操作、条件;伪码表示程序优点结构清晰、易理解;不会过多依赖于设计者的经验;对于以数据为主,计算较简单的事务型处理系统,尤其是I/O数据结构之间相对应时容易导出;简化数据处理部分的设计缺点没有给予模块与独立性原则应有的重视,SD与JSD结合;未提供对复杂系统设计过程的支持;不适合大型实时系统,非数据处理系统的开发4.用户界面应具有的特性可使用性;灵活性;界面的复杂性与可靠性5.程序复杂程度度量McCabe 流图仅描绘控制流程Halstead 不同描述符的个数不同操作数的个数CH6 编码与测试1.程序语言的选择模块化机制;语言特点;开发工具;独立编译机制;标准化程度高2.无条件转移语句goto改变程序流向缺点破坏程序动态结构与静态结构的一致性;难阅读、难理解;易出错、难查错优点:灵活、使程序简单;提高执行效率只在出错处理和跳出循环时使用同一函数内用;从一个小功能的结尾跳到另一个小功能的开头;避免向两个方向跳3.测试的目标测试是为了发现程序中的错误而执行程序的过程;好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;成功的测试是发现了至今为止尚未发现的错误的测试。

4.黑盒测试作用:功能是否正常使用、输入能否得到正确输出、保持外部信息的完整性;测试后期集成测试和确认测试A)等价划分:有效等价类和无效等价类;输出等价类可以滤掉同类数据提升效率测试用例:尽可能多覆盖尚未被覆盖的有效等价类;仅覆盖一个无效等价类(避免无效测试)优点:考虑了单个输入域的各类情况,避免了盲目或随机选取输入数据的不完整性和覆盖的不稳定性。

缺点:只考虑了单个输入域的情况,没有考虑输入的组合情况B)边界值分析:优点简单易用,非常有效缺点没有考虑输入条件之间的组合情况和相互制约关系。

C)错误推测法5.白盒测试关注软件内部逻辑结构;测试每条逻辑通路;检查断点状态;测试方案对程序逻辑的覆盖程度决定测试的完全性程度测试早期单元测试成本高对结构比较复杂的模块进行白盒测试A)逻辑覆盖技术:语句覆盖;条件覆盖;判定覆盖;判定-条件覆盖;条件组合覆盖B)控制路径测试:流图基于程序的内部实现结构和逻辑寻找软件中的缺陷7.集成测试自顶向下:自底向上:混合法8.回归测试重新执行已经做过的测试的某个子集,已保证上述这些变化没有带来非预期的副作用。

测试用例:检测软件全部功能的代表性测试用例;针对可能受修改影响的软件功能的附加测试;针对被修改过的软件成分的测试9.确认测试有效性测试,验证软件的有效性,以用户为主或用户积极参与;黑盒法;Alpha和Beta10.系统测试软件与硬件、外设等其他系统结合起来,对计算机系统进行一系列的集成测试和确认测试11.性能测试软件完成功能时展示出来的及时性、资源占用、稳定性、安全性、兼容性、可扩展性、可靠性。

相关文档
最新文档