《系统集成项目软件工程知识题库.docx》由会员分享,可在线阅读,更多相关《系统集成项目软件工程知识题库.docx(27页珍藏版)》请在优知文库上搜索。
1、系统集成项目软件工程知识题库本章按照需求、可研、设计.测试、维护的顺序展开1.1软件需求(讲了2个问题需求内容和需求过程)软件工程是开发、运行、维护和修复软件的系统方法。L软件需求内容主要包括(必会):功能需求,非功能需求、设计约束;业务需求、用户需求、系统需求。(1)功能需求:指系统必须完成的那些事。(订票网站必须完成订票功能)(必会)(2)非系统功能:是指产品必须具有的属性和品质,如可靠性(如网站多人访问不能崩溃)、性能、响应时间(网页打开时间一般不超过IOS)、容错性、扩展性等(必会)(3)设计约束:也成为限制条件,补充规约,通常是对解决方案的一些约束说明,例如:必须采用国有自主知识版权
2、的数据库系统,必须运行在UNIX操作系统之下等(必会)(4)业务需求(BR):指反应组织机构或客户对系统、产品高层次的目标要求,通常问题定义本身就是业务需求(了解)(5)用户需求(UR)(了解)(6)系统需求(SR)(了解)2.需求过程(讲了2个问题需求开发和需求管理)需求过程是一个包括创建和维护系统需求文档所必需的一切活动的过程。通常包括需求开发和需求管理两大工作(必会)(1)需求开发:包括(需求捕获)、(需求分析)、编写(规格说明书)、和(需求验证)四个阶段(必会)1)需求捕获:常用的需求捕获手段包括a用户访谈b用户调查:表格、问卷调查等方式,与用户访谈相比最大缺点是缺乏灵活性C.现场观摩
3、d.文档考古e.联合讨论会2)需求分析3)需求规格说明书(SRS):是一个软件文档,说明软件功能和约束4)需求验证需求验证和规格说明书的关系:二者是一个双向的过程,规格说明书中提到的功能在最终的系统中必须全部得到实现,同时软件说明书也可看到最终需求,一句话概括就是既不能少也不能多(2)需求管理:通常包括定义(需求基线)、(处理需求变更)、(需求跟踪)等方面的工作基线的定义:正式评审、确认的标准(必会)1.2可行性研究(可能考案例题)1 .可行性研究的主要任务包括:(技术可行性)、(经济可行性)和(社会可行性)(必会)2 .可行性研究的工作步骤:(了解,每个问题都读一下,通读一下这几点,有印象)
4、(1)核实问题定义与目标(2)研究分析现有系统(3)为新系统建模(4)客户复核(5)提出并评价解决方案(6)确定最终推荐的解决方案:进行成本/效益分析进行成本/效益分析可分两部分进行(以后具体会讲现在只做了解)1)成本估计:常用的有功能点分析、OCCoMo分析等2)效益分析:a.货币的时间价值b.投资回收期c.投资回报率(7)草拟开发计划(8)以书面方式提交可行性分析报告13需求分析(了解)需求分析包括绘制系统上下文范围关系图、创建用户接口原型、分析需求的可行性、确定需求的优先级、为需求建立模型、创建数据字典、使用质量功能调配。质量功能调配(QFD)数据流图(DFD)需求分析的主要方法包括:结
5、构化分析方法、软系统方法、面向对象分析方法、面向问题域的分析。1.4软件设计测试和维护1.1.1软件设计(了解)(1)软件设计的基本原则:信息隐蔽、模块独立性、(模块内部高内聚(功能、信息、通信、过程、时间、逻辑);模块间低耦合)(2)系统结构图:模块、模块间的调用关系、模块间的通信、辅助控制符号(3)常用系统结构图:变量型、事务型、混合型(4)用户界面:可使用性、灵活性、复杂性和可靠性1.1.2软件测试方法(必会)软件测试的方法分为(白盒测试)和(黑盒测试);单元测试、系统测试、验收测试(请自己百度下专业名词比如黑盒子测试、白盒测试)1 .黑盒测试:(1)概念:黑盒测试吧测试对象看成一个空盒
6、子,不考虑程序内部的逻辑结构和内部特性,只是依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明,又称为功能测试或数据驱动测试。(2)黑盒测试的方法:1)等价类:根据某种规则,划分为几个类型,从中选拔出几个测试代表2 )边界值3 )错误推测4)因果图和综合分析法2.白盒测试(1)概念:白盒测试吧测试看成一个透明的盒子,它允许测试人员利用程序内部的逻辑结构和有关信息设计或选择测试用例。又称为结构测试或逻辑驱动测试(考虑内部逻辑结构,用覆盖的方式实现)(2)白盒测试对程序模块进行如下检查:(理解)1)对程序模块的所有独立的执行路径至少测试一次2)对所有的逻辑判定,取真与取假的两种情况的测试
7、至少测试一次3)在循环的边界和运行界限内执行循环体4)测试内部数据结构的有效性等(3)逻辑覆盖:是以程序内部的逻辑结构为基础的设计用例的技术。它属于白盒测试,包括,语句覆盖、判定覆盖、条件覆盖、判定一条件覆盖、条件组合覆盖、路径覆盖等1.1.3软件测试的分类1 .单元测试:单元测试也成为模块测试,是针对每个模块进行的测试2 .集成测试:在单元测试的基础上,将所有的模块按照设计要求组装成系统,必须精心计划,应提交集成测试计划、集成测试规格说明和集成测试分析报告3 .确认测试:确认测试验证软件的功能、性能及其他特性是否与用户要求一致1.系统测试:讲整个软件放在整个计算机环境下,包括软硬件平台、某些
8、支持软件数据和人员等,在实际运行环境下进行的一系列测试5.a测试和B测试在软件交付使用后,用户将如何实际使用程序,对于开发者来说是不知道的。通常在软件发布上市之前需要进行a测试和B测试。(1) a测试:由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试(2) B测试:由软件的多个用户在实际使用环境下进行的测试软件测试从不同的角度,又可分为一下几大类(了解,读一下具体概念)(1)功能测试(2)可靠性测试(3)强度测试(4)性能测试5)恢复测试(6)启动停止测试(7)匹配测试(8)安全性测试(9)可使用性测试(10)安装测试(11)过程测试(12)容量测试(13
9、)文档测试(14)兼容性测试1.1.4软件测试的步骤(PDCA过程)(必会)1 .制定软件测试计划2 .编写软件测试说明3 .执行软件测试1.编写软件测试报告5 .修正软件测试过程中出现的问题6 .软件测试阶段评审1.1.5软件维护(必会)1 .软件的可维护性的主要由以下三个因素决定:(1)可理解性(2)可测试性(3)可修改性2 .软件维护的步骤:(1)建立维护组织(2)提出维护要求(3)实施维护作业(4)记录维护要素(5)评价维护活动1.5软件的复用1.概念:软件复用是指利用自己已有软件的各种有关知识构造新的软件。以缩减软件开发和维护的费用。(把以前有的东西竟可能的拿来去用)(必会)2.软件
10、复用的内容:(了解)(1)代码的复用(2)测试文档的复用(3)设计思想的复用(4)模块的复用(5)软件的复用(6)组件的复用3.软件复用的主要思想:将软件看成是由不同功能的“组件”所组成的有机体。(组件的概念:在软件设计编写时可以被设计成完成同类工作的一个通用的产品工具)(了解)L软件再生的6个步骤:筛选、文档重构、逆向工程(功能反编译)、代码重构、数据重构、重新开发。(了解)(逆向工程)的概念:分析一个程序的过程,最大程度的建立比源代码更加抽象的高级表达,它也是一个恢复设计结果的过程,逆向工程工具可以从现有的软件代码中抽取有关数据、体系结构和处理过程的设计信息(选择给解释考名词)1.6软件质
11、量保证及质量评价1 .软件质量管理过程包括:软件质量保证过程、验证过程、确认过程、评审过程、审计过程。(1)软件质量保证:通过计划制定、实施和完成一组活动提供保证,这些活动保证项目生命周期中的软件产品和过程符合其规定的需求。(2)3佥证与确认过程:使用能够定位缺陷并便于以后改正的测试技术直接处理软件产品质量问题。验证与确认的区别:(重点)1)验证过程试图确保活动的输出产品已经被正确的制造,即活动的输出产品满足前面活动施加的规范说明;2 )确认过程试图确保建造了正确的产品,即产品满足其特定的目的。3)评审与审计过程(具体几个概念请百度下)包括管理评审、技术评审、检查(正式的)、走查(随即的)、审
12、计(事后进行的一个审计)。2.相关名词:(1)SQA:软件质量保证(2)QC:质量控制1.7软件配置管理(考过15分的案例答题)(了解)(1)软件配置管理:配置与配置项、基线与基线管理、版本、配置控制(2)变更控制:功能变更、错误修复变更。1)功能变更就是根据客户要求增加或者修改功能引发的变更2)错误变更:修改漏洞(3)配置库:1)开发库(开发人员用的库,是经常变化的)2)受控库(有一定的限度,存放半成品)3)产品库(存放产品)1.9软件过程管理1 .CMM模型分级标准:(1)初始级软件过程的特点是无秩序的,有时候甚至是混乱的。(2)可重复级已建立了基本的项目管理过程,可用于对成本、进度和功能
13、特性进行跟踪。(3)已定义级软件过程均已文档化、标准化、并形成整软件组织的标准软件过程。(初步标准)(4)已管理级软件过程和产品的质量有详细的度量标准。比定义级别深化,有文档,有管理数据)(5)优化级来自过程、新概念和新技术等方面的各种有用信息的定量分析,能够不断地、持续地进行过程改进。2CMMI(软件能成熟度模型集成)(必会)CMM和CMMI的区别:(I)CMMI结构更加形式化和精致,更复杂;(2)CMMI强调需求的管理(需求管理和需求开发)CMM为需求管理。(3)CMMI加强对于工程过程的重视;CMMI强调度量;CMMI强调对风险的管理1.10常用构件标准(必会)几个概念性名词:(选择题经
14、常出选项判断)(1)COM是个开放的组件标准(2)DCoM是COM的进一步发展(3)COM+并不是COM的新版本,我们可以把它理解为COM的新发展(4)CORBA公共对象请求代理构架。是由OMG组织制定的一种标准的面向对象的应用程序体系规范。(5)EJB由SUN定制1.11面向对象系统分析与设计1.面向对象的基本概念面向对象=对象+类+继承+消息通信(1)对象:对象标志(供系统内部唯一的识别对象);属性(状态、数据、用来描述对象的静态特征)服务(操作、行为或方法,用来描述对象的动态特征。)(2)类和类库:类是对象的抽象定义,是一组具有相同数据结构和相同操作的对象的集合(3)继承和多态过载多态和
15、强制多态统称为专用多态(特定多态)o包含多态、参数多态称为通用多态(4)消息通信:消息是指对象发出的服务请求。包括对象标识、消息名、输入信息、回答信息。2 .对象和封装:对象(ObjeCt)是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位3 ,对象三要素:(1)对象标志(objectidentifier)-是对象的名字,供系统内部唯一地识别对象。(2)属性(attribute)也称状态(state)活数据(data)用来描述对象的静态特征。(3)服务(SerViCe)也称操作(OPeration)、行为(behavior)或方法(method),用来描述对象的动态特征。(也称为函数)(4)圭寸装(encapsulation)对象圭寸闭装存1.类和类库(看一下这段文字有个了解)5.继承与多态(1)继承(inheritance):是使用已存在的定义作为基础建立新定义的而技术,继承是面向对象方法学中的一个十分重要的概念。(2)多态:是指