《信息系统分析与设计InformationSystemsAnalysisandDesign》由会员分享,可在线阅读,更多相关《信息系统分析与设计InformationSystemsAnalysisandDesign(53页珍藏版)》请在金锄头文库上搜索。
1、信息系统分析与设计Information Systems Analysis and Design南京大学主讲刘友华题型说明四种题型:单选题(共20小题,每题2分)主要考核基本概念和知识点。判断题(共15小题,每题1分)主要考核基本知识点、一些比较重要的注意点。填空题(共25空,每空1分)简答题(共3小题,共20分)要求列出要点,并简单说明,不需详细论述。第一章信息系统概论信息系统概念系统分析员所需的基本技能系统开发生命周期五个阶段、系统开发方法学构成系统分析员信息系统的求解者系统分析员所要具备的四个方面的知识和技能技术方面的知识和技能/TechnicalKnowledgeandSkills有关
2、组织的业务知识及管理技能/BusinessKnowledgeandSkills人际关系及协调技能/PeopleKnowledgeandSkills诚信和道德/IntegrityandEthicsSDLC(系统开发生命周期)过程性-通常由5个阶段(phase)构成-活动(activity)-任务方法学-如何支持所有活动/任务的完成-模型、工具、技术例题1、下面哪个系统开发阶段完成新系统逻辑设计工作?_。AA.系统分析阶段B.系统设计阶段C.系统实施阶段D.系统计划阶段2、软件需求分析的任务不应包括_。CA.问题分解B.可靠性与安全性要求C.结构化程序设计D.确定逻辑模型3、在软件的生命周期中,下
3、列哪一种说法是错误的?BA软件生命周期分为计划、分析、设计、运行和维护5个阶段B在开发初期要进行可行性研究和详细设计C在开发后期要进行代码编写和软件测试D运维阶段主要是进行软件维护第二章相关概念、原理及技术基础IS和MIS的关系管理的基本职能、管理活动和决策层次TPS和MIS的含义、功能特征数据库设计的基本步骤C/S、B/S计算模式的特征事务处理系统事务处理系统(TPS: Transaction Processing Systems)几个名词几个名词事务事务 一个组织中日常发生的基本业务活动一个组织中日常发生的基本业务活动 事务处理事务处理 面向日常的、重复的、普通的事务,对之进行记录、更新、
4、分类等面向日常的、重复的、普通的事务,对之进行记录、更新、分类等 事务处理的特点事务处理的特点 事务处理系统事务处理系统 将以事务处理为主的信息系统称之为将以事务处理为主的信息系统称之为 TPSA)事事务处理流程有规律、稳定务处理流程有规律、稳定B) 业务量大业务量大C) 事务数据的完整性、准确性、及时性要求高事务数据的完整性、准确性、及时性要求高 TPS的基本活动的基本活动 数据收集数据收集 获取和收集完成事务处理所需数据的过程获取和收集完成事务处理所需数据的过程数据验证数据验证 检查数据的有效性和完整性检查数据的有效性和完整性 数据修改数据修改 提供潜在问题的反馈并要求用户重新更新错误的数
5、据提供潜在问题的反馈并要求用户重新更新错误的数据数据操作数据操作 执行计算和其它与组织事务相关的数据转换过程执行计算和其它与组织事务相关的数据转换过程数据存储数据存储 用新事务来更新数据库,将事务数据放在一个或多个数据库中用新事务来更新数据库,将事务数据放在一个或多个数据库中文档生成文档生成 生成输出记录和报表的过程,可以是硬拷贝的纸质文档或软拷贝的屏幕输出生成输出记录和报表的过程,可以是硬拷贝的纸质文档或软拷贝的屏幕输出 事务处理系统事务处理系统(TPS: Transaction Processing Systems) 事务处理系统的目标事务处理系统的目标 确保数据的正确性、完整性确保数据的
6、正确性、完整性 提高劳动生产率提高劳动生产率 有助于改善产品或服务有助于改善产品或服务 有助于建立和维持客户忠诚度有助于建立和维持客户忠诚度管理信息系统管理信息系统 MIS的概念的概念 (该词最早出现在该词最早出现在1970年,由年,由Walter T. Kennevan率先提出率先提出)管理信息系统管理信息系统是是以书面或口头的形式,在合适的时间向经理、职员以及外界人员提供过去的、以书面或口头的形式,在合适的时间向经理、职员以及外界人员提供过去的、现在的、预测未来的有关企业内部及其环境的信息,以帮助他们进行决策。现在的、预测未来的有关企业内部及其环境的信息,以帮助他们进行决策。 定义定义1
7、(1985年年 “现代现代”MIS的创始人的创始人-美国明尼苏达大学卡尔森管理学院著名美国明尼苏达大学卡尔森管理学院著名Prof. Gordon D.)管理信息系统管理信息系统是一个利用计算机软件和硬件、手工作业、分析、是一个利用计算机软件和硬件、手工作业、分析、计划、控制和决策模型以及数据库的用户计划、控制和决策模型以及数据库的用户机器系统,它能提供信息支持企机器系统,它能提供信息支持企业或组织的运行、管理和决策功能。业或组织的运行、管理和决策功能。 定义定义2 (1984年年中国企业管理百科全书中国企业管理百科全书)管理信息系统管理信息系统是一个由人、计算机等组是一个由人、计算机等组成的能
8、进行管理信息的收集、传递、存储、加工、维护和使用的系统。它能成的能进行管理信息的收集、传递、存储、加工、维护和使用的系统。它能实测企业的各种运行情况,利用过去的数据预测未来,从全局出发辅助企业实测企业的各种运行情况,利用过去的数据预测未来,从全局出发辅助企业进行决策,利用信息控制企业的行为,帮助企业实现其规划目标。进行决策,利用信息控制企业的行为,帮助企业实现其规划目标。定义定义3 强调强调MIS是一种技术,一种先进的管理方法和手段是一种技术,一种先进的管理方法和手段 避免避免所谓所谓MIS就是计算机应用的认识上的误区就是计算机应用的认识上的误区现代管理信息系统是一个以计算机为工具,具有数据处
9、理、预测、控制和辅现代管理信息系统是一个以计算机为工具,具有数据处理、预测、控制和辅助决策功能的信息系统。助决策功能的信息系统。管理信息系统管理信息系统 MIS的输入和输出的输入和输出 MIS的输入的输入: A) 内部的内部的TPS或其它有关数据或其它有关数据 B)外部数据外部数据MIS的输出的输出: 分发给管理决策者的各种报表分发给管理决策者的各种报表数据库设计数据库设计数据库设计是建立数据库及其应用系统的技术。具体地,是指对于一个给定的应是建立数据库及其应用系统的技术。具体地,是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存用环境,构造最优的数据库
10、模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求。数据库设计是数据库在应用领域的一个主要储数据,满足各种用户的应用需求。数据库设计是数据库在应用领域的一个主要研究领域。研究领域。最为著名的数据库设计方法是新奥尔良最为著名的数据库设计方法是新奥尔良(New Orleans)方法,它按方法,它按SE的的思想,提思想,提出了数据库设计的规范,将数据库设计分为出了数据库设计的规范,将数据库设计分为6个阶段:个阶段:需求分析需求分析(分析用户数据及数据处理需求分析用户数据及数据处理需求) 概念设计概念设计(数据分析、抽象和定义数据分析、抽象和定义) 逻辑设计逻辑设计(数据结构
11、描述数据结构描述)物理设计物理设计(数据存储方法数据存储方法)数据库实施阶段数据库实施阶段数据库运行和维护阶段数据库运行和维护阶段 数据库设计一般步骤数据库设计一般步骤基于基于新奥尔良方法新奥尔良方法数据库设计客客户机机-服服务器(器(C/S)计算模式算模式Architecture 基于基于LAN,数据库服务器数据库服务器(database server端端)客户机客户机(client端端)C/S计算本质计算本质: 共享资源并协同工作,即由若干个互联的计算机共同分担共享资源并协同工作,即由若干个互联的计算机共同分担 完成系统指定的某个计算任务完成系统指定的某个计算任务。客客户机机-服服务器(器
12、(C/S)计算模式算模式Features降低网络负荷、缩短相应时间降低网络负荷、缩短相应时间 开放性开放性/客户机平台与服务器平台无关性客户机平台与服务器平台无关性-middleware Middleware is a computer software that implements communication protocols on the network and helps different systems communicates. /中间件的主要功能就是中间件的主要功能就是通过简单的、较高层次的应用程序编程接口通过简单的、较高层次的应用程序编程接口(API)将处于高层将处于高层的
13、应用和处于底层的网络屏蔽开来的应用和处于底层的网络屏蔽开来. .可伸宿性可伸宿性 - 3/N layer architecture 3-layer architecture is a client-server architecture that contains the three layers of view layer, business logic layer, and data layer性能改进性能改进(避免胖客户机和瘦服务器现象避免胖客户机和瘦服务器现象)便于管理和维护应用处理逻辑便于管理和维护应用处理逻辑 3-layer architecture数据层:用户管理和存储的数据,一
14、般用数据层:用户管理和存储的数据,一般用DBMS(的的SQL)来实来实现对现对DB的管理的管理/ /处理。处理。 业务逻辑层:实现用户业务的处理过程和处理规则。业务逻辑层:实现用户业务的处理过程和处理规则。 用户层:接受用户的输入,或格式化的形式显示处理结果。用户层:接受用户的输入,或格式化的形式显示处理结果。 客客户机机-服服务器(器(C/S)计算模式算模式浏览器器/服服务器(器(B/S)计算模式算模式BackgroundArchitectureC/S结构与结构与Web环境相融合环境相融合 Internetwidely implemented standardsWeb browsers an
15、d Internet connections are nearly ubiquitous数据库服务器数据库服务器 HTML+AnchorsWeb服务器服务器/ /数据库客户机数据库客户机 网络网络 Webbrowser Webbrowser Webbrowser Internet C/S B/S 最好在同一最好在同一LAN TCP/IP + HTTP Web环境环境=Browser+HTTPWeb server+HTML例题1、事务处理系统(TPS)的主要目的是_。BA.为管理者提供决策服务B.提高事务处理工作效率C.解决管理者难以解决的问题D.减轻管理者的工作强度2、网络环境下C/S计算模式
16、的多层逻辑结构中不包括以下哪一层。CA.用户视图层B.业务逻辑层C.中间件层D.数据库层3、在数据库设计中,选择合适的存储结构和存取方法的设计属于()B。A.系统结构设计B.物理结构设计C.逻辑结构设计D.概念结构设计3、管理信息系统是一种信息系统,信息系统也就是管理信息系统。F4、和传统的观点相比,现代信息系统是任何组织的价值链的一个有机组成部分。T第三章信息系统的开发方法结构化系统开发方法的特征和开发过程原型化方法开发过程开发方法选择或重构的依据原型化方法的开发过程原型化方法的开发过程基于原型的系统开发步骤基于原型的系统开发步骤:基于迭代的渐增式的开发方法基于迭代的渐增式的开发方法 开发方
17、法选择或重构的依据开发方法选择或重构的依据The exact way in which we choose or restructure will depend on Project size / 项目规模项目规模 The degree of (un)certainty of requirements or feasibility at the start of the project / 在项目之初需求或可行性在项目之初需求或可行性(不不)确定程度确定程度 The expected rate of change in user requirements during the life of
18、the project / 在项目周期中需求的变化率在项目周期中需求的变化率 The experience and confidence that developers have in the proposed implementation technology / 开发人员对要求的实现技开发人员对要求的实现技术所具有的经验和信心术所具有的经验和信心注注 顺序开发顺序开发 最最“古老古老”的开发方法的开发方法, 其时代背景其时代背景: 系统相对简单且彼此独立系统相对简单且彼此独立 计算机资源非常昂贵计算机资源非常昂贵 软件开发工具相对原始软件开发工具相对原始开发方法选择或重构的依据开发方法选择
19、或重构的依据Suggestions Conventional development is usually most efficient when requirements are well known and relatively static. / 结构化开结构化开发方法通常适用于系统需求已明确且其相对稳定的系统。发方法通常适用于系统需求已明确且其相对稳定的系统。 Evolutionary developments is generally best when requirements are poorly understood or rapidly shifting. /原型原型化方法通
20、常适用于系统需求未知或需求易于变化的系统。化方法通常适用于系统需求未知或需求易于变化的系统。 Object-oriented development is generally best for systems that will evolve over relatively long period of time. / OO方法通方法通常适用于其生命周期要求相当长的系统。常适用于其生命周期要求相当长的系统。 Some portion of the requirements cannot be fully specified independently of detailed design. /
21、 部分需求需经过部分需求需经过详细设计之后才能被完全确定详细设计之后才能被完全确定 Technical feasibility for some system functions is unknown or uncertain. / 系统一些功能的技术可行性不可知或不确定系统一些功能的技术可行性不可知或不确定 Prototype development tools are powerful enough to create a fully functional system. / 原型化的开发工具支持快速构原型化的开发工具支持快速构造一个功能完备的系统造一个功能完备的系统 For exampl
22、e, When to Use a Prototyping Approach例题1、在选择开发方法时,不适合使用原型法的情况是。DA用户需求模糊不清B系统设计方案难以确定C系统使用范围变化很大D用户的数据资源缺乏组织和管理2、结构化程序设计思想的主要目的是()。AA.提高程序的可读性和可维护性B.保证程序的正确性C.提高程序的可靠性D.支持模块的可重用性 3、结构化方法的基本思想可理解成“自顶向下,逐步求精”,“抽象”和“组合”是结构化方法解决复杂问题的两个基本手段。T4、结构化设计技术是结构化程序设计技术的简称。F5、自顶向下开发顺序的一个主要优点避免了自底向上开发顺序的不足,也就是说所有的编
23、程人员一开始就可以立即投入工作。F第四章信息系统开发的若干组织和管理工作项目含义、项目可行性的确认软件产品质量因素软件质量保证QA(计划QA活动、结构化预排、复查和管理工作、测试)文档的作用、分类例题1、在下面的活动图中,从A到J的关键路径是()B。A.ABEGJB.ADFHJB.C.ACFGJD.ADFIJ2、某工程计划图示如下,各个作业所需的天数如下表所列,设该工程从第0天开工,则作业I最迟应在第()天开工。BA11B13C14D16例题3、结构化预排也称静态测试,其目标是发现错误以便即时更正,下面的描述不正确的是()。CA.是在项目早期对质量进行有效控制的一项技术B.是指对调查结果和根据
24、这些结果建立的原型进行评审C.预排工作的参与者通常只由项目客户、业务骨干及行业业务专家组成等评审者组成D.预排的四个要素:WHAT,WHEN,WHO,HOW4、可靠性越强的软件其运行效率往往也越高。F第五章系统分析的任务需求类型、获得模型、事件、事物含义数据流程图(DFD)构造DFD需考虑的问题定义系统需求数据流程图1.DFD的概念及其符号定义DFD以图形的方式将事件列表中描述的事件和ERD中定义的数据实体有机地集成在一起一个DFD的例子定义系统需求构造DFD需考虑的问题避免“信息过载”现象,提高DFD的可读性和可理解性(把握好“72法则”)保证数据流的一致性DataFlowConsisten
25、cy确保DFD最低的复杂性 MinimizingComplexity避免DFD分解过程中因疏忽、遗漏、差错等而造成的数据流不一致注意数据流包含的信息在“父图”和“子图”之间的平衡性数据流的流入端与其流出端需相符(“黑洞”现象)数据流的流出端与其流入端需相符(“奇异”现象)定义系统需求细化DFD的其他模型1.过程描述-处理逻辑的表达/processdescriptions结构化英语/StructuredEnglish决策表/Decisiontable判定树/Decisiontree数据流定义数据元素的定义数据存储的定义2.数据定义Definitionofdata例题1、系统分析是信息系统开发重要
26、的阶段。系统分析的困难不包括()。BA.问题空间的理解B.系统建模工具的复杂性C.人与人之间的沟D.环境的不断变化2、()是一种最常用的结构化分析工具,它从数据传递和加工的角度,以图形的方式刻画系统内数据的运行情况。AA.数据流图B.数据字典C.ER图D.判定表3、通常使用()作为该工具的补充说明。BA.数据流图B.数据字典C.ER图D.判定表4、系统的需求包括功能需求与技术需求,下列属于系统的技术需求的是()。AA.同时响应多个请求B.计算工资C.维护员工资料D.计算仓储量例题5、系统分析阶段,向用户收集需求信息的方法多样,下面列举的方法哪种通常被认为是最为有效的()。BA.分发与收集调查表
27、B.面谈与讨论C.观察商业流程D.亲自参与业务实践活动6、模型便于开发人员之间、开发人员与用户之间的相互交流,但其抽象性往往增加了对系统认识的复杂性。F7、事件类型中的时间事件和状态事件相似,其区别仅在于时间事件不能预先确切地定义所发生的时刻。F8、事件列表是在系统设计阶段建立的一种表格模型。F在结构化分析方法的数据流程图模型中,使用_来表示ERD中的数据实体。数据存储第六章系统设计的任务模块、模块结构图评价模块结构图的质量标准了解关系数据库(6.4.1)掌握关系数据模型设计(6.4.2)关系数据模型质量的评估,知道并理解一个好的数据模型应具备的特征(6.4.3)系统控制及输入、输出设计用户界
28、面设计的指导原则评价模块结构图的质量标准模块结构图设计质量的好坏直接影响到系统实施的软件质量的高低,高质量的模块结构图能保证系统的可维护性、灵活性和易测试性模块独立的概念是良好设计的关键模块的独立程度可以由两个定性标准度量:模块耦合和模块内聚模块耦合模块耦合是对一个应用程序体系结构内两个不同模块之间联接程度的一种度量。模块间的依赖程度越大,则其耦合程度也就越大,最终系统的质量也就越低;反之,模块间的依赖程度越小,则其耦合程度也就越小,最终系统的质量也就越高。模块耦合的类型: 按其耦合程度由低到高1)数据耦合:两个模块之间的接口即调用只通过数据信息的传递来关联2)控制耦合:两个模块之间除了数据信
29、息的传递之外,还有控制信息的传递,而且这种控制信息是用以控制被调用模块的内部处理逻辑3)内容耦合/病态耦合:两个模块之间不是通过显式的调用关系发生关联,而是一个模块直接存取或修改另一个模块的数据结论1:尽量使用数据耦合,少用控制耦合,完全不用内容耦合评价模块结构图的质量标准模块内聚模块内聚是对一个模块内部各元素在功能上内在联系紧密程度的一种度量.或者说,内聚是对模块内各处理动作组合强度的一种度量.模块内聚的类型: 按其内聚程度由低到高结论2:模块层次分解设计过程中,没有必要精确确定模块内聚的级别,重要的是设计时力争做到高内聚,并且能够辨认出低内聚的模块.模块耦合和模块内聚两者往往相辅相成、相互
30、一致,一般说来,模块内聚性越高则模块间的耦合性就越低,若所有模块都是功能内聚的话,那么模块间必然都是数据耦合,从而可以获得较高的模块独立性.评价模块结构图的质量标准模块作用范围和控制范围模块的作用范围也称为影响范围:定义为若干模块的集合,集合中的模块内含有依赖于这个判断结果的处理.模块的控制范围:该模块本身及其所有的下属模块组成的集合.两者关系的原则或者结论3:一个模块的判定的作用范围必须是判定所在模块的控制范围的一个真子集.评价模块结构图的质量标准深度、宽度、模块的扇入和扇出系数(fan-inandfan-out)深度表示软件结构中控制的层数.宽度是软件结构内同一层次上的模块总数的最大值.扇
31、出是一个模块直接控制(调用)其它模块的数目.扇入是指一个模块有多少个上级模块直接调用它.标志一个系统的规模大小和复杂程度扇出越大意味着模块越复杂;扇入越大意味着模块的通用性越强结论4:随着层次深度的增加,高扇出数目逐渐减少,而逐步争取更大的扇入,软件体系结构呈现“上尖、中宽、底小”形状.数据库设计数据库设计 数据冗余问题数据冗余问题 “第几范式第几范式”原意是表示关系的某一种级别原意是表示关系的某一种级别, 现常用来表示符合某一种级别的关现常用来表示符合某一种级别的关系模式的集合,记为系模式的集合,记为R xNF.各种范式之间的关系各种范式之间的关系: :5NF 4NF BCNF 3NF 2N
32、F 1NF 其中其中, 满足满足1NF是关系模型中关系的最基本条件是关系模型中关系的最基本条件, 它要求关系的每个分量必须是一个不可分的数据它要求关系的每个分量必须是一个不可分的数据项项, 即不允许表中有表即不允许表中有表.一个低一级范式的关系模式一个低一级范式的关系模式, 通过模式分解可以转换为若干个高一级范式的关系通过模式分解可以转换为若干个高一级范式的关系模式的集合模式的集合, 这种过程就叫这种过程就叫规范化规范化. 函数依赖函数依赖 非规范化关系的两个例子非规范化关系的两个例子 数据库设计数据库设计 数据冗余问题数据冗余问题 设设R(U)是属性集是属性集U上的关系模式,上的关系模式,X
33、、Y是是U的子集,若对于的子集,若对于R(U)的任意一个可能的任意一个可能的关系的关系r,r中不可能存在两个元组在中不可能存在两个元组在X上的属性值相等,而在上的属性值相等,而在Y上的属性值不等,上的属性值不等,则称则称X函数确定函数确定Y或或Y函数依赖于函数依赖于X,记作记作XY。若若R 1NF,且每一个非主码属性函数依赖于主码,则且每一个非主码属性函数依赖于主码,则R 2NF。说明说明: 现要确定现要确定R是否满足是否满足2NF, 首先应先确定它是否是第首先应先确定它是否是第1范式范式 当主码有两个或多个属性组成时当主码有两个或多个属性组成时, 要确定一个关系是否是要确定一个关系是否是2N
34、F时时, 必须要判断每必须要判断每个非主属性是否都函数依赖于组成主码的属性组合个非主属性是否都函数依赖于组成主码的属性组合, 而不只是其中的一部分属性而不只是其中的一部分属性 ( 若满足若满足R 1NF, 且且R的主码只有一列的主码只有一列, 则它自动满足则它自动满足2NF )一个例子一个例子: 课程选修课程选修(学号学号, 课程代码课程代码, 课程名称课程名称, 成绩成绩) 非主码列非主码列“课程名称课程名称”仅依赖于组合主码的一部分仅依赖于组合主码的一部分“课程代码课程代码”, 因此它不符合因此它不符合2NF. 对该模式规范化也是把它分解成两个模式对该模式规范化也是把它分解成两个模式: “
35、课程课程”和和 “课程选修课程选修”, 即即课程课程(课程代码课程代码, 课程名称课程名称); 课程选修课程选修(学号学号, 课程代码课程代码, 成绩成绩)数据库设计数据库设计 数据冗余问题数据冗余问题 一个例子一个例子:课程课程(课程代码课程代码, 课程名称课程名称, 教师代码教师代码, 教师姓名教师姓名);因为非主码属性因为非主码属性“教师姓名教师姓名”依赖于另一非主码属性依赖于另一非主码属性“教师代码教师代码”, 所以该关系所以该关系模式不符合模式不符合3NF, 其解决办法也是把它分解成两个关系模式其解决办法也是把它分解成两个关系模式: “课程课程”和和“教师教师”课程课程(课程代码课程
36、代码, 课程名称课程名称, 教师代码教师代码);教师教师(教师代码教师代码, 教师姓名教师姓名)这时这时, 这两个模式均满足这两个模式均满足3NF.若若R 2NF,且没有非主码属性函数依赖于任何其它的非主码属性,则,且没有非主码属性函数依赖于任何其它的非主码属性,则R 3NF。说明说明: 现要确定现要确定R是否满足是否满足3NF, 首先应先确定它是否是第首先应先确定它是否是第2范式范式 不论一个关系的非主码属性数目是多少不论一个关系的非主码属性数目是多少, 都必须考虑每一个非主码属性对另一都必须考虑每一个非主码属性对另一个非主码属性的函数依赖性个非主码属性的函数依赖性 设非主码属性数目为设非主
37、码属性数目为N, 则要验证的函数依赖性数目则要验证的函数依赖性数目是是N(N-1) 若一个属性的值能从一个或多个属性的值中计算出来若一个属性的值能从一个或多个属性的值中计算出来, 则也违背了则也违背了3NF的要求的要求 例题1、()可用于描述数据流图中数据存储及其之间的关系,最初用于数据库概念设计。在某学生选课系统中使用该工具来描述,学生的学号属于()。ACA.实体关系图B.数据字典C.IPO图D.判定表A.实体B.关系C.属性D.方法2、下列聚合类型中内聚程度最高的是(),下列耦合类型中耦合程度最低的是()。CAA.偶然内聚B.时间内聚C.功能内聚D.过程内聚A.数据耦合B.控制耦合C.公共
38、耦合D.内容耦合例题3、关系数据库的规范化理论事针对(1)的问题设计的。这种理论适用于(2)设计。到目前为止规范化理论已提出许多类范式,但在实际应用中最有价值的是(C)或BCNF。一个关系模式是否属于某种范式是由(4)确定的。DBCC(1)A.一个关系太大,引起应用数据库的独立性下降B.数据安排太分散,引起应用数据的共享性下降C.数据存取路径不适当,引起数据存取时间效率下降D.数据冗余,引起更新(插入、修改、删除等)异常(2)A.数据库管理系统B.数据库C.数据定义语言D.数据操纵语言(3)A.1NFB.2NFC.3NFD.4NF(4)A.数据模型B.关系操作C.函数依赖D.关系值第七章系统实
39、施、转换和维护程序开发的顺序软件测试相关内容(7.2):测试目标和步骤、黑盒测试和白盒测试、测试用例的设计软件安装、转换三种方法软件维护的定义程序开发程序开发程序开发的顺序程序开发的顺序就是组成系统的若干功能单元模块的先后开发次序就是组成系统的若干功能单元模块的先后开发次序。常见顺序常见顺序:了解它们的思想和优缺点了解它们的思想和优缺点q 输入输入-处理处理-输出的开发顺序输出的开发顺序q 自顶向下自顶向下 或或 自底向上的开发顺序自底向上的开发顺序q 面向对象的框架开发顺序面向对象的框架开发顺序q 其它开发顺序的考虑其它开发顺序的考虑 软件测试软件测试 软件测试的目标软件测试的目标/定义定义
40、: 测试测试是为了发现程序中的错误而执行程序的过程是为了发现程序中的错误而执行程序的过程 好的好的测试用例测试用例是极有可能发现迄今为止尚未发现的错误的测试用例是极有可能发现迄今为止尚未发现的错误的测试用例 成功的测试是发现了至今为止尚未发现的错误的测试成功的测试是发现了至今为止尚未发现的错误的测试 “测试是为了表明程序是正确的测试是为了表明程序是正确的” “成功的测试是没有发现任何错误的测试成功的测试是没有发现任何错误的测试” 测试本身的目的是尽可能多地暴露程序中的错误测试本身的目的是尽可能多地暴露程序中的错误, 最终目标最终目标: 纠正错误纠正错误 黑盒测试黑盒测试(Black box t
41、esting)和白盒测试和白盒测试(White box testing)黑盒测试法黑盒测试法把程序看成一个把程序看成一个“黑盒子黑盒子”, 不考虑程序的内部结构和处理过程不考虑程序的内部结构和处理过程, 只只检查程序功能是否按照规格说明书的规定正常使用检查程序功能是否按照规格说明书的规定正常使用, 程序是否能正确地接收输入程序是否能正确地接收输入数据并产生正确的输出信息数据并产生正确的输出信息 又称为又称为“功能测试功能测试”.白盒测试法白盒测试法把程序看成装在一个透明的把程序看成装在一个透明的“白盒子白盒子”里里, 按照程序的内部逻辑来测按照程序的内部逻辑来测试程序试程序, 检查程序中的每条
42、可能的通路是否都能按预定要求正确工作检查程序中的每条可能的通路是否都能按预定要求正确工作 又称为又称为“结构测试结构测试”.软件测试的基本概念软件测试的基本概念软件测试步骤软件测试步骤 软件测试的步骤软件测试的步骤/类型类型单元测试单元测试(Unit testing) 对单个代码模块进行测试的过程对单个代码模块进行测试的过程集成测试集成测试(Integration testing) 对一组模块进行测试的测试行为对一组模块进行测试的测试行为系统测试系统测试(System testing) 对一个完整的系统或独立的子系统的行为的测试对一个完整的系统或独立的子系统的行为的测试测试用例的设计测试用例的
43、设计设计测试用例设计测试用例的基本目标是确定一组最有可能发现某个错误或某类错误的测试数据的基本目标是确定一组最有可能发现某个错误或某类错误的测试数据.现已有多种设计测试数据的技术现已有多种设计测试数据的技术:q 等价类划分等价类划分q 边界值分析边界值分析q 错误推测法错误推测法q 逻辑覆盖法逻辑覆盖法 等价类划分等价类划分基本思想:基本思想:因不可能穷尽测试,因此只能选取少量最有代表性的输入数据,以期用较小的代因不可能穷尽测试,因此只能选取少量最有代表性的输入数据,以期用较小的代价暴露出较多的程序错误价暴露出较多的程序错误 把所有的可能的输入数据把所有的可能的输入数据(有效的和无效的有效的和
44、无效的)划分成划分成若干个等价类,使得每类中的一个典型值在测试中的作用与这一类中所有其它值若干个等价类,使得每类中的一个典型值在测试中的作用与这一类中所有其它值的作用相同。的作用相同。根据等价类设计测试用例的步骤:根据等价类设计测试用例的步骤: 设计一个新的测试用例以尽可能多地覆盖尚未被覆盖的有效等价类,重复这一设计一个新的测试用例以尽可能多地覆盖尚未被覆盖的有效等价类,重复这一 步骤直到所有有效等价类都被覆盖为止步骤直到所有有效等价类都被覆盖为止 设计一个新的测试用例,使它覆盖一个而且只覆盖一个尚未被覆盖的无效等价设计一个新的测试用例,使它覆盖一个而且只覆盖一个尚未被覆盖的无效等价 类,重复
45、这一步骤直到所有无效等价类都被覆盖为止类,重复这一步骤直到所有无效等价类都被覆盖为止测试用例的设计测试用例的设计 边界值分析边界值分析1)边界边界指诸如变量取值范围、数组下标的上限下限、循环控制变量的初值终值等。指诸如变量取值范围、数组下标的上限下限、循环控制变量的初值终值等。经验表明,程序在处理边界情况时最容易发生错误经验表明,程序在处理边界情况时最容易发生错误。2)基本思想基本思想应该选取刚好等于、稍小于和稍大于边界值的数据作为测试数据,而不是选取每应该选取刚好等于、稍小于和稍大于边界值的数据作为测试数据,而不是选取每个等价类的典型值或任意值作为测试数据个等价类的典型值或任意值作为测试数据
46、 3)工作步骤工作步骤设计测试用例时通常联合使用等价类划分和边界值分析两种技术设计测试用例时通常联合使用等价类划分和边界值分析两种技术 错误推测错误推测基本思想基本思想列举出程序中可能会有的错误和容易发生错误的情况,并据此选择测试用例列举出程序中可能会有的错误和容易发生错误的情况,并据此选择测试用例 仔细分析系统规格说明书仔细分析系统规格说明书 凭经验和直觉凭经验和直觉测试用例的设计测试用例的设计3. 测试用例的设计测试用例的设计 逻辑覆盖逻辑覆盖所谓所谓逻辑覆盖逻辑覆盖是关于程序结构的一系列测试过程的总称,由这组测试过程来逐步是关于程序结构的一系列测试过程的总称,由这组测试过程来逐步进行越来
47、越完整的路径测试。进行越来越完整的路径测试。按照测试数据执行按照测试数据执行(或称覆盖或称覆盖)程序逻辑的程度可大致分成程序逻辑的程度可大致分成6种不同的种不同的覆盖标准覆盖标准: q 语句覆盖语句覆盖语句覆盖语句覆盖是指设计足够多的测试用例,使得被测试程序中的每条语句至少执是指设计足够多的测试用例,使得被测试程序中的每条语句至少执行一次。语句覆盖是行一次。语句覆盖是6种种逻辑覆盖标准中最弱的一种测试标准。逻辑覆盖标准中最弱的一种测试标准。q 判定覆盖判定覆盖判定覆盖判定覆盖又称为又称为分支覆盖分支覆盖,是指设计足够多的测试用例,不仅使得每条语句,是指设计足够多的测试用例,不仅使得每条语句必须
48、至少执行一次,而且还使得每个判定的每种可能的结果都应至少执行一必须至少执行一次,而且还使得每个判定的每种可能的结果都应至少执行一次次(也就是每个判定的每个分支都至少执行一次也就是每个判定的每个分支都至少执行一次)。测试用例的设计测试用例的设计 逻辑覆盖逻辑覆盖q 条件覆盖条件覆盖条件覆盖条件覆盖是指设计足够多的测试用例,不仅使得每条语句必须至少执行一次,是指设计足够多的测试用例,不仅使得每条语句必须至少执行一次,而且还使得每个判定表达式中的每个条件的各种可能的结果都至少取得一次。而且还使得每个判定表达式中的每个条件的各种可能的结果都至少取得一次。注注:判定覆盖不一定包含条件覆盖,条件覆盖也不一
49、定包含判定覆盖。例如:判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖。例如:If ( x 0 & y != 0 ) S1;Else S2;测试数据集测试数据集TS(x, y) = (1, 1), (1, 0) 满足判定覆盖,但不满足条件覆盖;而满足判定覆盖,但不满足条件覆盖;而测试数据集测试数据集TS(x, y) = (-1, 1), (1, 0) 则满足条件覆盖,但不满足判定覆盖。则满足条件覆盖,但不满足判定覆盖。q 判定判定/ /条件覆盖条件覆盖判定判定/条件覆盖条件覆盖是指设计足够多的测试用例,使得每个判定表达式中的每个条是指设计足够多的测试用例,使得每个判定表达式中的每个条件
50、都取到各种可能的值,而且还使得每个判定表达式也取到各种可能的结果。件都取到各种可能的值,而且还使得每个判定表达式也取到各种可能的结果。例如上例:测试数据集例如上例:测试数据集TS(x, y) = (-1, 1), (1, 1), (1, 0) 满足判定满足判定/条件覆盖。条件覆盖。q 条件组合覆盖条件组合覆盖条件组合覆盖条件组合覆盖是指是指设计足够多的测试用例,使得每个判定表达式中的所有条设计足够多的测试用例,使得每个判定表达式中的所有条件的各种可能的组合都至少出现一次。显然,满足条件组合覆盖标准的测试件的各种可能的组合都至少出现一次。显然,满足条件组合覆盖标准的测试数据也一定满足判定覆盖、条
51、件覆盖和判定数据也一定满足判定覆盖、条件覆盖和判定/条件覆盖标准。例如上例,测试条件覆盖标准。例如上例,测试数据集数据集TS(x, y) = (1, 1), (1, 0), (-1, 1), (-1, 0) 满足条件组合覆盖。满足条件组合覆盖。逻辑覆盖逻辑覆盖例题1、下列说法错误的是()A.用于模拟尚未开发单元模块的程序叫做占位程序B.占位程序常用于自底向上的开发顺序C.驱动程序和占位程序的开发在满足各自目的的前提下应尽可能的简单D.模块的内聚性越高则越可以简化单元测试过程2、在下面所列举的逻辑测试覆盖中,测试覆盖最强的是(),最弱的是()。BCA条件覆盖B条件组合覆盖C语句覆盖D条件及判定覆
52、盖A条件覆盖B条件组合覆盖C语句覆盖D条件及判定覆盖3、对下面的个人所得税程序中满足语句覆盖测试用例的是(),满足判定覆盖测试的用例是()。DAif(income800)tarrate=0;elseif(income=1500)taxrate=0.05;elseif(income2000)taxrate=0.08;elsetaxrate=0.1;Aincome=(800,1500,2000,2001) Bincome=(800,801,1999,2000)Cincome=(799,1499,2000,2001) Dincome=(799,1500,1999,2000)Aincome=(799,1500,1999,2001)Bincome=(799,1501,2000,2001)Cincome=(800,1500,2000,2001) Dincome=(800,1499,2000,2001)例题4、(1)满足判定覆盖的测试数据一定满足语句覆盖;T(2)满足条件覆盖的测试数据一定满足语句覆盖;T(3)满足任何一种覆盖标准的测试数据组已定不会少于2个;F(4)测试用例是由测试数据和预期结果组成;F(5)测试总是带来坏消息,因此没有消息就是好消息;F(6)测试是证明程序恩能够正确地执行它的功能;F(7)一个高效的测试是指用尽可能多的测试用例去发现尽可能多的错误。F