系统集成项目管理工程师重点考点核心资料之----第四章软件工程知识

 weihaifei   2017-07-13 09:06   209 人阅读  0 条评论

本章按照 需求、可研、设计、测试、维护的顺序展开

 

4.1 软件需求(讲了 2 个问题 需求内容和需求过程)

软件工程是开发、运行、维护和修复软件的系统方法。

 

1软件需求内容主要包括(必会)功能需求、非功能需求、设计约束;业务需求、用户需求、系统需求。

(1)功能需求:指系统必须完成的那些事。(订票网站必须完成订票功能)(必会)

(2)非系统功能:是指产品必须具有的属性和品质,如可靠性(如网站多人访问不能崩溃)、性能、响应时间(网页打开时间一般不超过 10S)、容错性、扩展性等(必会)

(3)设计约束:也成为限制条件,补充规约,通常是对解决方案的一些约束说明,例如:必须采用国有自主知识版权的数据库系统,必须运行在 UNIX操作系统之下等(必会)

(4)业务需求(BR):指反应组织机构或客户对系统、产品高层次的目标要求,通常问题定义本身就是业务需求(了解)

(5)用户需求(UR)(了解)

(6)系统需求(SR)(了解)

2. 需求过程(讲了 2 个问题 需求开发和需求管理)

需求过程是一个包括创建和维护系统需求文档所必需的一切活动的过程。通常包括需求开发需求管理两大工作(必会)

(1)需求开发:包括(需求捕获)、(需求分析)、编写(规格说明书)、和(需求验证四个阶段(必会)

1需求捕获:常用的需求捕获手段包括

a.用户访谈

b.用户调查:表格、问卷调查等方式,与用户访谈相比最大缺点是缺乏灵活性

c.现场观摩

d.文档考古

e.联合讨论会

2)需求分析

3)需求规格说明书(SRS):是一个软件文档,说明软件功能和约束

4)需求验证

需求验证和规格说明书的关系:二者是一个双向的过程,规格说明书中提到的功能在最终的系统中必须全部得到实现,同时软件说明书也可看到最终需求,一句话概括就是既不能少也不能多

 

(2)需求管理:通常包括定义(需求基线)、(处理需求变更)、(需求跟踪)等方面的工作

基线的定义:正式评审、确认的标准(必会)

4.2 可行性研究(可能考案例题)

1.可行性研究的主要任务包括:(技术可行性)、(经济可行性)和(社会可行性)(必会)

2.可行性研究的工作步骤:(了解,每个问题都读一下,通读一下这几点,有印象)

(1)核实问题定义与目标

(2)研究分析现有系统

(3)为新系统建模

(4)客户复核

(5)提出并评价解决方案

(6)确定最终推荐的解决方案:进行成本/效益分析

进行成本/效益分析可分两部分进行(以后具体会讲现在只做了解)

1)成本估计:常用的有功能点分析、OCCOMO 分析等

2) 效益分析:

a. 货币的时间价值b.投资回收期c.投资回报率

(7)草拟开发计划

(8)以书面方式提交《可行性分析报告》

 

4.3 需求分析(了解)

需求分析包括绘制系统上下文范围关系图、创建用户接口原型、分析需求的可行性、确定需求的优先级、为需求建立模型、创建数据字典、使用质量功能调配。

质量功能调配(QFD)

数据流图(DFD)

需求分析的主要方法包括:结构化分析方法、软系统方法、面向对象分析方法、面向问题域的分析。

 

4.4 软件设计测试和维护

4.4.1 软件设计(了解)

