2020四川大学软件工程期末复习

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Multiple choices
1.The rapid application development model is
Answer:c
a.Another name for component-based development.
b. A useful approach when a customer cannot define requirements
clearly.
c. A high speed adaptation of the linear sequential model.
d.All of the abov
e.
1.Which of the following is not necessary to apply agility
to a software process?
a.Eliminate the use of project planning and testing
b.Only essential work products are produced
c.Process allows team to streamline tasks
es incremental product delivery strategy
Answer:a
2.How do you create agile processes to manage
unpredictability?
a.Requirements gathering must be conducted very
carefully
b.Risk analysis must be conducted before
planning takes place
c.Software increments must be delivered in short
time periods
d.Software processes must adapt to changes
incrementally
e.Both c and d
Answer: e
1.To construct a system model the engineer should consider
which of the following restraining factors? Answer: e
a.assumptions
b.budget
c.constraints
d. schedule
e.both a and c
2.During business process engineering, three different
architectures are examined. Answer: a
a.applications, data, technology infrastructure
munications, organization, financial
infrastructure
work, database, reporting structure
d.systems, requirements, data structure
3.Which of the following is not one of the context-free
questions that would be used during project inception?
a.What will be the economic benefit from a good
solution?
b.Who is against this project?
c.Who will pay for the work?
d.Who will use the solution?
Answer: b
1.During the process of modeling the system in context,
systems that interact with the target system are not represented
as Answer: d
a.Peer-level systems
b.Subordinate systems
c.Super-ordinate systems
d.Working systems
6. In transaction mapping the first level factoring results in the Answer: b
a.creation of CFD.
b.derivation of control hierarchy
c.distribution of work modules
d.refinement of the module view
7. A successful application of transform or transaction mapping to
create an architectural design is supplemented by Answer: e
a.entity relationship diagram
b.module interface descriptions
c.processing narratives for each module
d.test case for each module
e.Both b and c
7. The OO testing integration strategy involves testing Answer: a
a.groups of classes that collaborate or communicate
in some way
b.single operations as they are added to the evolving
class implementation
c.operator programs derived from use-case scenarios
d.none of the above
Filllment 填空题
5 Framework activity
沟通策划建模构建部署
Process models
惯用过程模型:
线性:瀑布过程模型&经典生命周期V模型
并行:增量过程模型
演化过程模型:原型开发模型螺旋模型(迭代)
协同开发模型(concurrent development model)
专用过程模型:
基于构建的开发模型(conponent-based)
形式化方法模型(formal method)应用数学分析
Process flow type
线性过程流迭代过程流演化过程流evolutionary并行过程流Parallel Software process is a layered
过程方法工具
XP process model 极限编程过程
策划设计敏捷建模重构编码结对编程测试
UP (5 phases)
初始inception细化elaboration构建转换transition生产production
UI design golden rules
用户操纵控制place the user to control
减少用户记忆负担reduce the user‘s memory load
保持界面一致consisitenty
Design model
数据/类设计体系结构设计接口设计构建级设计Requirement engineering
起始导出elicitation精化elaboration 协商negotiation
规格说明specifiction 确认validation 需求管理managment
Requirement modeling focuses on
基于场景的元素基于类的元素行为元素面向数据流的元素
Manifesto for agile software development statement 敏捷宣言
个体交互胜过开发过程和工具
可运行的软件胜过宽泛的文档
客户合作胜过了合同谈判
对变更的良好响应胜过了按部就班地遵循计划
Testing strategy
单元测试集成测试确认测试系统测试
CMMI Level names
不完全级incomplete已执行级performed 已管理级managed
已定义级defined 已定量管理级quantiatively managed优化级optimized
Term Explanation 名词解释
Software engineering
软件工程是:1将系统化,规范化,可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件。

2,在1中所述方法的研究。

Software Architecture
软件体系结构:指系统的一个或者多个结构,包括软件的构件,构件的外部可见属性以及它们之间的相互关系。

Couple and Cohesion
内聚性:显示了某个模块相关功能的强度
耦合性:显示了模块间相互依赖关系
UML
统一建模语言:是一种支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格到构造和配置
Regression testing
回归测试:在集成测试策略环境下,重新执行已测试的某个子集,以确保変更没有传播不期望的副作用。

Waterfall model
瀑布模型经典生命周期模型:当需求很清楚时候。

他提出一个系统的,顺序的软件开发方法,从用户需求规格说明开始,通过策划、建模、构建和部署的过程,最终提供一个完整的软件和持续的技术支持。

