文档库 最新最全的文档下载
当前位置:文档库 › 软件工程作业含答案解析

软件工程作业含答案解析

软件工程作业含答案解析
软件工程作业含答案解析

软件工程第一章作业 (1)

1.1什么是计算机软件?软件的特点是什么? (1)

1.2简述软件的分类,并举例说明。 (1)

1.4什么是软件工程? (1)

1.5简述软件工程的基本原则。 (1)

1.6软件生存周期分哪几个阶段?分别简述各个阶段的任务。1

1.9简述各类软件过程模型的特点。 (2)

1.10敏捷软件开发的特点是什么? (2)

1.12简述敏捷软件开发的原则。 (2)

第2、3章 (3)

2.1简述系统工程的任务。 (3)

2.2基于计算机的系统由哪些元素组成? (3)

2.3简述可行性分析的任务。 (3)

3.1需求工程的重要性是什么?举出身边由于需求分析失败而造成整个项目失败的例

子。 (3)

3.2需求工程具体包括哪些步骤?每个步骤的具体任务是什么?3

3.3 一个系统分析员应该具备哪些思想素质和基础知识?请说明理由。4

3.4列出在制定需求获取策略时的3种主要考虑因素。 (5)

3.6举例说明一个系统的3个不同类型的非功能需求 (5)

3.8软件需求分析的操作性原则和需求工程的指导性原则是什么? (5)

3.9软件需求规约主要包括哪些内容?自己寻找一个实例,亲自写一个需求规约。.5

3.10需求验证应该有哪些人参加?画出一个过程模型,说明需求评审应该如何组织。5第4章 (5)

4.1简述软件设计阶段的基本任务 (5)

4.2软件设计与质量的关系是怎么样的? (6)

4.4简述模块、模块化及模块化设计的概念。 (6)

4.6耦合和软件可移植性的概念有何关系?举例说明自己的结论。 (6)

4.7用自己的话描述信息隐蔽概念,并讨论信息隐藏与模块独立两概念之间的关系。6

4.8什么是模块独立性?设计中为什么模块要独立?如何度量独立性?模块功能独立

有何优点? (6)

4.9软件设计规约主要包括哪些内容? (7)

第5章结构化分析与设计 (7)

5.1简述数据流图的主要思想,概述使用数据流图进行需求分析的过程。7

5.2分别采用数据流方法中得哪些技术来完成用户需求的精确化、一致化和完全化的任

务。 (7)

5.7 (8)

第6\8章 (12)

6.1简述面向数据结构方法的特点 (12)

6.2 采用Jackson图表示下面的文件结构: (13)

8.1什么是构件? (13)

8.2简述基于构件的软件开发过程。 (13)

第11、13 章 (14)

13.1请讨论使软件维护成本居高不下的因素。如何尽可能降低这些因素的影响?. 14

13.3软件维护的过程是如何进行的?为什么要进行软件可维护性分析?15

软件工程第一章作业

1.1什么是计算机软件?软件的特点是什么?答:计算机软件指计算机系统中的程序及其文档。

软件的特点是:

A软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确得估算;

B软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其

维护的工作量大;

C软件的使用没有硬件那样的机械磨损和老化问题。

1.2简述软件的分类,并举例说明。

答:在《计算机科学技术百科全书》中,将软件分为系统软件、支撑软件和应用软件3类。A系统软件:系统软件居于计算机系统中最靠近硬件的一层,其他软件一般都通过系统软件

发挥作用。系统软件与具体的应用领域无关。例如:编译程序、操作系统等。

B支撑软件:支撑软件是支撑软件的开发和维护的软件。例如:数据库管理系统、网络软件、

软件工具、软件开发环境等。

C应用软件:应用软件是特定应用领域专用的软件。例如:工程/科学计算软件、嵌入式软

件、产品线软件、Wet应用软件、人工智能软件。

1.4什么是软件工程?

答:在《计算机科学技术百科全书》中软件工程是应用计算机科学、数学及管理科学等原理,

开发软件的工程。

1.5简述软件工程的基本原则。

答:软件工程原则包括围绕工程设计、工程支持和工程管理提出的以下4条基本原则:

第一条:围绕适宜的开发模型;

第二条:采用合适的设计方法;第三条:提供高质量的工程支撑;第四条:重视软件工程的管理。

1.6软件生存周期分哪几个阶段?分别简述各个阶段的任务。

答:软件生存周期有计算机系统工程、需求分析、设计、编码、测试、运行和维护6个阶段。

A计算机系统工程的任务是确定待开发软件的总体要求和范围,以及该软件与其他计算机系

统元素之间的关系,进行成本估算,做出进度安排,并进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中做出选

择。

B需求分析主要解决待开发软件要“做什么”的问题,确定软件的功能、性能、数据、界面等要求,生成软件需求规约。

C软件设计只要解决待开发软件“怎么做”的问题。软件设计通常可分为系统设计和详细设

计。系统设计的任务是设计软件系统的体系结构,包括软件系统的组成成分、各成分的功能

和接口、成分间的连接和通信,同时设计全局数据结构。详细设计的任务是设计各个组成成分的实现细节,包括局部数据结构和算法等。

D编码阶段的任务是用某种程序设计语言,将设计的结果转换为可执行的程序代码。

E测试阶段的任务是发现并纠正软件中的错误和缺陷。测试主要包括单元测试、集成测试、确认测试和系统测试。

F软件完成各种测试后就可交付使用,在软件运行期间,需对投入运行的软件进行维护,即可发现了软件中潜藏的错误或需要增加新的功能或使软件适应外界环境的变化等情况出现时,对软件进行修改。

1.9简述各类软件过程模型的特点。

答:典型的软件过程模型有:瀑布模型、演化模型(增量模型、原型模型、螺旋模型)、喷

泉模型、基于构件的开发模型和形式方法模型等。

A瀑布模型中,上一阶段的活动完成并经过评审后才能开始下一阶段的活动,其特征是:

接受上一阶段活动的结果作为本阶段活动的输入;

依据上一阶段活动的结果实施本阶段应完成的活动;

对本阶段的活动进行评审;

将本阶段活动的结果作为输出。

B增量模型将软件的开发过程分成若干个日程时间交错的线性序列,每个线性序列产生软件

的一个可发布的增量版本,后一个版本是对前一个版本的修改和补充,重复增量发布的过程,直至产生最终的完善产品。

C原型方法从软件工程师与客户的交流开始,其目的是定义软件的总体目标,标识需求。然后快速制定原型开发的计划,确定原型的目标和范围,采用快速设计的方式对其建模,并构建模型。被开发的原型应交付给客户使用,并收集客户的反馈意见,这些反馈意见可在下一

轮迭代中对原型进行改进。在前一个原型需要改进,或者需要扩展其范围的时候,进入下一轮原型的迭代开发。

D螺旋模型将原型模型实现的迭代特征与瀑布模型中控制的和系统化的方面结合起来,不仅体现了这两种模型的优点而且还增加了风险分析。

E喷泉模型是一种支持面向对象开发的过程模型。类及对象是面向对象方法中的基本成分。

在分析阶段,标识类及对象,定义类之间的关系,建立对象-关系模型和对象-行为模型。在

设计阶段,从实现的角度对分析模型进行调整和扩充。在编码阶段,用面向对象语言实现类

及对象,通过消息机制实现对象之间的通信,完成软件的功能。在面向对象方法中,分析模

型和设计模型采用相同的符号表示体系,开发的各个活动没有明显的边界,各个活动经常重复,迭代地交替进行。

F基于构件的开发模型,基于构件的开发是指利用预先包装的构建来构造应用系统。构件可以是组织内部开发的构建,也可以是商业化的、现存的软件构件。

G形式化方法是建立在严格数学基础上的一种软件开发方法。软件开发的全过程中,从需求分析、规约、设计、编程、系统集成、测试、文档生成,直至维护等各个阶段,凡是采用严格的数学语言,具有精确的数学语义的方法,都称为形式化方法。形式化方法用严格的数学语言和语义描述功能和设计规约,通过数学的分析和推导,易于发现需求的歧义性、不完整

