software engineering
下面属于工程过程的活动有( ) 系统可行性研究 需求导出和分析 需求描述 需求有效性验证
All 软件工程过程是将用户需求转化为软件所需的软件工程活动的总集。 这个过程可能包括投入、需求分析、规格说明、设计、实施、验证、安装、使用支撑和文档化,还可能包括短长期的修复和升级以满足用户增长的需求。因为维护没有被普遍接受,所以在这里没有包括进来。在美国国防部(DoD)维护包括软件修复和升级,而在商业计算机领域它是指提供服务、修复软件缺陷但不包括升级。
用来辅助软件开发、运行、维护、管理、支持等过程中的活动的软件称为软件开发工具,通常也称为()工具。 CAD CAI CAM CASE
CASE CAD:计算机辅助设计 , 指利用计算机及其图形设备帮助设计人员进行设计工作。 CAI: 计算机辅助教学,是在计算机辅助下进行的各种教学活动,以对话方式与学生讨论教学内容、安排教学进程、进行教学训练的方法与技术。 CAM:计算机辅助制造 ,是将计算机应用于制造生产过程的过程或系统。 计算机辅助软件工程英文全称:CASE(Computer Aided(or Assisted)Software Engineering)。
在以下选项中,主要联系高层管理人员的信息系统是什么? MIS(管理信息系统) DSS(决策支持系统) EDPS(电子数据处理系统) TPS(事务处理系统)
DSS(决策支持系统)
针对"学生成绩的范围是 0-100",采用黑盒测试划分()个等价类。 1 2 3 4
3
以下程序的运行结果为( ) void main() { char a[10] = "abcd"; printf("%d, %d\n", strlen(a), sizeof(a)); }
4, 10
Software engineering umbrella activities are only applied during the initial phases of software development projects.
False Any standard software process model would primarily consist of two types of activities: A set of framework activities, which are always applicable, regardless of the project type, and a set of umbrella activities, which are the non SDLC activities that span across the entire software development life cycle. software process model == software development model
Jackson 图只能表达程序结构,不能表达数据结构。
Jackson图既可以表示程序结构,也可以表示数据结构,有利于结构化技术的实现。应该注意的是:Jackson图描述的是组成关系。图1示出了Jackson图描述的三种结构。 面向数据结构的软件设计方法,Jackson分析方法是面向数据流的分析方法。
如有定义:char str[20];,能将从键盘输入的字符串"How are you"保存到 str 数组的语句是( ) scanf("%s", str); str[] = getch(); gets(str); str = gets();
gets(字符数组名或指针) gets能够接受空格、制表符Tab和回车等。 gets和sacnf函数,在字符串接受结束后自动加'\0'
以下数组定义中错误的是( ) int x[][3] = {0}; int x[2][3] = {{1,2},{3,4},{5,6}}; int x[][3] = {{1,2,3},{4,5,6}}; int x[2][3] = {1,2,3,4,5,6};
int x[2][3] = {{1,2},{3,4},{5,6}};
char s1[10], s2[10] = {"books"};
strcpy(s1, s2);
需求分析阶段产生的主要文档是( )。 正确答案: A 你的答案: A (正确) 需求规格说明书 初步的用户手册 确认测试计划 数据流图和数据字典
【解析】需求分析阶段的工作可以概括为:需求获取、需求分析、编写需求规格说明书、需求评审四个方面。软件需求规格说明书是描述需求中的重要文档,是软件需求分析的主要成果。故本题答案为 A 选项。
一般说来,投入运行的软件系统中有错误 ( )。 不是不可以理解的 是不能容忍的 是要求退货的理由 是必然的
不是不可以理解的
在软件测试中,白盒测试方法是通过分析程序的()来设计测试用例的方法。 应用范围 内部逻辑 功能 输入数据
内部逻辑
面向对象的分析方法主要是建立三类模型,即()。 系统模型、ER模型、应用模型 对象模型、动态模型、应用模型 E-R模型、对象模型、功能模型 对象模型、动态模型、功能模型
对象模型、动态模型、功能模型 面向对象分析主要由对象模型、动态模型、功能模型组成,其中对象模型是最基本、最重要、最核心的; 面向对象建模得到的模型包含系统的三个要素:静态结构(对象模型)、交互次序(动态模型)、数据变换(功能模型); 对象模型的五个层次:主题层、类与对象层、结构层、属性层、服务层。
如果有些功能的执行时间很长,以下___最会让顾客感觉到等待很长时间。 使用进度条显示当前执行进度的百分比 将鼠标指针变为漏斗形状 在等待过程中引导用户去做一些其他功能,等原功能执行完成后再返回 将该功能拆分为多步,每步执行结束后给用户展示中间结果
将鼠标指针变为漏斗形状
系统流程图用于可行性分析中的 _____ 的描述。 当前运行系统 当前逻辑模型 目标系统 新系统
当前运行系统
以下对结构化程序设计的说法错误的是( )。 A. 对于一个复杂的问题先用抽象程序表示,再对抽象程序进一步分解,继续精化 B. 结构化程序设计方法自顶向下,先整体后局部,可以提高软件开发效率 C. 通过引入模块间的继承性和多态性等机制,增加了模块的可重用性,提高了软件开发效率 D. 在软件详细设计阶段,采用结构化程序设计方法,可以把一个模块的功能逐步分解细化为某种程序语言的语句
通过引入模块间的继承性和多态性等机制,增加了模块的可重用性,提高了软件开发效率
在下列测试技术中,______不属于黑盒测试技术。 等价划分 边界值分析 错误推测 逻辑覆盖
逻辑覆盖
如果测试人员在一段程序的测试中没有发现错误,说明这段程序的可靠性就好。请问这句话的说法是正确的吗?
错误
用黑盒法测试时,测试用例是根据程序内部逻辑设计的。( )
错误
系统结构图是精确表达程序结构的图形表示法。因此,有时也可以将系统结构图当作系统流程图使用。( )
错误
CMM 能力成熟度模型只关注软件过程,不关注软件开发技术和人员问题,说明开发技术和人员问题并不重要。请问这句话的说法是正确的吗?
错误 CMM是指"能力成熟度模型",其英文全称为Capability Maturity Model for Software,英文缩写为SW-CMM,简称CMM。它是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。
下面属于软件定义阶段任务的是( ) 需求分析 软件测试 详细设计 系统维护
需求分析
如果在一个软件开发过程中的不同阶段引入相同的变动,()阶段付出的代价最小。 * 需求分析 * 设计 * 编码 * 测试
需求分析
下面属于软件定义阶段任务的是( )。 需求分析 软件测试 详细设计 系统维护
需求分析 There are usually six stages in this cycle: analysis, design, development and testing, implementation, documentation evaluation. An alternative to the SDLC is rapid application development, which combines prototyping, joint application development and implementation of CASE tools. The advantages of RAD are speed, reduced development cost, and active user involvement in the development process. 【解析】软件生命周期分为 3 个阶段: 软件定义阶段,任务是确定软件开发工作必须完成的目标,确定工程的可行性; 软件开发阶段,任务是具体完成设计和实现定义阶段所定义的软件,通常包括总体设计、详细设计、编码和测试; 软件维护阶段,任务是使软件在运行中持久地满足用户的需要。需求分析属于软件定义阶段的任务。故本题答案为 A 选项。
自底向上集成测试过程中,需要给每个被测模块构造()。 正确答案: A 你的答案: B (错误) 驱动模块 driver 存根模块(桩模块) stub 底层模块 顶层模块
Login (major), Home (minor modules), User. If Login is ready but not for Home&User, then use stubs (dummy code) simulate Home&User. If Home&User is ready but not for Login, then use drivers to simulate Login. 自底向上需要驱动模块,自顶向下需要桩模块 自顶向下的集成是从主控模块(主程序,即根结点)开始,按照系统程序结构,沿着控制层次从上而下,逐渐将各模块组装起来。在从上向下的集成测试过程中,需对那些未经集成的模块开发桩模块。在集成过程中,可以采用宽度优先或深度优先的策略向下推进。 自底向上的集成是从最底层模块(即叶子结点)开始,按照调用图的结构,从下而上,逐层将各模块组装起来。在从下而上的集成测试环境中,需对那些未经集成测试的模块开发驱动模块。
下面不能作为软件需求分析工具的是( )。 PAD图 数据字典(DD) 数据流程图(DFD图) 判定树
PAD图 【解析】需求分析方法可以分为结构化分析方法和面向对象的分析方法,结构化分析工具包括:数据流图( DFD )、数据字典( DD )、结构化英语、判定表和判定树等。 面向对象分析主要由对象模型、动态模型、功能模型组成,其中对象模型是最基本、最重要、最核心的; 面向对象建模得到的模型包含系统的三个要素:静态结构(对象模型)、交互次序(动态模型)、数据变换(功能模型); 对象模型的五个层次:主题层、类与对象层、结构层、属性层、服务层。 PAD 图是过程设计工具,所以 A 选项正确。
ISO 的软件质量评价模型由3层组成,其中用于评价设计质量的准则是( ) SQIC SQMC SQRC SQDC
SQDC software quality design comment.软件质量设计评价
Systems Analysis and Design
Systems Analysis and Design, an interdisciplinary part of science, may refer to: Systems analysis, a method of studying a system by examining its component parts and their interactions Structured data analysis (systems analysis), analysing the flow of information within an organization with data-flow diagrams Systems design, the process of defining the architecture, components, and data of a system to satisfy specified requirements Object-oriented analysis and design, an approach to analysis and design of an application, system, or business that emphasizes modularity and visual modeling Service-oriented analysis and design, a method of Service-oriented modeling to design business systems Structured analysis, methods in software engineering for converting specified requirements into software programs and hardware configurations Structured systems analysis and design method, a systems approach to the analysis and design of information systems
Software quality might be defined as conformance to explicitly stated requirements, implicit requirements and standards.
TRUE software quality = Confrom(correct explicit/implicit requirement + standard)
One reason that version control is difficult for WebApps is that in an uncontrolled environment, you can have multiple authors making changes to the same files from multiple locations without any realizing it.
True
Which is NOT one of the key questions that is answered by each team member at each daily Scrum meeting? _____ What did you do since the last meeting? What obstacles are you encountering? What is the cause of the problems you are encountering? What do you plan to accomplish at the next team meeting?
What is the cause of the problems you are encountering?
范围说明书 (Project Scope Description) 是项目队伍与项目客户之间通过确定项目[目标]及[主要]的[项目可交付成果]而达成[协议]的基础
Yes (项目文档) 在进行范围确定前,一定要有范围说明书,因为范围说明书详细说明了为什么要进行这个项目,明确了项目的目标和主要的可交付成果,是项目班子和任务委托者之间签订协议的基础,也是未来项目实施的基础,并且随着项目的不断实施进展,需要对范围说明进行修改和细化,以反映项目本身和外部环境的变化。在实际的项目实施中,不管是对于项目还是子项目,项目管理人员都要编写其各自的项目范围说明书。
从()方面验证软件需求的正确性。 现实性 有效性 完整性 一致性
all
软件工程方法中普遍定义的方法之一是结构化生命周期方法(SLC方法),下述哪一个论述不具有SLC方法的主要特征( ) 严格定义需求 划分开发阶段 规范文档格式 分析控制流程
分析控制流程 1、根据需求设计系统 要求在明确用户需求之前,不得进行下一阶段的工作。 其目的是:保证工作质量和以后各阶段开发的正确性,减少系统开发的盲目性。 2、严格按阶段进行 对生命周期的各个阶段雅阁划分,每个阶段有其明确的任务和目标,而各个阶段又可被分为若干工作和步骤。 其目的是:便与计划管理和控制,前阶段工作成果是后阶段工作的依据,基础扎实,不返工。 3、文档标准化和规范化 要求文档采用标准化、规范化、确定的格式和术语以及图形图表。 其目的是:保证通信内容的正确理解,使系统开发人员及用户有共同的语言。 4、分解和综合 将系统划分为相互联系又相对独立的子系统直至模块 其目的是:分解使复杂的系统简单化,便于设计和实施。综合使已实施的子系统成为完整的系统以体现系统的总体功能。 5、强调阶段成果审定和检验 阶段成果需得到用户、管理人员和专家认可。 其目的是:减少系统开发工作中的隐患。 1、系统开发准备阶段 2、调查研究及可行性研究阶段 3、系统分析阶段 4、系统设计阶段 5、系统实施阶段 6、维护和评价接
关于建立软件原型的目标,不包含以下___。 可应对客户需求的频繁变更 可应对客户需求的不断扩展 在短时间内让用户对未来软件有直观体验 加快软件开发的速度
加快软件开发的速度
在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高 ( ) 结构化方法 原型化方法 面向对象的方法 控制流方法
原型化方法 http://www.cnitpm.com/pm/8297.html https://blog.csdn.net/m8396017/article/details/51355757
在面向数据流的设计方法中,一般把数据流图中的数据划分为以下哪两种。 数据流和事务流 变换流和数据流 变换流和事务流 控制流和事务流
变换流和事务流 在面向数据流的设计方法中,一般把数据流图中的数据划分 变换流和事务流 交换流:信息沿输入通路进入系统,同时由外部形式变换为内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。 事务流:沿传入路径进入系统,由外部形式变换为内部形式后到达事务中心,事务中心根据 数据项 计值结果从若干动作路径中选定一条执行。有这样形状的成为事务流。
软件文档是软件工程实施中的重要部分,它不仅是软件开发各阶段的重要依据,而且影响软件的_______ 可理解性 可维护性 可扩展性 可移植
可维护性
软件维护产生的副作用,是指( )。 开发时的错误 隐含的错误 运行时误操作 因修改软件而造成的错误
因修改软件而造成的错误 维护成本中 无形的代价包括: 1. 维护活动占用了其他软件开发可用的资源,使资源的利用率降低; 2. 一些修复或修改请求得不到及时安排,使客户满意度下降; 3. 维护的结果把一些新的潜在的错误引入软件,降低了软件质量; 符合题意 4. 将软件人员抽调到维护工作中,使得其他软件开发过程收到干扰。
各种软件维护的类型中最重要的是 ( ) 。 完善性维护 纠错性维护 适应性维护 预防性维护
完善性维护 https://blog.csdn.net/qingfeng812/article/details/8966016 https://blog.csdn.net/zhongguomao/article/details/82915795
快速原型模型的主要特点之一是( )。 开发完毕才见到产品 及早提供全部完整的软件产品 开发完毕后才见到工作软件 及早提供工作软件
快速原型模型需要迅速建造一个可以运行的软件原型,以便理解和澄清问题,使开发人员与用户达成共识,最终在确定的客户需求基础上开发客户满意的软件产品。快速原型模型允许在需求分析阶段对软件的需求进行初步而非完全的分析和定义,快速设计开发出软件系统的原型,该原型向用户展示待开发软件的全部或部分功能和性能;用户对该原型进行测试评定,给出具体改进意见以丰富细化软件需求;开发人员据此对软件进行修改完善,直至用户满意认可之后,进行软件的完整实现及测试、维护。
于程序模块优化的启发式规则有若干条,以下规则中不符合优化原则的是()。 * 通过模块的合并和分解,降低模块的耦合度,提高模块的内聚性 * 提高上层模块的扇出,减少模块调用的层次 * 将模块的作用范围限制在模块的控制范围之内 * 降低模块之间接口的复杂性,避免"病态连接"
提高上层模块的扇出,减少模块调用的层次
结构设计是一种应用最广泛的系统设计方法,是以()为基础、自顶向下、逐步求精和模块化的过程。 数据流 数据流图 数据库 数据结构
数据流
结构化开发方法描述用户需求时,需要建立数据模型、功能模型、行为模型。描述功能模 型 的 图 形 化 工 具 有 ( ) 数据流图 ER 图 系统流程图 层次方框图或称结构图structure chart
数据流图 系统流程图
数据字典(DD)所定义的对象都包含于 数据流图(DFD图) 程序流程图 软件结构图 方框图
数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。 数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。 数据字典(Data dictionary)是一种用户可以访问的记录数据库和应用程序源数据的目录,其定义的对象包含于数据流图。 主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由DBMS自动更新的数据字典。被动数据字典是指修改时必须手工更新其内容的数据字典。
结构化分析模型的核心是( ),它描述了所有的在目标系统中使用的和生成的数据对象。 顺序图 数据词典 数据流图 用例图
数据词典 ①结构化分析使用的主要手段有数据流图、数据字典、结构化语言、E-R图、判定表以及判定树等,其中数据字典是结构方法的核心,E-R图接近人们的思维方式; ②用例图是描述系统功能的模型,是对功能行为的建模; ③顺序图表示各个对象或功能行为的执行顺序与时间。
判断下列类之间的相互关系,把相应编号填写在括号中。 大学 - 学院() 整体-部分 一般-特殊 实例联接 都不是
整体-部分
为什么说「模块的合理划分」比增加一些「代码注释」更使系统易于维护,合理的模块划分可提高「问题定位」和「回归测试」的效率
是
为什么说算法的优劣有时对系统性能指标的影响并不是最关键的,单个模块性能的提高,对系统性能提升作用有限
是
基于DFD的传统体系结构设计方法最主要的缺点是当数据流变化的时候,系统结构也要发生变化
是
对现在的软件开发而言,传统的瀑布模型实用价值是仍然有实用价值,软件开发团队需要先用好瀑布模型,然后再考虑与其他模型综合
是
以下描述最好地说明了基线(soft baseline)在软件管理中的作用基线是项目开发过程的制品经过正式评审并被相关人员一致同意,可以作为以后项目开发的基础
是 (configuration management, 組態管理, 配置管理) 基线是软件文档或源码(或其它产出物)的一个稳定版本,它是进一步开发的基础.所以,当基线形成后,项目负责SCM的人需要通知相关人员基线已经形成,并且哪儿可以找到这基线了的版本.这个过程可被认为内部的发布.至于对外的正式发布,更是应当从基线了的版本中发布. 参与项目的开发人员将基线所代表的各版本的目录和文件填入他们的工作区。随着工作的进展,基线将合并自从上次建立基线以来开发人员已经交付的工作。变更一旦并入基线,开发人员就采用新的基线,以与项目中的变更保持同步。调整基线将把集成工作区中的文件并入开发工作区。 建立基线的三大原因是:重现性、可追踪性和报告
变更控制是一项最重要的软件配置任务,其中 " 检出 " 和 ______ 处理实现了两个重要的变更控制要素,即存取控制和同步控制。 登入 管理 填写变更要求 审查
检出 " 和 " 登入 " 处理实现了两个重要的变更控制要素。 以下三個領域:應變管理、組態管理 和變更控制之間有相當大的重疊和混亂。下面的定義是變更控制尚未與其他領域整合的定義。 部份專家以下列六個步驟描述變更控制: 記錄/分類 評估 計畫 建立/測試 實施 結束/獲得同意
在程序调试时,找出错误的位置和性质比改正该错误更难。( )
正确
在面向对象程序中,使用继承机制是实现共享和提高重用程度的主要途径。
正确
数据流图与程序流程图的主要区别是程序流程图中各处理框之间有严格的时间上的顺序。而数据流图只反映数据的流向,不反映处理逻辑的先后。请问这句话的说法是正确的吗?
正确
通过建立业务模型,我们能够分析领域中的角色、功能关系、组织架构、业务规则等
正确
需求稳定性的作用是可以检查需求管理与开发的效率和控制水平 正确答案: A 你的答案: B (错误) 是 否
正确
面向对象的集成测试重点在于发现不同类之间的协作错误。请问这句话的说法是正确的吗?
正确
RUP模型更好地反映了现代软件工程的要求,是因为更符合UP的理念,考虑的软件过程模型比较全面
正确 Rational Unified Process,RUP
在评价一个软件系统的易用性时,你会更多地关注运用合理的设计,使得用户很容易使用系统达到自己的应用目的
正确 易用性 = 合理設計 -> 用戶易用系統逹到自己目的
在进行需求分析时需同时考虑维护问题。()
正确 需求分析阶段的任务,张海藩老师第六版软件工程书中P57页,要考虑将来可能提出的要求。 应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求,这样做的目的时,在设计过程中对系统将来可能的扩充和修改预作准备,以便一旦确实需要时能比较容易地进行这种扩充和修改。 这其实就是考虑到将来的维护问题,所以这个答案我觉得应该是对的。
下列哪些场景适合使用装饰者模式 A 需要动态的、透明的为一个对象添加职责,即不影响其他对象 B 有多个表现行为,需要在运行时动态选择具体要执行的行为 C 需要动态的给一个对象添加功能,这些功能可以再动态的撤销 D 需要增加由一些基本功能的排列组合而产生的非常大量的功能,从而使继承关系变的
正确答案: A C D 你的答案: A B (错误) 首先要搞清楚什么是装饰模式 Decorator 装饰模式动态地给一个对象添加一些额外的职责,就增加功能来说,它比生成子类更灵活。也可以这样说,装饰模式把复杂类中的核心职责和装饰功能区分开了,这样既简化了复杂类,有去除了相关类中重复的装饰逻辑。 装饰模式没有通过继承原有类来扩展功能,但却达到了一样的目的,而且比继承更加灵活,所以可以说装饰模式是继承关系的一种替代方案。 得出适合使用装饰着模式的场景: 需要动态的、透明的为一个对象添加职责,即不影响其他对象。 需要动态的给一个对象添加功能,这些功能可以再动态的撤销。 需要增加由一些基本功能的排列组合而产生的非常大量的功能,从而使继承关系变的不现实。
关于软件项目管理,说法正确的是()。 确保软件产品质量,需要注重需求获取和控制需求变更 即将延迟的软件项目,项目管理者可以通过增加新的人员提高总生产率。 针对工作量是12PM 的项目,12 人团队比 6 人团队节省一个月的开发时间。 在寻找关键任务过程中,采用 Gantt 图比工程网络图好。
正确答案: A 你的答案: A (正确)
软件系统需求 (Software requirement analysis)常常分为哪几种?( ) 用户需求 功能需求 非功能需求 领域需求
正确答案: B C D 你的答案: B C (错误) 软件需求包括三个层次--业务需求、用户需求和功能需求,也包括非功能需求; 软件系统需求常常分为--功能需求、非功能需求、领域需求。
下面关于面向对象方法中消息的叙述,不正确的是( )。 键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息 操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息 应用程序之间可以相互发送消息 发送与接收消息的通信机制与传统的子程序调用机制不同
正确答案: B 你的答案: B (正确) 操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息
模块内聚度越高,说明模块内各成分彼此结合的程序越_______。 松散 紧密 无法判断 相等
正确答案: B 你的答案: C (错误)
实现单例模式的类具有? 没有公有构造方法,一个公有静态工厂方法,和一个静态实例变量 没有公有构造方法,有一个私有静态工厂方法,和一个静态实例变量 有公有构造方法,没有静态工厂方法和静态实例变量 没有公有构造方法,没有公有静态工厂方法,也没有静态实例变量
没有公有构造方法,一个公有静态工厂方法,和一个静态实例变量
当使用自顶向下渐增式方法将模块结合到程序中,有()两种集成策略。 非渐增式集成 渐增式集成 深度优先集成 宽度优先集成
深度优先集成 宽度优先集成
通用的软件开发过程模型中,哪种模型对软件需求的变化应变能力差?( ) 瀑布模型 进化式开发模型 基于组件的软件工程 增量式开发
瀑布模型
分析员是( ) 户中系统的直接使用者 用户和软件人员的中间人 软件的编程人员 用户和软件人员的领导
用户和软件人员的中间人
在选择开发方法时,有些情况不适合使用原型法,以下选项中不能使用快速原型法的情况是哪个? 系统的使用范围变化很大 系统的设计方案难以确定 用户的需求模糊不清 用户数据资源缺乏组织和管理
用户数据资源缺乏组织和管理 解析:快速原型法的基本思想是在系统开发的初期,在对用户需求初步调查的基础上,以快速的方法首先构造一个可以工作的系统雏形(原型)。将这个原型提供给用户使用,听取他们的意见。然后修正原型,补充新的数据、数据结构和应用模型,形成新的原型。经过几次迭代后,可以达到用户与开发者之间的完全沟通,消除各种误解,形成明确的系统定义及用户界面要求。至此,或者以最后的原型为基础,修改完善成为实际生产运行的系统;或者舍弃原型重新开发新的系统。 快速原型法的特点如下: (1)引入了迭代的概念。 (2)自始至终强调用户的参与。 (3)在用户需求分析、系统功能描述以及系统实现方法等方面允许有较大的灵活性。用户需求可以不十分明确,系统功能描述也可以不完整,对于界面的要求也可以逐步完善。 (4)可以用来评价几种不同的设计方案。 (5)可以用来建立系统的某个部分。 (6)它不排斥传统生命周期法中采用的大量行之有效的方法、工具,是与传统方法互为补充的方法。快速原型法是针对传统生命周期法提出的一种新的开发技术,但同生命周期法一样,同样需要与用户/设计者一起做需求分析,确定系统的最基本的数据结构、详细文档、基本开发工具等。在这些基本条件具备的情况下,再动手建造原型。然后由设计者与建造者一起不断完善原型,直到满足设计者(用户)的要求为止。从这个角度讲,与其说原型技术是一种新的软件开发技术,倒不如说是改进瀑布模型设计过程的一种新策略。利用原型技术开发的软件要有良好的可维护性,修改原型的同时要修改相应的文档,与传统瀑布模型相比,原型技术的可维护性更为重要。
以下哪种测试方法不属于白盒覆盖标准( ) 基本路径 边界值分析 循环覆盖 逻辑覆盖
白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、 逻辑覆盖 法、基本 路径测试 法、 域测试 、符号测试、 路径覆盖 和程序变异。 白盒测试法的覆盖标准有 逻辑覆盖 、循环覆盖和基本路径测试。 所以是题目错了吧
在开发软件时,()可用来提高程序员的工作效率。 程序开发环境 操作系统的作业管理功能 编译程序的优化功能 并行运算的大型计算机
程序开发环境
结构化程序设计主要强调的是( )。 程序的规模 程序的效率 程序设计语言的先进性 程序易读性
程序易读性
如果我们的程序需要经常在多种算法中相互替换,我们应该选用哪种设计模式: 工厂方法模式 策略模式 适配器模式 责任模式
策略模式
Structured systems analysis and design method (SSADM) 结构化系统分析方法: 结构化系统分析方法是运用系统工程原理于大型软件开发的产物,就是采用"自顶向下,由外到内,逐层分解"的思想对复杂的系统进行分解化简,从而有效地控制了系统分析每一步的难度,并运用数据流图、加工说明和数据字典作为表达工具的一种系统分析技术
結構化系統分析及設計方法是一種瀑布模型的設計方法,是針對資訊系統的分析及設計。結構化系統分析及設計方法是一種嚴格由[文件]主導的系統設計方法,和例如的後來出現的敏捷软件开发設計方法(如Scrum及動態系統開發方法(英语:Dynamic Systems Development Method)等)恰好相反。 邏輯資料建模(Logical data modeling) 資料流建模(Data Flow Modeling) 實體表現建模(Entity Behavior Modeling)
在软件设计和编码过程中,采取()的做法将使软件更加容易理解和维护。 良好的程序结构,有无文档均可 使用标准或规定之外的语句 编写详细正确的文档,采用良好的程序结构 尽量减少程序中的注释
编写详细正确的文档,采用良好的程序结构
专门设计用于支持过程反复的软件过程模型有( ) 瀑布模型 螺旋式开发模型 增量式开发模型 基于组件的软件过程模型
螺旋式开发模型 增量式开发模型
具有"增加了风险分析过程"特征的软件开发模型是()。 传统瀑布模型 快速原型模型 增量模型 螺旋模型
螺旋模型
设计模式中,属于结构型模式的有哪些? 状态模式 装饰模式 代理模式 观察者模式
装饰模式, 代理模式 结构型设计模式是从程序的结构上解决模块之间的耦合问题。包括以下七种模式: 1. Adapte适配器模式 2. Bridge 桥接模式 3. Composite 组合模式 4.Decorator装饰模式 5. Facade 外观模式 6. Flyweight 享元模式 7. Proxy 代理模式 1.Adapte适配器模式:Adapter 模式通过类的继承或者对象的组合侧重于转换已有的接口,类适配器采用"多继承"的实现方式,带来了不良的高耦合,所以一般不推荐使用。对象适配器采用"对象组合"的方式,更符合松耦合精神。 例如:笔记本 电源适配器,可以将220v转化为适合笔记本使用的电压。 2.Bridge 桥接模式:将抽象部分与实现部分分离,使它们都可以独立的变化。 减少因变化带来的代码的修改量。 例如:经典例子,电灯开关,开关的目的是将设备打开或关闭,产生的效果不同。 3. Composite 组合模式: 将对象组合成树形结构以表示"部分 - 整体"的层次结构。 Composite 模式使得客户对单个对象和组合对象的使用具有一致性。从而解决了 解决客户程序与复杂对象容器的解耦,即: 通过继承统一的接口,我们可以将容器对象及其子对象看成同一类对象使用,以减少对象使用中的复杂度。 例如: 让用户一致地使用单个对象和组合对象,1 +2 和( 1+1 ) + ( 2*3 )都是合法的表达式。 单个与整体都可以进行加法运算符的操作。 4.Decorator装饰模式:动态地给一个对象添加一些额外的职责。就增加功能来说, Decorator 模式相比生成子类更为灵活。 [GOF 《设计模式》 ] Decorator 模式采用对象组合而非继承的手法,实现了在运行时动态的扩展对象功能的能力,而且可以根据需要扩展多个功能,避免了单独使用继承带来的"灵活性差"和"多子类衍生问题"。同时它很好地符合面向对象设计原则中"优先使用对象组合而非继承"和"开放 - 封闭"原则。 例如:一幅画,可以直接挂到墙上,也可以加上框架和镶上玻璃后,再挂到墙上。 5. Facade 外观模式: 为子系统中的一组接口提供一个一致的界面, 简化接口。 例如:我们拨打10086,可以办理,彩铃,手机报,全时通等业务(子对象),而10086则是为子对象所使用的一致界面。 6. Flyweight 享元模式: 运用共享技术有效地支持大量细粒度的对象。 [GOF 《设计模式》 ]。 解决: 面向对象的思想很好地解决了抽象性的问题,一般也不会出现性能上的问题。但是在某些情况下,对象的数量可能会太多,从而导致了运行时的代价。那么我们如何去避免大量细粒度的对象,同时又不影响客户程序使用面向对象的方式进行操作 ,享元模式的出现恰好解决了该问题。 例如: 公共交换电话网( PSTN )是享元的一个例子。有一些资源例如拨号音发生器、振铃发生器和拨号接收器是必须由所有用户共享的。当一个用户拿起听筒打电话时,他不需要知道使用了多少资源。对于用户而言所有的事情就是有拨号音,拨打号码,拨通电话。 7. Proxy 代理模式: 为其他对象提供一种代理以控制这个对象的访问。 解决直接访问某些对象是出现的问题。 例如:律师本身就是我们维权的一个代理!
开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( )。 正确答案: C 你的答案: A (错误) 软件工程 软件周期 软件危机 (Software Crisis) 软件产生
軟體危機其原因,銜接到硬體的整體複雜度,與軟體開發流程。危機表現在幾個方面: 專案運行超出預算。 專案運行超過時間。 軟體品質低落。 軟體通常不符合需求。 專案無法管理,且程式碼難以維護。
一段可以 运行的程序称之为软件。请问这句话的说法是正确的吗?
软件=程序+数据+文档
需求分析中开发人员要从用户那里了解( ) 软件做什么 用户使用界面 输入的信息 软件的规模
软件做什么
造成软件危机的主要原因是以下里的哪几个? ①用户使用不当 ② 硬件不可靠 ③ 对软件的错误认识 ④ 缺乏好的开发方法和手段 ⑤ 软件本身特点 ⑥ 开发效率低 正确答案: D 你的答案: B (错误) (①②③) (②③④) (③⑤⑥) (④⑤⑥)
软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
检验和有效性验证过程中,属于系统检查和分析中的动态方法是( ) 自动静态分析 软件调试 软件审查 软件测试
软件测试
软件需求规格说明的内容应包括( ) 软件的主要功能 算法详细设计 E-R模型 软件总体结构
软件的主要功能 软件需求规格说明应重点描述软件的目标,软件的功能需求、性能需求、外部接口、属性及约束条件等。功能需求是软件需求规格说明,给出软件要执行什么功能的详尽描述。性能需求是指定量的描述软件系统应满足的具体性能需求,即各种软件功能的速度、响应时间、恢复时间。外部接口指软件如何与人、系统的硬件及其他硬件和其他软件进行交互。属性是指与软件有关的质量属性,如正确性、可用性、可靠性、安全性、可维护性等。约束条件包括影响软件实现的各种设计约束,如使用的标准、编程语言、数据库完整性方针、资源限制、运行环境等方面的要求。故本题答案为 A 选项。
软件生命周期中所花费用最多的阶段是( ) 详细设计 软件编码 软件测试 软件维护
软件编码
如果一个软件企业希望达到成熟度(CMMI) 等级2级目标,那么该企业就要在软件项目的开发过程中执行该成熟度等级中的七个过程域中的所有( ) 特定目标 实践 共性目标 过程域
过程域 CMMI将能力成熟度分为5个级别:初始级,已管理级,已定义级,量化管理级,优化级。 除了成熟度等级,CMMI还有一个重要的概念是过程域(Process Area)。过程域指出了达到某个成熟度等级必须要解决的一族问题。除了初始级以外,每个成熟度等级都有若干个过程域
确认测试的依据是()。 可行性分析报告 需求分析报告 概要设计报告 详细设计报告
需求分析报告 根据不同的测试阶段,测试可以分为单元测试、集成测试、系统测试和验收测试。 体现了测试由小到大、又内至外、循序渐进的测试过程和分而治之的思想。 单元测试的粒度最小,一般由开发小组采用白盒方式来测试,主要测试单元是否符合"设计"。 集成测试界于单元测试和系统测试之间,起到"桥梁作用",一般由开发小组采用白盒加黑盒的方式来测试,既验证"设计",又验证"需求"。 系统测试的粒度最大,一般由独立测试小组采用黑盒方式来测试,主要测试系统是否符合"需求规格说明书"。 验收测试与系统测试相似,主要区别是测试人员不同,验收测试由用户执行。 黑盒测试不考虑程序内部结构和逻辑结构,主要是用来测试系统的功能是否满足需求规格说明书。一般会有一个输入值,一个输出值,和期望值做比较。 白盒测试主要应用在单元测试阶段,主要是对代码级的测试,针对程序内部逻辑结构,测试手段有:语句覆盖、判定覆盖、条件覆盖、路径覆盖、条件组合覆盖 集成测试主要用来测试模块与模块之间的接口,同时还要测试一些主要业务功能。 系统测试是在经过以上各阶段测试确认之后,把系统完整地模拟客户环境来进行的测试
下面不属于软件需求分析阶段主要工作的是 需求变更申请 需求分析 需求评审 需求获取
需求变更申请 【解析】需求分析阶段的工作可概括为4个方面:①需求获取。②需求分析。③编写需求规格说明书。④需求审评。
以下关于数据流图中加工的编号说法错误的是( )。 顶层图的图编号为1 子图的编号就是父图中相应加工的编号 子图中加工的编号由子图号、小数点、局部加工编号连接而成 在一张图的内部用局部加工编号就可区别不同的加工
顶层图的图编号为1
软件再工程过程用于()维护中,帮助需要变更的旧软件系统进行重新设计体系结构、编码和测试。 完善性 适应性 预防性 纠错性
预防性 软件再工程(software reengineering)是指对既存软件系统进行调查,并重新开发的过程,其目的是重新審視現有的系統,以便進一步利用新技術來改善系統或促進現存系統的再利用。
软件设计中划分模块的一个准则是( )。 高内聚低耦合
高内聚低耦合
软件维护的基本类型包括( ) 纠正性维护 适应性维护 遗留系统进化 完善性维护
???遗留系统进化 完善性维护 https://baike.baidu.com/item/%E8%BD%AF%E4%BB%B6%E7%BB%B4%E6%8A%A4
