软件工程第二章软件过程

软件工程第二章软件过程
软件工程第二章软件过程

第二章:软件过程

目标:

软件工程和软件过程模型的概念;

了解3个一般的软件过程模型及何时使用它们;

了解软件需求工程,软件开发,测试和进化中所涉及的基本过程活动;

理解为什么软件过程要有效地组织以应对软件需求和设计上的变更;

了解Rational统一过程是如何集成好的软件过程实践来产生一个可适应的软件过程。

所有的软件过程都必须具有4种对软件工程来说是基本的活动。它们是:

1.软件描述:必须定义软件的功能以及软件操作上的约束。

2.软件设计和实现:必须生产符合描述的软件。

3.软件有效性验证:软件必须得到有效性验证,即确保软件是客户所想要的。

4.软件进化:软件必须进化以满足不断变化的客户需要。

2.1软件过程模型

一软件过程模型一般有

1.瀑布模型:该模型将基本的过程活动,描述,开发,有效性验证和进化,看成是一些界限分明的独立的过程阶段,例如,需求描述阶段,软件设计阶段,实现阶段,测试阶段,等等。

2.增量式开发:该方法使得描述活动,开发活动和有效性验证活动交织在一起。系统的开发是建立一系列的版本(增量),每个版本添加部分功能到先前的版本中。

3.面向复用的软件工程:该方法使得描述活动,开发活动和有效性验证活动交织在一起。系统开发过程着重于集成这些组件到新系统中,而非从头开发。

2.1.1瀑布模型

一瀑布模型中的主要阶段直接映射基本的开发活动:

1.需求分析和定义

2.系统和软件设计

3.实现和单元测试

4.集成和系统测试

5.运行和维护

二适合采用瀑布模型的时候

瀑布模型是与其他工程过程模型相一致的,在它的每个阶段都要生成文档。这使得过程是可见的,项目经理能够根据项目计划监控项目的过程。它的主要问题在于它将项目生硬地分解成这些清晰的阶段。关于需求的责任和义务一定要在过程的早期阶段清晰界定,而这又意味它对用户需求变更的响应较困难。

所以只有在对需求了解的好,而且在系统开发过程中不太可能发生重大改变的时候,适合采用瀑布模型。

瀑布模型的一个重要变形是形式化系统开发。针对系统描述创建其数学模型。然后采用能保持一致性的数学变换对该数学模型进行加工,知道产生可执行代码。

形式化的开发过程,如基于B方法特别适用于有严格安全性,可靠性或信息安全性需求的系统的开发。形式化方法简化了安全用例和信息安全性的需求。

基于形式变换的过程通常只用于开发安全性或信息安全性要求极高的一类系统。这需要非常专业的知识和技能。对于大多数系统,在系统开发中应用这一过程不会比其他方法带来明显

的成本优势。

2.1.2增量式开发

一增量式开发的定义

增量式开发的思想是先开发出一个初始的实现,给用户使用并听取用户的使用意见和建议,通过对多个版本的不断修改直到产生一个充分的系统。描述,开发和有效性验证等活动不是分离的而是交织在一起。同时让这些活动之间都能得到快速地反馈信息传递。

增量式软件开发,是敏捷开发的一个基本部分,对于商务,电子商务和个人系统来说更加适合。增量式开发反映了我们解决问题的方法。我们很少提前制定出完整的问题解决方案,而是逐步地逼近解决方案,当我们意识到错误的时候进行回溯。通过增量式地开发软件,在开发过程中可以更经济,更容易对软件变更做出响应。

二增量式开发较之瀑布模型有3个重要优点:

1.降低了适应用户需求变更的成本。重新分析和修改文档的工作量较之瀑布模型要少很多。

2.在开发过程中更容易得到用户对于已做的开发工作的反馈意见。用户可以评价软件的现实版本,并可以看到已经实现了多少。这比让用户从软件设计文档中判断工程进度要好很多。

3.使更快地交付和部署有用的软件到客户方变成了可能,虽然不是所有的功能都已经包括在内。相比于瀑布模型,用户可以更早地使用软件并创造商业价值。

三从管理的角度来看,增量式方法存在两个问题:

1.过程不可见。管理者需要通过经常性的可交付文档来把握进度,如果系统开发速度太快,要产生反映系统每个版本的文档就很不划算。

2.伴随着新的增量的添加,系统结构在逐渐退化。除非投入时间和金钱用在重构系统结构上以改善软件,否则定期的变更会损坏系统的结构。随着时间的推移,越往后变更系统越困难,而且成本也将逐渐上升。

2.1.3面向复用的软件工程

一面向复用的中间阶段是:

1.组件分析:给出需求描述,然后搜寻能满足需求的组件。

2.需求修改:根据的得到的组件信息分析需求,然后修改需求以反映可得到的组件。

3.使用复用的系统设计:设计系统的框架或者重复使用一个已存在的框架。

4.开发和集成:当组件不能买到时就需要自己开发,然后集成这些自己开发的组件和现货组件,使之成为一个整体。

二3种类型的软件组件可能用于面向复用的过程:

1.通过标准服务开发的Web服务,可用于远程调用。

2.对象的集合,作为一个包和组件框架,如.NET或者J2EE等集成在一起。

3.独立的软件系统,通过配置在特定的环境下使用。

三面向复用模型的优势与劣势

面向复用的模型的明显优势是它减少了需要开发的软件数量,从而降低了软件开发成本,同时也降低了开发中的风险。通常也可使软件快速地交付。然而,需求妥协是不可避免的,而且这可能又导致一个不符合用户真正需要的系统。此外,对系统进化的控制也将失效,因为可复用的组件新版本可能是不受机构控制的。

2.2过程活动

真正的软件过程是交织着技术,协作,管理等内容的一个活动序列,围绕着一个总的目标,即实现系统的描述,设计,实现和测试。

2.2.1软件描述

一软件描述或需求工程是理解和定义系统需要提供哪些服务,以及找出开发和运行中受到哪些约束。需求工程是软件过程中一个特别关键的阶段,这个阶段的错误将不可避免地带来系统设计和实现阶段过程的后续问题。

二需求工程过程有4个主要的阶段:

1.可行性研究:指明现有的软件,硬件技术能否实现用户对新系统的要求。从业务角度来决定系统开发是否划算以及在预算范围内能否开发出来。可行性研究应该是相对来讲花钱少且快速完成的。结果应该得到结论,该系统是否值得进行更细致的分析。

2.需求导出和分析:这是一个通过对现有系统分析,与潜在用户和购买者讨论,进行任务分析等导出系统需求的过程。也可能需要开发一个或多个不同的系统模型和原型。这些都会帮助分析员了解所要描述的系统。

3.需求描述:就是把在分析活动中收集的信息以文档的形式确定下来。在这个文档中有两类需求。用户需求是从客户和最终用户角度对系统需求的抽象描述;系统需求是对系统要提供的功能的详尽描述。

4.需求有效性验证:该活动检查需求的现实性,一致性和完备性。在这个过程中,肯定会发现需求文档中的错误,必须加以改正以解决问题。

2.2.2软件设计和实现