性和不一致性,易于对分析模型、设计模型和程序进行验证。通过数学的演算,使得从形式

化功能规约到形式化设计规约,以及从形式化设计规约到程序代码转换成为可能。

1.10敏捷软件开发的特点是什么?答:敏捷软件开发的特点有4个:A个人和交互高于过程和工具;B可运行软件高于详尽的文档;C与客户协作高于合同谈判;

D对变更及时做出反应高于遵循计划。

1.12简述敏捷软件开发的原则。

答:敏捷软件开发必须遵循的12条原则如下;

A最优先的是通过尽早地和不断地提交有价值的软件来使客户满意;

B欢迎变化的需求,即使该变化出现在开发的后期,为了提升对客户的竞争优势,Agile过程利用变化作为动力;

C以几周到几个月为周期,尽快、不断地发布可运行软件;

D在整个项目过程中,业务人员和开发人员必须天天一起工作;

E以积极向上的员工为中心建立项目组,给予他们所需要的环境和支持,对他们的工作予以充分的信任;

F项目组内效率最高、最有效的信息传递方式是面对面的交流;

G测量项目进展的首要依据是可运行的软件;

H敏捷过程提倡可持续的开发,项目发起者、开发者和用户应能长期保持恒定的速度;

I应该时刻关注技术上的精益求精和好的设计,以增强敏捷性;J简单化是必不可少的,这是尽可能减少不必要工作的艺术;

K最好的构架、需求和设计出自于自我组织的团队;

L团队要定期反思怎样才能更加有效,并据此调整自己的行为。

第2、3章

2.1简述系统工程的任务。

答:系统工程是一个问题求解的活动,其目的是分析基于计算机的系统的功能、性能等要求,并把它们分配到基于计算机系统的各个系统元素中,确定它们的约束条件和接口。主要任务

包括:(1 )识别用户要求;(2)系统建模与模拟;(3)成本估算及进度安排;(4)可行性分析;(5)生成系统规格说明。

2.2基于计算机的系统由哪些元素组成?

答:组成基于计算机系统的元素主要有:软件、硬件、人员、数据库、文档和规程。

2.3简述可行性分析的任务。

答:可行性分析主要从经济、技术、法律等方面分析所给出的解决方案是否可行,能否在规

定的资源和时间的约束下完成。

(1)经济可行性主要进行成本效益分析,从经济角度,确定系统是否值得开发。包括成本、效益、货币的时间价值、投资回收期和纯收入。

(2)技术可行性主要根据系统的功能、性能、约束条件等,分析在现有资源和技术条件下系统能否实现。技术可行性分析通常包括风险分析、资源分析和技术分析。

(3)法律可行性主要研究系统开发过程中可能涉及到的合同、侵权、责任以及各种与法律相抵触的问题。

3.1需求工程的重要性是什么?举出身边由于需求分析失败而造成整个项目失败的例子。

答:重要性是应用已证实有效的技术、方法进行需求分析,确定客户需求、帮助分析人员理

解问题,评估可行性,协商合理的解决方案,无歧视地规约方案,确认规约以及将规约转换

到可行性的系统时的管理要求,通过合理的工具和符号系统地描述待开发系统以及其行为特征和相关约束,形成需求文档,并对用户不断变化的需求演进给予支持。因需求分析失败而

造成项目失败例子如下:项目名称:邮政资信管理系统

项目功能:管理邮政方面业务的监督和管理,提高邮政的服务效率。失败原因:需求分析不足,需求内容不明确,把握不充分。

3.2需求工程具体包括哪些步骤?每个步骤的具体任务是什么?

答:需求工程具体步骤包括:需求获取、需求分析与协商、系统建模、需求规约、需求验证以及需求管理六个步骤。

(1 )需求获取

在需求获取阶段系统分析人员通过与用户的交流、对现有系统的观察以及对任务进行分析,确定系统或产品范围的限制性描述、与系统或产品有关的人员及特征列表、系统的技术环境

的描述、系统功能的列表以及应用于每个需求的领域限制、一组描述不同运行条件下系统或产品使用状况的应用场景以及为更好地定义需求而开发的原型。需求获取的工作产品为进行

需求分析提供了基础。

(2 )需求分析与协商

此阶段的任务是对需求进行分类组织,分析每个需求与其他需求的关系以检查需求的一致

性、重叠和遗漏的情况,并根据用户的需要对需求进行排序。

(3 )系统建模

系统建模是为了在用户和系统分析人员之间建立统一的语言和理解的桥梁,系统分析人员借

助建模技术对获取的需求信息进行分析,排除错误和弥补不足,确保需求分析文档正确反映

用户的真实意图。

(4 )需求规约

软件需求规约是分析任务的最终产物,通过建立完整的信息描述、详细的功能和行为描述、

性能和设计约束的说明、合适的验收标准,给出对目标软件的各种需求。需求规约作为用户和开发者之间的一个协议,在之后的软件工程各个阶段发挥重要作用。

(5 )需求验证

此阶段的任务是对功能的正确性、完整性和清晰性,以及其他需求给予评价,保证软件需求

定义的质量。

(6 )需求管理

软件需求管理是对需求工程所有相关活动的规划和控制。换句话说,需求管理就是:一种获

取、组织并记录系统需求的系统化方案,以及一个使用户与项目团队对不断变更的系统需求

达成并保持一致的过程。

3.3 一个系统分析员应该具备哪些思想素质和基础知识?请说明理由。

答:

(1 )强烈的责任心和事业心

系统分析师由于必须保证分析的准确性,尤其是需求,所以责任更为重大。一般来说,不应

以用户表述不明确,无法得到需求,或者用户需求变化太多太快作为借口,更不能因为下面

的研发技术人员技术水平不如自己而责备研发技术人员,同时也需要能够为保证企业利益而

说服公司领导做出正确的决策;

(2 )钻研精神

IT行业不同于其他行业,新理念新技术新方法层出不穷,系统分析师需要能够适时适当地

引进新理念新技术新方法,为企业提高生产效率,为员工降低劳动强度,为客户提供更具竞争力和更加实用的产品和服务;

(3)优秀的协商谈判能力

复杂的系统有许多项目相关的人员,他们之间的需求必定会出现冲突,协商的过程就是讨论需求,找出每个人都满意的折衷方案。分析人员是参与这之中的重要一份子,需要协调这之中的各方利益,这就要求分析员必须要有优秀的协商谈判能力。

(4 )广泛的知识面:

除了具备基本的IT技能、知识外,需要广泛涉猎其他行业其他学科的知识方法,以系统工程的理念,借鉴和利用其他行业的为IT行业所用,也可以把IT行业的理念应用到其他行

业;

(5)精湛的技术能力:

系统分析员往往需要分析可行性和解决研发人员的技术问题,因此必须具备广泛的技术涉猎

面和较强的技术能力;

(6)财务能力:

系统分析员往往需要参与项目的招投标分析, 为了保证企业的利润和客户的利益, 必须进行

财务核算,需要具备会计、财务,成本计算等方面的能力; (7)司法能力:

与其他大部分行业一样,IT 行业也受到法律的约束,任何活动必须合情合理合法,任何违 背法律的项目最终都会失败,违背伦理道德的事和人最终都将失去人心。 (8 )超强超快的学习能力:

IT 行业新技术层出不穷,同时其他相关必备知识、业务知识也是瞬息万变,系统分析师要 能够快速学习并快速掌握和灵活应用; (9 )敏锐的观察力:

由于IT 行业项目的特殊性,项目复杂多变,系统分析师要能够先于其他人员发现问题、发 现隐患,并提前做出规避风险的策略。

3.4列出在制定需求获取策略时的

3种主要考虑因素。

答:(1 )能否建立起顺畅的通讯途径;(2)是否能够获取用户对系统的功能需求和非功能需 求;(3)是否利于在可运行系统时的管理要求。

3.6举例说明一个系统的 3个不同类型的非功能需求 答:非功能性需求是指软件产品为满足用户业务需求而必须具有且除功能需求以外的特性。 软件产品的非功能性需求包括系统的性能、