Information hiding
信息隐藏:指在设计和确定模块时,使得一个模块内包含的特定信息,对于不需要这些信息的其他模块来说是不可访问的。

Software testing
软件测试:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

Requirement Engineering
需求工程:指致力于不断理解需求的大量任务和技术,从软件工程的角度看,需求工程就是一个软件工程活动,开始于沟通活动并持续到建模活动
Usecase
用例:识别系统使用线索的场景,提供了系统将如何被使用的描述。

用户如何在一个特定的环境下与系统交互。

Class
类:具有相似属性和共同行为的事务集合。

CRC model
类-职责-协作者模型:可以识别和组织与系统或产品需求相关的类。

实际上是表示类的标准索引卡片的集合,写有类名,类的职责,类的协作关系。

Incemental Model
增量模型:增量模型综合了线性过程流和并行过程流的特征,随着时间的推移,增量模型在每个阶段运用线性序列,每个线性序列生产出一个软件的可交付增量。

Polymorphism
多态性:一种机制,允许一个类层次结构中的几个对象有不同的方法内容但具有相同的名称。

CMMI
能力成熟度模型集成:一个全面的过程元模型,当软件开发组织达到不同的过程能力和成熟度水平时,该模型可以用来评估其所开发系统和软件工程能力。

0:incomplete不完全级;1:performed 已执行;2 managed 已管理;3 defined 已定义;4 quantitatively managed 已定量管理级;5 optimized 优化级
Prototype model
原型开发:演化过程模型的一种。

即当需求很模糊的时候,帮助理解需要做什么。

开始于沟通,迅速策划一个原型开发迭代并进行建模,快速设计出原型并进行部署,根据反馈进一步细化软件的需求。

Open-Closed Principle
开关原则:模块应该对外延具有开放性,对修改具有封闭性。

Software Myths
软件神话:即关于软件及其开发过程的一些说法被人盲目相信,这可以追溯到信息处理技术发展初期。

看起来是事实的合理描述(管理神话,用户神话,从业者神话)
Q&A 问答题
How do software characteristics differ from hardware characteristics?
(1)软件是设计开发的,而不是传统意义上生产制造的;
(2)软件不会磨损,但会因为变更而退化;
(3)虽然整个工业向着基于构件的构造模式发展,然而大多数软件仍是根据顾客
实际需求定制的。

Describe the differences between software construction and software deployment.
软件的构建包括了编码和测试任务,从而为向客户和最终用户交付可运行软件做好准备。

部署则包括了三个动作:交付,支持和反馈。

用于现代软件工程本质上是演变的,因此部署并不是只发生一次。

两者都是软件工程的通用框架活动,但是构建肯定是发生在部署之前,部署是构建的下一个活动。

Describe the five framework activities involved in the software process.
沟通:包含了与客户之间大量的交流和协作,理解利益相关者的项目目标,并收集
需求以定义软件的特性和功能。

策划:指为后续的软件工程工作制定计划,它描述了需求执行的技术任务,可能的风险,资源需求,工作产品和工作进度
建模:包括创建模型和设计两个方面,创建模型有助于客户和开发人员更好地理解软件需求,设计可以实现需求
构建:包括编码和测试
部署:将软件交付到用户手中,用户对其进行评测并给出反馈意见。

Which UML (unified modeling language) diagrams are useful in object-oriented analysis modeling?
基于场景的模型:用例图活动图UML泳道图
基于类的模型:类图协作图
行为元素:状态图顺序图
List the types of models that might be used in requirements modeling and explain the role of each type of model.
(1)基于场景的元素:表述用户如何与系统和使用软件时出现的特定活动序列进行交互。

(2)基于类的元素:表示了系统操作的对象、应用于对象间能有效控制的操作、对象间的关系以及已定义类之间的协作。

(3)行为元素:描述了外部事件如何改变系统或驻留在系统里的类的状态。

(4)面向流的元素:表示信息转换的系统,描述了数据对象在流过各种系统功能时是如何转换的。

What are the six steps for requirements engineering?
起始:对问题、方案需求方、期望方案的本质、客户和开发人员之间初步的交流和合作的效果建立基本了解;
导出:开展需求收集活动;
精化:将信息进行扩展和提炼,开发一个精确的技术模型用以说明软件功能特征和约束;协商:不同客户提出了冲突的需求,通过协商解决冲突,使各方达到一定满意度;
规格说明,描述了一个基于计算机系统的功能和性能,以及那些将影响系统开发的约束;确认:对需求工程的工作产品进行质量评估;
Briefly describe the primary differences between structured analysis and object-oriented analysis.
结构化的分析:一种考虑数据和处理的需求建模方法,其中处理将数据作为独立实体加以转换。

