第二章过程和生命周期的建模
- 格式:doc
- 大小:44.04 KB
- 文档页数:4
【基础题型】判断题【入库题型】判断题在进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。
【答案】B【难度】易【知识点】2过程和生命周期建模\2.1过程的含义【启用状态】启用【审核状态】终审通过【下一题】【基础题型】判断题【入库题型】判断题可行性研究的目的是用最小的代价,在尽可能短的时间内,确定该项目是否值得开发。
【答案】A【难度】易【知识点】2过程和生命周期建模\2.1过程的含义【启用状态】启用【审核状态】终审通过【下一题】【基础题型】判断题【入库题型】判断题可行性研究进一步研究问题定义阶段所确定的问题是否有可行的解。
【答案】A【难度】易【知识点】2过程和生命周期建模\2.1过程的含义【启用状态】启用【审核状态】终审通过【下一题】【基础题型】判断题【入库题型】判断题在可行性研究中最难决断和最关键的问题是经济可行性。
【答案】B【难度】易【知识点】2过程和生命周期建模\2.1过程的含义【启用状态】启用【审核状态】终审通过【下一题】【基础题型】判断题【入库题型】判断题软件工程过程应该以软件设计为中心,关键是编写程序。
【答案】A【难度】易【知识点】2过程和生命周期建模\2.1过程的含义【启用状态】启用【审核状态】终审通过【下一题】【基础题型】判断题【入库题型】判断题软件定义是软件工程的早期阶段,是由系统分析人员单独完成的系统分析、规划和规格描述,确定软件是什么。
【答案】B【难度】易【知识点】2过程和生命周期建模\2.1过程的含义【启用状态】启用【审核状态】终审通过【下一题】【基础题型】判断题【入库题型】判断题系统定义明确之后,应对系统的可行性进行研究。
可行性研究包括经济可行性、社会可行性、系统可行性。
【答案】B【难度】易【知识点】2过程和生命周期建模\2.1过程的含义【启用状态】启用【审核状态】终审通过【下一题】【基础题型】判断题【入库题型】判断题可行性分析中,系统流程图经常用于描述当前运行系统。
第二章软件过程一、软件生命周期软件生命周期(Life Cycle),也称生存周期,指软件产品从提出、产生、发展到成熟,直至衰亡的整个时间段。
软件生命周期的组成阶段:(1) 软件定义阶段:做什么?问题定义→可行性研究→需求分析(2) 软件开发阶段:如何做?总体设计→详细设计→编码和单元测试→综合测试(3) 运行维护阶段:纠错、适应性修改、增强性修改、预防性修改二、软件过程的定义当开发产品或构建系统时,遵循一系列可预测的步骤(路线图)是非常重要的,它有助于及时交付高质量的产品。
(1)所遵循的路线图就称为“软件过程”。
(2)软件过程贯穿软件开发的各阶段,并建立阶段里程碑(Milestones);(3)管理者在软件工程过程中需要对软件开发的质量、进度、成本进行评估、管理和控制;(4)技术人员在软件过程中需采用相应的方法和工具生成软件工程产品,如模型、文档、数据、报告、表格等。
三、软件过程的作用软件开发过程的作用是:(1)成为开发组活动顺序的向导。
(2)详细说明需要开发哪些制品,何时开发。
(3)指导每一个成员及整个开发组的工作。
(4)提供监控、度量产品和活动所依据的准则。
—软件过程是软件项目管理控制的基础,它为项目提供稳定性、可控性和有组织性,能有效避免混乱。
—若没有一个良好定义的过程,开发组将各行其是,成功与否完全依赖个别优秀的人才,这不是能够长久的。
四、软件过程的组成要素(活动、动作、任务)软件过程是工作产品构建时所执行的一系列活动、动作和任务的集合。
(1)活动(activity):实现宽泛的大目标。
(2)动作(action):阶段目标。
(3)任务(task):关注小而明确的目标,产生实际产品。
—软件过程由活动组成,活动由动作组成,动作由任务组成。
五、基本框架活动和典型的普适性活动软件过程框架(process framework)定义了若干个框架活动,及一些适用于整个软件过程的普适性活动1.基本框架活动一个通用的软件工程过程框架通常会包含以下5个基本的框架活动:(1)沟通:在技术工作开始前,先和利益相关者进行沟通与协作,以理解项目目标,并收集需求。
软件开发生命周期与过程模型软件开发是一个复杂而又关键的过程,它需要经历一系列的阶段和步骤,以确保最终产出的软件能够满足用户的需求。
为了有效管理和控制软件开发过程,人们提出了各种各样的软件开发生命周期和过程模型。
本文将探讨软件开发生命周期和过程模型的概念、特点以及常见的几种模型。
一、软件开发生命周期的概念和特点软件开发生命周期指的是软件从概念到退役的整个过程,它包括需求分析、设计、编码、测试、部署和维护等阶段。
软件开发生命周期具有以下几个特点:1. 阶段性:软件开发生命周期由一系列明确定义的阶段组成,每个阶段都有特定的目标和任务。
2. 迭代性:在软件开发过程中,通常会进行多次迭代,每次迭代都会对前一次迭代的结果进行修正和完善。
3. 可控性:通过合理的管理和控制,可以确保软件开发过程的可控性,及时发现和解决问题。
二、常见的软件开发过程模型1. 瀑布模型瀑布模型是最早也是最经典的软件开发过程模型之一。
它将软件开发过程划分为需求分析、设计、编码、测试和维护五个阶段,每个阶段都是线性的,前一个阶段的输出作为下一个阶段的输入。
瀑布模型适用于需求稳定、开发周期长的项目,但缺点是无法应对需求变更和迭代开发。
2. 增量模型增量模型是一种迭代和渐进式的软件开发过程模型。
它将软件开发过程划分为多个子系统或功能模块,每个子系统或功能模块都是一个增量,每个增量都经过需求分析、设计、编码和测试等阶段。
增量模型可以快速交付可用的软件功能,适用于需求不稳定、开发周期较短的项目。
3. 螺旋模型螺旋模型是一种风险驱动的软件开发过程模型。
它将软件开发过程划分为多个迭代,每个迭代都包括计划、风险分析、工程开发和评审等阶段。
螺旋模型通过不断评估和控制风险,以确保软件开发过程的可控性和高质量。
螺旋模型适用于大型、复杂项目,但需要投入较多的时间和资源。
4. 敏捷模型敏捷模型是一种注重灵活性和快速交付的软件开发过程模型。
它强调团队合作、迭代开发和持续改进,通过不断的反馈和调整,以满足用户的需求。
软件开发过程生命周期模型一、序言生命周期指软件开发全部过程、活动和任务的结构框架。
软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。
目前软件开发实践中使用的各种生命周期模型,都是下面这些基本组成部分的不同的排列与组合。
•市场分析,可行性研究,与项目定义•需求分析•设计(概要设计和详细设计)•编码实现•测试•使用与维护主要有以下几种模型:• 1.瀑布模型(waterfallmodel)•2-演化模型(evolutionarymodel).•3螺旋模型(spiralmodel)二、瀑布模型瀑布模型将软件生命周期的各项活动规定为依固定顺序联接的若干阶段工作,形如瀑布流水,最终得到软件产品。
如图所示:优点:a.强调开发的阶段性;b.强调早期计划及需求调查;c.强调产品测试。
缺点:a.依赖于早期进行的唯一一次需求调查,不能适应需求的变化;b.由于是单一流程,开发中的经验教训不能反馈应用于本产品的过程;c.风险往往迟至后期的开发阶段才显露,因而失去及早纠正的机会下表是瀑布模型中各个阶段的主要工作,及相应的质量控制手段。
三、演化模型该模型主要针对事先不能完整定义需求的软件开发。
用户可以给出待开发系统的核心需求,并且当看到核心需求实现后,能够有效地提出反馈,以支持系统的最终设计和实现。
软件开发人员根据用户的需求,首先开发核心系统。
当该核心系统投入运行后,用户试用之,完成他们的工作,并提出精化系统、增强系统能力的需求。
软件开发人员根据用户的反馈,实施开发的迭代过程。
第一迭代过程均由需求、设计、编码测试、集成等阶段组成,为整个系统增加一个可定义的、可管理的子集。
如图所示。
在开发模式上采取分批循环开发的办法,每循环开发一部分的功能,它们成为这个产品的原型的新增功能。
于是,设计就不断地演化出新的系统。
实际上,这个模型可看作是重复执行的多个“瀑布模型”。
“演化模型”要求开发人员有能力把项目的产品需求分解为不同组,以便分批循环开发。
【习题】一、单项选择1、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括弧()内。
开发软件时对提高软件开发人员工作效率至关重要的是( A ① )。
软件工程中描述生存周期的瀑布模型一般包括计划、( B ① )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成( C ③ )和( D ⑥ )两步。
供选择的答案:A.①程序开发环境②操作系统的资源管理功能③程序人员数量④计算机的并行处理能力B.①需求分析②需求调查③可行性分析④问题定义C、D.①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系结构设计2、软件开发费用只占软件生存期全部费用的_B___。
A. 1/2B. 1/3C. 1/4D. 2/33、在软件开发过程中大约要花费__C__%的工作量进行测试和调试。
A. 20B. 30C. 40D. 504、准确地解决“软件系统必须做什么”是__B__阶段的任务。
A. 可行性研究 B. 需求分析 C. 软件设计 D. 程序编码5、软件生存期中时间最长的是_D__ 阶段。
A. 需求分析B. 软件设计C. 软件测试D. 软件运行/维护6、在软件生存期的模型中,_D__适合于大型软件的开发,它吸收了软件工程中“演化”的概念。
A .喷泉模型 B. 基于知识的模型 C. 瀑布模型 D. 螺旋模型7、在软件生存期中,用户的参与主要在_A___。
A. 软件定义阶段、B. 软件开发阶段、C. 软件维护阶段、D. 整个软件生存期过程中8、在软件开发过程中的每个阶段都要进行严格的__D___,以尽早发现在软件开发过程中产生的错误。
A. 检验B. 验证C. 度量D. 评审9、在软件开发和维护过程中需要变更需求时,为了保持软件各个配置成分的一致性,必须实施严格的__B___。
A. 产品检验B. 产品控制C. 产品标准化D. 开发规范10、实践表明,采用先进的开发技术可提高软件开发的生产率,还可提高软件的__D__ 。
A. 可靠性B. 可使用性C. 安全性D. 可维护性11、为了提高软件开发过程的___A_,有效地进行管理,应当根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准。
A. 可见性B. 生产率C. 安全性D. 有效性12、随着开发小组人数的___A__,因交流开发进展情况和讨论遇到的问题而造成的通信开销也急剧增加。
A. 增加B. 降低C. 稳定D. 不稳定13、为保证软件开发的过程能够跟上技术的进步,必须不断地灵活地改进软件工程__C__。
A. 原则B. 工具C. 过程D. 方法二、填空题10、瀑布模型是将各个活动规定为依(软件生存期)连接的若干阶段的模型。
它规定了各阶段的活动由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落。
11、螺旋模型将开发过程分为几个螺旋周期。
在每个螺旋周期内分为四个工作步骤:(制定计划)、(风险分析)、开发实施、(用户评估)。
12、喷泉模型是一种以(用户要求)为动力,以(对象)为驱动的模型。
它使开发过程具有迭代性和无间隙性,适用于(面向对象)开发方法。
三、判断题1.We can think of a set of ordered tasks as a process: a series of steps involving activities constraints and recourses that produce an intended output of some kind. (T)2.The software development process is sometimes called the software life cycle. (T)四、问答题1、the meaning of process 过程的含义A process defines who is doing what, when and how, in order to reach a certain goal. 过程定义了谁在作什么,什么时间怎样作。
以便完成一个确定的目标。
2、 What is Process?A Series of steps involving activities, constraints, and resources that produce an intended output of some kind.一系列涉及到活动、约束和资源的步骤,他们产生某种类型的有目的的输出。
3、Process Characteristics?过程的特征The process prescribes all of the major process activities 过程规定了所有主要过程活动Process uses resources, subject to a set of constraints (such as schedule ),and produces intermediate and final products 过程使用资源、服从于一组约束(比如进度约束),产生中间结果和最终产品。
The process may be composed of subprocesses that are linked in some way. The process may be defined as a hierarchy of processes, organized so that each subprocess has its own process model 可由子过程组成,这些子过程用某种方式链接起来。
过程可以定义为分层的过程等级结构,以便每个子过程具有自己的过程模型。
Each process activity has entry and exit criteria , so that we know when the activity begins and ends. 每个过程活动具有有入口和出口标准,这样可以知道活动何时开始及何时结束。
The activities are organized in a sequence, so that it is clear when one activity is performed relative to the other activities. 活动以一定顺序组织,因此,一个活动相对于其他活动何时完成是很清楚的。
Every process has a set of guiding principles that explain the goals of each activity 每个过程具有一系列的指导原则,以解释每个活动的目标Constraints or controls may apply to an activity, resource or product 约束与控制可以应用到任何活动、资源或产品中。
4、Why software process modeling?Writes down a description of development process, forms a common understanding of the activities, resources, and constraints involved in software development. 形成对软件开发中涉及到的活动、资源和约束的共同理解。
Helps the development team find inconsistencies, redundancies, and omissions in the process and in its constituent parts. 有助于开发小组发现过程及其组织成分中的不一致、冗余和遗漏。
The model reflects the goals of development, such as building high-quality software finding faults earlyin development, and meeting required budget and schedule constraints. 反映开发的目标(如构建高质量软件、早期发现错误、满足预算和开发进度)。
Every process should be tailored for the special situation in which it will be used.根据每个过程将被使用的特殊情况对其进行裁剪。
5.试说明“软件生存期”的概念。
软件与任何一个事物一样,有它的孕育、诞生、成长、成熟、衰亡的生存过程。
这就是软件的生存期。
它分为6个阶段:(1) 软件项目计划:在这一步要确定软件工作范围,进行软件风险分析,预计软件开发所需要的资源,建立成本与进度的估算。
根据有关成本与进度的限制分析项目的可行性。
(2) 软件需求分析和定义:在这一步详细定义分配给软件的系统元素。
可以用以下两种方式中的一种对需求进行分析和定义。
一种是正式的信息域分析,可用于建立信息流和信息结构的模型,然后逐渐扩充这些模型成为软件的规格说明。
另一种是软件原型化方法,即建立软件原型,并由用户进行评价,从而确定软件需求。
(3) 软件设计:软件的设计过程分两步走。
第一步进行概要设计,以结构设计和数据设计开始,建立程序的模块结构,定义接口并建立数据结构。
第二步做详细设计,考虑设计每一个模块部件的过程描述。
经过评审后,把每一个加细的过程性描述加到设计规格说明中去。
(4) 程序编码:在设计完成之后,用一种适当的程序设计语言或CASE工具生成源程序。
应当就风格及清晰性对代码进行评审,而且反过来应能直接追溯到详细设计描述。
(5) 软件测试:单元测试检查每一单独的模块部件的功能和性能。
组装测试提供了构造软件模块结构的手段,同时测试其功能和接口。
确认测试检查所有的需求是否都得到满足。
在每一个测试步骤之后,要进行调试,以诊断和纠正软件的故障。
(6) 软件维护:为改正错误,适应环境变化及功能增强而进行的一系列修改活动。
与软件维护相关联的那些任务依赖于所要实施的维护的类型。
6、 List the stages of Waterfall model, and state the advantages and shortage of the Waterfall model.Include stages of requirements analysis, system design, program design, coding, unit & integration testing, acceptance testing, operation & maintenance.Merits of Waterfall modelHas been used to prescribe software development activities in a variety of contexts.已被用于在各种情况下规定软件开发活动。