一软件开发的实现阶段是把系统描述转换成一个可运行的系统的过程。它总是包含设计和编程,但是,如果用增量式开发方法,可能还包含对软件描述的精炼过程。

软件设计是对实现软件的结构,系统的数据,系统组件间的接口以及所用的算法的描述。绝大多数软件有面向其他软件系统的接口。

二信息系统设计过程中4个活动:

1.体系结构设计:识别系统总体结构,基本组件(有时候也叫子系统或模块),它们之间的关系以及它们是怎样分布的。

2.接口设计:定义系统组件间的接口。接口的描述必须是无二义的。在有精确接口定义的前提下,组件不必知道其他组件的具体实现即可使用它们。一旦接口描述达成一致意见,组件就可以并行设计和开发了。

3.组件设计:针对每个系统组件设计它的运行方式。这可能是对预期功能的一个简单声明,留给程序员去做具体的设计。也可能是对复用组件或是某个细化的设计模型所做的一系列的变更。设计模型可用于自动生成一个实现。

4.数据库设计:设计系统数据结构,以及如何在数据库中表示这些数据结构。此处的工作又一次取决于是否复用现有数据库或创建一个新的数据库。

2.2.3软件有效性验证

一软件有效性验证,通常也称为检验和有效性验证(V&V),是要看系统是否符合它的描述以及系统是否符合客户的预期。程序测试,即用模拟测试数据运行系统,是最基本的有效性验证技术。有效性验证技术也包括在从用户需求定义到程序开发的每个软件过程阶段进行检查过程(比如,查阅和复查)。由于测试的主导地位,绝大多数的有效性验证成本发生在系统完成过程中和完成之后。

二测试过程中的阶段包括:

1.组件(或单元)测试:由开发系统的人员对组成系统的组件进行测试。每个组件都单独测试,而不受其他系统组件的影响。组件可能是简单的实体,如一个函数或对象类,或者是这

些实体的一个相关集合。通常用自动化测试工具,如JUnit(Massol和Husted,2003),它能在新版本的组件创建的时候对其重新测试。

2.系统测试:集成组件形成完整的系统。这个过程主要是关注无法预测的组件间交互和组件界面问题所引发的错误。也关注系统是否满足了功能上和非功能上的需求,并测试系统的总体特性。对于大型系统来说,这可能是一个多阶段的过程,需要对组件所构成的子系统进行测试,然后测试由这些子系统所构成的最终系统。

3.接收测试:这是系统在接受并运行之前进行的最后阶段测试。这个阶段不再是用模拟数据来测试系统,而是用客户提供的真实数据测试系统。真实数据能以不同的方式测试系统,所以能暴露出系统需求定义中的错误和遗漏。接受测试还能发现系统需求中的类问题,即系统的设施不能满足用户的需要或者系统性能是无法接受的。

2.2.4软件进化

一自有软件开发以来,就有软件开发过程和软件进化(软件维护)过程之分。而现在完全从头开发的系统很少,将软件系统的开发维护看成是一个连续体显得更有意义。因此,不再将软件工程看成是开发和维护两个完全独立的过程,而是将其堪称是一个进化过程,即软件在其生命周期内不断地随着需求的变更而变更的进化式过程。这个进化式过程如下图所示。

2.3应对变更

一对于所有大型项目来说,变更是无法避免的。系统需求是在变化的,因为采购系统的工作要屈从于外部压力和管理权力的更替。当有新技术可用的时候,新的设计和实现方法就会出现。因此不管用什么样的软件过程模型,能在软件开发过程中及时处理变更是很必要的。二有两个相关的方法会用于降低返工成本:

1.变更避免:软件过程包括一些能够在重大返工发生之前预测变更的活动。例如,原型系统的开发,要先给客户看系统的一些重要特征。客户可以试用原型,并在花费高额的软件生产成本之前重新定义需求。

2.变更容忍:所设计的过程使得变更以相对较低的成本得到处理。这通常需要增量开发。提出的变更可能是在还没有开发的增量上实现。假如不是这样的,只需要更改单个增量(系统的一小部分)来适应变更。

三两种应对变更系统需求的方法,它们是:

1.系统原型:快速开发一个系统版本或者是系统的一个部分,以检验客户需求和某些设计决定的可行性。它支持变更避免,因为它允许客户试用正式交付之前的系统,并重新审视和定义需求。因此在交付正式系统之后,客户提出的需求变更的数目将会降低。

2.增量交付:系统增量地交付给用户,给用户评审和试用。它支持变更能避免和变更容忍。避免了交付不成熟的需求实现,并允许在之后的增量中进行改变且将成本控制在较低水平。

2.3.1原型构造

一原型是一个软件系统的最初版本,用于验证概念,试用设计选项,发现更多的问题和可能的解决方法。原型的快速迭代开发是必要的,这样就可以控制成本,系统信息持有者也可以在软件过程的早期试用系统原型。

二软件原型可以用在软件开发过程中,帮助预计可能需要的变更:

1.在需求工程过程中,原型有助于启发和验证系统需求。

2.在系统设计过程中,原型可用于探索特定软件的解决方案,并支持用户接口设计。

三原型开发的过程

2.3.2增量式交付

一增量开发过程的好处是:

1.客户可以将早期的增量作为原型,从中获得对后面系统增量的需求经验。

2.客户无需等到整个系统的实现才能从中获益。第一个增量会满足他们大多数关键的需求,因此,软件马上就能使用。

3.这一过程保持了增量式开发的优点,那就是相对来讲变更能较容易地嵌入到系统中。

4.因为具有最高优先权的服务被首先交付,而后面的增量也不断被集成进来,这就使得最重要的系统服务肯定接受了最多的测试。这就意味着在系统的最重要的部分,客户不太可能遇到失败。

二增量式交付存在的问题

1.大多数系统需要一组基本设施,这些基本设施会被系统不同部分所使用。因为需求的详细定义是当增量将要被开发时才完成的,所以就很难确定全体增量所需要的公共设施。

2.当所开发的是一个替换系统时,迭代开发也是很困难的。因为用户想要旧系统的所有功能,往往不愿尝试一个不完整的新系统。因此,获取用户反馈是困难的。

3.软件描述和软件本身一起开发是迭代过程的本质。然而,这与许多机构的采购模型是相冲突的,因为完整的系统描述往往是系统开发合同的一部分。在增量方法中,直到最后的增量描述完成,才会有完整的系统描述。这就需要一种新形式的合同,像政府机构这样的大客户将很难接受这样的合同。

2.3.3Boehm的螺旋模型

一风险驱动的软件过程框架(螺旋模型)最初由Boehm提出来。它不是将软件过程用一个伴随着有从一个活动到另一个活动的回溯的活动序列来表示,而是将过程用螺旋线表示。在螺旋线中每个回路表示软件过程的一个阶段。因此,罪立案的回路可能与系统可行性研究有关,下一个回路与系统需求定义有关,再下一个回路与系统设计有关,等等。螺旋模型避免了变更风险,它假定项目的结果是有风险的,并在模型中明确地包括风险管理活动以减小开

发中的风险。

二在螺旋线中每个回路被分成4个部分:

1.目标设置:为项目的这个阶段定义专门目标。指定对过程和产品的约束,而且指定详细的管理计划。分析项目风险,根据这些风险,规划可选的策略方案。

2.风险评估和规避:每一个项目风险确定以后要进行详细的分析,并采取措施规避这些风险。举例来说,如果有需求不合适的风险,就可能需要开发一个原型系统。

3.开发和有效性验证:在风险预估以后,就可以为系统选择开发模型。举例来说,如果用户界面风险是主要的,一个适当的开发模型可能是建立抛弃式原型。如果安全性风险是主要的,则基于形式化转换的开发可能是最适当的,等等。如果主要风险在于子系统集成,那么瀑布模型可能是最适当的。

4.规划:对项目进行评审以确定是否需要进入螺旋线的下一个环路。如果决定需要继续就要做出项目的下个阶段的计划。

三螺旋模型和其他软件模型之间的重要区别在于,螺旋式模型中对风险的考虑是明确的。螺旋模型的一个回路始于如性能,功能等关心的目标,达到这些目标的可能方式以及对这些方式的约束在这时要全部列出。对每个目标的所有可选方案要进行评估,通常这就会帮助识别项目风险的源头。下一步骤是通过详细分析,原型建立,仿真等活动预估这些风险。

2.4Rational统一过程

一Rational统一过程(RUP)是新式过程模型的一个实例,该新式过程模型来自于UML上的工作以及相关的统一软件开发过程。由于它是一个混成过程模型的一个很好的实例,所以在此给出一个描述。它集合了所有一般过程模型的要素,并给出了在描述和设计上的好的实践,还支持原型构造和增量式交付方法。

二RUP过程认识到传统过程模型只是展现过程的一个视角。相比之下,RUP一般从3个视角来描述过程:

1.动态视角:给出模型中随时间所经历的各个阶段。

2.静态视角:给出所进行的过程活动。

3.实践视角:提出在过程中可以采用的良好实践的建议。

三RUP是一个阶段化的模型,识别出软件过程当中的4个独立阶段:

1.开端:开端阶段的目标是建立系统的一个业务案例。要识别所有与系统交互的外部实体(人和系统)并定义这些交互。

2.细化:细化阶段的目标是增进对问题域的理解,建立系统的体系框架,给出项目计划并识别关键项目风险。

3.构造:构造阶段主要关心的是系统设计,编程和测试。系统的各个部分并行开发,然后集成在一起。

4.转换:RUP的最后阶段,关注如何将系统从开发单位转移到用户单位,并使之在真实环境中工作。

四RUP的实践视角描述了在系统开发中所需要的好的软件工程实践。6个基本的且最好的实践是:

1.迭代地开发软件:根据客户的轻重缓急来规划系统的增量,在开发过程中先开发和交付最高优先权的系统特性。

2.对需求的管理:明确地记录客户的需求并跟踪这些需求的变更。在接受之前分析系统变更所带来的影响。

3.使用基于组件的体系结构:将系统体系结构组织称组件的形态,如在本章前面所讨论的那样。

4.可视化的建模软件:使用图形UML模型表现软件的静态和动态视图。

5.检验软件质量:保证软件满足了机构质量标准。

6.控制对软件的变更:使用变更管理系统,配置管理程序和工具来管理软件的变更。

软件工程课后题答案

第一章 1 简述软件的发展过程。 共经历了四个阶段; 第一阶段:(20世纪50年代初期到60年代初期的十余年)计算机系统开发的初期。 第二阶段:(20世纪60年代中期到70年代中期的十余年)软件产品与“软件作坊”的概念开始出现。软件开发人员不再像早期阶段那样只因个人工作需要而开发,而就是为了用户更好地使用计算机。 第三阶段:(20世纪70年代中期到80年代末期)分布式系统嵌入“智能”;硬件价格下降,软件价格急剧上升,导致了软件危机的加剧。 第四阶段:(20世纪80年代末期开始)强大的桌面系统与计算机网络迅速发展。 2 简述软件的定义与特点。 定义:软件就是计算机程序、规程以及运行计算机系统可能需要的相关文档与数据。 特点:(1)就是一种逻辑实体,具有抽象性; (2)软件的生产不存在明显的制造过程; (3)在软件的运行与使用的过程中,不会存在像硬件那样的机械磨损及老化问题; (4)由于对计算机系统的依赖性,对软件的通用性造成了一定的影响; (5)软件的开发方式还没有完全脱离手工开发方式,还不能完全采用组装的方式进行软件开发; (6)作为提高工作效率的逻辑产品,本身具有复杂性; (7)成本相当昂贵; (8)相当多的软件工作设计社会因素。 3 软件有哪些种类 1、按功能特征进行划分 (1)系统软件。(2)支撑软件。(3)应用软件 2、按规模大小进行划分 微型、小型、中型、大型、甚大型、、极大型 4 什么就是软件危机? 答:就是指在计算机软件的开发与维护过程中所遇到的一系列严重问题。 5 什么就是软件工程?有哪些本质特性?怎样用软件工程消除软件危机? 答:就是指导计算机软件开发与维护的一门工程学科。 特性略。 技术措施与管理措施消除软件危机。 6 软件工程的三要素; 方法、工具与过程。 7、结合自己的亲身经历,谈谈软件工具在软件开发过程中的作用。 使软件开发更加模式化,工程化,从而提高软件开发的效率与封装性。 8、CASE 的研究与CASE 产品的开发就是近年来软件工程领域的特点之一。请列举数种您所熟悉的CASE 工具或环境,综述它们的概念与优缺点,并分析其实现方法。 rose、“数据字典”(工具)

现代软件工程第2章作业

1.填空题 (1)可行性研究的目的不是去开发一个软件项目,而是研究这个软件项目是否、。可行性研究实质上是要进行一次简化,压缩了的和过程,要在较高层次上以较抽象的方式进行需求分析和过程设计。 (2)可行性研究需要从可行性、可行性、 可行性三个方面分析研究每种解决方法的可行性。 (3)典型的可行性研究有下列步骤:确定项目规模和目标, ,,导出和评价各种方案,推荐可行的编写可行性研究报告。 (4)一个可行性研究报告的主要内容包括:引言、可行性研究的前提、对现有系统的分析、、、、其他可供选择方案、结论意见。 (5)成本-效益分析的目的是从角度开发一个新的软件项目是否可行。成本-效益分析首先是估算将要开发的系统的 ,然后与可能取得的效益进行。 2.选择题 (1)研究开发资源的有效性是进行()可行性研究的一方面。 A.技术 B.经济 C.社会 D.操作 (2)在软件的可行性研究中,可以从不同的角度对软件进行研究,其中从软件的功能可行性角度考虑的是() A.经济可行性 B.技术可行性 C.操作可行性 D.法律可行性 (3)在遵循软件工程原则开发软件过程中,计划阶段应该依次完成() A.软件计划、需求分析、系统定义 B.系统定义、软件计划、需求分析 C.需求分析、概要设计、软件计划 D.软件计划、需求分析、概要设计 (4)技术可行性要解决() A.存在侵权否 B.成本-效益问题 C.运行方式可行 D.技术风险问题 (5)在软件工程项目中,不随参与人数的增加而使软件的生产率增加的主要问题是() A.工作阶段间的等待时间 B.生活原型的复杂性 C.参与人员所需的工作站数 D.参与人员之间的通信困难 (6)制定软件计划的目的在于尽早对欲开发的软件进行合理估价,软件计划的任务是() A.组织与管理 B.分析与估算 C.设计与测试 D.规划与调度 (7)可行性分析中,系统流程图用于描述() A.当前运行系统 B.当前逻辑模型 C.目标系统 D.新系统 (8)研究软硬件资源的有效性是进行()研究的一方面。 A.技术可行性 B.经济可行性 C.社会可行性 D.操作可行性 (9)可行性研究要求进行的需求分析和设计应是() A.详细的 B.全面的 C.简化的、压缩的 D.彻底的 (10)对每一合理的方案分析员都应该准备()资料。 A.系统流程 B.组成系统的物理元素清单、成本-效益分析