可靠性、可维护性、可扩充性和对技术和对业务

的适应性等。例如在银行管理系统中,由于银行数据量的庞大以及对银行账户的管理需求, 用户对系统的性能、 可靠性、可维护性要求很高。 安全性是对银行用户个人信息保密的基本 要求;在使用系统时,由于用户庞大,要求能快速安全的执行要求,这就对系统的性能有高 需求;银行的用户的变动比较大,需求高要求的系统维护。

3.8软件需求分析的操作性原则和需求工程的指导性原则是什么? 答:(1 )必须能够表示和理解问题的信息域;

(2)必须能够定义软件将完成的功能;

(3) 必须划分描述数据、功能和行为的模型,从而可以分层次地揭示细节; (4) 分析过程应该从要素信息移向细节信息

3.9软件需求规约主要包括哪些内容?自己寻找一个实例,亲自写一个需求规约。

答:软件需求规约包括:引言、信息描述、功能描述、行为描述、检验标准、参考书目、附 录。

3.10需求验证应该有哪些人参加?画出一个过程模型,说明需求评审应该如何组织。 答:参与人员:分析人员,用户,开发部门的管理者,软件设计、实现、测试的人员。

需求分析

软件设计的输入是软件分析模型。 使用一种设计方法,软件分析模型中通过数据、功能和行

用户

分析人员

为模型所展示的软件需求的信息被传送给设计阶段,产生数据/类设计、体系结构设计、接

口设计、部件及设计。

数据/类设计将分析类模型变换成类的实现和软件实现所需要的数据结构。

体系结构设计定义了软件的整体结构,由软件部件、外部可见的属性和他们之间的关系组成。

接口设计描述了软件内部、软件和协作系统之间以及软件同人之间的通信方式。部件级设计将软

件体系结构的结构性元素变换为对软件部件的过程性描述。

4.2软件设计与质量的关系是怎么样的?

设计是在软件开发中形成质量的阶段,设计提供了可以用于质量评估的软件表示,是将用户需求准确的转化为完整的软件产品或系统的主要途径。

4.4简述模块、模块化及模块化设计的概念。

在软件工程中模块是数据说明、可执行语句等程序对象的集合,具有名字、参数、功能等外

部特征以及完成模块功能的程序代码和模块内部数据等内部特征。

模块化,即把软件按照规定原则,划分为一个个较小的,相互独立的但又相互关联的部件,实际上是系统分解和抽象的过程。

模块化设计,简单地说就是程序的编写不是开始就逐条录入计算机语句和指令,而是首先用主程序、子程序、子过程等框架把软件的主要结构和流程描述出来,并定义和调试好各个框

架之间的输入、输出链接关系。逐步求精的结果是得到一系列以功能块为单位的算法描述。

以功能块为单位进行程序设计,实现其求解算法的方法称为模块化。模块化的目的是为了降

低程序复杂度,使程序设计、调试和维护等操作简单化。

4.6 耦合和软件可移植性的概念有何关系?举例说明自己的结论。

所谓“耦合性”是指模块之间联系的紧密程度的一种度量,而软件的“可移植性”是指将一

个软件系统从一个计算机系统或环境移植到另一个计算机系统或环境中运行时所需工作量的大小。可移植性是用一组子特性,包括简明性、模块独立性、通用性、可扩充性、硬件独立性和软件系统独立性等,来衡量的。如果一个软件具有可移植性,它必然耦合性低,这样模块独立性要强。例如,有一个图形处理软件,它应具有二维几何图形处理、三维几何图形处理、图形显示、外设控制、数据库管理、用户界面控制、设计分析等模块。如果这些模块之间都是通过参数表来传递信息,那么它们之间的的耦合就是数据耦合或标记耦合等,都是低耦合。将来如果想要把它们移植到另一个外部环境中,这些模块容易修改(功能内聚),且接口清晰,修改可局部化。反言之,如果这些模块都是功能内聚或信息内聚的模块,模块之间的耦合都是低耦合,也对可移植性有促进。但不能讲具有低耦合性模块结构的软件一定具有可移植性,因为是否具有可移植性还有其它因素的影响。

4.7用自己的话描述信息隐蔽概念,并讨论信息隐藏与模块独立两概念之间的关系。

信息隐藏指在设计和确定模块时,使得一个模块内包含的特定信息(过程或数据),对于不需要这些信息的其他模块来说,是透明的。“隐藏”的意思是,有效的模块化通过定义一组

相互独立的模块来实现,这些独立的模块彼此之间仅仅交换那些为了完成系统功能所必需的信息,而将那些自身的实现细节与数据“隐藏”起来。信息隐蔽为软件系统的修改、测试及以后的维护都带来好处。通过抽象,可以确定组成软件的过程实体。通过信息隐藏,可以

定义和实施对模块的过程细节和局部数据结构的存取限制。模块独立的概念是模块化、抽象、

信息隐藏和局部化概念的直接结果。开发具有独立功能而且和其他模块之间没有过多的相互作用的模块,就可以做到模块独立。

4.8什么是模块独立性?设计中为什么模块要独立?如何度量独立性?模块功能独立

有何优点?

(1 )模块的独立性是模块化、信息隐藏和局部化等概念的直接结果。

(2)模块的独立性是很重要的:第一,功能被划分,并且接口被简化,所以具有有效模

块化的软件易于开发。第二,由于因设计和编码修改引起的副作用受到局限,

错误传播被减小,并且模块复用成为可能,所以独立的模块更易于维护和测试。总的来说,模块独立是良好设计的关键,从而又是保证软件质量的关键。

(3)用内聚度与耦合度来度量独立性。内聚度度量同一个模块内部各个元素彼此结合的紧密程度,耦合度度量不同模块彼此间相互以来的紧密程度。

(4)模块功能独立的优点:系统容易开发,系统可靠性高,系统易于维护,软件结构清晰。

4.9软件设计规约主要包括哪些内容?

1.工作范围

2.体系结构设计

3.数据设计

4.接口设计

5.各部件的过程设计

6.运行设计

7.出错处理设计

8.安全保密设计

9.需求/设计交叉索引

10.测试部分

11.特殊注解

12.附录

第5章结构化分析与设计

5.1简述数据流图的主要思想,概述使用数据流图进行需求分析的过程。

数据流图(DFD描述输入数据流到输出数据流的变换(即加工),用于对系统的功能建

模。

数据流图可以用来抽象地表示系统或软件。它从信息传递和加工的角度,以图形的方式刻画

数据流从输入到输出的移动变换过程,同时可以按自顶向下、逐步分解的方法表示内容不断

增加的数据流和功能细节。因此,数据流图既提供了功能建模的机制,也提供了信息流建模

的机制,从而可以建立起系统或软件的功能模型。

数据流图进行需求分析的过程:

1)画出系统的输入和输出

2)画出系统内部

3)画出加工内部

4)重复第三步,直至每个尚未分解的加工都足够简单(即不必再分解)

5.2分别采用数据流方法中得哪些技术来完成用户需求的精确化、一致化和完全化的任务。

1)父图和子图平衡

2)数据守恒

3)局部文件

4)一个加工的输入数据流不能与该加工的输入数据流同名

5)每个加工至少有一个输入数据流和一个输出数据流。

6)在整套分层数据流中,每个文件应至少有一个加工读该文件,有另一个加工写该文件。

7)分层数据流图中得每个数据流和文件都必须命名(除了流入或流出文件的数据流),并且与数

据字典一致。

8)分层DFD中的每个基本加工(即不再分解子图的加工)都应有一个加工规约。

5.4在数据流图中,可否将两个加工用一个数据流相连?可否将两个源用一个数据流相连?为什么?

两个加工可以直接用数据流相连,两个源不能直接用数据流相连。因为数据流由一组固定成分的数据组成。在DFD中,数据流的流向可以有以下几种:从一个加工流向另一个加

工,从加工流向文件(写文件),从文件流向加工(读文件),从源流向加工,从加工流向宿。

5.7

