还剩22页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
一、填空题(每空1分共25分).软件生存周期普通可以划分为,问题定义、、、设计、编码、测试和O.基于软件的功能划分,软件可以划分成、、三种.可行性研究,应从、技术可行性、运行可行性、和开放方案可行性等方面研究.系统流程图是描绘的传统工具它的基本思想是用图形符号以—描绘系统里面的每一个部件.数据流图的基本四种成份数据输入的源点和数据输出汇点、和O.结构化分析方法是面向进行需求分析的方法结构化分析方法使用与来描述.是自动地共享类、子类和对象中的方法和数据的机制.软件详细设计工具可分为3类,即、和.为了在软件开辟过程中保证软件的质量,主要采取下述措施、复查和管理复审、O.大型软件测试包括、、确认测试和四个步骤
1、可行性研究需求分析运行与维护
2、系统软件支撑软件应用软件
3、经济可行性法律可行性
4、物理系统黑盒子形式
5、加工数据流数据存储文件
6、数据流数据流图DFD数据字典DD
7、继承性图示工具、设计语言表格工具
9、审查测试
10、单元测试集成测试系统测试
二、单项选择题(每小题2分,共20分).软件设计中划分模块的一个准则是()oA、低内聚低耦合B、低内聚高耦合C、高内聚低耦合D、高内聚高耦合Jackson设计方法是由英国的M.Jackson提出的,它是一种面向()的软件设计方法
1、数据字典应由对下列4类元素的定义组成数据流、数据流分量(即数据元素)、数据存储、处理
2、由数据元素组成数据的方式的三种基本类型顺序、选择、重复+可选
3、用以下符号描述由数据元素组成数据的关系二意思是等价于(或者定义为)、+意思是和(即连接两个分量)、[}意思是或者(通常用“I”号隔开供选择的分量)、{}意思是重复、()意思是可选
4、数据字典最重要的用途是作为分析阶段的工具成本/效益分析
1、成本/效益分析的目的从经济角度分析开辟一个特定的新系统是否划算,从而匡助客户组织的负责人正确地作出是否投资于这项开辟工程的决定
2、软件开辟成本主要表现为人力消耗
3、成本估算技术代码行技术、任务分解技术、自动估计成本技术
4、货币的时间价值用利率的形式假设年利率为i如果现在存入P元,则n年后的价值F=P(l+i);
5、衡量一项开辟工程的价值投资回收期
6、纯收入
7、投资回收率小结三需求分析
4、需求分析是软件定义时期的最后一个阶段
5、基本任务准确地回答“系统必须做什么?”这个问题
6、用于需求分析的结构化分析方法必须遵守下述准则
(1)、必须理解并描述问题的信息域,根据这条准则应该应该建立数据模型E-R图
(2)、必须定义软件应完成的功能,这条准则要求建立功能模型数据流图
(3)、必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型状态图
(4)、必须对描述信息、功能和行为的模型进行分解,用层次的方式展开细节需求分析的任务
5、对软件系统的综合要求功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、逆向需求、将来可能提出的要求
6、需求分析的任务确定对系统的综合要求分析系统的数据要求导出系统的逻辑模型修正系统开发计戈U与用户沟通获取需求的方法
8、访谈、面向数据流自顶向下求精、简易地应用规格说明技术,快速建立软件原型
9、结构化分析方法就是面向数据流自顶向下求精进行需求分析的方法
10、快速建立软件原型是最准确、最有效、最强大的需求分析技术分析建模与规格说明
9、需求分析过程应建立3种模型数据模型、功能模型、行为模型
10、数据流图是建立功能模型的基础
11、状态转换图是行为建模的基础实体•联系图(E・R)E-R图中包含着实体(即数据对象)、关系和属性3种基本成份数据规范化第一范式每一个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构第二范式满足第一范式的条件,而且每一个非关键字都由整个关键字决定(而不是由关键字的一部份来决定)O第三范式符合第二范式的条件,每个非关键字属性都仅由关键字决定,而且一个非关键字属性不能仅仅是对另一个非关键字属性的进一步描述(即一个非关键字属性值不依赖于另一个非关键字属性值)状态转换图E、状态转换图(简称状态图)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为F、在状态图中定义的状态主要有初态(即初始状态)、终态(即最终状态)和中间状态在状态图中只能有一个初态,而终态则可以有0至多个G、事件就是引起系统做动作或者(和)转换状态的控制信息H、在状态图中,初态用一对同心圆(内圆乡实心圆)表个中间状态用圆角矩哙状示态名如图)状态变量的名字和值活动表I、活动表的语法格式事件名(参数表)/动作表达式J、在活动表中通常使用的3种标准事件Entry事件指定进入该状态的动作Exit事件指定退出该状态的动作Do事件制定在该状态下的动作K、状态转换箭头指明的转换方向L、事件表达式的语法事件说明【守卫条件】/动作表达式事件说明与守卫条件同时使用时,则当且仅当事件发生且布尔表达式为真时,状态转换才发生;如果惟独守卫条件没有事件说明则只要守卫条件为真,状态转换就发生守卫条件是一个布尔表达式作表达式是一个过程表达式,当状态表达式开始时执行该表达式其他图形层次方框图、wamier图、IPO图(输入、处理、输出图的简称)验证软件需求从四个方面进行验证一致性、完整新、现实性、有效性小结五总体设计设计过程第3章总体设计过程通常有两个主要阶段组成系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定软件的结构第4章典型的总体设计过程包括下述9个步骤1)、设想宫选择的方案需求分析阶段得出的数据流程图是总体设计的极好的出发点2)、选择合理的方案对每一个合理的方案,分析员都应准备下列四份材料A•系统流程图B.组成系统的物理元素清单C.成本/效益分析D.实现各个系统的进度计划3)、推荐最佳方案4)、功能分解5)、设计软件结构软件结构可以用层次图或者结构图来描绘6)、设计数据库7)、制定测试计划8)、书写文档这个阶段完成的文档有系统说明、用户手册、测试计划、详细的实现计划、数据库设计结果9)、审查和复查设计原理
1、模块化、抽象、逐步求精、信息隐藏和局部化、模块独立
2、模块是由边界元素限定的相邻程序元素的序列,而且有一个总体标识符代表它
3、模块是构成程序的基本构件
4、模块化就是把程序分成独立命名且可独立访问的模块,每一个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求
5、抽象把相似的方面集中和概括起来,暂时忽略它们之间的差异,或者说,抽出事物的本质特性而暂时不考虑它们之间的细节
6、逐步求精是人类解决复杂问题时采用的基本方法,也是许多软件工程技术的基础定义为了能集中精力解决主要问题而尽量推迟对问题细节的考虑
7、信息隐藏原理指出应该这样设计和确定模块,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的
8、局部化把一些关系密切的软件元素物理地放得彼此挨近
9、模块独立的概念是模块化,抽象,信息隐藏和局部化概念的直接结果
10、模块独立化重要性的原因第一,有效地模块化的软件比较容易开辟出来;第二,独立的模块化比较容易测试和维护
11、模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合
12、耦合是对一个软件结构内不同模块之间互连程度的度量
13、耦合的强弱取决于模块间接口的复杂程度,进入或者访问一个模块的点以及通过接口的数据
14、如果两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据,那末这种耦合称为数据耦合
15、如果传递的信息中有控制信息(尽管有时这种控制信息以数据的形式浮现),则这种耦合称为控制耦合
16、数据耦合是低耦合
17、公共环境耦合、
18、最高程度的耦合式内容耦合
19、内聚标志着一个模块内各个元素彼此结合的密切程度,它是信息隐藏和局部化概念的自然扩展
20、偶然内聚、逻辑内聚、时间内聚
21、低内聚、中内聚、高内聚的分类启示规则
11、/软件结构提高模块独立性
12、模块规模应该适中
13、深度、宽度、扇出和扇入都应适当
14、模块的应用域应该在控制域之内
15、力争降低模块接口的复杂程度
16、设计单入口单出口的模块
17、模块功能应该可以预测描绘软件结构的图形工具
7、层次图和HIPO图
8、结构图面向数据流的设计方法
7、面向数据流的设计方法把信息流映射成软件结构,信息流的类型决定了映射的方法
8、信息流分成两种类型变化流、事物流(概念)
9、变换分析是一系列设计步骤的总称,经过这些步骤吧具有变换流特点的数据流图按预先确定的模式映射成软件结构
10、变换分析的设计步骤小结第6章详细设计目标
1.确定应该怎样具体的实现所要求的系统.设计出程序的“蓝图.详细设计的结果基本决定了最终的程序代码的质量
6.1结构程序设计
4.结构程序设计的种类:1)经典的结构程序设计只允许使用顺序、IFTHEN_ELSE型分支和DO_WHILE亚循环;2)扩展的结构程序设计除了三种基本控制结构,还使用DO_CASE型多分支结构和DO_WHILE型循环结构;3)修正的结构程序设计除了三种基本控制结构和两种扩充结构,还使用LEAVE(或者BREAK)结构
6.2人机界面设计设计问题.系统响应时间.用户匡助设施.出错信息处理.命令交互设计过程人机界面设计指南
1.概念结果程序设计是
1.普通交互指南一种设计程序的技术,它采用自
2.信息显示指南顶向下逐步求精的的设计方法和单入口但出口的控制结构
2.三种基本控制结构
3.数据输入指南
6.3过程设计的工具
6.
3.1程序流程图1)顺序结构相当于“A、B”2)选择结构相当于“IfexpthenAelseBendif;3)循环结构相当于“WhileexpdoA”
3.扩充的两种控制结构1)多分支结构相当于“CaseIof1=1:C1;l=n:Cn;”2UNTIL循环结构相当于RepeatAuntilexp;程序流程图是一种描述程序的控制结构流程和指令执行情况的有向图程序流程图的主要缺点1)程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程而不去考虑程序的全局结构132)程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以彻底不顾结构程序设计的精神,随意转移控制3程序流程图不易表示数据结构
36.
3.2盒图盒图特点:1234功能域明确,可以从盒图上一眼就看出来不可能任意转移控制很容易确定局部和全程数据的作用域很容易表现嵌套关系,也可以表示模块的层次结构
46.
3.3PAD图是一种问题分析图PAD图优点1)使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序2)PAD图所描绘的程序结构十分清晰图中最左面的竖线是程序的主线,即14第一层结构随着德程序层次的增加,PAD图逐渐向右延伸,每次增加一个层次,图形向右扩展竖线PAD图中竖线的总条数就是程序的层次数用PAD图表现程序逻辑,易懂、己PAD图是二维树形结构的图形,程序从图中最左竖线上端的结点开始执行,自上而下,从左向右顺序执行,遍历所有结点容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成,从而可省去人工编码的工作有利于提高软件可靠性和软件生产率5)即可用于表示程序逻辑,也可用于描绘数据结构6)PAD图的符号支持自顶向下、
6.
3.4判定表逐步求精方法的使用开始时设计者可以定义一个抽象的程序,随着设计工作的深入而使用def符号逐步增加细节,直至完成详细设计判定表由四部份组成:
6.
46.
4.
16.
4.
26.
4.3左上部列出所有条件左下部是所有可能做的动作右上部是表示各种条件组合的一个矩阵右下部是和每种条件组合相对应的动作
6.
3.5判定树判定树是判定表的变种
6.
3.5过程设计语言过程设计语言PDL也称为伪码PDL的优点:1可以作为注释的直接插在源程序中间23可以使用普通的正文编辑程序或者文字处理系统很方便地完成PDI的书写和编辑工作已经有自动处理PDL的程序存在,而且可以自动由PDL生成程序代PDL缺点不如图形工具形象直观面向数据结构的设计方法Jackson图顺序结构选择结构重复结构改进的Jackson图Jackson方法Jackson结构程序设计方法基本上由5个步骤组成1分析并确定输入数据和输出数据的逻辑结构,并用Jackson图描绘这些数据结构找出输入数据结构和输出数据结构中有对应关系的数据单兀用下述3条规则从描绘数据结构的Jackson图导出描绘程序结构的Jackson图第一,为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构图的相应层次画一个处理框第二,根据输入数15杂度VG=E-N+2其中,E是流图中边的条数的,N是结点数3流图G的环形复杂度VG=P+1其中,P是流图中判定结点的数目
3.环形复杂度的用途它是对测试难度的一种定量度量,也能对软件最终的可靠性给出某种预测实践表明,模块规模以VGv=10为宜
6.
5.2Halstead理框4列出所有操作和条件,并且把它们根据程序中运算符和操作数的总数来度量程序的复杂程分配到程序结构度N=N1+N2图的适当位置程序总长度N5用伪码表示程序运算符浮现的总次数N
16.5程序复杂程度的定量操作数浮现的总次数N2度量
6.
5.1McCabe方法
1.流图“退化了的”程序流程图,它仅仅描绘程序的控制流程,彻底不表现对数据的具体操作以及分支或者循环的具体条件
2.计算环形复杂度的方法环形复杂度等于流图中的区域数流卤G的环形复Halstead给出的预测程序长度的公式『啊%+42n2预测程序中包含错误的个数的公式E=Nlogjn+nJ/3000第七章实现编码和测试统称为实现16编码:把软件设计结果翻译成程岸»程
7.
17.
1.1检测程序并改正错误的过编码选择程序设计语言
1.计算机程序设计语言基发现的错误的测试3)成功的测试是发现多了至今为止尚未发现的错误的测试
7.
2.2软件测试准则
7.
1.
27.2本上可以分为两大类1)汇编语言2)高级语言
2.选择语言时应考虑的实用标准1234567系统用户要求可以使用的编译1)所有测试都应该追溯到用户要求2)应该远在测试开始之前就制定出侧是计划3)把Pareto原理应用到软件测试中程序可以得到的软件工具工程规模程序员的知识软件可移植性要软件的应用领域4)应该从“小规模”测试开始,并逐步进行“大规模”测试5)穷举测试是不可能的6为了达到最佳的测试效果,应该由编码风格程序内部的文档独立的第三方从事测试工作数据说明语句构造输入输出
5.效率软件测试基础
7.
2.
37.
2.4测试方法
1.黑盒测试
2.白盒测试测试步骤
1.模块测试软件测试的目标.有关测试的一些规则1)测试是为了发现程序中的错误而执行程序的过程2)好的测试方案是极可能发现迄今为止尚未2子系统测试.系统测试.验收测试.平行运行
7.
2.5测试阶段的信息流
7.3单元测试测试重点.模块接口.局部数据结构
17.重要的执行通路.出错处理通路.边界条件
7.
3.
27.
3.
37.
47.
4.1代码审查计算机测试集成测试自顶向下集成自顶向下集成是一种递增的装配软件结构的方法,这种应用方法非常广泛它需要存根程序不需要驱动程序
7.
4.2自底向上集成
7.
4.
37.
4.4自底向上集成是从软件结构最底层模块开始进行组装和测试,它与自顶向下结合方法相反,需要驱动程序,但是不需要存根程序不同集成测试策略的比较回归测试
7.
57.
5.1包括3类不同的测试用例检测软件全部功能的代表性测试用例专门针对可能受修改影响的软件功能的附加测试针对被修改过的软件成份的测试确认测试确认测试的范E确认测试的两种可能的结果功能和性能与用户要求一致,软件是可以接受的功能和性能与用户要求有差距软件配置复查Alpha和Beta测试Alpha测试由用户在开辟者的场所进行,并且在开辟者对用户的“指导”下进行测试Beta测试由软件的最终用户在一个或者多个客户场所进行
7.6白盒测试逻辑覆盖.语句覆盖.判定覆盖.条件覆盖.判定/条件覆盖.条件组合覆盖.点覆盖.边覆盖.路径覆盖
7.
6.2控制结构测试
1.基本路径测试步骤1根据过程设计结果画出相应的流图
187.
77.
7.
17.
7.
27.
7.
37.
87.
8.
17.
8.
27.
97.
9.1算的复定独径本计制基合条的用计图形度确性路基合设强行集每径试2流环杂3线立的集4可执本中路测例.条件测试.循环测试方法1简单循环2嵌套循环3串接循环黑盒测试技术等价划分边界值分析错误判断调试调试过程调试途径.蛮干法.回溯法.原因排除法软件可靠性基本概念
1.软件可靠性的定义
197.
9.
22.软件的可用性估算平均无效故障时间的方法
1.方法
2.基本假定
3.
4.估算平均无故障时间估算错误总数的方法维护软件维护定义软件维护就是在软件已经交付使用之后,为了改正错误或者满足新的需要而修改软件的过程维护的种类改正性维护适应性维护完善性维护预防性维护软件维护的特点结构化维护与非结构会维护差别巨大维护的代价高昂维护的问题不少软件维护过程.维护组织.维护报告.维护的事件流.保存维护记录.评价维护活动
8.4软件的可维护性决定软件可维护性的因素.可理解性.可测试性.可修改性A、对象B、数据流C、数据结构D、控制结构.试判断下列叙述中,哪个(些)是正确的()oa、软件系统中所有的信息流都可以认为是事务流b、软件系统中所有的信息流都可以认为是变换流c、事务分析和变换分析的设计步骤是基本相似的A、aBbCcD、b和c.()是用户和设计交换最频繁的方法A、原型化方法B、瀑布模型方法C、螺旋模型方法D、构件组装模型.软件工程方法学的目的是使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是()oA、硬件环境B、软件开辟的环境C、软件开辟工具和软件开辟的环境D、开辟人员的素质.20世纪50年代以来,浮现了许多不同的程序设计语言,下列语言中哪个语言是低级语言()oVISUALBASICC++D汇编语言
7.软件测试的目的是?()A、证明软件的正确性B、找出软件系统中存在的所有错误C、证明软件系统中存在错误D、尽可能多的发现软件系统中的错误
8.使用白盒测试方法时,确定测试数据应根据()和指定的覆盖标准.用黑盒法测试时,测试用例是根据程序内部逻辑设计的().发现错误多的程序模块,残留在模块中的错误也多().为了加快软件维护作业的进度,应尽可能增加维护人员的数目().软件维护就是改正软件中的错误().质量保证是为了保证产品和服务充分满足消费者要求的质量而进行的有计划,有组织的活动().软件开辟的主要任务是写程序().测试只能证明程序有错误不能证明程序没有错误().可移植性.可重用性文档是影响软件可维护性的决定因素包括1)用户文档2)系统文档可维护性复审预防性维护软件再工程过程.库存目录分析.文档重构.逆向工程.代码重构.数据重构.正向工程和一组方法3)按照子类与父类的关系,把若干个对象类组成一个层次结构的系统4)对象彼此之间仅能通过传递消息互相联系面向对象方法学的优点.与人类习惯的思维方法一致.稳定性好.可重用性好.轻易开发大型软件产品.可维护性好面向对象的概念对象向对象方法学引论
1.
2.对象的形象标识对象的定义面向对象方法学概述面向对象方法学的要点1)认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以有比较简单的对象是封装了数据结构及可以施加在这些数据上的操作的封装体,这个封装体有可以惟一的表示它的名字,而且向外界提供一组对象以某种方式组合而成2)把所有对象都划分成各种对象类,每一个类定义了一组数据
9.
2.
2203.服务对象的特点:1234以数据为中心对象是主动的5)其它概念实现了数据封装本质上具有并行性模块独立性好.类是具有相同属性和行为的一个或者多个对象的描述.实例.消息由3部份组成1接收消息的对象2消息选择符3零个或者多个变元.方法是对象所能执行的操作.属性.封装.继承.多态性.重载面向对象建模对象模型类图的基本符号.定义类.定义属性.定义服务
9.
4.2表示关系的符号.关联普通关联关联角色限定关联关联类.会萃1共享会萃2组合会萃.泛化1普通泛化2受限泛化.依赖和细化依赖关系细化关系动态模型表示瞬时的、行为化的系统的“控制”性质,它规定了对象型中的对象的合法变化序列功能模型表示变化的系统的“功能”性质,它指明了系统应该“做什么”,因此更直接地反映了用户对目标系统的需求用例图.系统.用例特征121整的.行为者.用例之间的的用户目标
26.9用例总是被行为者启动,并向行为者提供可识别的值用例必须是完
22.模块化程序设计中,模块越小,模块化的优点越明显普通来说,模块的大小都在10行以下().在编制程序时,首先应该对程序的结构充分考虑,不要急于开始编码,而要像写软件文档那样,很好地琢磨程序具有什么样的功能,这些功能如何安排,等等().程序设计风格指导原则提出,尽量多使用暂时变量()
四、简答题(每题5分,共20分).什么是软件工程?.耦合性和内聚性有几种类型?其耦合度、内聚强度的顺序如何?.简述需求分析工作可以分成哪四个方面?软件需求分析的有哪三个基本原则?.什么是黑盒测试法?
五、程序设计与算法描述题(共15分).根据下面的伪代码程序,完成相应要求(8分)STARTIFC1THENWHILEC2DOfENDDOELSEBLOCKgPENDBLOCKENDIFREPEATUNTILC3qrENDREPSTOP1)画出程序流程图(4分)2)用N-S图描述(4分)
3.有下列伪码程序STARTINPUTMNIFM=10THENX=10ELSEX=lENDIFIFN=20THENY=20ELSEY=2ENDIFPRINTXYSTOP设计该程序的语句覆盖和路径覆盖测试用例7分软件工程一A答案及评分标准(仅供参考)
二、填空题(每空1分共25分)
三、单项选择题(每小题2分,共20分)
四、判断题(正确的在括号内打上“J”,错误的打上“义”每题2分,共20分)1—5XVXXV6—10XVXXX
五、简答题(每题5分,共20分)
1、答软件工程是指导计算机软件开辟和维护的工程学科采用工程的概念、原理、技术和方法来开辟与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来
2、答低非直接耦合T数据耦合T标记耦合T控制耦合-外部耦合T公共耦合T内容耦合高强功能内聚一>信息内聚一>通信内聚一>过程内聚T时间内聚一逻辑内聚一>巧合内聚弱
3、答需求分析阶段分成四个方面对问题的识别、分析与综合、制定规格说明和评审三个基本原则必须能够表达和理解问题的数据域和功能域;必须按自顶向下、逐步分解的方式对问题进行分解和不断细化;要给出系统的逻辑视图和物理视图
4、答黑盒测试法把程序看成一个黑盒子,彻底不考虑程序的内部结构和处理过程,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据,产生正确地输出信息
六、分析设计题(共15分)
1、
(1)程序流程图如下4分2N-S图如下:
52、(7分)设计该程序的语句覆盖和路径覆盖测试用例
①M=9(或者GO)N=19(或者〈20);
②(或者=10)N=20(或者=20)路径覆盖的测试用例为
①M=9N=19;
②M=
9、N=20;
③M=10N=19;
④M=10N=20要目标是提高软件质量,减少软件维护代价就是说应该确定系统的物理配置方案,并且进而确定组成系统的每一个程序结构
2、系统设计阶段(确定系统具体实施方案)、结构设计阶段(确定软件结构)
3、模块独立内聚和耦合耦合表示一个软件结构内各个模块之间的互连程度,应尽量选用松散耦合的系统问题定义(确定题由氏科合性I运行维护主要任务是使软件持久地满足用户的需要
二、软件过程五个模型对照(瀑布模型、快速原型、增量、螺旋、喷泉模型)
三、可行性研究
1、任务用最小的代价在尽可能短的时间内确定问题是否能够解决
2、四个方面技术、经济、操作可行性
3、数据流图四种成份
1、源点/终点
2、处理
3、数据存储
4、数据流
四、需求分析
1、任务确定系统必须完成哪些工作,对目标系统提出完整、清晰、具体的要求
2、结构化方法就是面向数据流自顶向下逐步求精进行需求分析的方法
3、实体联系图
1、数据对象
2、属性
3、联系(1:
1、1N、M:N)
五、总体设计
1、任务回答“概括的说,系统应该如何实现”,用比较抽象概括的方式确定系统如何完成预定的任务,也
4、面向数据流的设计方法变换流和事务流
六、详细设计
1、任务确定应该怎样具体的实现所要求的系统,也就是说经过这个阶段的设计工作应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序
2、过程设计的工具(程序流程图、盒图、PAD图、判定表、判定树)
3、面向数据结构的设计方法(jackson方法):
4、程序复杂程度的定量(McCabe方法)
1、V(G)=E・N+2(E是流图中边的条数,N是结点数)
2、V(G)=P+1(P是流图中判定结点的个数)
3、流图中的区域数等于环形复杂度
七、编码
八、单元测试又称模块测试每一个程序模块完成一个相对独立的子功能,所以可以对该模块进行单独的测试由于每一个模块都有清晰定义的功能,所以通常比较容易设计相应的测试方案以检验每个模块的正确性
九、集成测试在单元测试完成后,要考虑将模块集成为系统的过程中可能浮现的问题,例如,模块之间的通信和协调问题,所以在单元测试结束之后还要进行集成测试这个步骤着重测试模块间的接口,子功能的组合是否达到了预期要求的功能,全程数据结构是否有问题等
十、白盒测试技术(逻辑覆盖、基本路经测试)白盒测试时将程序看做是一个透明的盒子,也就是说测试人员彻底了解程序的内部结构和处理过程所以测试时按照程序内部的逻辑测试程序、检验程序中的每条通路是否都能按预定的要求正确工作白盒测试又称为结构测试
1、语句覆盖就是设计足够的调试用例,使得程序中的每一个语句至少执行一次
2、判定覆盖就是设计足够的测试用例,使得程序中每一个判定的取“真”分支和取“假”分支至少都执行-次,判定覆盖又称分支覆盖
3、条件覆盖就是设计足够的测试用例,使得程序判定中的每一个条件能获得各种可能的结果
4、判定/条件覆盖就是设计足够的测试用例,使得判定中的每一个条件都取到各种可能的值,而且每一个判定表达式也都取到各种可能的结果
5、条件组合覆盖就是设计足够的测试用例,使得每一个判定中的条件的各种可能组合都至少浮现一次
6、基本路经测试
十一、黑盒测试技术(等价划分)黑盒测试时彻底不考虑程序内部的结构和处理过程,只按照规格说明书的规定来检查程序是否符合它的功能要求黑盒测试是在程序接口进行的测试,又称为功能测试
1、黑盒测试检查的主要方面有程序的功能是否正确或者完善;数据的输入能否正确接收,输出是否正确;是否能保证外部信息(如数据文件)的完整性等用黑盒法设计测试用例时,必须用所有可能的输入数据来检查程序是否都能产生正确的输出
2、等价类划分等价类的划分在很大程度上依靠的是测试人员的经验,下面给出几条基本原则
(1)如果输入条件规定了取值范围,则可划分出一个有效的等价类(输入值在此范围内)和两个无效的等价类(输入值小于最小值、输入值大于最大值)
(2)如果输入条件规定了输入数据的个数,则可相应地划分出一个有效的等价类(输入数据的个数等于给定的个数要求)和两个无效的等价类(输入数据的个数少于给定的个数要求、输入数据的个数多于给定的个数要求)
(3)如果输入条件规定了输入数据的一组可能的值,而且程序对这组可能的值做相同的处理,则可将这组可能的值划分为一个有效的等价类,而这些值以外的值划分成无效的等价类
(4)如果输入条件规定了输入数据的一组可能的值,但是程序对不同的输入值做不同的处理,则每一个输入值是一个有效的等价类,此外还有一个无效的等价类(所有不允许值的集合)
(5)如果输入条件规定了输入数据必须遵循的规则,则可以划分一个有效的等价类(符合规则)和若干个无效的等价类(从各种角度违反规则)
十二、维护(改正性维护、适应性维护、完善性维护、预防性维护)
十三、决定软件可维护性因素(可理解性、可测试性、可修改性、可移植性、可重用性)
十四、面向对象方法学优点
1、与人类习惯的思维方法一致
2、稳定性好
3、可重用性好
4、较易开辟大型软件产品
5、可维护性好
十五、对象模型
1、关联
2、会萃
3、泛化
4、依赖和细化贰软件工程
1.1软件危机
1、软件危机是指在计算机软件的开辟和维护过程中所遇到的一系列严重问题(熟记)
2、了解软件危机主要的一些典型表现(P2)
3、浮现软件危机的原因
4、消除软件危机的途径首先,我们要对计算机软件有一个正确的认识;更重要的是,必须充分认识到软件开发不是某种个体劳动的神奇技巧,而应该是一种组织良好、管理严格、各类人员协同配合、共同完成的工程项目;最后,应该开辟和使用更好的软件工具总之,为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施
1.2软件工程
1、软件工程采用工程的概念、原理、技术和方法来开辟和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开辟出高质量的软件并有效地维护它(熟记)
2、了解软件工程的本质特征1)、软件工程关注于大型程序的构造2)、软件工程的中心课题是控制复杂性3)、软件时常变化4)、开辟软件的效率非常重要5)、和谐的合作是开辟软件的关键6)、软件必须有效地支持它的用户7)、在软件工程的领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品
3、缺乏应用领域地相关知识,是软件开辟项目浮现问题的常见原因
4、软件工程的基本原理1)、用分阶段的生命周期计划严格管理2)、坚持进行阶段审评3)、实行严格的产品控制4)、采用现代程序设计技术5)、结果应能清晰地审查6)、开辟小组的人员应该少而精7)、承认不断改进软件工程实践的必要性
5、方法学(范型)在软件生命周期全过程中使用的一整套技术方法的集合I软件工程方法学3要素方法、工具和过程
7、目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学
8、传统方法学也成为生命周期方法学或者结构化范型
9、面向对象方法学具有的4个要点(P10)软件生命周期
1、概括地说,软件生命周期由软件定义、软件开辟和运行维护(也称为软件维护)3个时期组成,每一个时期又进一步划分成若干个阶段
2、软件定义时期的任务
3、软件定义时期通常进一步划分成3个阶段问题定义、可行性研究、需求分析
4、维护时期的主要任务是使软件持久地满足用户的需要
5、软件开辟时期通常分成4个阶段总体设计、详细设计、编码和单元测试、综合测试前两个阶段又称为系统设计,后两个阶段又称为系统实现
6、软件生命周期每一个阶段的基本任务问题定义、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试软件工程生命周期模型(过程模型)瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型(对各种模型要了解)〃、结(熟读,对本章系统地了解)第2章可行性分析可行性分析的目的用最小的代价在尽可能短的时间内确定问题是否能够解决可行性研究的任务
1、研究解法的可行性的三个方面技术可行性、经济可行性、操作可行性
2、可行性研究最根本的任务对以后的行动方针提出建议
3、可行性研究需要的时间长短取决于工程的规模可行性研究过程
1、复查系统规模和目标
2、研究目前正在试用的系统
3、导出新系统的高层逻辑模型
4、进一步定义问题
5、导出和评价供选择的解法
6、推荐行动方针
7、草拟开辟计划
8、书写文档提交审查系统流程图
1、系统流程图概括地描绘物理系统的工具
2、系统流程图的基本思想用图形符号以黑盒子形式描绘组系统的每一个部件(程序、文档、数据库、人工过程等)
3、P39符号
4、系统流程图的习惯画法使信息在图中从顶向下或者从左向右流动
5、面对复杂的系统时,一个比较好的方法时分层次地描绘这个系统数据流图
1、数据流图(DFD)一种图形化技术,它描绘信息流和数据从输入挪移到输出的过程中所经受的变换
2、数据流图的四种基本符号P
413、数据存储(静止状态)和数据流(运动)都是数据
4、数据流图的基本要点是描绘“做什么”,而不是考虑“怎么做”
5、星号(*)是数据流之间的“与”关系;加号(+)表示“或者”关系;㊉号表示只能从中选一个(互斥关系)
6、画数据流图的基本目的是利用它作为交流信息的工具数据字典12345CCCAC678910DDACB12345CCCAC678910DDACB。