软件工程导论学习资料
软件工程的概述:软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。Software engineering is to establish and use sound engineering principles in order to economically obtain reliable software that can run effectively on actual machines.
软件工程是指计算机软件开发和维护的一门工程学科。
Software engineering refers to an engineering discipline of computer software development and maintenance.
采用工程的概念、原理、技术和方法来开发和维护软件, 把经过时间考验而证明正确的管理技术和当前能够得到的最好技术结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
Use engineering concepts, principles, techniques and methods to develop and maintain software, and combine time-tested management techniques with the best techniques currently available to develop high-quality software economically and maintain them effectively It, this is software engineering.
软件工程的目标是运用先进的软件开发技术和管理方法来提高软件的质量和生产率。
The goal of software engineering is to use advanced software development techniques and management methods to improve software quality and productivity.
以较短的周期、较低的成本生产出高质量的软件产品,并最终实现软件的工业化生产 。
Produce high-quality software products with a shorter cycle and lower cost, and finally realize the industrialized production of software.
软件工程的目标是正确性、可靠性、可维护性、可重用性、可追踪性、可移植性、可互操作性、有效性。The goals of software engineering are correctness, reliability, maintainability, reusability, traceability, portability, interoperability, and effectiveness.
软件工程的原则是抽象、模块化、信息隐藏、局部化、一致性、完全性、可验证性、实践经验的总结。The principles of software engineering are abstraction, modularity, information hiding, localization, consistency, completeness, verifiability, and the summary of practical experience.
软件生存周期模型:
瀑布模型
瀑布模型的主要思想是软件开发过程与软件生命周期是一致的,相邻两个阶段之间存在因果关系,需要对阶段性产品进行评审 。The main idea of the waterfall model is that the software development process is consistent with the software life cycle, and there is a causal relationship between two adjacent stages, and the phased products need to be reviewed.
瀑布模型在软件工程中占有重要的地位 。瀑布模型上一阶段的变换结果是下一阶段的变换的输入,相邻两个阶段具 有因果关系,紧密相联 。The waterfall model occupies an important position in software engineering. The transformation result of the previous stage of the waterfall model is the input of the transformation of the next stage. The two adjacent stages have a causal relationship and are closely connected.
瀑布模型的不足是缺乏灵活性,到最后阶段才能得到可运行的软件版本 。The disadvantage of the waterfall model is its lack of flexibility, and a runnable software version can only be obtained at the final stage.
快速原型
快速原型模型的优点是有助于获取用户需求,加强对需求的理解,尽早发现软件中的错误,支持需求的动态变化,适合于需求动态变化,事先难以确定系统 。The advantage of the rapid prototyping model is that it helps to obtain user requirements, strengthen the understanding of requirements, find errors in the software as soon as possible, support dynamic changes in requirements, and is suitable for dynamic changes in requirements. It is difficult to determine the system in advance.
快速原型模型的不足是不能支持风险分析。The shortcoming of the rapid prototyping model is that it cannot support risk analysis.
螺旋模型
螺旋模型是瀑布模型、原型模型的有机结合,同时增加了风险分析。 The spiral model is an organic combination of the waterfall model and the prototype model, while adding risk analysis.
螺旋模型的优点是有助于获取用户需求,加强对需求的理解,尽早发现软件中的错误,支持需求的动态变化,支持风险分析,可降低或者消除软件开发风险,适合于需求动态变化,事先难以确定并且开发风险较大的系统 。The advantage of the spiral model is to help acquire user needs, strengthen understanding of requirements, find errors in software as early as possible, support dynamic changes in requirements, support risk analysis, and reduce or eliminate software development risks. It is suitable for dynamic changes in requirements. It is difficult to identify and develop a risky system.
敏捷过程
极限编程
devops
数据流图
数据流:每个数据流用由一组固定成分的数据组成并拥有一个定义明确的名字标识
数据流的流向:从一个加工流向另一个加工 – 从加工流向文件(写文件) – 从文件流向加工(读文件) – 从源流向加工 – 从加工流向宿。
耦合:
非直接耦合 (Nondirect Coupling) :通过主模块控制
数据耦合 (Data Coupling) :简单的数据参数
标记耦合 (Stamp Coupling) :带有数据结构的数据参数
控制耦合 (Control Coupling) :通过传送开关、标志、名字等控制参数
外部耦合 (External Coupling) :一组模块都访问同一全局简单变量,不是通过参数传递该全局变量的信息。
公共耦合 (Common Coupling) : 若一组模块都访问同一个公共数据环境,则它们之间 的耦合就称为公共耦合
内容耦合 (Content Coupling) : 一个模块直接访问另一个模块的内部数据,一个模块不通过正常入口转到另一模块内部,两个模块有一部分程序代码重迭(只可能出现在汇编语言中),一个模块有多个入口
内聚:
巧合内聚 (Coincidental Cohesion) : 当几个模块内正好有一段代码是相同的,将它们抽取 出来形成单独的模块,即巧合内聚模块。
逻辑内聚 (Logical Cohesion) : 这种模块把几种相关的功能组合在一起,每次被调用 时,由传送给模块的判定参数来确定该模块应执行哪 一种功能。
时间内聚 (Classical Cohesion) :
过程内聚(Procedural Cohesion)
通信内聚(Communication Cohesion)
信息内聚 (Informational Cohesion)
功能内聚 (Functional Cohesion) :一个模块中各个部分都是完成某一具体功能必不可少 的组成部分,或者说该模块中所有部分都是为了完成 一项具体功能而协同工作,紧密联系,不可分割的, 则称该模块为功能内聚模块 。 功能内聚模块的功能独立性最强 。
The software engineering method originated from the software crisis, which of the following are the internal reasons for the software crisis. Ⅰ Software complexity Ⅱ Software maintenance difficulty Ⅲ Software cost is too high Ⅳ Software quality is difficult to guarantee。软件工程方法起源于软件危机,以下哪些是软件危机的内在原因。 Ⅰ 软件复杂 Ⅱ 软件维护困难 Ⅲ 软件成本过高 Ⅳ 软件质量难以保证。
ANSWER: Ⅰ
In the software life cycle law, the user's participation is mainly in ().在软件生命周期规律中,用户的参与主要在( )。
Choose one:
a.Software defined period软件定义期间
b.Software development period软件开发期
c.Software maintenance period软件维护期
d.Throughout the software life cycle贯穿整个软件生命周期
ANSWER: a
The software planning phase requires () interaction and cooperation.软件规划阶段需要()交互与合作。
Choose one:
a.Analysts and designers分析师和设计师
b.Analysts and users.分析师和用户
c.Designers and usersDesigners and users
d.Code developers and users代码开发者和用户
ANSWER: b
The process of checking whether a software product meets the requirements definition is called ()检查软件产品是否满足需求定义的过程称为()
Choose one:
a.Confirmation test确认测试
b.Integration Testing集成测试
c.Verification Test验证测试
d.Acceptance Test验收测试
ANSWER: a
The activities involved in requirements engineering vary widely, depending on the type of system being developed and the specific practices of the organization(s) involved. The following section lists some typical activities for software requirement analysis. Rank these procedures from earliest to latest on the basis of the chronological sequence.需求工程中涉及的活动差别很大,这取决于正在开发的系统的类型和所涉及组织的具体实践。 以下部分列出了软件需求分析的一些典型活动。 根据时间顺序从最早到最晚排列这些程序。
Requirements inception or requirements elicitation.
Requirements identification - identifying new requirements.
Requirements analysis and negotiation - checking requirements and resolving stakeholder conflicts.
System modeling - deriving models of the system.
Requirements specification (software requirements specification; SRS) - documenting the requirements in a requirements document.
Requirements validation - checking that the documented requirements and models are consistent and meet stakeholder needs.
Requirements management - managing changes to the requirements as the system is developed and put into use.
需求启动或需求引出。
需求识别——识别新的需求。
需求分析和协商 - 检查需求并解决利益相关者冲突。
系统建模 - 导出系统模型。
需求规范(软件需求规范;SRS)——在需求文档中记录需求。
需求验证 - 检查记录的需求和模型是否一致并满足利益相关者的需求。
需求管理——在系统开发和投入使用时管理需求的变化。
The demand analysis specification cannot be used as ().需求分析规范不能用作()。
Choose one:
a.Basis for feasibility study可行性分析的依据
b.Contract between user and developer用户和开发者之间的合同
c.Basis for system outline design系统概要设计的基础
d.Basis for software acceptance testing软件验收测试的基础
ANSWER: a
Each data source point or end point must have a name.每个数据源点或终点必须有名字 。对
In the structured analysis method, the tool used to express the operation of the data in the system is ().在结构化分析方法中,用来表达系统中数据操作的工具是( )。
Choose one:
A.Data Dictionary数据字典
B.Structured language结构化语言
C.Decision table and decision tree决策表和决策树
D.Data flow diagram数据流图
ANSWER: D
Structural analysis method (SA) is a demand-oriented analysis method.
结构分析方法(SA)是一种面向(数据流)需求分析方法
Choose one:
A.Object
B.Structure chart结构图
C.data structure
D.data flow
ANSWER: D
Cohesion refers to what the modules will do. Low cohesion would mean that the module does a great variety of actions and is not focused on what it should do. High cohesion would then mean that the module is focused on what it should be doing. Rank the following types of Cohesion, in order of worst to the best.内聚是指模块将做什么。低内聚意味着模块执行各种各样的操作,而不是专注于它应该做什么。高内聚意味着模块专注于它应该做的事情。按照从最差到最好的顺序对以下类型的内聚进行排名。
Coincidental cohesion.
Coincidental cohesion is when parts of a module are grouped arbitrarily; the only relationship between the parts is that they have been grouped together (e.g. a "Utilities” class).
巧合内聚
巧合内聚是指模块的各个部分被任意分组;部件之间的唯一关系是它们已组合在一起(例如“实用程序”类)。
Logical cohesion.
Logical cohesion is when parts of a module are grouped because they are logically categorized to do the same thing even though they are different by nature (e.g. grouping all mouse and keyboard input handling routines).
逻辑内聚
逻辑内聚是指模块的各个部分被分组,因为它们在逻辑上被归类为做同样的事情,即使它们本质上是不同的(例如,对所有鼠标和键盘输入处理例程进行分组)。
Temporal cohesion.
Temporal cohesion is when parts of a module are grouped by when they are processed - the parts are processed at a particular time in program execution (e.g. a function which is called after catching an exception which closes open files, creates an error log, and notifies the user).
时间内聚
时间内聚是指模块的各个部分按它们的处理时间分组——这些部分在程序执行的特定时间进行处理(例如,在捕获关闭打开文件的异常后调用的函数,创建错误日志,并通知用户)。
Procedural cohesion.
Procedural cohesion is when parts of a module are grouped because they always follow a certain sequence of execution (e.g. a function which checks file permissions and then opens the file).
程序内聚
程序内聚是指模块的各个部分被分组,因为它们始终遵循特定的执行顺序(例如,检查文件权限然后打开文件的函数)。
Communicational / informational cohesion.
Communicational cohesion is when parts of a module are grouped because they operate on the same data (e.g. a module which operates on the same record of information).
通信内聚
通信内聚是指模块的各个部分由于对相同的数据进行操作而被分组(例如,对相同的信息记录进行操作的模块)。
Sequential cohesion.
Sequential cohesion is when parts of a module are grouped because the output from one part is the input to another part like an assembly line (e.g. a function which reads data from a file and processes the data).
顺序内聚
顺序内聚是指模块的各个部分被分组,因为一个部分的输出是另一部分的输入,如装配线(例如,从文件中读取数据并处理数据的函数)。
Functional cohesion.
Functional cohesion is when parts of a module are grouped because they all contribute to a single well-defined task of the module (e.g. Lexical analysis of an XML string).
功能内聚
功能内聚是指模块的各个部分被分组,因为它们都有助于模块的单个明确定义的任务(例如 XML 字符串的词法分析)。
Coupling refers to how related are two modules and how dependent they are on each other. Being low coupling would mean that changing something major in one should not affect the other. High coupling would make your code difficult to make changes as well as to maintain it, as modules are coupled closely together, making a change could mean an entire system revamp. Rank the following types of coupling, in order of highest to lowest coupling,耦合是指两个模块之间的关联程度以及它们之间的依赖程度。 低耦合意味着改变一个主要的东西不应该影响另一个。 高耦合会使您的代码难以进行更改和维护,因为模块紧密耦合在一起,进行更改可能意味着整个系统的改造。 对以下类型的耦合进行排序,按照耦合从高到低的顺序,
Content coupling.
Content coupling (also known as Pathological coupling) occurs when one module modifies or relies on the internal workings of another module (e.g., accessing local data of another module).Therefore changing the way the second module produces data (location, type, timing) will lead to changing the dependent module.内容耦合。当一个模块修改或依赖另一个模块的内部工作(例如访问另一个模块的本地数据)时,就会发生内容耦合(也称为病理耦合)。因此改变了第二个模块产生数据的方式(位置、类型、时间) 将导致更改依赖模块。
Common coupling.
Common coupling (also known as Global coupling) occurs when two modules share the same global data (e.g., a global variable). Changing the shared resource implies changing all the modules using it.公共耦合,当两个模块共享相同的全局数据(例如,一个全局变量)时,就会发生公共耦合(也称为全局耦合)。 更改共享资源意味着更改所有使用它的模块。
External coupling.
External coupling occurs when two modules share an externally imposed data format, communication protocol, or device interface. This is basically related to the communication to external tools and devices.外部耦合,当两个模块共享外部强加的数据格式、通信协议或设备接口时,就会发生外部耦合。 这基本上与与外部工具和设备的通信有关。
Control coupling.
Control coupling is one module controlling the flow of another, by passing it information on what to do (e.g., passing a what-to-do flag).控制耦合是一个模块控制另一个模块的流程,通过向它传递关于做什么的信息(例如,传递一个做什么标志)。
标记耦合 (Stamp Coupling) :带有数据结构的数据参数
Stamp coupling occurs when modules share a composite data structure and use only a part of it, possibly a different part (e.g., passing a whole record to a function that only needs one field of it).This may lead to changing the way a module reads a record because a field that the module does not need has been modified.当模块共享一个复合数据结构并且只使用它的一部分,可能是不同的部分(例如,将整个记录传递给只需要其中一个字段的函数)时,就会发生标记耦合。这可能会导致改变模块的方式 读取记录,因为模块不需要的字段已被修改。
Data coupling.
Data coupling occurs when modules share data through, for example, parameters. Each datum is an elementary piece, and these are the only data shared (e.g., passing an integer to a function that computes a square root).数据耦合,当模块通过例如参数共享数据时,就会发生数据耦合。 每个数据都是一个基本部分,这些是唯一共享的数据(例如,将整数传递给计算平方根的函数)。
Message coupling.
This is the loosest type of coupling. It can be achieved by state decentralization (as in objects) and component communication is done via parameters or message passing (see Message passing).这是最松散的耦合类型。 它可以通过状态分散(如在对象中)来实现,组件通信是通过参数或消息传递完成的(请参阅消息传递)。
The scope of a module refers to ()
某个模块的作用域是指( )
Choose one:
a.The modules used by this module
被该模块调用的所用模块
b.Call all modules of this module
调用该模块的所有模块
c.All modules associated with this module
与该模块相关联的所有模块
d.All modules affected by the judgment in this module
受该模块内的判定影响的所有模块
ANSWER: D
The algorithm design inside the module is carried out in the () stage of the structured method.模块内部的算法设计在结构化方法的( )阶段进行。
Choose one:
a.System analysis系统分析
b.Outline design概要设计
c.detailed design详细设计
d.Encoding (implementation)编码(实现)
ANSWER: C
Which of the following is NOT a UML diagram?
以下哪个不是 UML 图?
选择一项:
A.Object Diagram对象图
B.Class diagram类图
C.Interface diagram接口图
D.Use case model用例图
ANSWER: C
Which of the following is/are characteristics of UML?
以下哪些是 UML 的特征?
选择一项或多项:
A.It is interrelated to object-oriented analysis and design.
它与面向对象的分析和设计相互关联。
B.It is distinct from other programming languages like C++, Python, etc.
它不同于其他编程语言,如 C++、Python 等。
C.It is used to visualize the workflow of the system.
它用于可视化系统的工作流程。
D.It is a generalized modelling language.
它是一种通用的建模语言。
ANSWER: ABCD
Which of the following statement is true concerning objects and/or classes?
关于对象和/或类,以下哪项陈述是正确的?
选择一项:
A. A class is an instance of an object.类是对象的实例。
B. An object is an instance of a class.对象是类的实例。
C. A class includes encapsulates only data.一个类只包含封装数据。
D. An object includes encapsulates only data.一个对象只包括封装数据。封装
ANSWER: B
The benefits of object-oriented modeling are which of the following?
面向对象建模的好处是以下哪些?
选择一项或多项:
A. Improved communication between users, analysts, etc.
改善用户、分析师等之间的沟通。
B. Reusability of analysis, design, and programming results
分析、设计和编程结果的可重用性
C. The ability to tackle more challenging problems
解决更具挑战性的问题的能力
ANSWER: ABC
Which diagrams are used to distribute files, libraries, and tables across topology of the hardware?哪些图表用于跨硬件拓扑分布文件、库和表?
选择一项:
A. collaboration合作
B. use case用例
C. deployment部署
D. sequence序列
ANSWER: C
软件部件的内部实现与外部可访问性分离,这是指软件的()The internal realization of the software component is separated from the external accessibility, which refers to the software's ()
选择一项:
a.继承性Inheritance
b.共享性Sharing
c.封装性Encapsulation
d.抽象性Abstraction
ANSWER: C
顺序图是一种强调发送和接受消息的对象结构组织的图,用以展示围绕对象以及它们之间的连接器而组织的交互。A sequence diagram is a diagram that emphasizes the organization of the object structure for sending and receiving messages, to show the interactions organized around the objects and the connectors between them.
ANSWER: 错
面向对象程序设计将描述事物的数据与()封装在一起,作为一个相互依存、不可分割的整体来处理。Object-oriented programming encapsulates the data describing things with () and treats them as an interdependent and indivisible whole.
选择一项:
a.信息information
b.数据隐藏Data hiding
c.对数据的操作Operations on data
d.数据抽象Data abstraction
ANSWER: C
面向对象分析(OO中描述正确的是()Object-oriented analysis (the correct description in OO is ()
选择一项或多项:
a.是运用面向对象方法进行系统分析。It is the use of object-oriented methods for system analysis.
b.是软件生命周期的一个阶段 Is a stage of the software life cycle
c.强调对问题域和系统责任进行分析和理解。Emphasize the analysis and understanding of problem domains and system responsibilities.
d.强调与实现有关的分析和理解。Emphasize analysis and understanding related to implementation.
ANSWER: ABC
在基于UML的面向对象系统开发过程中,用例实现分析需要画出()来描述用户需求。In the development process of an object-oriented system based on UML, use case realization analysis needs to draw () to describe user needs.
选择一项:
A.用例图Use case diagram
B.状态图和活动图State diagram and activity diagram
C.序列图和协作图Sequence diagram and collaboration diagram
D.类图和对象图Class diagram and object diagram
ANSWER: A
Code coverage is a measure used to describe the degree to which the source code of a program is tested by a particular test suite. A program with high code coverage has been more thoroughly tested and has a lower chance of containing software bugs than a program with low code coverage.代码覆盖率是用于描述程序的源代码被特定测试套件测试的程度的度量。 与代码覆盖率低的程序相比,代码覆盖率高的程序经过更彻底的测试,包含软件错误的机会更低。
Statement coverage makes each branch of each decision executed at least once
语句覆盖使得每个判定的每个分支至少执行一次
ANSWER: 错
Among the software testing methods, the black box testing method and the white box testing method are commonly used methods, and the black box testing method is mainly used for testing ().软件测试方法中,黑盒测试方法和白盒测试方法是常用的方法,其中黑盒测试方法主要用于测试()。
Choose one:
a.Structural rationality结构合理性
b.Software external functions软件外部功能
c.The internal logic of the program程序的内部逻辑
d.Program correctness程序正确性
ANSWER: B
下列几种逻辑覆盖标准中,查错能力最强的是Among the following logic coverage standards, the one with the strongest error-checking ability is
选择一项:
a.语句覆盖Statement coverage
b.条件覆盖Conditional coverage
c.判定覆盖Decision coverage
d.条件组合覆盖Conditional combination coverage
ANSWER: D
which of the following is not one of the elements of a design pattern?以下哪一项不是设计模式的元素之一?
A. Problem问题
B. Environment环境
C. Solution解决方案
D. Context语境
ANSWER: B
Which of the following is correct about Structural design patterns.下列关于结构设计模式的说法正确的是
A. These design patterns concern class and object composition. Concept of inheritance is used to compose interfaces and define ways to compose objects to obtain new functionalities.这些设计模式涉及类和对象组合。 继承的概念用于组合接口并定义组合对象以获得新功能的方法。
B. These design patterns provide a way to create objects while hiding the creation logic, rather than instantiating objects directly using new operator.这些设计模式提供了一种在隐藏创建逻辑的同时创建对象的方法,而不是直接使用 new 运算符实例化对象。
C. These design patterns are specifically concerned with communication between objects.这些设计模式特别关注对象之间的通信。
ANSWER: A
Which of the following pattern hides the complexities of the system and provides an interface tothe client using which the client can access the system?
以下哪一种模式隐藏了系统的复杂性,并提供了一个客户端可以访问系统的接口?
选择一项:
A. Flyweight Pattern享元模式
B. Decorator Pattern装饰模式
C. Facade Pattern外观模式
D. Composite Pattern复合模式
ANSWER: C
Encapsulate a request as an object, there by letting you parametrize clients with differentrequests, queue or log requests, and support undoable operation.
将一个请求封装成一个对象,通过让您参数化具有不同请求、队列或日志请求的客户端,并支持可撤销操作。
选择一项:
A. Command命令模式
B. Composite合成
C. Adapter适配器
D. Decorator装饰器
ANSWER: A
Define an interface for creating an object, but let the subclasses decide which class to instantiate.lt let the instantiation differ to subclasses.定义一个用于创建对象的接口,但让子类决定实例化哪个类。让实例化与子类不同。
选择一项:
A. Factory Method工厂模式
B. Builder建造者
C. Prototype原型
D. Observer观察者
ANSWER: A
Design patterns span a broad spectrum of___.设计模式涵盖了___的广泛范围。
选择一项:
A. System integration系统集成
B. Data Encapsulation数据封装
C. Abstraction and application抽象与应用
ANSWER: C
Define one to many dependency between objects so that when one object change state, all its dependent are notified and updated automatically.
定义对象之间的一对多依赖关系,这样当一个对象改变状态时,它的所有依赖项都会被自动通知和更新。
选择一项:
A. Mediator调解员
B. Observer观察者
C. Chain of responsibility责任链
D. Event Notification时间通知
ANSWER: B
程序的三种基本控制结构是:B
The three basic control structures of the program are
A、过程、子程序和分程序
Procedures, subroutines and subroutines
B、顺序、选择和重复
Sequence, selection and repetition
C、递归、堆栈和队列
Recursion, stack and queue
D、调用、返回和转移
Call, return and transfer
关于PAD图:ACD
A、PAD图支持逐步求精 PAD diagram supports gradual refinement
B、PAD图容易造成非结构化的程序结构 PAD diagram is easy to cause unstructured program structure
C、PAD图描述的是算法 The PAD diagram describes the algorithm
D、PAD图容易表达模块的层次结构 PAD diagram easily expresses the hierarchical structure of modules
关于流程图:ABD
A、流程图不易表示数据结构 Flow chart is not easy to express data structure
B、流程图容易造成非结构化的程序结构 Flow chart is easy to cause unstructured program structure
C、流程图支持逐步求精 Flow chart supports gradual refinement
D、流程图描述的是程序的逻辑结构 The flowchart describes the logical structure of the program
结构化程序设计的基本方法是:D
The basic method of structured programming is
A、筛选法 Screening method
B、递归法 Recursion
C、迭代法 Iterative method
D、逐步求精法 Stepwise refinement / gradual refinement
在详细设计阶段,经常采用的工具包括:CDE
In the detailed design stage, tools often used include
A、SC图
B、DFD图
C、PAD图
D、程序流程图 Program flow chart
E、N-S图
两个模块之间传递的是同一个数据结构的地址,这种耦合方式称为:C
The address of the same data structure is passed between the two modules. This coupling method is called
A、控制耦合
B、公共耦合
C、标记耦合
D、数据耦合
一组语句在程序中多次出现,把这些语句放在一个模块中,则该模块的内聚程度为:B
A group of statements appear multiple times in the program. Put these statements in a module, and the degree of cohesion of the module is
A、逻辑内聚
B、偶然内聚
C、时间内聚
D、通信内聚
一模块内的某种成分的输出是另一种成分的输入,则该模块的内聚程度为:B
The output of a certain component in a module is the input of another component, then the cohesion of the module is
A、功能内聚
B、顺序内聚
C、逻辑内聚
D、时间内聚
将几个逻辑功能类似的成分放在一个模块中,这个模块的内聚程度为:A
Put several components with similar logic functions in a module, and the degree of cohesion of this module is
A、逻辑内聚
B、功能内聚
C、通信内聚
D、时间内聚
一个模块直接引用另一模块中的数据,这两个模块之间的耦合是:D
One module directly references data in another module, the coupling between these two modules is
A、公共耦合
B、数据耦合
C、控制耦合
D、内容耦合
一个模块把一个数值量作为参数传递给另一个模块,这两个模块之间的耦合程度为:B
One module passes a numerical value as a parameter to another module, and the degree of coupling between the two modules is
A、逻辑耦合
B、数据耦合
C、控制耦合
D、内容耦合
需求分析中开发人员要从用户那里了解:A
In requirements analysis, developers need to learn from users
A、软件做什么
B、用户使用界面
C、输入的信息
D、软件的规模 The size of the software
可行性研究要进行一次 C 需求分析The feasibility study requires a simplified and compressed demand analysis
A、详细的
B、全面的
C、简化的、压缩的
D、彻底的
瀑布模型适用于A,增量模型适用于B
The waterfall model is suitable for situations where the requirements are clearly defined, and the incremental model is suitable for situations where a runnable program needs to be constructed quickly.
A.需求被清晰定义的情况
B.需要快速构造可运行程序的情况
C.大规模团队开发的项目
D.已不能用于现代环境的过时模型
快速原型开发模型 B
Rapid prototyping model
A.适用于客户需求被明确定义的情况 Suitable for situations where customer needs are clearly defined
B.适用于客户需求难以清楚定义的情况 Suitable for situations where customer needs are difficult to clearly define
C.最适合于大规模团队开发的项目 The most suitable project for large-scale team development
D.很难产生有意义产品的一种冒险模型 An adventurous model that is difficult to produce meaningful products
判断题:
测试用例的设计是一项技术性强、智力密集型的活动 √
The design of test cases is a highly technical and intellectually intensive activity.
在测试用例设计时,只设计覆盖正常流程和操作的测试用例即可 ×
When designing test cases, only design test cases that cover normal processes and operations.
在开展测试用例设计前,必须将测试需求进行详细展开 √
Before starting the test case design, the test requirements must be expanded in detail.
用例图是从程序员角度来描述系统的功能 ×
Use case diagrams describe the functions of the system from the perspective of the programmer.
活动图和状态图用来描述系统的动态行为 √
Activity diagrams and state diagrams are used to describe the dynamic behavior of the system
协作图作为一种交互图,强调的是参加交互的对象的组织 √
As a kind of interaction diagram, the collaboration diagram emphasizes the organization of the objects participating in the interaction.
协作图是顺序图的一种特例 ×
Collaboration diagram is a special case of sequence diagram.
从某种角度上讲,白盒测试与黑盒测试都属于动态测试 √
From a certain perspective, both white box testing and black box testing are dynamic testing
功能测试属于黑盒测试 √
Functional testing is a black box test
对功能的测试通常是要考虑程序的内部结构的 ×
The function test usually considers the internal structure of the program
结构测试属于白盒测试 √
Structural testing is white box testing
在软件开发过程中,编程的代价最高 ×
In the software development process, programming is the most expensive
良好的程序设计风格应以缩小程序占用的存储空间和提高程程序的运行速度为原则 ×
A good programming style should be based on the principle of reducing the storage space occupied by the program and increasing the running speed of the program.
为了提高程序的运行速度,有时采用以存储空间换取运行速度的方法 √
In order to improve the running speed of the program, sometimes the method of exchanging storage space for running speed is used.
对同一算法,用高级语言编写的程序比用低级语言编写的程序运行速度快 ×
For the same algorithm, programs written in high-level languages run faster than programs written in low-level languages
层次系统中支持抽象程序递增的系统设计,设计师可以把一个复杂系统按照递增的步骤进行分解,同时支持功能增强,但是不支持重用。 ×
The hierarchical system supports the system design of the incremental program of abstraction. The designer can decompose a complex system according to the incremental steps. At the same time, it supports functional enhancement, but does not support reuse.
事件驱动模式属于调用和返回体系结构。 √
The event-driven model belongs to the call and return architecture.
相对于体系结构风格,模式涉及的范围要大,更关注体系结构的整体 ×
Compared with the architectural style, the model involves a larger scope and pays more attention to the overall architecture.
构件可以基于对象实现,也可以不基于对象实现,但构件不允许外部对所支持的接口进行动态发现或调用。 ×
Component can be realized based on object or not, but component does not allow external dynamic discovery or invocation of supported interfaces.
对于多分支的判定,判定覆盖要使每一个判定表达式获得每一种可能的值来测试 √
For multi-branch decisions, decision coverage should make every decision expression obtain every possible value to test
语句覆盖是比较弱的覆盖标准 √
Statement coverage is a relatively weak coverage standard
语句覆盖较判定覆盖严格,但该测试仍不充分 ×
Sentence coverage is stricter than decision coverage, but the test is still insufficient.
条件组合覆盖是比较强的覆盖标准 √
Conditional combination coverage is a relatively strong coverage standard
性能测试的目的不是为了发现软件缺陷 ×
The purpose of performance testing is not to find software defects.
压力测试与负载测试的目的都是为了探测软件在满足预定性能需求的情况下所能负担的最大压力 ×
The purpose of stress testing and load testing is to detect the maximum pressure that the software can bear when meeting the predetermined performance requirements.
性能测试通常要对测试结果进行分析才能获得结论 √
Performance testing usually needs to analyze the test results to get a conclusion
在性能下降曲线上,最大建议用户数通常处于性能轻微下降区与性能急剧下降区的交界处 √
On the performance degradation curve, the maximum recommended number of users is usually at the junction of a slight performance degradation zone and a sharp performance degradation zone
关于用例图About use case diagrams
A.读者可以使用系统的还书用例 Readers can use the system's book return use case
B.每次执行还书用例都要执行图书查询用例 Every time the book return use case is executed, the book query use case must be executed
C.每次执行还书用例都要执行交纳罚金用例 Every time the book return use case is executed, the penalty payment use case must be executed
D.执行还书用例有可能既执行图书查询用例,又执行交纳罚金用例Executing the book return use case It is possible to execute both the book query use case and the penalty payment use case
ANSWER: ABD
源程序文档化要求在每个模块之前加序言性注释,这部分注释内容不应有()
The documentation of the source program requires that a preface comment be added before each module, and the content of this part of the comment should not have ()
A.模块的功能Function of the module
B.语句的功能The function of the statement
C.模块的接口Module interface
D.开发历史Development history
ANSWER: B
以下不属于Web应用软件表示层测试的是
(A)排版结构的测试
(B)链接结构的测试
(C)客户端兼容性的测试
(D)浏览器的兼容性的测试
(E)数据完整性测试
(F)服务器端程序的测试
ANSWER: EF
在一个“订单输入子系统”中,创建新订单和更新订单都需要检查用户帐号是
否正确。那么用例“创建新订单”“更新订单”与用例“检查用户帐号”之间是()关系
A扩展(extend)
B.包含(include)
C.分类 (classification)
D.聚集(aggregation)
ANSWER: B
在软件测试中,白盒测试方法是通过分析程序的()来设计测试用例
(A)应用范围
(B)功能
(C)内部逻辑
(D)输入数据
ANSWER: C
设计模式的两大主题是
A. 系统的维护与开发
B. 对象组合与类的继承
C. 系统架构与系统开发
D. 系统复用与系统扩展
ANSWER: D
Myers在1979年提出了一个重要观点,即软件测试的目的是为了()
(A)证明程序正确
(B)查找程序错误
(C)改正程序错误
(D)验证程序无错误
ANSWER: B
关于活动图
A.一张活动图从本质上说是一个流程图,显示从活动到活动的控制流
B.活动图用于对业务过程中顺序和并发的工作流程建模
C.活动图的基本要素包括状态、转移、分支、分叉和汇合、泳道、对象流
D.活动图是UML中用于对系统的静态方面建模的一种图
ANSWER: ABC
软件测试自动化的好处在于()
(A)比手工测试发现更多的软件缺陷
(B)可以自动产生测试计划
(C)使输入值组合的覆盖率达到100%
(D)可以在较少的时间内运行更多的测试用例
ANSWER: D
The general purpose of the Singleton pattern is to
A. Ensure that no more than one instance of a class exists.
B.Ensure that only one instance of a class exists at the same time.
C.Separate objects in a single class from objects in another class.
D. Control creation of objects in a singie class or another class.
ANSWER: A
观察者模式
A.观察者角色的更新是被动的
B.被观察者可以通知观察者进行更新
C.观察者可以改变被观察者的状态,再由被观察者通知所有观察者依据被观察者的状态进行
D.定义了对象之间一对多的关系
E.观察者和可观察者之间用松耦合方式结合
ANSWER: ABD
In the Publish-Subscribe messaging model, the subscribers register themselves in a topic and are notified when new messages arrive to the topic. Which pattern does most describe this model?
在发布-订阅消息模型中,订阅者在主题中注册自己,并在新消息到达主题时收到通知。 哪种模式最能描述这个模型?
A. Adapter
B. Notifier
C. Observer
D. State
ANSWER: C
软件的集成测试工作最好由()来承担
(A)该软件的设计人员
(B)该软件的编程人员
(C)该软件开发组的负责人
(D)不属于该软件开发组的软件设计人员
ANSWER: D
需求规格说明书的内容应包括
A.主要功能
B.算法的详细过程
C.用户界面的运行环境
D.软件性能
ANSWER: ACD
需求开发的活动包括
A.需求获取
B.需求管理
C.需求验证
D.需求分析
ANSWER: AC
在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,现在人们更重视程序的()
A. 技巧性
B. 保密性
C. 一致性
D. 可理解性
ANSWER: D
在程序设计过程中,要为程序调试做好准备,主要体现在
(A)采用模块化、结构化的设计方法设计程序
(B)根据程序调试的需要,选择并安排适当的中间结果输出必要的断点
(C)编写程序时要为调试提供足够的灵活性
ANSWER: ABC
关于建模
A.要仔细的选择模型
B.每种模型可以在不同的精度级别上表示所要开发的系统
C.模型要与现实相联系
D.对一个重要的系统用一个模型就可以充分描述
ANSWER: ABC
以下哪种测试属于性能测试的范畴
A.接口测试
B.并发测试
C.压力测试
D.配置测试
ANSWER: BCD
为了提高易读性,源程序内部应加功能性注释,用于说明()
A.模块总的功能
B.程序段或语句的功能
C.模块参数的用途
D.数据的用途
ANSWER: B
尽管高级语言比低级语言更容易理解,并且易于对高级语言编写的程序进行维护和升级,但在()的场合,还经常全部或部分地使用低级语言
A. 对时间和空间有严格要求
B. 并行处理
C. 事件驱动
D. 电子商务
ANSWER: A
下列测试类型中,不是针对软件产品的质量特性的是
A. 性能测试
B. 安全性测试
C. 易用性测试
D. 回归测试
ANSWER: D
下面哪个选项中有不是活动图中的基本元素()
A.状态,分支
B.状态,汇合
C.泳道,转移
D.信号,转移
ANSWER: D
下面的逻辑测试覆盖中,测试覆盖最弱的是
A. 条件覆盖
B. 条件组合覆盖
C. 语句覆盖
D. 判定/条件覆盖
ANSWER: C
UML中有3种基本构造块,分别是
A. 事物、关系和图
B. 注释、关系和图
C. 事物、关系和结构
D.注释、关系和结构
ANSWER: A
()是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作图和其他图的基础
A. 对象图
B. 组件图
C. 类图
D. 配置图
ANSWER: C
测试人员和开发人员交流的纽带是()
A. 软件设计报告
B. 测试说明文档
C. 软件缺陷报告
D. 测试执行报告
ANSWER: C
提高程序效率的根本途径在于()
A选择良好的设计方法
B.选择良好的数据结构
C.选择良好的算法
D.对程序语句作调整
ANSWER: ABC
与选择编程语言无关的因素是()
A.软件开发的方法
B.软件执行的环境
C. 程序设计风格
D. 软件开发人员的知识
ANSWER: C
当需要说明体系结构的静态实施视图时应该选择()
A. 协作图
B. 对象图
C. 活动图
D. 部署图
ANSWER: D
下面哪个是UML中的动态视图
A.用例图
B.类图
C.对象图
D.序列图
ANSWER: D
关于单例模式
A. 构造函数私有
B. 唯一实例
C. 静态工厂方法
D. 以上都不对
ANSWER: AB
UML的全称是
A. Unit Modeling Languaga
B. Unifiad Modeling Language
C. Unified Modem Language
D. Unified Making Language
ANSWER: B
()把活动图中的活动划分为若干组,并将划分的组指定给对象,这些对象必须履行该组所包括的活动,它能够明确地表示哪些活动是由哪些对象完成的。
A. 组合活动
B. 同步条
C. 活动
D. 泳道
ANSWER: D
设计模式的优点
A .适应需求变化
B. 程序易于理解
C. 减少开发过程中的代码开发工作量
D. 简化软件系统的设计
ANSWER: A
语雀版:https://www.yuque.com/makabaka-oqnhr/kb/attv70?singleDoc# 《软件工程导论期末复习》