数据对象建模定义了对象的属性和关系,操作数据对象的处理建模应表明当数据对象在系统内流动时处理如何转换数据
面向对象的分析:关注于定义类和影响客户需求的类之间的协作方式
Describe the differences between the software engineering terms coupling and cohesion?
内聚性:显示了某个模块相关功能的强度
耦合性:显示了模块间相互依赖关系
构件应该保持高内聚性,低耦合性。

Describe each role of the following design models of data, architecture, interface and component-level design required for a complete specification of
a software design.
●数据/类设计:
创建在高抽象级上(用户观点)表示的数据模型和信息模型/ 将分析类模型转化为设计类的实现以及软件实现所要求的数据结构
●体系结构设计:
等效于房屋的平面图,提供了软件的整体视图,定义了软件主要结构元素之间的联系
●接口设计:
相当于一组房屋的门、窗和外部设施的详细绘图,描述了信息如何流入和流出系统以及被定义为体系结构一部分的构件之间如何通信
●构件级设计:
相当于房屋中每个房间的一组详图及规格说明,软件的构件级完整地描述了每个软件构件的内部细节
1.为所有局部数据对象定义数据结构data structure
2.为所有在构件内发生的处理定义算法细节algorithmic detail
3.定义访问所有构件操作的接口interface
How does the object-oriented view of component-level design differ from the traditional view?
面向对象观点:注重细化来自问题域和基础域的设计类。

构件包括一组协作的类。

构件中的每个类都得到详细阐述,包括所有的属性和与其相关的操作。

所有设计类相互通信协作
的接口必须定义,设计师从需求模型开始,详细描述分析类和基础类
传统观点:构件就是程序的一个功能要素,程序由处理逻辑及实现处理逻辑所需的内部数据结构以及能够保证构件被调用和实现数据传送的接口构成。

传统构件也称为模块,作为软件体系结构的一部分,可细化为控制构件基础设施构件问题域构件
What are the key differences between validation testing goals and verification (or acceptance) testing goals?
确认:确保开发的软件可追溯到客户需求的一系列活动(是否构造正确的产品)
验证:确保软件正确地实现某一特定功能的一系列活动(是否正确地构造产品)
Why is regression testing an important part of any integration testing procedure?
每加入一个新模块作为集成测试的一部分时,软件发生变更,这些变更可能会使原来可以正常工作的功能产生问题。

在集成测试的环境下,回归测试是重新执行已测试过的某些子集,已确保变更没有传播不期望的副作用。

Describe the differences between black-box testing and white-box testing.
黑盒测试是指在软件接口处执行测试,只检查系统的功能方面,不考虑软件的内部结构。

是一种采用外部观察的方法的测试。

白盒测试是基于过程细节的封闭检查,通过提交检查特定条件集合或循环的测试用例,测试贯穿软件的逻辑路径和构件间的协作,是一种采用内部观察方法的测试。

What is equivalence partitioning as it applies to software testing? What is scenario-based testing?
等价划分测试:一种黑盒测试方法,将所有可能的数据划分成若干个等价类,每类中找出一个典型值代表这一类,对每个典型值进行测试,来发现程序错误。

理想测试用例可以单独发现一类错误。

基于场景的测试:关心用户做什么,捕获用户必须完成的任务,然后在测试时使用他们及其变体,倾向于用单一测试检查多个子系统,用于发现交互错误。

Problem Analysis 设计分析题
Basic path testing
起始点(起点不算结点数)箭头Y/N 美观判断菱形执行矩形
环复杂度判断结点数+1 边-结点+2
独立路径每个分支都要走过
测试数据每个变量都要有
Process model application
我们采用了瀑布模型的变体V模型
由于我们的需求具有准确定义和相对稳定的特点,因此从沟通到部署我们都采用线性流的工作方式,并且我们将验证确认动作也应用于我们的软件开发,在经过需求建模、体系结构设计、构件设计和代码生成后,进行了单元测试、集成测试、确认测试和系统测试等一系列测试活动,因此我们采用的过程模型为V模型
DFD mapping to software chart。

相关文档
最新文档