软件工程作业及参考答案(版)

软件危机与软件工程 3. 软件工程方法学的研究内容包含软件开发技术和软件工程管理两部分, 其期望达到的最终目标是 ()。 A ?消除软件危机 B ?软件开发工程化 C ?程序设计自动化 D ?实现软件重用 4?软件工程学中除重视软件开发技术的研究外,另一重要组成内容是软件的( )。 A .工程管理 B .成本核算 C .人员培训 D .工具开发 5?软件计划是软件开发的早期和重要阶段,此阶段要求交互和配合的是( )。 A ?设计人员和用户 B ?分析人员和用户 C .分析人员和设计人员 D .编码人员和用户 6 .软件工程的结构化生命周期方法是将软件开发的全过程划分为相互独立而又相互依存的阶段,软件的 逻辑模型形成 于( )。 A .开发阶段 B .计划阶段 C .分析阶段 D .设计阶段 7 .在软件工程中,软件生存期可分为计划、开发以及维护三个阶段,每个时期又分为若干更小的阶段。 通常,计划时期包括问题定义、可行性研究和 ①,开发时期包括 ②、详细设计、编码以及 ③。 ① A . 需求分析 B . 可行性研究 C . 经费预算 D . 质量保证 ② A . 需求分析 B . 可行性研究 C 总体设计 D 模块化设计 ③ A . 文档编制 B . 运行维护 C . 测试 D . 验收 &软件开发中常采用的生命周期方法,由于其特征而一般称其为() A .层次模型 B .瀑布模型 C .螺旋模型 D .对象模型 9.描述软件生存周期的瀑布模型包括计划、 (A ) 、设计、编码、测试、维护等阶段。其中,设计阶段又可 以分成(B )和(C )两个步骤。 A :①需求分析 ②可行性研究 ③需求调查 ④问题定义 B, C :①方案设计 ②代码设计 ③概要(总体)设计 ④数据设计 ⑤详细设计 10.什么是软件危机?软件危机产生的原因? ".生命周期阶段的划分?每个阶段的任务? 可行性研究 软件工程 1软件危机是指在开发和( A .运行 B .设计 2 ?造成软件危机的原因是: A. 用户使用不当 C .硬件不可靠 )过程中所遇到的一系列严重问题。 B .对软件的错误认识 D ?缺乏好的开发方法和手段

软件工程作业第一章

1-1什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题。 典型表现:软件总是超出预算、落后于进度表,而且产品质量不可靠、维护困难等。 危机原因: 1、软件受其自身特点的影响,生产过程不象硬件那样规范,受人的因素和外界影响很大,在软件生产的各阶段都会引入不同程度的错误,造成不能预期完成任务,致使成本上升,甚至导致软件失败。 2、主客观不相适应。 ●客观上:软件规模增大、功能要求越来越复杂,需求不断变化等; ●主观上:传统的个体化开发观念和方法的影响,无开发过程指导,无开发过程管理;由于主客观矛盾,必然产生软件质量差、开发超期、超预算、维护困难等现象。 1-3 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机? ?基本思想:是强调在软件开发过程中应用工程化原则,解决软件的整体质量较低、最后期限和费用没有保证等问题。 ?软件工程定义:是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它. ?软件工程的根本在于提高软件的质量与生产率,最终实现软件的工业化生产。 本质特性:P6 消除软件危机:软件工程基本原理7条。 1-6 什么是软件过程?它与软件工程方法学有何关系? ?软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任

务的工作步骤。

?过程定义了运用方法的顺序、应该交付的文档资料、为保证软件质量和协调变化所需要采取的管理措施,以及标志软件开发各个阶段任务完成的里程碑。 关系:是软件工程方法学包含3个要素(方法、工具和过程)之一。 1-7 什么是软件生命周期模型?试比较瀑布模型、(快速)原型模型、增量模型和螺旋模型、喷泉模型的优缺点,说明每种模型的适用范围。 生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。 瀑布模型:它将软件生命周期划分为需求分析、软件设计、程序编写、软件测试和运行维护等基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。优点:文档驱动。 强迫开发人员采用规范的方法;严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。遵守瀑布模型的文档约束,将使软件维护变得比较容易一些。 缺点:系统可能不满足需求,用户仅仅通过写在纸上的静态的规格说明,很难全面正确地认识动态的软件产品 适用范围:软件需求明确。 原型模型:在初步调查了解的基础上,提供快速的软件建造工具,开发出一个功能并不十分完善的可实际运行的系统,即原型。需求分析入手快速、表达直观、容易交流。重点解决瀑布模型需求分析入手难的问题。 优点:关注满足需求。

软件开发流程管理制度

软件开发流程管理制度 (讨论稿) 为加强对定制软件开发工作管理,缩短开发周期,提高软件开发质量,降低开发成本,提高定开发效率和效益,特制定软件开发流程管理制度。 第一章、总则 为保证日常工作正常有序的进行,让开发中各个环境更紧凑,更可控,需要尽可能实现项目管理的正规化,工作过程的流程化,以便提高软件质量,按期交付。 1、软件开发总体遵循项目管理和软件工程的基本原则。 2、项目管理涉及项目立项、项目计划和监控、配置管理。 3、软件工程涉及需求分析、系统设计、软件实现、系统测试、用户测试、试运行、系统验收、系统上线和数据迁移、产品维护。 第二章、阶段成果 根据软件工程的过程,制定以下工作流程,并规定了各个重要环节需要提交的交付物。各阶段需提交的文档: 1、立项:项目申请表,软件需求报告或设计方案。 2、需求分析:项目研发主计划、需求规格说明书 3、总体设计:概要设计说明书或功能模块描述 4、详细设计:详细设计说明书,包括软件接口说明、单元测试计

划。 5、软件实现:软件功能说明、源代码说明或者注释 6、产品测试:测试报告 7、产品发布:产品说明书、使用手册 8、产品维护:问题反馈记录 9、项目总结:提交客户方的项目总结和公司项目汇报的PPT。软件过程成果表:

第三章、岗位设置 根据公司目前的开发过程主要分为分析、开发、测试三个阶段。分析阶段完成用户需求文档的编写,系统总体设计的编写;开发阶段完成设计文档的编写,代码的编写、代码的维护。测试阶段完成系统的测试,测试文档及其他材料。通过逐渐的调整岗位,明确工作职责,逐步实现项目经理,软件设计师,程序员,测试工程师的岗位设置。

软件工程第一,二章习题doc

第一、二章习题及答案 (一)名词解释 1. 软件 2. 文档 3. 软件危机 4. 软件工程 5. 软件工程过程 6. 软件生存周期 7. 软件生存周期模型(软件开发模型) (二)填空题 1. 在信息处理和计算机领域内,一般认为软件是、和。 2. 国家标准“计算机软件开发规范”中,把软件生存周期划分为8个阶段,即、、、、、、和。 3. 螺旋模型将开发过程分为几个螺旋周期,在每个螺旋周期内分为、、和四个步骤。 4. 软件工程过程包含的7个过程是、、、、、 和。 5. 结构化方法包括结构化方法、结构化方法和结构化程序设计方法。它是一种面向的开发方法,其实质就是分解。 (三)单项选择题 1. 软件文档是()。 A. 程序 B. 工具 C. 文书和资料 D. 数据 2. 软件是一种()性工业产品。 A. 理论 B. 知识(或逻辑) C. 消耗 D. 体力 3. 需求分析是在()进行的。 A. 用户 B. 用户和分析设计人员之间

C. 开发人员内部 D. 使用和维护人员间 4. 软件的主要结构和功能是在()阶段决定的。 A. 分析设计 B. 编程 C. 测试 D. 维护 5. 螺旋模型的开发实施基本和()模型相吻合。 A. 瀑布 B. 再利用组装 C. 螺旋 D. 原型 6. 在软件开发模型中,提出最早、应用最广泛的模型是()。 A. 瀑布模型 B. 喷泉模型 C. 增量模型 D. 螺旋模型 7、瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和( )。 A、详细计划 B、可行性分析 C、运行阶段 D、测试与排错 8、从结构化的瀑布模型看,在它的生命周期中的八个阶段中,下面的几个选项中哪个环节出错,对软件的影响最大( )。 A、详细设计阶段 B、概要设计阶段 C、需求分析阶段 D、测试和运行阶段 9、在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试中的系统测试阶段的目标( )。 A、需求分析阶段 B、详细设计阶段 C、概要设计阶段 D、可行性研究阶段 10、软件工程的出现主要是由于( )。 A.程序设计方法学的影响 B.其它工程科学的影响 C. 软件危机的出现 D.计算机的发展 11、软件工程方法学的目的是:使软件生产规范化和工程化,而软件工

软件工程 作业8(含答案)

1. 为了把握软件开发各个环节的正确性和协调性,人们需要进行( A 2)和( B 3 )工作。( A )的目的是想证实在一给定的外部环境中软件的逻辑正确性。它包括( C 2 )和( D 3 ),( B )则试图证明在软件生存期各个阶段,以及阶段间的逻辑( E 3 )、( F 4 )和正确性。 供选择的答案: A, B. ①操作②确认③验证④测试⑤调试 C, D.①用户的确认②需求规格说明的确认 ③程序的确认④测试的确认 E, F. ①可靠性②独立性③协调性④完备性⑤扩充性 2. 软件测试是软件质量保证的主要手段之一,测试的费用已超过( A 1)的30%以上。因此,提高测试的有效性十分重要。“高产”的测试是指( B 3 )。根据国家标准GB 8566–88《计算机软件开发规范》的规定,软件的开发和维护划分为8个阶段,其中,单元测试是在( C 5)阶段完成的,集成测试的计划是在( D 3)阶段制定的,确认测试的计划是在( E 2 )阶段制定的。 供选择的答案: A. ①软件开发费用②软件维护费用③软件开发和维护费用 ④软件研制费用⑤软件生存期全部 B. ①用适量的测试用例运行程序,证明被测程序正确无误 ②用适量的测试用例运行程序,证明被测程序符合相应的要求 ③用少量的测试用例运行程序,发现被测程序尽可能多的错误 ④用少量的测试用例运行程序,纠正被测程序尽可能多的错误 C ~ E. ①可行性研究和计划②需求分析③概要设计 ④详细设计⑤实现⑥集成测试 ⑦确认测试⑧使用和维护 3. 集成测试也叫做( A 3)或( B 6)。通常,在( C 1)的基础上,将所有模块按照设计要求组装成为系统。子系统的集成测试特别称为( D 2 ),它所做的工作是要找出子系统和系统需求规格说明之间的( E 6)。需要考虑的问题是:在把各个模块连接起来的时候,穿越模块接口的数据是否会( F 2);一个模块的功能是否会对另一个模块的功能产生不利的影响;各个(G 1 )组合起来,能否达到预期要求的(H 3);(I 5 )是否有问题;单个模块的误差累积起来是否会放大。 供选择的答案: A ~ D. ①单元测试②部件测试③组装测试 ④系统测试⑤确认测试⑥联合测试 E ~ I.①子功能②丢失③父功能④局部数据结构 ⑤全局数据结构⑥不一致⑦一致 4. 软件测试可能发现软件中的(B),但不能证明软件()。 A. 所有错误、没有错误 B. 错误、没有错误 C. 逻辑错误、没有错误 D. 设计错误、没有错误 5. 调用算法是解决问题的关键步骤之一。算法的计算工作量大小和实现算法所需的存储单元多少,分别称为计算的(A2)和(B3)。编写程序时,(C1)和(D1)是应采纳的原则之一。(E4)是调试程序的主要工作之一。 供选择的答案: A、B: ①可实现性②时间复杂度③空间复杂度④困难度

软件开发流程 论文

毕业设计(论文)题目:软件开发流程管理 班级:11工升 学号:1000303071 姓名: 指导教师: 2014年11月

摘要 从软件开发最初至今,不断地有新的软件开发技术产生,但是在软件开发能力和质量方面却始终存在达不到预计目标这一问题。每一个软件开发的最大目标,就是最大限度提高质量与生产率。而影响质量与生产率的三个关键因素:过程、人和技术,因此,我们除了提高技术能力,培养更多优质人才之外,还需要制定一套软件开发过程管理标准,并在软件开发过程中对这一标准不断地完善,以达到提高软件质量与生产率的目标。 本文结合CMM(软件过程成熟度模型),对软件开发、维护全过程进行标准化、规范化管理,制定出软件开发管理标准。 关键词:软件开发过程,管理标准

目录 第一章软件开发的概念及目的 (4) 第二章软件开发流程划分及开发环境 (4) 2.1.软件开发阶段划分 (4) 2.2.软件开发环境需求...........................................................错误!未定义书签。第三章软件开发过程中存在的问题............................................错误!未定义书签。 3.1.对用户方需求的掌握不全面...........................................错误!未定义书签。 3.2.对软件的价值认识不清晰...............................................错误!未定义书签。 3.3.跟用户方的合作不顺利...................................................错误!未定义书签。 3.4.开发队伍的结构不合理...................................................错误!未定义书签。 3.5.软件开发管理制度不健全...............................................错误!未定义书签。 3.6.开发团队人员不稳定.......................................................错误!未定义书签。第四章软件开发流程管理规范.. (10) 4.1.什么是CMM (10) 4.2.结合CMM制定开发流程管理方案 (11) 4.2.1软件项目生命周期模型...........................................错误!未定义书签。 4.2.2需求分析流程图及描述...........................................错误!未定义书签。 4.2.3设计流程图及描述...................................................错误!未定义书签。 4.2.4编码流程图及描述...................................................错误!未定义书签。 4.2.5测试流程图及描述...................................................错误!未定义书签。 4.2.6验收流程图及描述 (22) 第四章软件开发行业前景 (23) 参考文献..........................................................................................错误!未定义书签。