(1)软件设计的基本原则:信息隐蔽、模块独立性、(模块内部高内聚(功能、信息、通信、过程、时间、逻辑);模块间低耦合

(2)系统结构图:模块、模块间的调用关系、模块间的通信、辅助控制符号

(3)常用系统结构图:变量型、事务型、混合型

(4)用户界面:可使用性、灵活性、复杂性和可靠性

 

4.4.2 软件测试方法(必会

软件测试的方法分为(白盒测试)和(黑盒测试);

单元测试、系统测试、验收测试(请自己百度下专业名词比如黑盒子测试、白盒测试)

 

1. 黑盒测试:

(1) 概念:黑盒测试吧测试对象看成一个空盒子,不考虑程序内部的逻辑结构和内部特性,只是依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明,又称为功能测试或数据驱动测试。

(2) 黑盒测试的方法:

1)等价类:根据某种规则,划分为几个类型,从中选拔出几个测试代表

2)边界值

3)错误推测

4)因果图和综合分析法

 

2. 白盒测试

(1) 概念:白盒测试吧测试看成一个透明的盒子,它允许测试人员利用程序内部的逻辑结构和有关信息设计或选择测试用例。又称为结构测试或逻辑驱动测试(考虑内部逻辑结构,用覆盖的方式实现)

(2) 白盒测试对程序模块进行如下检查:(理解)

1)对程序模块的所有独立的执行路径至少测试一次

2)对所有的逻辑判定,取“真”与取“假”的两种情况的测试至少测试一次

3)在循环的边界和运行界限内执行循环体

4)测试内部数据结构的有效性等

(3) 逻辑覆盖:是以程序内部的逻辑结构为基础的设计用例的技术。它属于白盒测试,包括,语句覆盖、判定覆盖、条件覆盖、判定一条件覆盖、条件组合覆盖、路径覆盖等

 

4.4.3 软件测试的分类

1.单元测试:单元测试也成为模块测试,是针对每个模块进行的测试

2.集成测试:在单元测试的基础上,将所有的模块按照设计要求组装成系统,必须精心计划,应提交集成测试计划、集成测试规格说明和集成测试分析报告

3.确认测试:确认测试验证软件的功能、性能及其他特性是否与用户要求一致

4.系统测试:讲整个软件放在整个计算机环境下,包括软硬件平台、某些支持软件数据和人员等,在实际运行环境下进行的一系列测试

5.a 测试和 B 测试

在软件交付使用后,用户将如何实际使用程序,对于开发者来说是不知道的。通常在软件发布上市之前需要进行 a 测试和 B 测试

(1) a 测试:由一个用户开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试

(2) B 测试:由软件的多个用户实际使用环境下进行的测试软件测试从不同的角度,又可分为一下几大类(了解,读一下具体概念)

(1) 功能测试(2)可靠性测试 (3)强度测试(4)性能测试5) 恢复测试

(6)启动停止测试 (7)匹配测试 (8)安全性测试(9) 可使用性测试

(10)安装测试 (11)过程测试 (12)容量测试(13)文档测试(14)兼容性测试

 

4.4.4 软件测试的步骤(PDCA 过程)(必会)

1.制定软件测试计划

2.编写软件测试说明

3.执行软件测试

4.编写软件测试报告

5.修正软件测试过程中出现的问题

6.软件测试阶段评审

 