采用结构化分析方法写出书店管理系统的需求文档,包括数据流图及数据字典。看到这个题目,我想起了以前自己也在手机端An droid平台写了一个书店的管理系统,不过那个时候根本没有什么需求分析,只是自己一厢情愿的模拟了一个简单的流程。也没有采用什么

结构化分析方法,就仅仅描述了几个对象及其功能。所以我觉得可以对照着新学的软件工程

的知识运用到自己的实际项目中去,同时也可以完成这道相识的题目。

下图就是以前的功能结构图:

利用结构化方法分析:

1、数据流程图

第一,存书分数据流图:

存书情况

第四,会员分数据流图:

会员信息

会员信息

进货信息

进货信息 属性名 类型

长度 汎 新书 ------ / , 备注

、/

书号 char 10 书的编号 、/

书名 char 30 书的名称 作者 char 20 书的写作者 类型 char 20 书的类型 简述 char 150 书的简单介绍 单价 smallm oney 4 书的价格

现存数量 int 4 店内的现有存书数量 店内位置 char 20 书在店内的具体位置 出版社号

char 10 出版社的编号

特价书 char

2

是否为特价书(缺省值是“否”)

查询

查询

存书情况

新书列

是否为

2、数据字典 存书数据字典:

第6\8章

6.1简述面向数据结构方法的特点答:特点如下:

1以信息对象及其操作作为核心进行需求分析;

2认为复合信息对象具有层次结构,并且可按顺序,选择,重复3种结构分解为成员对象信息;

3提供由层次信息结构映射为程序结构的机制,从而为软件设计奠定良好的基础。

6.2采用Jackson图表示下面的文件结构:

根据pressman 书中的定义

构件是某系统中有价值的、几乎独立的并可替换的一个部分,它在良好定义的体系结构语境

内满足某种清晰的功能。

根据brown的定义

构件是一个独立发布的功能部分,可以通过其接口访问它的服务。

根据《计算机科学技术百科全书(第二版)》中的定义

软件构件是软件系统中具有相对独立功能,可以明确标识,接口由规约指定,与语境有明显

依赖关系,可独立部署,且多由第三方提供的可组装软件实体。

软件构件须承载有用的功能,并遵循某种构件模型。可复用构件是指具有可复用价值的构件。在基于构件的软件开发中经常会使用到的商用成品构件,是指由第三方开发的满足一定构件

标准并且可组装的软件构件。

8.2简述基于构件的软件开发过程。

基于构件的软件开发过程:

领域工程的步骤:

1领域分析

2建立领域特定的基准体系结构模型

3标识候选构件

4泛化和可变性分析

5 构件重构

6构件的测试

7构件的包装

8构件入库

应用系统工程的步骤:

1建立应用系统的体系结构模型;

2寻找候选构件;

3评价和选择合适的构件;

4构件的修改和特化;

5开发未被复用的不分;

6构件的组装;

7集成测试;

8评价被复用的构件,并推荐可能的新构件。

第11、13章

13.1请讨论使软件维护成本居高不下的因素。如何尽可能降低这些因素的影响?

软件维护的代价是生产率惊人下降。维护费用只不过是软件及维护最明显的代价,起一些隐性的代价将更为人们关注。

软件维护除费用外的无形代价包括:

1.维护活动占用了其他软件开发可用的资源,使资源的利用率降低

2.—些修复或修改请求得不到及时安排,使得客户满意率下降

3.维护的结果把一些新的潜在的错误引入软件,降低了软件质量

4.将软件人员抽调到维护工作中,使得其它软件开发过程受到干扰

影响维护工作量的因素主要有以下六种:

1.系统的规模:系统规模越大,其功能就越复杂,软件维护的工作量也随之增大

2.程序设计语言:使用强功能的程序设计语言可以控制程序的规模。语言的功能越强,生成

程序的模块化和结构化程度越高,所需的指令数就越少,程序的可读性也越好

3.系统年龄:老系统比新系统需要更多的维护工作量。

4.数据库技术的应用:使用数据库,可以简单而有效地管理和存储用户程序中的数据,还可以减少生成用户报表应用软件的维护工作量

5.先进的软件开发技术:在软件开发过程中,如果采用先进的分析设计技术和程序设计技术,

如面向对象技术、复用技术等,可减少大量的维护工作量

6.其它一些因素:如应用的类型、数学模型、任务的难度、IF嵌套深度、索引或下标数等,

对维护工作量也有影响

为了有效的进行软件维护,尽可能降低这些因素的影响,应事先就开始做组织工作:

1.首先建立维护的机构

2.申明提出维护申请报告的过程及评价的过程

3.为每一个维护申请规定标准的处理步骤

4.建立维护活动的登记制度以及规定评价和评审的标准

13.3软件维护的过程是如何进行的?为什么要进行软件可维护性分析?

1.对于非纠错性维护,则首先判断维护类型,对适应性维护,按照评估后得到的优先级放入队列

2.对于改善性维护,则还要考虑是否采取行动,如果接受申请,则同样按照评估后得到的优

先级放入队列,如果拒绝申请,则通知请求者,并说明原因

3.对于工作安排队列中的任务,由修改负责人依次从队列中取出任务,按照软件工程方法学

规划、组织、实施工程。

4.每种维护请求都要进行同样的一系列技术工作:修改软件需求说明、修改软件设计、设计

评审、必要时重新编码、单元测试、集成测试(包括回归测试)、确认测试等

5.维护工作最后一步是复审

维护过程图:

进行可维护性分析的原因:

软件维护是指软件系统交付使用以后,为了改正错误或满足新的需求而修改软件的过程。一个中等规模的软件,如果其开发过程需要一二年时间,则它投入使用以后,其运行时间可能

持续5?10年之久。在这个维护阶段中,人们需要着手解决开发阶段尚未解决的问题,同时, 还解决维护工作本身所产生的问题。做好软件的维护工作不仅能够排除软件中存在的错误,使它能够正常工作,而且还可以使它扩充功能,提高性能,为用户带来新的效益。软件的可维护性是指维护人员为纠正软件系统出现的错误或缺陷,以及为满足新的要求而理解、修改

和完善软件系统的难易程度。可维护性是所有软件系统都应具备的特点。在软件工程的每一

阶段都应该努力提高系统的可维护性,在每个阶段结束前的审查和复审中,应着重对可维护

性进行复审。维护阶段的花费约占整个软件生命期花费的67%因此,应充分认识到维护现

有软件的重要意义。

3.7在重构和正向工程之间存在的细微不同是什么?

当某应用的基本体系结构是坚固的时候发生重构,即使技术的内部细节需要修改。当软件的

大部分是有用的,仅仅部分模块和数据需要扩展性修改时,启动重构活动。正向工程是通过

到实现语言的映射而把模型转换为代码的过程。正向工程过程应用软件工程的原理、概念、技术和方法来重新开发某个现有的应用系统。

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

软件危机与软件工程 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、计算机软件不仅仅是程序,还应该有一整套(文档资料). 2、软件定义时期的最后一个工作阶段是(需求分析)阶段。 3、(快速原型)模型的基本特性是“快速”和“容易修改”。 4、信息流的类型主要包括(事务流)和(变换流)。 5、(判定表)适用于表示多重嵌套的条件选择。 6、我们通常采用的调试途径包括(蛮干法,回溯法和原因消除法)。 7、程序流程图中的箭头代表(控制流) 8、内聚程度较低的是(偶然)内聚。 9、软件工程方法学三要素(方法,工具,过程). 10、可行性分析至少应从(经济,技术,操作)三方面研究每种解法的可行性。 11、(可行性研究)的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否 能够开发,是否值得开发。

12、在大型数据处理系统的功能分析与设计中,同时进行数据分析和数据设计。数据 库的“概念设计”与“逻辑设计”分别对应于系统开发中的(总体设计)和(需求分析 )阶段,而数据库的物理与模块的(详细设计)相对应。 13、模块之间联系越紧密,其耦合性就越(高),模块的独立性就越(低) 。 14、要把数据流图转换成软件结构,必须首先研究数据流图的类型,一般可分为事务 流和变换流两类。 15、动态测试方法中,根据测试用例设计方法的不同,分为(白盒测试和黑盒测试)。 16、软件产品在交付使用前一般要经过以下四步测试:(单元测试,集成测试,确认测 试和系统测试).对一些关系重大的系统,交付后并不立即投入生产性运行,还要经过 (平行运行)阶段

