软件工程导论学习资料

软件工程的概述:软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。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# 《软件工程导论期末复习》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/191845.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入理解Java中的锁机制

引言 大家好,我是小黑。今天咱们来聊聊Java中的锁机制,这可是并发编程的核心。你知道吗,在并发编程的世界里,正确地使用锁就像是掌握了一把神奇的钥匙,它能帮咱们在多线程的混战中保持秩序,防止数据被乱改…

【JavaSE】API(学习笔记)

一、Math 包含执行基本数字运算的方法没有构造方法,但方法是静态的,可以用类名直接调用 1、Math类常用方法 1)绝对值:abs public static int abs(int a)2)小数的最近整数:ceil(最小整数) / floor(最大整…

【AI】基于已有模型训练自己的模型(迁移)

实际工作中,我们可能缺乏算力去从头到尾训练一个模型,使用别人训练好的模型(通常是经典模型)就成了一个很好的选择,这样我们就不需要设置每一层的初始参数,极大的提高了训练的效率;但是在使用别…

Python中的加法测试题实现

随机生成5道10以内的加法测试题,用户在10秒内使用键盘输入答案。完成全部5道答题之后,计算机生成答题记录报告,并对答题情况进行分析,显示“答对了”,或“答错了”、并显示正确答案。如果未能按时完成,则显…

opencv知识库:基于cv2.flip()函数对图像进行随机翻转(水平/垂直)

需求场景 欲对RGB格式的lena图像进行随机翻转,要求这些图像不翻转、水平翻转、垂直翻转的概率都为1/3。 功能代码 import cv2 import random# 读取并展示图像 img cv2.imread("lena.jpg") cv2.imshow(lena, img) cv2.waitKey(0)for i in range(6): #…

Python concurrent.futures实现多进程多线程编程

Python的concurrent.futures模块可以很方便的实现多进程、多线程运行,减少了多进程带来的的同步和共享数据问题。 Executor是一个抽象类,表示一个可执行的上下文。Future则代表一个将要执行的任务,并提供了一些方法来获取任务的状态和结果。T…

Hdoop学习笔记(HDP)-Part.18 安装Flink

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

技术面选股的方法

技术面选股是根据股票的价格走势、成交量等技术指标,来预测股票未来走势的一种方法。以下是一些常用的技术面选股方法的详细解析: 均线分析:这是一种常见且基础的技术面选股方法,投资者会计算股票的移动平均线(如5日、…

头歌JUnit单元测试相关实验入门

一、入门实验 1.1第一个Junit测试程序 任务描述 请学员写一个名为testSub()的测试函数,来测试给定的减法函数是否正确。 相关知识 Junit编写原则 1、简化测试的编写,这种简化包括测试框架的学习和实际测试单元的编写。 2、测试单元保持持久性。 3、利用…

【已解决】AttributeError: module ‘gradio‘ has no attribute ‘Image‘

问题描述 AttributeError: module gradio has no attribute Image 不知道作者用的是哪个gradio版本,最新的版本报错AttributeError: module gradio has no attribute outputs , 换一个老一点的版本会报错AttributeError: module gradio has no attribute…

短线买入卖出有哪些交易技巧?

前面两节课,我们认识了短线交易,知道了短线交易常见的买入卖出时机,这节课,我们来讲解一下短线买入卖出的一些交易技巧。话不多时,直接进入重点! 一、短线交易要果断 短线波动快,在出现买卖信号…

排序算法总结(Python、Java)

Title of Content 1 冒泡排序 Bubble sort:两两交换,大的冒到最后概念排序可视化代码实现Python - 基础实现Python - 优化实现Java - 优化实现C - 优化实现C - 优化实现 2 选择排序 Selection sort:第i轮遍历时,将未排序序列中最小…

华为OD机试 - CPU算力分配(Java JS Python C)

题目描述 现有两组服务器A和B,每组有多个算力不同的CPU,其中 A[i] 是 A 组第 i 个CPU的运算能力,B[i] 是 B组 第 i 个CPU的运算能力。 一组服务器的总算力是各CPU的算力之和。 为了让两组服务器的算力相等,允许从每组各选出一个CPU进行一次交换, 求两组服务器中,用于…

反序列化漏洞详解(一)

目录 一、php面向对象 二、类 2.1 类的定义 2.2 类的修饰符介绍 三、序列化 3.1 序列化的作用 3.2 序列化之后的表达方式/格式 ① 简单序列化 ② 数组序列化 ③ 对象序列化 ④ 私有修饰符序列化 ⑤ 保护修饰符序列化 ⑥ 成员属性调用对象 序列化 四、反序列化 …

【笔记】常用的Linux命令之解压缩:tar、zip、rar 命令

1、tar 常用压缩和解压缩 # 压缩文件 file1 和目录 dir2 到 test.tar.gz tar -zcvf test.tar.gz file1 dir2 # 解压 test.tar.gz(将 c 换成 x 即可) tar -zxvf test.tar.gz 额外知识:查看压缩文件内容 # 列出压缩文件的内容 tar -ztvf test…

unity学习笔记

一、线段渲染器 在Unity中,线段渲染器(Line Renderer)是一种用于在场景中绘制线段的组件。线段渲染器非常适合用于创建轨迹、路径、光束等效果。 1. 创建Line Renderer:在Unity编辑器中,你可以通过创建空对象 -> …

Linux - 动态库的加载 和 重谈进程地址空间 - vscode 当中的 Remote - SSH 插件

推书:《现代操作系统》《操作系统--精髓于设计原理》《UNIX环境高级编程》 目录 前言 程序的加载 程序没有加载之前的地址(此时还是程序) 程序被加载到内存之后(此时是进程) 动态库的地址 静态库的不加载&#xff…

力扣labuladong一刷day24天

力扣labuladong一刷day24天 文章目录 力扣labuladong一刷day24天一、875. 爱吃香蕉的珂珂二、1011. 在 D 天内送达包裹的能力三、410. 分割数组的最大值 一、875. 爱吃香蕉的珂珂 题目链接:https://leetcode.cn/problems/koko-eating-bananas/?utm_sourceLCUS&…

数据结构——堆排序的topk问题

呀哈喽,我是结衣 前言 今天给大家带来的堆排序的topk问题。topk就是在许多数中,找出前k个大的数,可能是几十个数,也可能是几千万个数中找。今天我们将要在1000000(一百万)个数中找出前10大的数。 知识点 C…

【c】角谷猜想

#include<stdio.h> int coll(int x)//定义函数 {int count0;while(x>1){if(x%20){xx/2;count;}else{x3*x1;count;}}return count; } int main() {int n,num;scanf("%d",&n);int arr[n1];for(int i1;i<n;i)//输入n组数据保存到数组中{scanf("%d&…