4.4.5 软件维护(必会

1.软件的可维护性的主要由以下三个因素决定:

(1)可理解性(2)可测试性(3)可修改性

2.软件维护的步骤

(1)建立维护组织

(2)提出维护要求

(3)实施维护作业

(4)记录维护要素

(5)评价维护活动

 

 

4.5 软件的复用

1.概念:软件复用是指利用自己已有软件的 各种有关知识构造新的软件。以缩减软件开发和维护的费用。(把以前有的东西竟可能的拿来去用)(必会)

2.软件复用的内容:(了解)

(1)代码的复用

(2)测试文档的复用

(3)设计思想的复用

(4)模块的复用

(5)软件的复用

(6)组件的复用

 

3.软件复用的主要思想:将软件看成是由不同功能的“组件”所组成的有机体。(组件的概念:在软件设计编写时可以被设计成完成同类工作的一个通用的产品工具)(了解)

 

4.软件再生的 6 个步骤:筛选、文档重构、逆向工程(功能反编译)、代码重构、数据重构、重新开发。(了解)

(逆向工程)的概念:分析一个程序的过程,最大程度的建立比源代码更加抽象的高级表达,它也是一个恢复设计结果的过程,逆向工程工具可以从现有的软件代码中抽取有关数据、体系结构和处理过程的设计信息(选择给解释考名词)

 

4.6 软件质量保证及质量评价

1.软件质量管理过程包括:软件质量保证过程、验证过程、确认过程、评审过程、审计过程。

1软件质量保证:通过计划制定、实施和完成一组活动提供保证,这些活动保证项目生命周期中的软件产品和过程符合其规定的需求。

2验证与确认过程:使用能够定位缺陷并便于以后改正的测试技术直接处理软件产品质量问题。

验证与确认的区别(重点)

1验证过程试图确保活动的输出产品已经被正确的制造,即活动的输出产品满足前面活动施加的规范说明;

2 确认过程试图确保建造了正确的产品,即产品满足其特定的目的。

3评审与审计过程具体几个概念请百度下包括管理评审、技术评审、检查(正式的)、走查(随即的)、审计(事后进行的一个审计)。

2.相关名词:

1SQA:软件质量保证

2QC:质量控制

 

4.7 软件配置管理(考过 15 分的案例答题)(了解)

1)软件配置管理:配置与配置项、基线与基线管理、版本、配置控制

2)变更控制:功能变更、错误修复变更。

1)功能变更就是根据客户要求增加或者修改功能引发的变更

2)错误变更:修改漏洞

3)配置库:

1)开发库(开发人员用的库,是经常变化的)

2)受控库(有一定的限度,存放半成品)

3)产品库(存放产品)

 

4.9 软件过程管理

1.CMM 模型分级标准

(1)初始级——软件过程的特点是无秩序的,有时候甚至是混乱的。

(2)可重复级——已建立了基本的项目管理过程,可用于对成本、进度和功能特性进行跟踪。

(3)已定义级——软件过程均已文档化、标准化、并形成整软件组织的标准软件过程。(初步标准)

(4)已管理级——软件过程和产品的质量有详细的度量标准。 比定义级别深化,有文档,有管理数据)

(5)优化级——来自过程、新概念和新技术等方面的各种有用信息的定量分析,能够不断地、持续地进行过程改进。

 

2.CMMI(软件能成熟度模型集成)(必会)

CMM 和 CMMI 的区别:

(1)CMMI 结构更加形式化和精致,更复杂;

(2)CMMI 强调需求的管理(需求管理和需求开发)CMM 为需求管理。

(3)CMMI 加强对于工程过程的重视;CMMI 强调度量;CMMI 强调对风险的管理

 

4.10 常用构件标准(必会)

几个概念性名词:(选择题经常出选项判断)

(1)COM 是个开放的组件标准

(2)DCOM 是 COM 的进一步发展

(3)COM+并不是 COM 的新版本,我们可以把它理解为 COM 的新发展

(4)CORBA 公共对象请求代理构架。是由 OMG 组织制定的一种标准的面向对象的应用程序体系规范。

(5)EJB 由 SUN 定制

 

4.11 面向对象系统分析与设计

1.面向对象的基本概念

面向对象=对象+类+继承+消息通信

(1)对象:对象标志(供系统内部唯一的识别对象);属性(状态、数据、用来描述对象的静态特征)服务(操作、行为或方法,用来描述对象的动态特征。)

(2)类和类库:类是对象的抽象定义,是一组具有相同数据结构和相同操作的对象的集合

(3)继承和多态

过载多态和强制多态统称为专用多态(特定多态)。包含多态、参数多态称为通用多态

(4)消息通信:消息是指对象发出的服务请求。包括对象标识、消息名、输入信息、回答信息。

2.对象和封装:

对象(object)是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位

3.对象三要素:

(1)对象标志(object identifier)--是对象的名字,供系统内部唯一地识别对象。