17、驱动模块的作用是用来模拟被测试模块的(上级调用模块),它只完成接收测试数 据,并把这些测试数据传送给被测试的模块,并且接收测试模块的(结果) 并输出。 18、桩(存根)模块用来代替被测试模块(所调用的模块),它的作用是返回被测试模 块所需信息。 19、软件结构是以(模块)为基础而组成的一种控制层次结构。 20.软件维护的内容包括(改正性维护,适应性维护,完善性维护和预防性维护). 二、选择 1.需求规格说明书的作用不应该包括(D )。 A、软件设计的依据 B、用户与开发人员对软件要做什么的共同理解 C、软件验收的依据 D、软件可行性研究的依据 2.软件测试方法中的静态测试方法之一为(A )A.计算机辅助静态分析B.黑盒法C.路径覆盖D.边界值分析

软件工程复习题及答案

一、画出实际的瀑布模型p16 三、画出增量模型p18 五、可行性研究的工作过程及内容p36 答:1).复查系统规模和目标; 2).研究目前正在使用的系统; 3).导出新系统的高层逻辑模型; 4).进一步定义问题; 5).导出和评价供选择的解法; 6).推荐行动方针;7).草拟开发计划;8.书写文档提交审查。 六、可行性研究的目的是什么?要如何进行?p35 答:目的:用最小的代价在尽可能短的时间内确定问题是否能够解决。 首先,需要进一步分析和澄清问题定义。之后,分析员应该导出系统的逻辑模型。从系统逻辑模型出发,探索若干可供选择的主要解决方法(即系统实现方案)。对每种解法都应该仔细研究它的可行性,一般来说,至少应该从下述三方面研究每种解法的可行性:(1)技术可行性;(2)经济可行性;(3)操作可行性。必要时还应该从法律、社会效益等更广泛的方面研究每种解法的可行性。 二、画出快速原型模型p17 四、画出简化的螺旋模型p20 软件工程考试复习题

七、需求分析的任务是什么?进行需求分析时要重点考虑哪些方面的问题?p56 答:1、确定对系统的综合要求:1).功能需求——指定系统必须提供的服务。通过需求分析应该划分出系统必须完成的所有功能。2).性能需求——性能需求指定系统必须满足的定时约束或容量约束,如速度(响应时间)、信息量速率、主存容量、磁盘容量、安全性等。3).可靠性和可用性需求——可靠性是指确保各应用及其相关的所有交易的完整性和一致性的能力;可用性是指一个系统应确保一项服务或者资源永远都可以被访问到。4).出错处理需求——说明系统对环境错误应该怎样响应。5).接口需求——描述应用系统与它的环境通信格式。6).约束——在设计或实现应用系统时应遵守的限制条件。常见的约束有:精度;工具和语言约束;设计约束;应该使用的标准;应该使用的硬件平台。7).逆向需求——说明软件系统不应该做什么。8).将来可能提出的要求——应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。 2、分析系统的数据要求。 3、导出系统的逻辑模型。 4、修正系统开发计划。 八、典型的总体设计过程包括哪些步骤?p92 答:典型的总体设计过程包括九个步骤: 1)、设想供选择的方案;2)、选取合理的方案;3)、推荐最佳方案;4)、功能分解;5)、设计软件结构;6)、设计数据库;7)、制定测试计划;8)、书写文档;9)审查和复查。 九、总体设计的主要任务是什么?总体设计的主要过程有哪些?p91 答:主要任务: 总体设计又称为概要设计或初步设计。通过这个阶段的工作将划分出组成系统的物理元素—程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。总体设计的另一项重要的任务是设计软件的结构,也就是要确定系统中每个程序是由哪个模块组成,以及这些模块相互间的关系。 主要过程: ①寻找实现目标系统的各种不同的方案。②从这些供选择的方案中选取若干个合理的方案,为每个合理的方案都准备一份系统流程图,列出组成系统的所有物理元素。③进行成本/效益分析,并且制定实现这个方案的进度计划。从中选出一个最佳方案。④进一步为这个最佳方案设计软件结构。⑤进行必要的数据库设计,确定测试要求并且制定测试计划。 十、何谓耦合?有哪些类型?软件设计应该取哪种类型?p97 答:耦合是对一个软件结构内不同模块之间互连程度的度量。 类型:数据藕合、控制藕合、公共环境藕合、内容耦合 设计原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合。 十一、何谓内聚?有哪些类型?软件设计应该取哪种类型?p98 答:内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。 低内聚有如下几类:偶然内聚、逻辑内聚、时间内聚。中内聚主要有两类:过程内聚、通信内聚。高内聚也有两类:顺序内聚、功能内聚。 设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多;但是,低内聚很坏,不要使用。

软件工程导论课后习题答案95829882

《软件工程导论》课后习题答案 第一章软件工程概论 1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机? “软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。 “软件危机”包含两方面的问题: (1)如何开发软件,以满足对软件日益增长的需求; (2)如何维护数量不断膨胀的已有软件。 它们有以下表现: (1)对软件开发成本和进度的估计常常很不准确; (2)用户对“已完成的”软件系统不满意的现象经常发生; (3)软件产品的质量往往靠不住; (4)软件常常是不可维护的; (5)软件通常没有适当的文档资料; (6)软件成本在计算机系统总成本中所占的比例逐年上升; (7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。 出现软件危机的原因 (1)开发人员与客户认识之间的矛盾 (2)开发人员能力与开发目标之间的矛盾 (3)预估与实际工作量之间的矛盾 (4)客户认识的提高与软件维护之间的矛盾 (5)遗产系统与实施软件之间的矛盾 2.假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他? 答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改, 不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成” 是在引入变动,当然付出的代价更高。一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是 整体构架的错误。 3.什么是软件工程?它有哪些本质特征?怎么用软件工程消除软件危机? 软件工程是知道计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够

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

软件工程第一次作业 1)软件工程适用范围? 答:软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。 2)软件工程如何控制系统开发的复杂性的? 答:可理解性(understandability)。系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植或重用。 3)以你的经验,举例说明一个成熟的软件通常采用什么方法来适应现实世界的变化的?答:以猎豹游览器为例,开始软件投入市场公测,软件自带收集错误报告的程式,当遇到问题软件错误,会将相关信息反馈到接受错误信息的服务器,已方便程序员及时发现问题加以修复,修复完成后提供程序更新,循环此法提供软件运行稳定性,另外还有用户反馈的相关功能,对软件的建议也会收集到服务器,按实用性需求程序员可在原有程序上开发调整更适合用户使用的程序。 4)假设某软件公司,能为同一个用户开发两个不同层次的软件:一个层次的软件功能非常强大,在满足用户所有需求的基础上,还能提供大大超过用户需求的其他更多更强的功能;另一个层次的软件仅仅能满足用户需求,但没有提供其他额外的功能。请问如果你是项目负责人,你会选择为客户开发那个层次的软件? 答:我会选择仅仅满足用户需求的软件。因为太多的功能,相对于非专业的人员,在用户体验上可能会造成困扰,太多的功能会导致难以操作。而且功能强大的软件还会给用户费用上带来不必要的投入,软件是以人为本,方便用户工作,达到提高工作效率的目的。若然日后此用户需要更多功能的时候,我们还是可以向其软件公司提供升级功能解决用户需求。

软件工程在线作业及答案

1.第1题 在软件可行性研究中,可以从不同的角度对软件进行研究,其中是从软件的成本/效益分析的是()。 A.经济可性性 B.技术可行性 C.操作可行性 D.法律可行性 您的答案:A 题目分数:2.5 此题得分:2.5 2.第2题 为了提高模块的独立性,模块内部最好是()。 A.逻辑内聚 B.时间内聚 C.功能内聚 D.通信内聚 您的答案:C 题目分数:2.5 此题得分:2.5 3.第3题 Jackson方法是一种面向()的方法。 A.对象 B.数据结构 C.数据流 D.控制流 您的答案:B 题目分数:2.5 此题得分:2.5 4.第4题 需求分析阶段研究的对象是软件项目的()。 A.用户需求 B.合理要求 C.模糊要求 D.工程要求 您的答案:A 题目分数:2.5 此题得分:2.5

