选择
P:1.软件的分类:系统软件 应用软件(、中间件)、数据库软件
P7:2.CASE的含义:Computer-Aided Software Engineering
3.模型概要设计的主要成果:概要设计说明书
P181: 4.结构化设计首先确定的是:DFD图
(Data-Flow Diagrams)数据流图
5.聚合度(↑紧)、耦合度
模块聚合度用于衡量模块内部各成分之间彼此结合的紧密程度。
类聚度越高越紧密
P 6.软件设计阶段主要输出:设计规格说明书
执行阶段主要输出:程序
7.衡量模块性的标准:类聚性和耦合性
P47:8.数据结构设计的阶段:
概要设计阶段(对数据进行逻辑设计)
P181:9.结构化分析的核心是:用DFD建模
P342:10.软件测试中“白盒”测试用于测试:程序的内部逻辑
P8:11.软件工程当前主要问题:
(1)多样性的挑战 (2)交付上的挑战 (3)信任的挑战
P88:12.可行性分析的目标:搞清是否值得开发
(该系统是否值得进行更细致的分析)
(需求工程和系统开发过程是否值得进行)
P46:可靠性研究,指明现有的软件、硬件技术能否实现用户对新系统的要求,并从业务角度来决定系统开发是否划算以及在预算范围内能否开发出来。可靠性研究是比较便宜和海里的。结果就是要得出结论,该系统是否值得进行更细致的分析。
P88:可行性研究的输入信息是一系列初步需求、系统的一个框架描述和希望系统将如何支持业务过程的说明信息,可行性研究的结果应该是给出一份报告,对需求工程和系统开发过程是否值得进行给出具体的意见和建议。
13.SD结构设计结果:模块结构图
P73:14.软件系统需求常常分为:功能需求、非功能需求、领域需求
(1)功能需求。包括对系统应该提供的服务、如何对输入做出反应以及系统在特定条件下的行为的描述。在某些情况下,功能需求可能还需明确声明系统不应该做什么。
(2)非功能需求。对系统提供的服务或功能给出的约束。包括时间约束、开发过程的约束、标准等。非功能需求常用于整个系统。通常不用在单个系统或服务中。
(3)领域需求。这是来自系统的应用领域的需求,反映了该领域的特点。它们也可能是功能需求或非功能需求。
P73:15.功能需求与非功能性需求的区别:
答:功能需求包括对系统应该提供的服务、如何对输入做出反应以及系统在特定条件下的行为的描述。在某些情况下,功能需求可能还需明确声明系统不应该做什么。
非功能需求是对系统提供的服务或功能给出的约束。包括时间约束、开发过程的约束、标准等。非功能需求常用于整个系统。通常不用在单个系统或服务中。
16.软件需求分析应在哪个阶段实施:软件定义
P334:17.“黑盒”测试的目标是:测试软件的功能
18.详细设计目的:建立软件模块
P48&49:19.软件的纠错人员应该是:程序员
20.检测软件是否符合需求是什么的内容:确认测试
21.软件设计文档影响:可维护性(最主要的)
P40:22."瀑布"模型中,可行性分析属于哪个阶段:项目计划阶段(需求分析和定义阶段)
P200:23.用来描述面向对象设计的两类设计模型是:
(1)静态模型。通过系统对象类及其之间的关系来描述系统的静态结构。在这一阶段需要记录的重要关系有水利化关系、使用/被使用关系和组成关系。
(2)动态模型。描述系统的动态结构和系统对象(不是对象类)之间的交互。需要记录的交互包括由对象请求的服务序列以及系统状态与这些对象交互之间的关联方式。
常用模型介绍:
(1)子系统模型。说明对象的逻辑分组,每个分组构成一个子系统。使用类的图表格式来表示,每个子系统以一个包的形式存在。子系统模型是静态模型。
(2)序列模型。说明对象交互的序列。使用UML序列图或协作图来表示。序列模型是动态模型。
(3)状态机模型。说明单个对象如何响应事件来改变它们的状态。它们使用的状态图来表示。状态机模型是动态模型。
P163:24.分布式系统的主要优点:
(1)资源共享。分布式系统允许硬件、软件资源,共享使用。
(2)开放性。是指系统通过添加非私有资源来扩展自己的能力。
(3)并发性。在分布式系统中,有许多过程可以在网络的不同计算机上同时运行。这些过程在其正常运行期间可以(但不是必须)彼此通信。
(4)可伸缩性。原则上,分布式系统要有可伸缩性,系统的能力可以通过增加新的资源来满足对系统的新的需求。实际过程中,可伸缩性可能受到网络的。
(5)容错性。多台计算机及其信息复制能力意味着系统对硬件和软件错误具有相当的容错能力。
分布式系统的主要缺点:
(1)复杂性。分布式系统比集中式系统更复杂。了解它们的总体特征和测试这些系统都非常困难。
(2)信息安全性。用户能从网络上的许多计算机上进入系统,而且网络通信会遭到窃听。
(3)管理有效性。系统中的计算机可能是不同类型的,每台机器又可能运行不同的操作系统版本。一台机器上的错误可能传播到其他机器上,从而产生预想不到的结果。这意味着运转和维护系统需要较多的精力。
(4)不可预见性。正如万维网的所有用户所了解的,分布式系统的响应是不可预知的。这个响应取决于系统上的总负荷、它的组织以及网络负荷。
25.面向对象模型、泛化模型、UML支持
面向对象的支持工具:uml
分布式系统包括:
不包括:
填空:
1.软件工程最初(系统描述阶段)、最后(系统维护阶段)
2.P14系统总体特性有两种类型:
(1)功能特性。(当系统的所有部分一起工作以达到一些目标的时候表现出来。举例来说,当自行车被装配起来之后就具有了运输工具的功能特性。)
(2)非功能特性。(如可靠性、性能、安全性和信息安全性。这些特性表现为在特定的操作环境中系统的表现行为。)
3.P68在风险规划的过程中,项目管理者要考虑已经识别出的每一个重大风险,并确定处理这个风险的策略。这些策略有哪三类:
(1)回避策略。(采用这些策略就会降低风险出现的可能性。如用买进的可靠性稳定的组件更换有潜在缺陷的组件,这种处理有缺陷的组件的方法就是一个例子。)
(2)最低风险策略。(采用这些策略就会减小风险的影响。如重新对团队进行组织, 使更多工作有重叠,员工可以了解他人的工作,以解决职员生病问题的方法就是一个例子。)
(3)应急计划。(采用这些策略,就算最坏的事情发生,我们也是有备而来,有适当的对策处理它。如当出现财务问题的时候,拟一份简短的报告,提交高级管理层,说明这个项目将对业务目标有重大贡献,就是其中一个例子。)
4.软件原型支持需求工程哪两个活动:导出系统需求和验证需求有效性。
P46需求工程过程有四个主要的阶段:可行性研究、需求导出和分析、需求描述、需求有效性验证
5.体系结构设计包括:、系统结构化、控制建模、模块分解
6.缺陷测试,根据程序或主键描述所建立的测试的方法:
根据软件结构知识和实现所进行测试:结构化测试、、、
7.面向对象开发三过程:OOA(分析)、OOD(设计)、OOP(编程)(OOT测试)
8.检验和有效性验证,系统检查两个技术:(V&V)软件检查、软件测试(系统检查分析)
V&V(Verification and Validation):检验和有效性验证。
9.P377:SEI模型,软件过程5级别(人员管理):初始级、可重复级、已定义级、已管理级、优化级。{ SEI:the Software Engineering Institute, 美国软件工程学会。 CMM:Capability Maturity Model, 能力成熟度模型。P-CMM:人员能力成熟度模型。 }
10.P311应对软件变更策略:软件维护、再工程、、体系结构转化
11.P3 软件组成:程序、文档。(软件是程序和所有使程序正确运行所需要的相关文档和配置信息。)
12.P111 OOD(面向对象设计)中类的三部分:类名、类属性、类方法
13.CORBA全称:通用对象请求代理体系结构。
判断:
1.面向对象静态模型:… √
2.P194:对象模型不可并发执行 ×
3. √
4.C语言是第3代程序语言 √
5.检验目的:程度
有效性验证:要求 √
6.中间件是构成分布式系统的充分必要条件 ×
注:中间件是构成分布式系统的充分不必要条件 √
7.测试由软件最终用户 ×
注:测试是开发团队的测试过程
P49&50:接收测试有时称为测试。这是系统在在之前进行的最后阶段测试。这个阶段不再是用模拟数据来测试系统,而是用客户提供的真实数据测试系统。真实数据能以不同的方式测试系统,所以能暴露出系统需求定义中的错误和遗漏。接收测试还能发现系统需求中的另一类问题,取出系统的设施不能满足用户的需要或者系统性能是无法接受的。
当一个系统要作为软件产品在市场上销售时,所要进行的测试称为测试。测试即是将系统交付给所有愿意使用该系统的潜在客户。他们有义务报告系统中的问题,以使产品面向实际使用,测试能暴露无遗系统开发者无法预见的错误。通过这个反馈之后,系统被修改并且发布另外一个版本或正式销售版本。
8.抛弃式是首先开发系统理解最好部分 ×(应为进化式)
9.净化式。。。。。。×
10.用户界面不可能。。一般需有效性开发,采用原型开发 √
P233:有最终用户参与的进化式和探索式原型构造就成为惟一实用的软件系统图形用户界面的设计和开发方法。
UML(Unified Modeling Language):统一建模语言
P7&P109:UML是由结构化分析方法、JSD方法、面向对象方法等软件工程方法集成而来的一种软件工程方法。UML是面向对象的,开发过程和模型数据用对象和对象间的关系来表达。
名词解释:
1.P3软件工程:软件工程是关于软件生产的各个方面的工程学科。
2.P3软件过程:以软件开发和进化为目的的一系列活动。
3.P60里程碑:一个里程碑就是一项软件过程活动的终结。
4.P52数据字典:数据字典是一种CASE工具,包含了关于设计中实体和关系的信息,通过它可以了解一个设计。
5.P342"白盒"测试:是根据软件的结构知识和实现知识导出测试的测试用例设计方法。
(结构化测试="白盒"测试="玻璃盒"测试="透明盒"测试=!"黑盒"测试)
简答题:
P39&P326&P327:1.净室软件开发的定义、作用和应用、特性(5)
答:定义: 净室软件开发是一种使用形式化方法支持严格的软件审查的软件开发理念。
作用: 以几乎与传统开发方法一样的成本, 大大减少软件的错误, 得到零缺陷的软件, 降低软件交付的失败率。
应用: 特别适合对安全性、可靠性或信息安全性需求极高的系统开发。
2.压力测试的概念,作用,应用于哪一类型
P3:3.软件工程与计算机科学的区别
答:计算机科学侧重理论和基础,而软件工程则侧重于软件开发和交付的实际活动。
P40:4."瀑布"模型的主要阶段和基本的开发活动
答:主要阶段:(1)计划阶段;(2) 设计阶段;(3)编码阶段;(4)测试阶段;(5)运行和维护阶段。
基本的开发活动有:(1)需求分析和定义;(2)系统和软件设计;(3)实现和单元测试;
(4)集成和系统测试;(5)运行和维护。
5.UML使用:选课系统(学生类、研究生类、)
P2:6.“软件工程”提出时间 是1968年,背景是什么,概念
答:“软件工程”这一概念是在1968年召开的一个当时被称作“软件危机”的会议上首次提出的。这个“软件危机”直接源于(在当时)强大的第3代计算机硬件(基于集成电路)的问世,这类计算机的问世使迄今为止难以实现的计算机应用成为现实,由此产生的软件与原有软件系统相比在数量上更庞大也更复杂。
构建这些软件系统的早期经验是:非正规的软件开发并不奏效。多数软件项目有时甚至要推迟几年才能完成,而且比预计的费用高,不可靠,难以维护,总之,做得很差。软件开发陷入危机,结果是硬件成本在下降而软件成本却呈快速增长之势,因而必须要有新的技术和方法来控制大型软件系统固有的复杂性。
软件工程:软件工程是关于软件生产的各个方面的工程学科。
P5:7.软件过程包含哪四项基本的活动
答:(1)软件描述;(2)软件开发;(3)软件有效性验证;(4)软件进化。
P46:8.需求工程4阶段
答:(1)可行性研究;(2)需求导出和分析;(3)需求描述;(4)需求有效性验证。
P334&P342:9.黑盒测试与白盒测试的异同
答:将系统作为一个黑盒子, 只通过输入和输出来确定它的行为的测试方法, 叫"黑盒"测试(即是功能测试)。
根据软件的结构知识和实现知识导出测试的测试用例设计方法, 叫"白盒"测试(即是结构化测试)。
结合实际,从软件工程思想和软件过程模型分析你在小组中的工作。
相关资料:
软件工程思想:
P15:系统工程过程:1、系统需求定义
2、系统设计
3、系统建模
4、子系统开发
5、系统集成
6、系统进化
7、系统退役
P39:软件过程模型:1、瀑布型(The waterfall model);
2、进化型(Evolutionary development);
3、面向组件型(Component-based software engineering);
4、形式化模型(Formal systems development);
5、面向复用型(Reuse-based development)。
甘特图、UML图
RUP(Rational Unified Process): Rational统一过程。
Rational统一过程是现代过程模型的一个实例,该现代过程模型来自于UML上的工作以及相关的统一软件开发过程。由于它是混合过程模型的一个很好实例,所以在此给出一个描述。它集合了所有一般过程模型的要素,支持反复,并给出了描述和设计上的一个好的实践。
RUP过程认识到传统过程模型展现的是过程的一个视角。相反,RUP一般从三个视角来描述:
1、动态视角。给出模型随时间所经历的各个阶段。
2、静态视角。给出所规定的过程活动。
3、实践视角。建议在过程中采用好的实践实例。
P175:SOAP(Simple Object Access Protocol)简单对象访问协议
WSDL(Web Services Description Language)web服务描述语言
APIs(Application Programming Interfaces):应用编程接口。
CBSE(Component-Based Software Engineering): 基于组件的软件工程。
ERA(Entity-Relation-Attribute)modeling: 实体-关系-属性建模。
ERP(Enterprise Resource Planning): 企业资源规划。
LIBSYS():图书馆信息系统。
XP(extreme programming): 极限编程。
OMG(Object Management Group): 对象管理集团。
OO(Object-Oriented): 面向对象。
P2P(Peer-to-Peer) systems: 对等系统。
RAD(Rapid Application Development): 快速应用开发。
RTOS(Real-Time Operating System): 实时操作系统。
SA(Structured Analysis):结构化分析。下载本文