敏捷软件过程强调:让客户满意和软件应尽早增量发布;小而高度自主的项目团队;非正式的方法;最小化软件工程工作产品以及整体精简开发。()不是采用这种软件开发过程的原因。
第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题:
A.数据驱动软件的设计和实现
B.性能驱动软件的设计和实现
C.用例驱动软件的设计和实现
D.计划驱动软件的设计和实现
第4题:
现有一种软件开发方法,它将软件开发过程分成以下阶段:需求分析、原型开发和评价、系统设计和系统实现。这种软件开发方法称为()。
第5题:
软件生命周期是指( )。
A.软件的定义和开发阶段
B.软件的需求分析、设计与实现阶段
C.软件的开发阶段
D.软件产品从提出、实现、使用维护到停止使用退役的过程
第6题:
第7题:
敏捷软件过程强调:让客户满意和软件尽早增量发布;小而高度自主的项目团队;非正式的方法;最小化软件工程工作产品,以及整体精简开发。()不是采用这种软件开发过程的原因。
第8题:
在软件开发项目中强调"个体和交互胜过过程和工具,可以工作的软件胜过全面的文档,客户合作胜过合同谈判,响应变化胜过遵循计划",是()的基本思想。
第9题:
敏捷开发方法通过()管理不可预测性。
第10题:
下面的()不是敏捷开发方法的特点
第11题:
软件生命周期是指()。
第12题:
非常仔细地收集和定义需求
制定详细的开发计划
软件增量必须在较短周期内发布
软件过程必须逐渐适应变化
选项A和B
选项C和D
第13题:
● 在软件开发项目中强调“个体和交互胜过过程和工具,可以工作的软件胜过全面的文档,客户合作胜过合同谈判,响应变化胜过遵循计划” ,是(10)的基本思想。
(10)
A.结构化方法
B.敏捷方法
C.快速原型方法
D.增量迭代方法
第14题:
软件生命周期是指()。
A.软件产品从提出、实现、使用维护到停止使用退役的过程
B.软件的需求分析、设计与实现
C.软件的开发与管理
D.软件的实现和维护
第15题:
A. 系统需求和结构设计
B. 软件需求分析
C. 软件设计
D. 软件实现
第16题:
软件生命周期是指
A.软件产品从提出、实现、使用维护到停止使用退役的过程
B.软件从需求分析、设计、实现到测试完成的过程
C.软件的开发过程
D.软件的运行维护过程
第17题:
试题一论模型驱动的软件开发方法及其应用
模型驱动架构( MDA)是对象管理组织(OMG)提出的一种新的软件开发方法,它强调由软件系统的建模行为驱动整个系统的开发过程,来完成系统的需求分析、架构设计、构建、测试、部署和运行维护等工作。与传统的UML模型相比,MDA能够创建出机器可读和高度抽象的模型,这种模型通过转换( Transformation)技术可自动转换为代码、测试脚本、数据库定义以及各种平台的部署描述。通过使用MDA技术,可以有效解决传统软件开发过程中的生产效率问题、系统移植问题、互操作问题以及文档和系统后期维护问题。
请围绕“模型驱动的软件开发方法及其应用”论题,依次从以下三个方面进行论述。
1.概要叙述你参与实施的模型驱动的软件开发项目以及你所担任的主要工作。
2.阐述模型驱动的软件开发过程中的主要活动,并论述模型驱动的软件开发过程
与传统的软件开发过程的区别。
3.阐述在进行模型驱动的软件开发时遇到了哪些问题,如何解决。
写作要点:
一、论文中要具体介绍组织的业务背景、组织结构、软件系统的架构、采用的技术
等内容和担任的实际工作。
二、相关的内容包括:
1.模型驱动的软件开发过程中的主要活动包括:
(1)需求分析人员根据领域需求得到描述软件系统外部特征的计算无关模型(CIM);
(2)在对CIM进行分析的基础上得到平台无关模型(PIM),并根据业务逻辑进一步精化PIM;
(3)进行PIM到平台特定模型(PSM)的模型转换;
(4)将每个PSM转换为实现特定模型(ISM),生成应用程序代码,并进行测试。
2.与传统的软件开发过程相比,模型驱动的软件开发方法有5个主要区别。
(1)自动实现模型变换。
传统的开发过程中,模型到模型的变换,或模型到代码的变换都是手工完成的;而模型驱动的开发过程中,模型变换都是由相关工具自动完成的,PIM到PSM、PSM到
ISM都可以自动转换实现。
(2) 模型是开发产品,也是程序生成的基础设施。
模型驱动的开发过程中,模型是软件开发生命周期中的核心产品,通过一系列转换
最终可以自动生成执行代码,是产生执行代码的基础设施。而在传统开发过程中模型只是分析人员、设计人员进行分析与交流的文档与图标,不能生成可用的应用程序代码。
(3)模型变换过程与代码生成过程同步,可维护性强。
模型驱动开发过程中,执行代码是由模型通过转换直接生成的,保证了模型与代码的同步。开发人员维护系统的重心不在是传统开发方法中的程序代码,而是与业务逻辑
相关、与技术平台无关的平台无关模型PIM。
(4)业务逻辑模型与实现技术平台分离。
需求分析阶段生成的PIM模型与开发技术、开发平台以及实现技术无关,并且PIM模型可以根据不同的技术平台,自动生成以模型为基础的、适用于不同技术平台的软件系统。
(5)提高了开发效率与软件质量。
模型驱动开发的模型架构代表了对系统不同层次的抽象,使得开发人员更加清晰地了解系统的整个架构,而不会被具体的实现技术所困扰。开发人员专注于根据系统业务
逻辑构建PIM,通过代码生成技术自动生成实现代码,减少了由于人为因素导致的系统实现错误。
三、在进行模型驱动的软件开发时可能存在的问题包括:如何对CIM和PIM进行建模;如何进行模型之间的转换,特别是PIM到PSM的转换;如何根据需求进行实现
平台选择;如何根据PSM生成ISM(代码);如何进行系统测试;等等。
第18题:
第19题:
在软件开发过程中,系统测试阶段的测试目标来自于()阶段。
第20题:
软件的生命周期是指()。
第21题:
以下哪些是软件开发的要求()
第22题:
敏捷软件过程强调:让客户满意和软件尽早发布;小而高度自主的软件团队:非正式开发;最小化软件工程工作产品以及整体精简开发。()不是采用这个软件开发过程的原因。
第23题:
开发人员的团队组织
项目资金筹备
建模与实现的方法和技术
软件工程过程
开发工具和工作产品
基础设施
第24题:
软件开发应该遵循严格受控的过程和详细的项目规划
客户应该和开发团队在一起密切地工作
通过高度迭代和增量式的软件开发过程响应变化
通过频繁地提供可以工作的软件来搜集人们对产品的反馈