还剩15页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
软件工程的复习题纲第一章
1、软件工程的生存周期制定方案;需求分析;总体设计;详细设计;程序编写;软件测试;运行/维护
2、软件工程的各个生存期模型的特点和适合工程(生存期模型有瀑布模型、V模型、原型模型、增量式模型和螺旋式模型)(局部是在网上找的,老师说考这些模型的特点,有什么情况下适合用什么来进行开发)瀑布模型的特点
(1)阶段间具有顺序性和依赖性
(2)推迟实现的观点
(3)每个阶段必须完成规定的文(每个阶段结束前完成文档审查,及早改正错误)
(4)下一个阶段可以回溯到前面的某个阶段适合于
5.用户除提出需求外,很少参与开发工作类似的工程如公司的财务系统;库存管理系统;短期工程V模型的特点
(1)简单易用
(2)强调测试过程与开发过程的对应性和并行
(3)没有反应实际的开发过程V模型适合的工程□在工程开始前,工程的需求很明确□在工程开始前,解决方案也很明确□对系统的性能平安很严格的工程□类似的工程如□航天飞机等□公司的财务系统原型模型的特点
(1)在需求定义之前,需要快速构建一个系统
(2)根据构建系统的优缺点,用户给开发人员提出反应意见
(3)根据反应意见修改软件需求规格,以便系统可以更正确的反映用户的需求
(4)减少各种假设以及风险适合的工程□在工程开始前,工程的需求不明确□需要减少工程需求的不确定性□类似的工程如□确定显示界面□第一次开发的产品,验证可行性增量式模型的特点
1.需求多变,可以分阶段提交产品
2.分析设计人员对应用领域不熟悉,难以一步到位
3.用户参与整个软件开发工程中,起到对客户起到镇静剂的作用,增量能够有方案地管理技术风险
5.增量的内容写入合同,可能会引起客户的不满
6.融合了瀑布模型的根本成分和原形实现的迭代特征,优点是人员分配灵活,刚开始不用投入大量人力资源,如果核心产品很受欢送,则可增加人力实现下一下增量适合的工程□工程开始,明确了需求的大局部,但是需求可能会发生变化□对于市场和用户把握不是很准,需要逐步了解返回入口Test cases:
①A=3,B=0,X=1TF
②A=1,B=1,X=3FT3条件覆盖」在语句覆盖的基础上,使每个判定表达式的每个条件都取到各种可能的结果入口Test cases:
①A=2,B=0,X=4TT满足A1,B=0;A=2,X1
②A=l,B=l,X=1FF满足A£l,B10;A12,X£l问条件覆盖?判定覆盖答不一定反例
①A=2,B=0,X=1TT满足A1,B=0;A=2,X£1
②A=l,B=l,X=4FT满足A£l,B[0;A12,X〉14判定/条件覆盖要求设计足够的测试用例,使得同时满足判定覆盖和条件覆盖即判断中的每个条件的所有情况(True和False)至少出现一次,并且每个判断本身的判断结果(True和False)也至少出现一次
1.If A and Bthen
2..Do-Something
3.End ifTestCaseAandBTestCasel TTestCase2F⑸条件组合覆盖每个判定表达式中条件的各种可能组合都至少出现一次入口
①A1,B=0
②A1,B10
③A£l,B=0
④A£l,B10
⑤A=2,X16A=2,X£1
⑦A2,X1
⑧A2,X£1Test cases:T T
①⑤
1.A=2,B=0,X=4F T
②⑥
2.A=2,B=l,X=1F T
③⑦
3.A=1,B=0,X=2F F
④⑧
4.A=l,B=l,X=1
(6)路径覆盖每条可能的路径都至少执行一次,若图中有环,则每个环至少经过一次全部可能的条件组合为:入口1A=1,B=1,X=1F F2A=1,B=1,X=2F T3A=3,B=0,X=1T F4A=2,B=0,全X=4T T部可能的条件组合为:
①A1,B=0
②A1,B10
③A£l,B=04A£l,B10
⑤A=2,X16A=2,X£1
⑦A2,X1
⑧A2,X£1满足路径覆盖未必满足条件组合覆盖
2、黑盒测试方法(等价划分、边界值)黑盒测试也称为行为测试,主要关注软件的功能和性能测试而不是内部的逻辑结构
(1)边界值分析边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法通常边界Test cases:值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界边界值分析的原理是错误更可能发生在输入的边界值附近,边界值分析技术设计测试用例的输入值尽可能是输入的边界值边界值分析方法的根本思想是在最小值、略高于最小值、正常值、略低于最大值、最大值等处取输入变量值例如一个程序的输入是变量XI,X2,它们的取值范围是水=Xl二b||c=X2=do他的边界分析图如以下图:(有一道综合题是在白盒或黑盒里出)等价划分它将输入数据域按有效的或无效的(也称合理的或不合理的)划分成若干个等价类,测试每个等价类的代表值就等于对该类其他值的测试使用这一方法时,完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例使用这一方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步根据每一个输入的条件,找出两个(合理的等价类和不合理的等价类)或更多的等价类工程管理
1、工程经理管理内容本钱管理、方案进度、组织、质量、风险管理、配置管理本钱估计
(1)专家判定法
(2)类比估计法
(3)参数模型法
2、工程管理的工具
(1)甘特图(老师说了解一下就行了)甘特图也称时间表(Timeline chart),用来建立工程进度表,它通过日历形式列出工程活动及其相应的开始时间和结束时间,为反映工程进度信息提供了一种标准格式在甘特图中,每项任务的完成以必须交付的文档和通过评审为标准,因此在甘特图中,文档编制与评审是软件开发进度的里程碑例任务名称工期开始时间完成时间三湖南电大校园网系统集成:
42.81工作日?2004年11月12004年12月30日田立项
0.74工作日日2004年11月12004年11月1日国项目订货
23.06工作日日2004年11月22004年12月3日田项目施工详细设计
18.25工作日日2004年11月42004年11月30日E结构化布线
12.81工作日?日2004年11月102004年11月27日接地施工工作日?日年月年月3200411112041116国防雷施工
23.19工作日?日2004年11月10日2004年12月13日®辅助设备安装调试
6.81工作日?日2004年11月102004年11月19日-网络设备安装调试13工作日日2004年12月32004年12月22日到货验收工作日日年月年月日120041232004124设备序列号记录工作日日年月年月日120041242004127上电测试工作日日年月年月日120041272004128机房联调工作日日年月年月日220412820041210设备安装工作日日年月年月日22004121020041214网络调试工作日日年月年月日42004121420041218技术文档工作日日年月年月2200412182041222日服务器安装调试
11.69工作日日2004年11月24日2004年12月10日到货验收工作日日年月年月日
0.12004112420041124设备序列号记录工作日日年月年月日
0.52004112420041125设备安装工作日日年月年月日
0.52004112520041125服务器调试工作日日年月年月日1200411302004121系统软件安装工作日日年月年月日220041212004123应用软件安装工作日日年月年月日220041232004126系统调试工作日日年月年月日220041272004129技术文档工作日日年月年月日1200412920041210系茨联调工作日日年月年月日12004122220041223国用户培调
14.13工作日日年12月7日2004年12月27日臼项目会收5工作日2004年12月232004年12月3日文档准备工作日日年月年月日22004122320041225预验收工作日日年月年月日124122520041227测试工作日日年月年月日124122720041229项目正式验收工作日日年月年月日12004122920041230日2J2工程网络图网络图的根本概念工序activity也称活动、作业或任务,指工程中消耗时间或资源的独立的活动紧前工序immediate predecessoractivity指进行本次工序之前刚刚完成的工序一,个工序的紧前工序可能有多个紧后工序immediate successoractivity指进行本次工序之后即将开始的工序事件event标志工序的开始或结束,某个事件的实现,标志着在它前面各顶作业紧前工序的结束,又标志着在它之后的各项作业紧后工序的开始网络图由工序、事件及标有完成各道工序所需时间所构成的连通有向图单代号网络图(节点网络图)用节点表示工序的方案网络图箭线表示工序之间的先后关系双代号网络图(箭线网络图)用箭线表示工序的方案网络图其中每个节点表示事件例某工程由8道工序组成,工序明细表见下表所示分别用节点法和箭线法绘制该工程的工程网络图工序明细表号一代代时间序时间号工序名称紧前工序号工序名称紧前工序号(天)(天)序基础工程装修工程1A405E C25构件安装地面工程2B A506F D203C屋面工程B307G设备安装B504D专业工程B208H试运转E、F、G20A H705020双代号网络图(箭线图),其中
①⑦表示事件〜单代号网络图(节点图)WinQSB中自动输出的单代号网络图:最早开始时间规划对于有多个紧前工序的工序H,其ES为其紧前工序的EF中最大的一个,即是ES=max{EF};最晚结束时间规则某项工序的LF就等于其所有紧后工序的最小LS,例如工序E的LF就为其紧后工序最小的LS,即是20周;LF=min{LS}
4、ISO9000与CMM的特点和区别(网上找的)(了解)IS09000的特点:
①、IS09000标准是一系统性的标准,涉及的范围、内容广泛,且强调对各部门的职责权限进行明确划分、方案和协调,而使企业能有效地、有秩序地开展给各项活动,保证工作顺利进行
②、强调管理层的介入,明确制订质量方针及目标,并通过定期的管理评审到达了解公司的内部体系运作情况,及时采取措施,确保体系处于良好的运作状态的目的
③、强调纠正及预防措施,消除产生不合格或不合格的潜在原因,防止不合格的再发生,从而降低本钱
④、强调不断的审核及监督,到达对企业的管理及运作不断地修正及改进的目的
⑤、强调全体员工的参与及培训,确保员工的素质满足工作的要求,并使每一个员工有较强的质量意识CMM的特点
①CMM是一套适用面很广的通用过程实践标准,但是CMM本身不是过程或方法论!
②CMM告诉组织为了系统化地建立、实施和改进软件过程应该做些什么,到达什么目标,但是没有说明如何做、采用哪些具体技术、策略和方法
③CMM重视系统性、制度化和度量,强调提高过程的可靠性、可见性、可预测性和可管理性
④实施CMM要求组织在过程制度化建设上付出大量努力,通常被认为是重载的模型CMM与IS09000的主要区别
①CMM是专门针对软件产品开发和效劳的,而IS09000涉及的范围则相当宽
②CMM强调软件开发过程的成熟度,即过程的不断改进和提高而IS09000则强调可接收的质量体系的最低标准
5、CMM的5个等级初始级、可重复级、已定义级、己管理级和优化级
6、工程报告确定里程碑、报告的内容、建立工程的进度方案□对于有庞大和复杂功能的系统进行功能改进,就需要一步一步实施的螺旋式模式的特点
(1)是瀑布模型的屡次迭代;
(2)它将每个阶段进行更细的划分;
(3)可以进行灵活设计;
(4)通过风险管理驱动;
(5)用户可以更早看到产品;
(6)用户可以不断对产品进行评估;
(7)用户可以与开发人员进行紧密的合作;
(8)工程的投资不用一次投入;
(9)可以给开发人员更多的反应信息适合的工程□风险是主要的制约因素□不确定因素和风险限制了工程进度□用户对自己的需求也不是很明确□需要对一些根本的概念进行验证□可能发生一些重大的变更□工程规模很大□工程中采用了新技术喷泉模型的特点适应于面向对象方法;表达了软件开发过程无间隙和固有的迭代特征第二章
1、结构化分析方法(会画数据流图、数据字典)数据流图•数据流图中的主要图形元素:I数据加工(数据变换)I I数据源点或终点(外部实体).数据流匚数据存储文件例:银行计算机储蓄系统的工作过程储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户答数据流程图如下帐卡年月日日历数据字典数据字典的内容主要是对数据流程图中的数据项、数据结构、数据流、处理逻辑、数据存储和外部实体等六个方面进行具体的定义数据字典的数据条目内容1名称与别名数据流、数据源或外部实体的标识;2数据类型;3何处使用/如何使用输入流/输出流的加工表;4内容描述;5补充说明如,取值范围与缺省值,有关的设计约束等
2、面向对象模型会画用例图、顺序图、活动图、状态图等用例图用例Use case系统所提供的功能描述角色Actor可能使用用例的人或者外部系统用例图中的图符用例•执行者•-------------[系统用于界定系统功能范围,描述该•Q焉能的用例都置于其中,而描述外部实体的执行者都置于其外——关联连接执行者和用例,表示执行者所代表的系统外部实体与该用例所描述的系统需求2有关・二吉侯帚二由用例连向用例表示用例中使用了用例中的行为或功能・由展》扩展由用例用至向用例表示用例描述了一项基本需求,而用例则描述了该基厚容的特殊情况A B,A B・注释体对实体进行文字描述B,B A注释连接将注释体与要描述的实体连接,说明该注释体是针对该实体所进行的描述I UML顺序图顺序图展示了几个对象之间的动态协作关系,主要用来显示对象之间发送消息的顺序,还显示对象之间的交互,即系统执行某一特定时间点所发生的事状态视图状态图是对类描述的补充,它说明该类的对象所有可能的状态以及那些事件将导致状态的改变它是一个类对象所可能经历的所有历程的模型图例对电话工作的行为建模[余额不足或消费完成][非法][合法][充值失败][余额不足]V[充值成功][余额充足][购买成交]、/、《变更余就V「消费[余额充足]---------------图医院饭堂就餐卡系统状态图活动图活动图用来描述执行工作流程中涉及的活动,展示了连续的活动流8协作图•与顺序图作用相同,协作图也是用来描述系统中对象之间的动态协作关系协作图侧重于描述各个对象之间存在的消息收发关系(交互关系),而不专门突出这些消息发送的时间顺序•在协作图中,对象同样是用一个对象图符来表示,箭头表示消息发送的方向,而消息执行的顺序则由消息的编号来说明(有一道综合题会在1和2中出)
3、需求规划(不知道老师大概要考什么)老师原话需要规格文档不会考你们的格式,主要是考你们的需要分析的方法,主要是面向对象的方法和结构化的方法,这是重点一定会出大题的,要认真复习,认真看PPT第三章
1、传统(结构化)的设计方法模块划分的两种方法中心变换和事务变换(PPT)中心变换(变换分析设计)根据信息系统的模型,信息一般是以外部形式进入系统,通过系统处理后,然后离开系统从其过程可以得出,变换流的数据流图是一个线性结构变换型的数据流是由输入、变换(或称处理)和输出三局部组成流图到程序结构图的转换当数据流图具有较明显的变换特征时,则按照以下步骤设计
1.确定数据流图中的变换中心、逻辑输入和逻辑输出
2.设计软件结构的顶层和第一层事务变换(事务分析设计)根本系统模型意味着变换流因此,原则上可以讲所有的信息流都可以归结为这一类事务处理中心加工路径物理输入输入流事务流的设计是从事务数据流图到程序结构的变换对于具有事务型特征的数据流图,则采用事务分析的设计方法
(1)确定数据流图中的事务中心和加工路径当数据流图中的某个加工具有明显地将一个输入数据流分解成多个发散的输出数据流时,该加工就是事务中心从事务中心辐射出去的数据流为各个加工路径
(2)设计软件结构的顶层和第一层事务处理中心和事务处理路径确定后,就可以确定它们的软件结构
(3)进行事务结构中、下层模块的设计、优化等工作F1输入流事务中心加工路径接受分支《I向事务层口动作层・・•细节层
2、面向对象的设计方法找出类,并对类进行定义(主要定义属性和方法)类图描述了系统中的类及其相互之间的各种关系,其本质反映了系统中包含的各种对象的类型以及对象间的各种静态关系(关联,子类型)Class类:-ttribvtms名,操作包包是一种分组机制,表示一个类图Package集合°类图中的图符:表示一个类,其中第一栏是类的第二栏是类的属性,第三栏是类的--------------关联用于表示类的对象之间的关系Q•其特殊形式有组成关联和聚集关联-------聚集关联用于表示类的对象之间的关•O系是整体与部分的关系-------组成关联用于表示类的对象之间的关•O系整体拥有各部分,部分与整体共存,如整体不存在了,部分也会随之消失------------>泛化关联泛化关系(继承关系)定义•了类和包间的一般元素和特殊元素之间的分类关系依赖关系有两个类或包元素、修•0改元素的定义可能会引起对另一个元素的定义的修改,则称元素依赖于元素X Y,X YY丹恸象:类的一个实例Q•X----------链接用于表示对象间的关联关系的一个实例例:学生-sno:String-sname:String-ssex:String-sbirthday:Date-ssfzh:String-sxibie:String-bjno:String#注册0#调班0#学籍异动#毕业0第四章
1、采用什么方式对模块进行描述老师原话.对模块进行描述,主要是模块内与模块之间的关系来进行描述的如耦合与内聚等模块的耦合耦合(Coupling)表示软件结构内不同模块彼此之间相互依赖(连接)的紧密程度,是衡量软件模块结构质量好坏的度量,是对模块独立性的直接衡量指标耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据1)数据耦合如果两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据,那么这种耦合称为数据耦合数据耦合是低耦合系统中必须存在这种耦合,因为只有当某些模块的输出数据作为另一些模块的输入数据时,系统才能完成有价值的功能2)控制耦合如果传递的信息中有控制信息,则这种耦合称为控制耦合控制耦合是中等程度的耦合,它增加了系统的复杂程度控制耦合往往是多余的,在把模块适当分解之后通常可以用数据耦合代替它3)公共环境耦合当两个或多个模块通过一个公共数据环境相互作用时,它们之间的耦合称为公共环境耦合(即公用耦合)公共环境耦合的复杂程度随耦合的模块个数而变化,当耦合的模块个数增加时复杂程度显著增加
(1)一个模块往公共环境送数据,另一个模块从公共环境取数据这是数据耦合的一种形式,是比较松散的耦合
(2)两个模块都既往公共环境送数据又从里面取数据,这种耦合比较紧密,介于数据耦合和控制耦合之间4)内容耦合最高程度的耦合是内容耦合
(1)一个模块访问另一个模块的内部数据;
(2)一个模块不通过正常入口而转到另一个模块的内部;
(3)两个模块有一局部程度代码重叠(只可能出现在汇编程序中);
(4)一个模块有多个入口(这说明一个模块有几种功能)总之,耦合是影响模块结构和软件复杂程度的一个重要因素,应该采用如下设计原则尽量使用数据耦合,少用控制耦合,限制公共环境耦合,完全不用内容耦合第四章
1、伪代码老师原话伪代码主要是用来说明一段程序,如画一个流程图,让你们用伪代码来说明,或者一段文字说明,让你们用伪代码来说明第五章
1、重用原则(老师原话.根本不考)第八章
1、白盒测试方法(基于代码的测试)
(1)语句覆盖语句覆盖方法是选择足够的测试用例,使得程序中每一条可执行语句至少被执行一次Test case:A=2,B=0,X=*.
(2)判定覆盖判定覆盖是选择足够的测试用例,使得程序中每一个判断的每一种可能结果都至少被执行一次地测试方法,使得程序中的每个判断至少获得一次“真〃值和“假〃值判定覆盖也叫分支覆盖。
个人认证
优秀文档
获得点赞 0