5.第5题 面向数据结构的设计方法(Jackson方法)是进行()的形式化的方法。 A.系统设计 B.详细设计 C.软件设计 D.编码 您的答案:B 题目分数:2.5 此题得分:2.5 6.第6题 程序控制的三种基本结构中,()结构可提供多条路径选择。 A.反序 B.顺序 C.循环 D.分支 您的答案:D 题目分数:2.5 此题得分:2.5 7.第7题 下列属于黑盒测试的是()。 A.基本路径测试 B.条件测试 C.循环测试 D.等价划分 您的答案:D 题目分数:2.5 此题得分:2.5 8.第8题 软件设计一般分为总体设计和详细设计,它们之间的关系是()。 A.全局和局部 B.抽象和具体 C.总体和层次 D.功能和结构 您的答案:A 题目分数:2.5 此题得分:2.5

9.第9题 好的软件结构应该是()。 A.高耦合,高内聚 B.低耦合,高内聚 C.高耦合,低内聚 D.低耦合,低内聚 您的答案:B 题目分数:2.5 此题得分:2.5 10.第15题 面向对象软件技术的许多强有力的功能和突出的优点,都来源于把类组织成一个层次结构的系统,一个类的上层可以有父类,下层可以有子类,这种层次结构系统的一个重要性质是(),一个类获得其父类的全部描述(数据和操作)。 A.传递性 B.继承性 C.复用性 D.并行性 您的答案:B 题目分数:2.5 此题得分:2.5 11.第16题 软件项目管理是()一切活动的管理。 A.需求分析 B.软件设计过程 C.模块控制 D.软件生命周期 您的答案:D 题目分数:2.5 此题得分:2.5 12.第17题 一个模块把开关量作为参数传递给另一模型,这两个模块之间的耦合是()。 A.外部耦合 B.数据耦合 C.控制耦合 D.内容耦合 您的答案:C

软件工程导论部分课后习题答案

第一章 1-1 什么是软件危机? 是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 1-3 什么是软件工程? 是指导计算机软件开发和维护的一门工程学科。 1-4 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。 目前使用得最广泛的软件工程方法学(2 种): 1. 传统方法学:也称为生命周期方法学或结构化范型。优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。 2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。 1-6 什么是软件过程?它与软件工程方法学有何关系? z 软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤z 软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型 1-7 什么是软件生命周期模型,试比较瀑布模型,快速原型模型,增量模型,和螺旋模型的优缺点,说明每种模型的适用范围。 软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。 瀑布模型的优点:1.可强迫开发人员采用规范的方法;2.严格规定了每个阶段必须提交的文档;3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。 瀑布模型的缺点:1.在软件开发初期,指明用户全部需求是困难的;2.需求确定后,经过一段时间才得到软件最初版本;3.完全依赖规格说明,导致不能满足用户需求。适用中小型项目。 快速原型模型的优点:1满足用户需求程度高;2用户的参与面广;3返工现象少快速原型模型的优点:不适用大型软件的开发适用于小型项目。 增量模型的优点:1短期内可以交付满足部分用户需求的功能产品;2逐步增加功能可以让用户去适应新产品;3开放式的软件可维护性比较好;4开始第一构件前,已经完成需求说明。 增量模型的缺点:1对现有产品功能造成破坏;2意义上的矛盾适用于中型软件的开发 螺旋模型的优点:1集成了瀑布模型、快速原型模型、增量模型的优点;2支持用户需求动态变化;3需求分析与软件实现紧密联系相互依赖;4原型作为刑式的可执行的需求规格说明,即利用用户和开发人员共同理解,又可作为后续开发的基础;5为用户参与决策提供方便;6提高目标软件的适应能力;7降低风险;8在大型软件开发过程中充分发挥优势。螺旋模型的缺点:1迭代次数影响开发成本,延迟提价时间;2找不到关键改进点,人才、物力、财力时间引起无谓消耗;3成于风险分析,败于风险分析。适用于内部开发的大规模软件项目。 1-8:为什么说喷泉模型叫好的体现了面向对象软件开发过程无缝和迭代的特性?

软件工程导论期末考试题

