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