(2)属性(attribute)也称状态(state)活数据(data)用来描述对象的静态特征。

(3)服务(service)—也称操作(operation)、行为(behavior)或方法(method)),用来描述对象的动态特征。(也称为函数)

(4)封装(encapsulation)对象封闭装存

4.类和类库(看一下这段文字有个了解)

5.继承与多态

(1)继承(inheritance):是使用已存在的定义作为基础建立新定义的而技术,继承是面向对象方法学中的一个十分重要的概念。

(2)多态:是指类中具有相似功能的不同函数是用同一个名称来实现,从而可以使用相同的调用方式来调用这些具有不同功能的同名函数。

类与类之间的关系—组合、泛化、聚合、关联。

消息(message)--是指对象发出的服务请求。

 

4.11.3 面向对象常考的知识点

面向对象的基本概念:

1. 对象:由数据及操作所构成的封装体,是系统中用来描述客观事物的一个封装是构成系统的一个基本单位。对象三要素:对象标识、对象状态、对象行为

2. 类:是现实世界实体化的描述。类将实体的数据和函数封装在一起。类的数据也叫状态、属性或特征。它表示静态的一面;类的函数也叫功能、操作或服务,表现类的动态一面。

3. 类和对象的关系:对象是类的实例

4. 抽象:通过特定的实例抽取共同特征以后形成概念的过程。它强调主要特征,忽略次要特征。

5. 封装:讲相关概念组成一个单元,然后通过一个名称来引用它

6. 继承:表示类之间的层次关系,这种关系使得某类对象可以继承另外一类对象的属性和能力,继承又分为单继承和多继承,JAVA 是单继承语言,C++是允许多继承的

7. 多态:是一种方法,这种方法使得多个类中可以定义同一个操作或属性名,并在每个类中可以有不同的体现

8. 接口:对操作规范的说明

9. 消息:对象间交互手段

10. 组件:是软件系统可代替的、物理的组成部分,它封装了实现体,并提供了一组接口的实现方法。

11. 模式:表示了一个特定环境、一个问题和一个解决方法之间的关系

12. 软件复用:是指将已有的软件及其有效成分用于构造新的软件和系统。组件技术是软件复用的关键技术

4.12.5 软件的中间件(必考)

中间件位于硬件、操作系统等平台和应用之间的通信服务。

常见的中间件:数据库访问中间件(WIN 平台的 ODBC 与 JAVA 平台的 JDBC)、远程过程调用、面向消息的中间件(IBM 的 MSQeries)、分布式对象中间件(OMG的 CORBA、SUN 的 RMI/EJB、Microsoft 的 DCOM)、事务中间件。

 

4.13 典型体系结构

常见的架构模式:

管道/过滤器模式;面向对象模式;事件驱动模式;分层模式;知识库模式;C/S 模式;

(1)管道/过滤器模式

管道/过滤器模式的优点:

1、体现了各功能模块的”黑盒”特性及高内聚、低耦合的特点。

2、可以将整个系统的输入/输出行为看成是多个过滤器行为的简单合成。

3、支持软件功能模块的重用。

4、便于系统维护:新的过滤器可以添加到现有系统中来,旧的可以由改进的过滤器替换。

5、支持某些特定的分析,如吞吐量计算、死锁检测等。

6、支持并行操作,每个过滤器可以作为一个单独的任务完成。

管道/过滤器模式的缺点:

1、通常导致系统处理过程的成批操作。

2、需要设计者协调两个相对独立但又存在关系的数据流。

3、可能需要每个过滤器自己完成数据解析和合成工作(如加密和解密),从而导致系统性能下降,并增加了过滤器具体实现的复杂性。

(2)面向对象模式

面向对象模式的优点:

1、高度模块化

2、封装功能实现了数据隐藏

3、继承性提供了一种实现代码共享的手段

4、提供了系统的灵活性,便于维护及扩充