一、单项选择题 1.适合于面向对象方法学的软件生存周期模型是( B ) A.瀑布模型 B.喷泉模型 C.螺旋模型 D.增量模型 2.从实用角度看,数据规范化程度在大多数场合选用第( C )范式。 A. 1 B.2 C.3 D.5 3. 可行性分析研究的目的是( A )。 A.项目值得开发否 B.争取项目 C.开发项目 D.规划项目 4. 模块的内聚性最高的是 ( D ) A.逻辑内聚 B.时间内聚 C.偶然内聚 D.功能内聚 5.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做 ( B ) A. 软件工程 B. 软件危机 C. 软件周期 D. 软件产生 6. 需求分析阶段的任务是确定( D ) A.软件开发方法 B.软件开发工具 C.软件开发费 D.软件系统的功能 7. 完整的软件结构通常用( B )图来表示。 A. IPO 图 B. HIPO 图 C.PAD 图 D.DFD 图 8. 在白盒法技术测试用例的设计中( A )是最弱的覆盖标准。 A.语句 B.路径 C.条件组合 D.判定 9?对象实现了数据和操作的结合,使数据和操作( C )于对象的统一体中。 A.结合 B.隐藏 C.封装 D.抽象 10. 在数据流图中,圆代表( C )。 A.源点 B.终点 C.加工 D.模块 11. 模块内聚度越高,说明模块内各成分彼此结合的程度越( B )。 A.松散 B.紧密 C.无法判断 D.相等 12. 软件测试方法中,黑盒、白盒测试法是常用的方法,其中黑盒测试主要用于测试( B )。 A.结构合理性 B.软件外部功能 C.程序正确性 D.程序内部逻辑 13. 面向对象开发方法中, ( C )是占主导地位的标准建模语言。 A.Booch 方法 B.Coad 方法 C.UML 语言 D.OMT 方法 14. 软件需求分析的主要任务是准确地定义出要开发的软件系统是( C ) A.如何做 B.怎么做 C.做什么 D.对谁做 15. 结构化程序设计的一种基本方法是( C ) A.筛选法 B.迭代法 C.逐步求精法 D.递归法 二、填空题 1. 目前使用最广泛的软件工 程学方法分别是传统方法学和(面向对象方法学 ) )和事务流。 文档 ) 。 ( 重复 )三种结构。 自顶向下 的集成测试方法,对软件结构中下层使 6. 软件维护包括 ( 改正性维护 )、适应性维护、完善性维护、预防性维护。 7. 面向对象方法学建模得到的三个基本子模型是 (对象建模 ) .动态模型、功能模型。 8. 复杂大型问题的对象模型通常由主题 2. 数据流图中信息流的类型有(变换流 3. 软件的定义是:软件 =程序+数据+ 4. 经典结构程序设计包括顺序、选择和 5. 集成测试时对软件结构中上层使用 用 ( 自底向上 ) 的集成测试方法。

软件工程习题及参考答案

软件工程习题及部分参考答案 判断题 ?软件也会磨损和老化。(X) ?完善性维护是提高或完善软件的性能。(√) ?数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。 (X) ?软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是编写程序代码。(X) ?软件模块之间的耦合性越弱越好。(√) ?如果通过软件测试没有发现错误,则说明软件是正确的。(X) ?快速原型模型可以有效地适应用户需求的动态变化。(√) ?模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高聚,低耦合度的软件产品。(√) ?集成测试主要由用户来完成。(X) ?确认测试计划应该在可行性研究阶段制定(X) ?白盒测试无需考虑模块部的执行过程和程序结构,只要了解模块的功能即可。(X) ?软件概要设计包括软件系统结构设计以及数据结构和数据库设计。(√) ?软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个复杂问题进行分解,将软件生存的时期分为若干阶段。(√) ?系统流程图表达的是部件的信息流程,还表示对信息进行加工处理的控制过程。(╳)?模块越多,开发成本越小。(╳) ?软件测试的目的就是证明软件没有错。(╳) ?PAD图在设置了五种基本的控制结构后,还允许递归使用。(√) ?在进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。(×) ?SA法是面向数据流,建立在数据封闭原则上的需求分析方法。(√) ?HIPO 法既是需求分析方法,又是软件设计方法。(√) ?在面向对象的需求分析方法中,建立动态模型是最主要的任务。(×) ?加工小说明是对系统流程图中的加工进行说明。(×) ?判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。(×) ?需求分析的主要方法有SD 法、OOA 法及HIPO 法等。(×) ?分层的DFD 图可以用于可行性分析阶段,描述系统的物理结构。(×) ?信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是E-R 图。(√) ?用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性。(√) ?PDL经常表现为一种"混杂"的形式,他不允许自然语言如英语的词汇与某种结构化程序设计语言(如Pascal,C,Ada等)的语法结构交织在一起.(X) ?设计阶段的输出是编码阶段的输入.(√) ?通过软件测试,可以发现软件中所有潜伏的错误.(X) ?非结构化维护用于软件的配置中只有源代码维护.(√) ?系统规格说明是系统分析和定义阶段生成的一种文档.(√) ?数据流图的分解速度应保持较高.通常一个加工每次可分解为10~20个子加工.(X)

软件工程课后习题(含答案)

第一章练习题 一、填空题 1、软件工程三要素是:方法、工具、过程。 2、软件开发方法是指软件开发过程中所应遵循的方法和步骤。 二、名词(术语)解释: 1、可靠性---是指在给定的时间间隔内,程序成功运行的概率。可靠性是衡量软件质量的一个重要目标。 2、可理解性---指系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植和重用。 三、问答题 1、面向对象方法的优点是什么? 答:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。 (2)以数据为中心,而不是基于对功能的分解,使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。 2、可视化开发方法的优点有哪些? 答:(1)简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。 (2)软件开发简单,易学、易上手。 (3)专业或非专业人员都能参与软件开发活动。 第二章练习题 一、填空题: 1、软件工程过程是:为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工 程活动。 2、一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程经历的生存过程称为软件生存期或叫生命期。 3、软件生命周期的阶段划分为3个时期是:定义时期、开发时期、维护时期。 4、软件工程标准的5个层次是:国际标准、国家标准、行业标准、企业规范、项目规范。 二、简答题: 1、瀑布模型的优点有哪些? 答:1、强迫开发人员采用规范的技术方法; 2、严格地规定了每个阶段必须提交的文档; 3、每个阶段结束前必须正式进行严格的技术审查和管理复审。 2、瀑布模型的缺点是什么? 答:1、在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。 2、在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。 3、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很 难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。

软件工程导论第五章课后答案

软件工程导论第五章课后 答案 -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

第五章习题答案 1、为每种类型的模块耦合举一个具体例子。 答:耦合是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问某一模块的点,以及通过接口的数据,一般模块之间可能的连接方式有7种,构成耦合的7种类型,它们之间的关系为: 下面举例说明以上各种耦合: a.非直接耦合(Nondirect Coupling)在这种情况下,两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,这就是非直接耦合。例如在实数的运算中,有两个模块分别完成几个实数的求和,求乘积功能,这两个模块之间没有直接联系,只有在主模块调用中有执行的前后顺序而已,这个例子即属于非直接耦合。 b.数据耦合(Data Coupling)即一个模块访问另一个模块时,彼此之间是通过数据参数来交换输入,输出信息的,这种耦合为数据输入,输出信息的这种耦合为数据耦合。如有两个模块,其中A完成两个烽的比较,求出其中最大的并返回该值,模块B是完成了个数的比较,求出其中最大的并返回该最大值,为完成四个数的比较,模块B调用模块A即可完成,在这种调用关系中,模块A的运算结

果作为一个参烽参加B的运算,这两个模块之间即发生数据耦合。数据耦合是松散的耦合,模块间的独立性比较强。 c.标记耦合(Stamp Coupling),即一组模块通过参数传递记录信息,这就是标记耦合。事实上,这组模块共享了这个记录,它是某一数据结构的子结构,而不是简单变量。 d.控制耦合(Control Coupling)即一个模块通过开关标志,名字等控制住处明显的控制,选择另一模块的功能,这就是控制耦合,如下图所示,这一种耦合实质是在单一接口上实现选择多功能模块中的某项功能,如程序设计中用到多路选择结构即是最好的例子。e.外部耦合(External Coupling)即一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递全局数据结构,而且不是通过参数表传递全局变量的信息。如C语言中都访问被说明为extern类型的外部变量的各个模块之间即发生外部耦合。外部耦合引起的问题类似于下面要介绍的公共耦合,区别在于外部耦合中不存在依赖于一个数据结构内部各项的物理安排。f.公共耦合(Common Coupling)若一组模块都访问同一个公共数据环境,则它们之间的耦合就是公共耦合。公共的数据环境可以是全局的数据结构,共享的通信区,内存的公共覆盖区等。如几个模块对同一个数据库的查询就属于这种耦合。公共耦合可以分为松散的公共耦合和紧密的公共耦合,其中松散的公共耦合是单向操作,如两个或多个模块对同一个文件的读操作;而紧密的公共耦合是双

软件工程导论复习试题库完整

a(1)在软件工程中,白盒测试法可用于测试程序的内部结构。此方法将程序看作是 A) 路径的集合 B)循环的集合C)目标的集合D)地址的集合 c(2)在下述哪一种测试中,测试程序的设计者必须接触到源程序 I.功能测试Ⅱ. 结构测试 A)均不须B)只有ⅠC)只有ⅡD)Ⅰ和Ⅱ a(3)检查软件产品是否符合需求定义的过程称为 A)确认测试B)集成测试C)验证测试D)验收测试 c(4)下述陈述中,哪一个不是软件健壮性的度量指标? A)失败后重新启动所需的时间B)引起失败的时间所占的百分比 D)失败前的平均工作时间D)在一次失败中数据恶化的概率 b(5)对软件是否能达到用户所期望的要求的测试称为 A) 集成测试B) 有效性测试C) 系统测试D) 验收测试 a(6)在面向数据流的软件设计方法中,一般将信息流分为 A)变换流和事务流B)变换流和控制流 C)事务流和控制流D)数据流和控制流 d(7)软件需求说明书是软件需求分析阶段的重要文件,下述哪个(些)是其应包含的内容 I.数据描述Ⅲ. 模块描述 II.功能描述Ⅳ. 性能描述 A)ⅡB)Ⅲ和ⅣC)Ⅰ、Ⅱ和ⅢD)Ⅰ、Ⅱ和Ⅳ (8)软件测试一般分为三类,即 I.静态测试Ⅱ. 动态测试Ⅲ. 正确性测试 设计测试用例对程序进行测试,应属于 A)ⅠB)ⅡC)Ⅰ和ⅡD)Ⅲ (9)模块独立性是由内聚性和耦合性来度量的,其中内聚性是度量____,耦合性是度量____。 A)模块间联系程度B)模块的功能强度 C)信息隐蔽程度D)模块的复杂程度 (10)软件设计中一般将用到图形工具,下述哪种(些)工具可用作设计的图形工具 I.结构图Ⅱ. 实体关系图Ⅲ. IPO图 II.Ⅳ. 流程图Ⅴ. N-S图 A)Ⅰ和ⅡB)Ⅲ和ⅣC)Ⅰ、Ⅲ、Ⅳ和ⅤD)全部 A (2)C (3)A (4)C (5) B (6)A (7)D (8)B (10)C (11)试判断下列论述中哪个(些)是正确的 I.软件系统中所有的信息流都可以认为是变换流 II.软件系统中所有的信息流都可以认为是事务流 III.事务分析和变换分析的设计步骤基本类似 A)ⅠB)ⅡC)ⅢD)Ⅰ和Ⅲ (12)软件的有效性测试是验证软件的运行是否达到用户的期望,用户的期望应体现于A)详细设计报告B)软件需求说明书 C)总体设计报告D)有效性测试要求 (13)软件设计中的软件过程其主要描述的是 A)模块间关系B)模块操作细节 C)模块控制方法D)模块类型 (14)软件测试是软件件开发过程的重要阶段,是软件质量保证的重要手段,下列哪个(些)是软件测试的任务?

