敏捷软件过程强调:让客户满意和软件尽早增量发布;小而高度自主的项目团队;非正式的方法;最小化软件工程工作产品,以及整体精简开发。()不是采用这种软件开发过程的原因。
第1题:
A.难以提前预测哪些需求是稳定的和哪些需求会发生变化
B.对于软件项目开发来说,设计和实现可以做到基本分离
C.从制订计划的角度看,分析、设计、测试并不容易预测
D.可执行原型和部分实现的可运行系统是了解用户需求和反馈的有效媒介
第2题:
● 一个软件系统的生存周期包含可行性分析和项目开发计划、需求分析、设计(概要设计和详细设计)、编码、测试和维护等活动,其中 (50)是软件工程的技术核心,其任务是确定如何实现软件系统。
(50)
A.可行性分析和项目开发计划
B.需求分析
C.设计
D.编码
第3题:
试题一 论迭代式软件开发过程与方法
软件项目的成功实施,离不开有效的软件开发过程与开发方法。相对于传统的瀑布型软件开发过程,迭代式软件开发过程可以在需求被完整确定之前启动,并在一次迭代中完成系统的一部分功能或业务逻辑的开发,再通过客户的反馈来细化需求,并开始新一轮的迭代。这种方法可以控制项目的风险,提高软件开发的成功率和生产率。目前,主要的迭代式开发过程和方法包括统一开发过程 RUP和敏捷开发方法。
请围绕“迭代式软件开发过程与方法”论题,依次从以下三个方面进行论述。
1.概要叙述你参与管理和开发的软件项目以及你在其中所担任的主要工作。
2.论述迭代式过程模型相对于瀑布式过程模型的优点。详细论述统一软件开发过程 RUP 的生命周期模型和迭代策略;或者论述敏捷开发方法的特点和适用的情况,并列出目前主要的敏捷开发技术中的四种。
3.具体阐述你参与管理和开发的项目中选择使用迭代式软件开发方法的情况,以及具体实施的过程与实际开发效果。
第4题:
A.数据驱动软件的设计和实现
B.性能驱动软件的设计和实现
C.用例驱动软件的设计和实现
D.计划驱动软件的设计和实现
第5题:
论基于架构的软件设计方法及应用 基于架构的软件设计(Architecture-Based Software Design,ABSD)方法以构成软件架构的商业、质量和功能需求等要素来驱动整个软件开发过程。ABSD是一个自顶向下,递归细化的软件开发方法,它以软件系统功能的分解为基础,通过选择架构风格实现质量和商业需求,并强调在架构设计过程中使用软件架构模板。采用ABSD方法,设计活动可以从项目总体功能框架明确后就开始,因此该方法特别适用于开发一些不能预先决定所有需求的软件系统,如软件产品线系统或长生命周期系统等,也可为需求不能在短时间内明确的软件项目提供指导。
请围绕“基于架构的软件开发方法及应用”论题,依次从以下三个方面进行论述。 1. 概要叙述你参与开发的、采用ABSD方法的软件项目以及你在其中所承担的主要工作。 2. 结合项目实际,详细说明采用ABSD方法进行软件开发时,需要经历哪些开发阶段?每个阶段包括哪些主要活动? 3. 阐述你在软件开发的过程中都遇到了哪些实际问题及解决方法。
一、论文中要具体介绍项目的背景与总体需求、系统所采用的技术路线以及你所承担的实际工作。
二、采用ABSD方法进行软件开发时,需要经历架构需求、架构设计、架构文档化、架构复审、架构实现和架构演化六个阶段。
1. 架构需求阶段需要明确用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。其主要活动包括需求获取、标识构件和架构评审。
(1)需求获取活动需要定义开发人员必须实现的软件功能,使得用户能够完成他们的任务,从而满足功能需求。与此同时,还要获得软件质量属性,满足一些非功能性需求。
(2)标识构件活动首先需要获得系统的基本结构,然后对基本结构进行分组,最后将基本结构进行打包成构件。
(3)架构需求评审活动组织一个由系统涉众(用户、系统分析师、架构师、设计实现人员等)组成的小组,对架构需求及相关构件进行审查。审查的主要内容包括所获取的需求是否真实反映了用户需求,构件合并是否合理等。
2. 架构设计阶段是一个迭代过程,利用架构需求生成并调整架构决策。主要活动包括提出架构模型、将已标识的构件映射到架构中、分析构件之间的相互作用、产生系统架构和架构设计评审。
3. 架构文档化的主要活动是对架构设计进行分析与整理,生成架构规格说明书和测试架构需求的质量设计说明书。
4. 在一个主版本的软件架构分析之后,需要安排一次由外部人员(客户代表和领域专家)参加的架构复审。架构复审需要评价架构是否能够满足需求,质量属性需求是否在架构中得以体现、层次是否清晰、构件划分是否合理等。从而标识潜在的风险,及早发现架构设计中的缺陷和错误。
5. 架构实现主要是对架构进行实现的过程,主要活动包括架构分析与设计、构件实现、构件组装和系统测试。
6. 架构演化阶段主要解决用户在系统开发过程中发生的需求变更问题。主要活动包括架构演化计划、构件变动、更新构件的相互作用、构件的组装与测试和技术评审。
三、在软件开发的过程中可能遇到的问题包括:在架构需求获取过程中如何对捕获的架构需求进行筛选和优先级排序;在架构复审过程中如何解决评审人员的意见不一致问题;在架构实现过程中如何根据项目组实际情况选择开发语言与开发平台;在架构演化过程中如何筛选并处理用户的需求变更,等等。
第6题:
A.难以提前预测哪些需求是稳定的和哪些需求会变化
B.对于软件项目开发来说,设计和实现可以做到基本分离
C.从制订计划的角度来看,分析、设计、实现和测试并不容易预测
D.可执行原型和部分实现的可运行系统是了解用户需求和反馈的有效媒介
第7题:
● 在软件开发项目中强调“个体和交互胜过过程和工具,可以工作的软件胜过全面的文档,客户合作胜过合同谈判,响应变化胜过遵循计划” ,是(10)的基本思想。
(10)
A.结构化方法
B.敏捷方法
C.快速原型方法
D.增量迭代方法
第8题:
A.结构化方法
B.敏捷方法
C.快速原型方法
D.增量迭代方法
结构化方法的基本思想是:用系统的思想、系统工程的方法,按用户至上的原则,结构化、模块化、自上而下对信息系统进行分析与设计。"个体和交互胜过过程和工具,可以工作的软件胜过全面的文档,客户合作胜过合同谈判,响应变化胜过遵循计划"这四句话是敏捷宣言.也是敏捷方法的基本思想。原型法在很难全面准确提出用户需求的情况下,本着对用户需求的初步理解,先快速开发一个原型系统,然后通过反复修改来实现用户的最终系统需求。增量迭代方法把整个软件开发周期划分为若干个迭代周期,以架构为中心,按相当小的用例增量构造软件,每次迭代都产生一个可运行的不断改进了的系统原型,一个逐渐向目标系统接近的构架基线,从而达到系统的完全实现。
第9题:
软件生命周期是指()。
A.软件产品从提出、实现、使用维护到停止使用退役的过程
B.软件的需求分析、设计与实现
C.软件的开发与管理
D.软件的实现和维护
第10题:
A. 系统需求和结构设计
B. 软件需求分析
C. 软件设计
D. 软件实现