面向对象模式的缺点:对象之间的调用需要知道所调用对象的标识。如果对象的标识发生改变,就必须通知所有调用该对象的对象。否则系统将可能无法正常运行。

(3)客户机与服务器模式

客户机与服务器模式的优点:

1、客户机与服务器分离,允许网络分布操作;二者的开发也可分开同时进行;

2、一个服务器可以服务于多个客户机;

客户机与服务器模式的缺点

1、客户机与服务器的通讯依赖于网络,可能成为整个系统运作的瓶颈;服务器的负荷过重,难以管理大量的客户机,系统的性能受到很大影响。

2、如果服务器及其界面定义有改变,则客户机也要做相应改变

3、二层 C/S 模式采用单一服务器且以局域网为中心,难以扩展至广域网或internet.

4、数据安全性不好。客户端程序可以直接访问数据库服务器,使数据库的安全性受到威胁。

C/S 适用于分布式系统,为了解决 C/S 模式中客户端的问题,发展形成了浏览器/服务器(Browser/Server, B/S)模式;为了解决 C/S 模式中服务器端的问题,发展形成了三层(多层)C/S 模式,即多层应用架构。

 

4.14 统一建模语言 UML

UML 具有如下的语言特征:(必考)

(1)UML 不是一种可视化的程序设计语言,是一种可视化的建模语言。

(2)UML 是一种建模语言规范,是面向对象分析与设计的一种标准表示。

(3)UML 不是过程,也不是方法,但允许任何一种过程和方法使用它。

(4)UML 简单并且可扩展,具有扩展和专有化机制,便于扩展,无需对核心概念进行修改。

(5)UML 为面向对象的设计与开发中涌现出的高级概念(如协作、框架、模式和组件)提供支持,强调在软件开发中,对架构、框架、模式和组件的重用。

(6)与最好的软件工程实践经验集成。UML 没有定义一种标准的开发过程,但它比较适用于迭代式的开发过程,是为支持面向对象的开发过程设计的。

 

4.15 统一建模语言 UML 常考的知识点

20170713090824.png

4.16 典型应用集成技术

4.16.1 Web Services 技术(必考)

Web Services 服务的典型技术包括用于传递信息的简单对象访问协议 SOAP,用于描述服务的 Web 服务描述语言 WSDL,用于 Web 服务注册的统一描述,发现及集成 UDDI,用于数据交换的 XML。

 

4.18 集成技术常考的知识点

1、数据库与数据仓库技术

数据仓库(Data Warehouse)是一个面向主题的 (Subject Oriented)、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。

数据仓库和传统操作型数据库的对比的优点:

(1) 面向主题:操作型数据库的数据面向事务处理,各个业务系统间各自分离;数据仓库的数据按主题进行组织;

(2) 集成:面向事务处理的操作型数据库通常和某些特定的应用相关,数据库之间相互独立,往往是异构的;数据仓库的数据是对原有分散数据库数据通过抽取、清理然后经系统加工、汇总、整理得到,消除了源数据中的不一致性。

(3) 相对稳定:操作型数据库中的数据是实时更新的;数据仓库的数据用来查询,只有少量的修改和删除操作,通常只需定期加载、刷新。

(4) 反映历史变化:操作型数据库主要关心当前某一个时间段内的数据;数据仓库的数据通常包含历史信息。

 

2、Web 服务的主要目标是跨平台的互操作性

适用于使用 Web Services 的情况:跨越防火墙、应用程序集成、B2B 集成、软件复用(重用)。

不适合 Web Services 的情况:单机应用程序、局域网上的同构应用程序。

 

3、J2EE 结构(工业标准)

J2EE 是由 sun 公司主导、各厂家共同制定并得到广泛认可的工业标注。业界各主要中间件厂商如 IBM、Oracle 都在响应。