-软件工程习题答案参考

软件工程 绪论 1.什么是软件危机?为什么会产生软件危机? 答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。(1).软件维护费用急剧上升,直接威胁计算机应用的夸大。 (2).软件生产技术进步缓慢 2.什么是软件生产工程化?工程化生产方法与早期的程序设计方法 主要差别在哪里? 答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。 3.分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管 理的相互关系。 答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。新方法在推行初期,总有人不愿接受和采用。若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。(2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。所以对于一

个理想的软件工程环境,应该同时具备技术和管理两个方面。 4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。 答:用C++开发一个软件,是校园一卡通的模块。首先,要在编辑程序支持下在计算机中输入源程序。然后编译程序,把源程序翻译成目标程序。如果发现错误,就重新调入编辑程序对源程序进行修改。编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行软件。编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。 5.什么是软件工程环境?谈谈你对环境重要性的认识。答:方法与工具相结合,再加上配套的软、硬件支持就形成环境。例如在批处理时代,用户开发的程序是分批送入计算机中心的计算机的,有了错误,就得下机修改。程序员对自己写的程序只能继续地跟踪,思路经常被迫中断,效率难于提高。分时系统的使用,使开发人员从此能在自己的终端上跟踪程序的开发,仅此一点,就明显提高了开发的效率。 6. 何谓面向对象软件工程?简述它与传统软件工程在各型软件开发中的作用。 答:以面向对象程序设计为基础。 7. 软件按规模大小可分成哪几类?简述软件工程中各型软件开发中的作用。 答:按规模分为极小、小、中、大、甚大、极大。(1)中小型软件:

软件工程导论作业答案

学号_31009210** 姓名_朱某某班级_软件10* 作业一 1.什么是软件危机?它有哪些典型表现?为什么会出现软件危机? “软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。这些问题不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。 “软件危机”包含两方面的问题: (1)如何开发软件,以满足对软件日益增长的需求; (2)如何维护数量不断膨胀的已有软件。 它们有以下表现: (1)对软件开发成本和进度的估计常常很不准确; (2)用户对“已完成的”软件系统不满意的现象经常发生; (3)软件产品的质量往往靠不住; (4)软件常常是不可维护的; (5)软件通常没有适当的文档资料; (6)软件成本在计算机系统总成本中所占的比例逐年上升; (7)软件开发生产速率提高的速度,远远跟不上计算机应用普及深入的趋势。 出现软件危机的原因 (1)开发人员与客户认识之间的矛盾 (2)开发人员能力与开发目标之间的矛盾 (3)预估与实际工作量之间的矛盾 (4)客户认识的提高与软件维护之间的矛盾 (5)遗产系统与实施软件之间的矛盾 2.假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及早发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他? 在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面比较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价俱增。在软件“已经完成”时再引入变动,当然付出的代价更高。一个故障时代码错误造成的,有时这种错误时不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。 3.什么是软件工程?他有哪些本质特征?怎样用软件工程消除软件危机? 软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效的维护它,这就是软件工程。 本质特征: 软件工程关注于大型软件的构造 软件工程的中心课题是控制复杂性 软件经常变化 开发软件的效率非常重要 和谐地合作是开发软件的关键 软件必须有效支持它用户

软件工程复习题及答案(完整)

软件工程复习题及答案(完整)

一、选择 1、文档是软件产品的一部分,没有文档的软件就不称其为软件。对 2、在需求分析过程中,分析员要从用户那里解决的最重要的问题是给该软件提供哪些信息。错 3、需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。错 4、建立用例模型的步骤包括确定角色、确定用例和绘制用例图。错 5、数据流图建立系统的功能模型,它由数据流、加工和数据存贮组成。错 6、软件配置管理是一组标识、组织和控制修改源程序的活动。错 7、UML是一种直观化、明确化、构建和文档化软件产物的通用语言。错 8、好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。对 9、边界值分析方法是取输入/输出等价类的边界值作为测试用例。对 10、面向对象的分析是面向计算机系统建立软件系统的对象模型。错 11、(D)是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。 A 软件过程 B 软件测试 C 软件生存周期 D 软件工程 12、ISO9000是由ISO/TC176制定的关于(B)和质量保证的国际标准。 A 质量控制 B 质量管理 C 质量策划 D 质量改进 13、CMM提供了一个框架,将软件过程改进的进化步骤组织成5个成熟度等级。除第1级外,每个等级都包含了实现该成熟度等级目标的若 干(B)。 A 关键实践 B 关键过程域 C 软件过程能力 D 软件过程 14、在软件开发的各种资源中,(D)是最重要的资源。 A 开发工具 B 方法 C 硬件环境 D 人员 15、软件的复杂性是(A),它引起人员通信困难、开发费用超支、开发时间超时等问题。 A 固有的 B 人为的 C 可消除的 D 不可降低的 16、在各种不同的软件需求中,(D)描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明。 A 业务需求 B 功能需求 C 非功能需求 D 用户需求 17、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于(A)系统。 A 需求不确定的 B 需求确定的 C 管理信息 D 决策支持 18、(A)意味着一个操作在不同的类中可以有不同的实现方式。 A 多态性 B 多继承 C 类的可复用 D 信息隐蔽 19、时序图反映对象之间发送消息的时间顺序,它与(D)是同构的。 A 用例图 B 类图 C 活动图 D 协作图 20、单元测试的测试用例主要根据(D)的结果来设计。 A 需求分析 B 源程序 C 概要设计 D 详细设计 二、填空题 1、在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课程之间是关联关系。 2、类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是依赖关系。 3、用例及其协作之间是实现关系。 4、接口及其实现类或构件之间是实现关系。 5、动物与老虎之间是泛化关系。 三、问答题 1、软件复用的范围不仅仅涉及源程序代码,请至少列出5种可能复用的软件元素。 可复用的软件元素包括(选5种):项目计划、成本估计、体系结构、需求模型和规格说明、设计、用户文档和技术文档、用户界面、数据结构、测试用例。 2、传统"瀑布模型"的主要缺陷是什么?试说明造成缺陷的原因。 传统"瀑布模型"的主要缺陷及其原因:在项目的早期,用户常常很难清楚地给出所有需求,瀑布模型却要求如此。由于瀑布模型的特点,早

【信息化-精编】软件工程导论课后习题详细答案

软件工程导论课后习题详细答案

《软件工程导论》课后习题答案 第一章软件工程概论 1.什么是软件危机? 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。(2)软件产品的质量往往靠不住。(3)一般软件很难维护。(4)软件生产效率很低。(5)软件开发成本越来越大。(6)软件成本与开发进度难以估计。(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。 2.为什么会产生软件危机? (1)开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。(2)软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。(3)尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。 3.怎样克服软件危机? (1)充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。(2)推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。(3)根据不同的应用领域,开发更好的软件工具并使用这些工具。将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。 4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。 5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。 5-1。(1)在1985年对计算机存储容量的需求,估计是 如果字长为16位,则这个存储器的价格是 ● ●(2)如果一条指令的长度为一个字,则使存储器装满程序共需4474263条指令。 ●在1985年一名程序员每天可开发出10条指令,如果每月有20个工作日,则每人每月可开发出10×20条指令。 ●为了开发出4474263条指令以装满存储器,需要的工作量是: ●程序员的月平均工资是4000美元,开发出4474263条指令的成本是 ●(3)在1995年对存储容量的需求估计为: ● 7 4080e =4472.0048.01974 1985??=-P )19601995(28.04080-=e M

相关文档
相关文档 最新文档