软件工程课后习题答案

软件工程课后习题答案 第一章 一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。软件危机的典型表现: (1) 对软件开发成本和进度的估计常常很不准确。常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。这些都降低了开发商的信誉,引起用户不满。 (2) 用户对已完成的软件不满意的现象时有发生。 (3) 软件产品的质量往往是靠不住的。 (4) 软件常常是不可维护的。 (5) 软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。

(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。 (7) 开发生产率提高的速度远跟不上计算机应用普及的需求。软件危机出现的原因: (1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。 (2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。 (3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。 二、假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他? 答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改, 不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。

2011年春季学期软件工程第二次作业

2011年春季学期软件工程第二次作业 一、单项选择题(本大题共60分,共 60 小题,每小题 1 分) 1. 为高质量地开发软件项目,在软件结构设计时,必须遵循( )原则 A. 信息隐蔽 B. 质量控制 C. 程序优化 D. 数据共享 2. ()方法是一种用例驱动的开发方法 A. OOSE B. Booch C. OOA/OOD D. OMT 3. 作为确认测试阶段的测试基础的文档应该是( ) A. 设计说明书 B. 开发计划 C. 需求规格说明书 D. 源程序 4. 软件设计阶段的文本可为()。 A. 需求规格说明书 B. 用户手册 C. 设计规格说明书 D. 可行性分析报告 5. 过程设计与概要设计衔接的图形工具是() A. DFD B. PAD C. SC D. ER 6. 软件工程中,只根据程序的功能说明二不关心程序内部逻辑的测试方法,称为()测试。 A. 白盒法 B. 灰盒法 C. 黑盒法 D. 综合法 7. 在软件维护中,因增加数据库或通信协议而进行的维护属于( ) A. 完善性维护 B. 适应性维护 C. 纠错性维护 D. 预防性维护 8. SD设计方法属于( ) A. 面向数据流的设计 B. 面向数据的设计 C. 面向结构的设计 D. 面向对象的设计 9. 下列选项中( )不是消息的组成元素之一

A. 发出消息的对象 B. 接收消息的对象 C. 消息名 D. 消息参数 10. 源程序文档化要求在每个模块之前加序言性注释.该注释内容不应有( ) A. 模块的功能 B. 语句的功能 C. 模块的接口 D. 开发历史 11. 在下述哪一种测试中,测试人员必须接触到源程序()。Ⅰ功能测试Ⅱ结构测试 A. 均不需 B. 只有Ⅰ C. 只有Ⅱ D. Ⅰ和Ⅱ 12. 选择结构的复杂性比顺序结构的复杂性要()。 A. 小 B. 大 C. 相等 D. 无法比较 13. 软件过程成熟度是指一个特定软件过程被明确和有效定义、管理、度量和( )的程度 A. 软件 B. 控制 C. 时间 D. 性能 14. 模块内聚度越高,说明模块内各成分彼此结合的程度越()。 A. 松散 B. 紧密 C. 无法判断 D. 相等 15. 在集成(联合)测试中,测试的主要目的是发现()阶段的错误。 A. 软件计划 B. 需求分析 C. 设计 D. 编码 16. 单元测试的对象是()。 A. 模块 B. 子系统 C. 系统 D. 硬件系统 17. 软件结构使用的图形工具,一般采用( )图 A. DFD B. PAD

软件工程李爱萍作业参考答案-最终版修改

第一章 1.1什么是软件?软件和程序的区别是什么? 答:⑴软件是程序、数据以及开发、使用和维护程序需要的所有文档的完整集合。软件的定义是:计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必须的数据。 ⑵软件不是程序,程序是软件的一部分。程序是为了解决某个特定问题而用程序设计语言描述的适合计算机处理的语句序列。它是由软件开发人员设计和编码的。程序执行时一般要输入一定的数据,也会输出运行的结果。没有相关文档,仅有程序是不能称之为软件产品的。 1.2什么是软件生存周期?划分生存周期的主要原则是什么? 答:(1)软件的生存周期是指某一软件项目被提出并着手实现开始,直到该软件报废或停止使用为止所经历的时间。 (2)主要原则:各阶段的任务彼此间尽可能相对独立,同一个阶段各项任务的性质尽可能相同,从而降低每个阶段任务的复杂性,简化不同阶段之间的联系,有利于软件开发过程的组织管理。 1.3什么是软件危机?它有哪些主要表现?为什么会产生软件危机? 答:(1)软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 (2)主要表现:对软件开发成本和研制进度的估计常常很不精确,导致经费预算经常突破,进度超时完成;由于开发人员常常对用户需求只有模糊的了解以及开发人 员和用户又未能及时交换意见,导致已完成的软件不能满足用户的需要;软件产品 质量差,可靠性得不到保证;软件产品可维护性差;软件成本在计算机系统总成本 中所占的比例逐年上升,软件的发展跟不上硬件的发展;软件开发生产率提高的速 度远远跟不上计算机应用速度普及深入趋势,软件发展跟不上用户的要求。 (3)产生软件危机的原因:造成软件危机的原因与软件自身的特点有关,也与软件开发人员在开发和维护时采用的生产方式、方法、技术有关。软件是计算机系统中 的逻辑部件,软件产品往往规模庞大,结构复杂。给软件的开发和维护带来客观的 困难;软件开发的管理困难。由于软件规模大、结构复杂、又具有无形性,导致管 理困难,进度控制困难,可靠性无法保证;软件开发费用不断增加,维护费用急剧 上升,直接威胁计算机应用的扩大;软件开发技术落后;生产方式落后;开发工具 落后,生产效率提高缓慢。另外软件开发人员忽视需求分析的重要性,轻视软件维 护也是造成软件危机的原因。 1.4什么是软件工程?怎样利用软件工程消除软件危机? 答:(1)软件工程是指导计算机软件开发和维护的一门学科 (2)首先应该对计算机软件有一个正确的认识,彻底清除“软件就是程序” 的错误观念;要使用好的开发技术和方法,并且要不断研究探索更好更有效的技术和方法;要有良好

软件工程第1章作业

软件工程第1章作业 一、填空题(每小题1分,共15分) 1、软件与物质产品有很大的区别,软件是一种_____逻辑_______产品。 2、软件工程是一门综合性交叉学科,计算机科学着重于理论和原理,软件工程着重于建造一个软件系统____________________。 3、最基本、应用广泛、以文档为驱动、适用于开发功能明确的软件项目生存期模型是_瀑布模型。 4、一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把这个漫长的时期称为_生存周期。 5、软件工程是指导计算机软件开发和维护的一门工程学科。 6、软件工程包括___软件开发技术_________和____管理________两方面的内容,是技术与管理紧密结合所形成的工程学科。 7、通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为_范型____________。 8、螺旋模型将瀑布模型和快速原型模型结合起来,加入了两种模型均忽略了的__风险分析_________,弥补了这两种模型的不足。 9、____瀑布_____模型不能适应需求可变的软件开发,只有到开发结束时才能见到整个软件系统。 10、将软件生存周期各个活动规定为依线性顺序联接的若干阶段的模型是__瀑布________模型。 11、喷泉模型是一种以用户需求为动力,以__对象________为驱动的模型。 12、一个软件项目的开发中,要采用一种生存周期模型,要按照某种_开发方法__________,使用相应的工具来进行。 13、软件工程的出现主要是由于_ ____软件危机__________的出现而产生的。 14、软件工程知识体系指南SWEBOK将软件工程知识体系划分为___10____个知识域。 15、Rational统一过程RUP是_用例_______驱动的、以体系结构为核心的、迭代的增量的过程,其迭代过程分为初始、细化、___构建________、移交4个阶段。 二、选择题(每小题2分,共30分) 1、作坊式小团体合作生产方式的时代属于( C )时代。 A.程序设计 B.软件生产自动化 C.程序系统 D.软件工程 2、软件工程与计算机科学性质不同,软件工程着重于( C )。 A.理论研究 B.原理探讨 C.建造软件系统 D.原理的理论 3、个体手工劳动生产方式的时代是( A )时代。 A.程序设计 B.软件生产自动化 C.程序系统 D.软件工程 4、软件是一种( B )产品。 A、有形B、逻辑C、物质D、消耗 5、与计算机科学的理论研究不同,软件工程是一门( C )学科。 A、理论性B、工程性C、原理性D、心理性 6、软件工程学科出现的主要原因是( C )。 A、计算机的发展B、其他工程学科的影响

软件工程学2015年下半年第二次作业答案

软件工程学2015年下半年第二次作业 一、简答题 1、模块设计准则 答:1、改进软件结构提高模块独立性(低耦合高内聚) 2、模块规模要适中 3、深度、宽度、扇入及扇出要适当 4、设计单入口单出口的模块 5、模块功能应该可以预测 6、降低接口的复杂性 7、模块的作用域应该在控制域之内 2、总体设计的任务 答:1、设计系统的物理实现方案 2、设计软件的整体结构,划分程序功能模块,决定模块间的接口关系和传递信息; 3、设计系统全局的存贮数据结构 4、设计系统I/O的方式和格式; 5、设计系统安全性、出错处理及代码等 6、设计组装测试计划。 二、选择题 1、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于(A)系统。它从用户界面的开发入手,首先形成(B),用户(C),并就(D)提出意见,它是一种(E)型的设计过程。 供选择的答案: A:①需求不确定性高的②需求确定的

③管理信息④决策支持 B:①用户界面使用手册②用户界面需求分析说明书 ③系统界面原则④完善的用户界面 C:①改进用户界面的设计②阅读文档资料 ③模拟用户界面的运行④运行用户界面原型 D:①同意什么和不同意什么②使用和不使用哪一种编程语言 ③程序的结构④执行速度是否满足要求 E :①自外向内②自顶向下 ③自内向外④自底向上 答:A.① ; B. ③; C. ④; D. ①; E. ① 2、从下面关于程序编制的叙述中,选出3条正确的叙述。 ①在编制程序之前,首先必须仔细阅读给定的程序说明书。然后,必须如实地依照说明书编写程序。说明书中常会有含糊不清或难以理解的地方。程序员在作业时应该对这些地方做出适当的解释。 ②在着手编制程序时,重要的是采用既能使程序正确地按设计说明书进行处理,又易于找出错误的编写方法。 ③在编制程序时,重要的是采用既能使程序正确地按设计说明书进行处理,又易于出错的编写方法。 ④考虑到以后的程序变化,为程序编写完整的说明书是一项很重要的工作。只要有了完整的程序说明书,既使程序的编写形式难以让人看懂也没有什么关系。 ⑤编制程序时不可缺少的条件是,程序的输入和输出数据的格式都应确定。其他各项规定都是附带的。无足轻重。 ⑥作为一个好的程序,不仅处理速度要快,而且易读易修改等也都是重要的条件。为了能得到这样的程序,不仅要熟悉程序设计语言的语法,还要注意采用适当的规格和单纯的表现方法,注意使整个程序的结构简洁。 答:①、④、⑥。 编制程序的过程实际上是根据设计的结果,用某种机器能够识别的程序设计语言,将设计翻译成机器代码的过程。因此,必须如实地按照设计说明书编写程序,至于设计说明书中含糊不清的地方,应在编程时分析人员或设人员协商,对这些地方做出适当的解释。另外,考虑到将来的程序的修改,必须为程序编写完整的说明书,同时程序必须编写得容易让别人看懂,这样程序才容易修改,修改时不容易出错,而且容易验证修改后的结果。还有,编写程序的人不需重新考虑程序要完成什么功能,这些已经在软件分析与设计过程中充分考虑过了。 3、测试过程需要3类输入:(A)、(B)和(C)。请选择正确的答案填入图5.21中以完成测试信息处理的全过程。

软件工程第1章习题

软件工程第1章例题分析与解答 一、填空题 1.软件与物质产品有很大的区别,软件是一种____逻辑___产品。 2.软件工程是一门综合性交叉学科,计算机科学着重于理论和原理,软件工程着重于___建造一个软件系统____。 3.概要设计主要是把各项功能需求转换成系统的__体系结构______。 4.最基本、应用广泛、以文档为驱动、适用于开发功能明确的软件项目生存期模型是__瀑布模型_____。 5.简单实用、应用广泛、技术成熟的开发方法是__结构化方法______。 二、选择题 1.同一软件的大量软件产品的生产主要是通过( B )而得到。 A.研究 B.复制 C.开发 D.研制 2.作坊式小团体合作生产方式的时代是( C )时代。 A.程序设计 B.软件生产自动化 C.程序系统 D.软件工程 3.软件工程与计算机科学性质不同,软件工程着重于( C )。 A.理论研究 B.原理探讨 C.建造软件系统 D.原理的理论 4.将每个模块的控制结构转换成计算机可接受的程序代码是( A )阶段的任务。 A.编码 B.需求分析 C.详细设计 D.测试 5.软件生存周期中时间最长的是( D )阶段。 A.需求分析 B.概要设计 C.测试 D.维护

一、填空题答案 1.逻辑 2.建造一个软件系统 3.体系结构 4.瀑布模型 5.结构化方法 二、选择题答案 1.B 2.C 3.C 4.A 5.D

第1章自测题及参考答案 一、名称解释 1.软件 2.文档 3.软件工程 4.软件生存周期 5.软件工程过程 6.软件生存周期模型 7.软件开发方法 8.软件工具 二、填空题 1.构成一个完整计算机系统的两部分是硬件与_____软件___。 2.程序设计时代的生产方式是___个体手工劳动_____。 3.软件工程涉及到几个学科,它是一门__综合性交叉___学科。 4.软件开发划分的各阶段任务尽可能独立,同一阶段任务性质尽可能_____相同___。 5.将软件生存周期各个活动规定为依线性顺序联接的若干阶段的模型是_瀑布_______模型。 6.喷泉模型是一种以用户需求为动力,以____对象___为驱动的模型。 7.结构化方法是一种面向数据流的开发方法。由结构化分析、__结构化设计_____、结构化程序设计构成。 8.软件工程研究的主要内容是软件开发管理和___软件开发技术____两个方面。 9.软件工具是支持软件开发人员的开发和维护活动而使用的____软件____。 10.一个软件项目的开发中,要采用一种生存周期模型,要按照某种_开发方法_______,使用相应的工具来进行。 三、选择题 1.软件是一种( B )产品。 A.物质 B.逻辑 C.有形 D.消耗

软件工程概述习题及答案

第一章软件工程概述 一. 填空题 1. 软件的发展过程, , , . 2. 基于软件的工作方式,软件可以划分为, , , . 3. 在软件发展的第四阶段计算机体系结构迅速地从环境转变为环境. 4. 在计算机系统中,软件是, 而硬件是. 5. 软件危机是在软件发展第阶段末期,随着第代计算机和诞而产生。 6. 文档一般可分为面向的文档,面向的文档,面向的文档和面向的文档。 7. 软件生存期若分为三个大的阶段,,. 8. 它是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。 9. 在软件的生存周期开发阶段要经三个步骤, , 。 10. 瀑布模型是以文档为驱动、适合于的软件项目的模型。 11. 螺旋模型将开发过程分为几个螺旋周期,在每个螺旋周期内为,, 和四个步骤。 12. 软件开发的螺旋模型综合了瀑布模型和演化模型的优点,还增加了____。采用螺旋模型时,软件开发沿着螺线自内向外旋转,每转一圈都要对____ 进行识别和分析,并采取相应的对策。螺旋线第一圈的开始点可能是一个____ 。从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直运转到软件生命期结束。 13. 软件开发模型, , , , , . 14. 软件工程面临的问题有, , , . 15. 面向对象方法学把客观世界的事物或实体都看成对象,把对象作为分析设计的元素,把所有对象都划分成对象类,类可以派生和. 16.基于软件的功能划分可以把软件划分为, ,和。 17.计算机系统发展的早期所形成的一系列错误概念和做法,已经严重地阻碍了计算机软件的开发,甚至有的根本无法维护,只能提前报废,造成大量人力、物力的浪费,从而导致软件危机。为了研究解决的方法,计算机科学技术领域中的一门新兴的学科逐步形成了,这就是。18.软件工程是指导的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。 19.为了开发出低成本高质量的软件产品,软件工程学应遵守以下基本原则:, ,和, 。 20.原型模型是从需求分析开始。软件开发者和用户在一起定义,说明需求,并规划出定义的区域。然后快速设计软件中对用户/客户可见部分的表示。快速设计导致了原形的建造,原形由用户/客户评估,并进一步求精。

中国石油大学(北京)软件工程第二次在线作业满分答案

单选题 (共25道题) 收起 1.( 2.5分)在下列的基本成分中,哪个不是数据流程图的基本成分? ? ? ? ? ? 3.(2.5分)结构化分析SA方法以数据流图、()和加工说明等描述工具,即用直观的图和简洁的语言来描述软系统模型。 ? ? ? 4.(2.5分)在软件的分析阶段,常用()来描述业务处理系统的信息来源、存储、处理和去向。 5.(2.5分)开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作()。 ?A、软件投机 ? ?

? ? ? 7.(2.5分)程序的三种基本控制结构的共同特点是 ? ? ? 8.(2.5分)结构设计是一种应用最广泛的系统设计方法,是以()为基础、自顶向下、逐步求精和模块化的过程。 ? 9.(2.5分)数据字典是对数据定义信息的集合,它所定义的对象都包含于 ?A、数据流图 ? ? 10.(2.5分)在软件结构化设计中,好的软件结构设计应该力求做到 ? ? 11.(2.5分)在整个软件维护阶段所花费的全部工作中,所占比例最大的是 ?A、校正性维护

? ? 12.(2.5分)黑盒测试在设计测试用例时,主要需要研究 ? ? ? 13.(2.5分)软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为 ? ? 14.(2.5分)瀑布模型把软件生存周期划分为软件定义、软件开发和()三个阶段,而每一个阶段又可 ? ? ? 15.(2.5分)分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描述了系统的()。 ? ? ? 16.(2.5分)软件的()设计又称为总体结构设计,其主要任务是建立软件系统的总体结构。 ? ?

软件工程第2章作业 (2)

软件工程第2章作业 一、填空题(每小题2分,共22分) 1、可行性研究实质上是进行一次简化、压缩了的___需求分析和设计____。 2、可行性研究的三个方面是技术可行性、社会可行性和__经济可行性。_______。 3、可行性研究的第一个具体步骤是___确定项目的规模和目标_______。 4、若年利率为i ,不计复利,P 元在n 年后的价值F 是__ P (1+i )n _______。 5、整个生存周期系统的累计收入的折现值PT 与总成本折现值ST 之差称为___纯收入_______。 6、把资金投入到项目中与把资金存入银行比较,其中投入到项目中可获得的年利率就称为项目的_____投资回收率______________。 7、可行性研究的目的是用最小的代价,在尽可能短的时间内,确定__问题是否能够解决。____________。 8、可行性研究在进行简要需求分析和设计时,要在高层次上以___抽象方式____________进行。 9、软件工程有两种效益,它们是无形效益和___有形效益___________。 10、项目开发计划是一种___管理性___________文档。 11、基于计算机系统的系统元素主要有硬件、软件、人、_数据库_______、文档、__过程_________。 二、选择题(每选择题2分,共36分) 1、可行性研究的目的是决定( B )。 A 、开发项目 B 、项目是否值得开发 C 、规划项目 D 、维护项目 2、技术可行性要研究的问题之一是( B )。 A 、存在侵权否 B 、成本效益问题 C 、运行方式可行否 D 、技术风险问题 3、纯收入是累计效益现在值与投资之( B )。 A 、和 B 、差 C 、积 D 、商 4、项目开发计划这类文档是一种( B )。 A 、技术性文档 B 、管理性文档 C 、需求分析文档 D 、设计文档 5、在软件的可行性研究中,可以从不同的角度对软件的可行性进行研究,其中是从软件的功能可行性角度考虑的是( B )。 A 、经济可行性 B 、技术可行性 C 、操作可行性 D 、法律可行性 6、在软件工程项目中,不随参与人数的增加而使软件的生产率增加的主要问题是( D )。 A 、工作阶段间的等待时间 B 、生产原型的复杂性 C 、参与人员所需的工作站数 D 、参与人员之间的通信困难 7、制定软件计划的目的在于尽早对欲开发的软件进行合理估价,软件计划的任务是( D )。 A 、组织与管理 B 、分析与估算 C 、设计与测试 D 、规划与调度

相关文档
最新文档