J2EE 应用将开发工作分为两类:业务逻辑开发和表示逻辑开发,其余的系统资源由应用服务器自动处理,不必为中间层的资源和运行管理进行编码。这样就可以将更多的开发精力集中在应用程序的业务逻辑和表示逻辑上,从而缩短企业应用开发周期,有效的保护企业投资。

J2EE 技术规范由 4 个部分组成:J2EE 平台、J2EE 应用编程模型、J2EE 兼容测试套件、J2EE 参考实现。

1)   J2EE 平台:运行 J2EE 应用的环境标准,由一组 J2EE 规范组成。

2)   J2EE 应用编程模型:用于开发多层瘦客户应用程序的标准设计模型,由 SUN 提供应用蓝图(Blue Prints)。

3)   J2EE 兼容测试套件:用来检测产品是否同 J2EE 平台兼容。

4)   J2EE 参考实现:与平台规范同时提供的、实现 J2EE 平台基本功能的 J2EE服务器运行环境。

J2EE 应用服务器运行环境包括构件(Component)、容器(Container)及服务(Services)三部分.构件是表示应用逻辑的代码;容器是构件的运行环境;

服务则是应用服务器提供的各种功能接口,可以同系统资源进行交互。

 

J2EE 规范包含了一系列构件及服务技术规范。

(1)JNDI:Java 命名的目录服务,提供了统一、无缝的标准化名字服务。

(2)Servlet:Java Servlet 是运行在服务器上的一个小程序,用于提供以构件为基础、独立于平台的 Web 应用。

(3)JSP:Java Servlet 的一种扩展,使创建静态模板和动态内容相结合的HTML 和 XML 页面更加容易。

(4)EJB:实现应用中关键的业务逻辑,创建基于构件的企业级应用程序。

(5)JCA:J2EE 连接器架构,提供一种连接不同企业信息平台的标准接口。

(6)JDBC:Java 数据库连接技术,提供访问数据库的标准接口。

(7)JMS:Java 消息服务,提供企业级消息服务的标准接口。

(8)JTA:Java 事物编程接口,提供分布事务的高级管理规范。

(9)JavaMail:提供与邮件系统的接口。

(10)RMI-IIOP:提供应用程序的通信接口。

 

4、 NET 结构(微软标准)

微软的.net 是基于一组开放的互联网协议而推出的一系列产品、技术、服务。

.net 开发框架在通用语言运行环境基础上,给开发人员提供了完善的基础类库、数据库访问技术、网络开发技术,开发者可以使用多种语言快速构建网络应用。

通用语言运行环境(Common Language Runtime)处于.NET 开发框架的最底层,提供统一的运行环境、统一的编程模型。

基础类库(Base Class Library)给开发人员提供一个统一的、面向对象的、层次化的、可扩展的编程接口。

ADO.NET 技术用于访问数据库,提供了一组用来连接到数据库、运行命令、返回记录集的类库。

传统的基于 Windows 的因公,仍然是.net 中不可或缺的一部分。

ASP.NET 是.NET 中网络编程结构,可以方便、高效地构建、运行和发布网络应用。

.NET 支持使用多种语言进行开发,目前已经支持 VB、C++、C# 、Jscript等语言以及他们之间的深层次交互。

Visual Studio .NET 作为微软的下一代开发工具,和.NET 开发框架紧密结合,提供几乎所有市场上的编程语言都有可能应用于微软的.NET 开发框架。

J2EE .NET 都可以用来设计、开发企业级应用。J2EE 平台是业界标准,有超过 50 家厂商实现了这些标准(工具、应用服务器等)。.NET 是微软自己的产品系列,而非业界标准。

5、工作流技术

工作流(workflow)是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则,在计算机中以恰当的模型进行表示并实施计算。工作流依靠工作流管理系统主要功能是通过计算机技术的支持去定义、执行和管理工作流,协调工作流执行过程中工作之间以及群体成员之间的信息交互。

工作流需要依靠工作流管理来实现。


本文地址:https://www.viponevip.com/post/16.html
版权声明:本文为原创文章,版权归 weihaifei 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?