软件工程基础与案例教程 习题及答案 第1部分 .docx

软件工程基础与案例教程 习题及答案 第1部分 .docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第1章习题答案

1.软件的三要素是什么?阐述软件、软件系统、软件产品的区别与联系。

软件是计算机系统中与硬件相对应的部分,是由程序、数据和文档组成的集合,也称为软件的三要素。程序是按照特定顺序组织计算机数据和指令的集合;数据是程序需要处理的对象;文档是与程序的开发、维护和使用有关的资料。计算机软件的核心是程序,而数据和文档则是软件不可分割的组成部分。

软件是基本术语,表示由程序、数据和文档组成的集合;软件系统则是一个集成多个子系统形成,与硬件密切新冠的复杂系统;软件产品则是具有商业价值的有用户购买使用的软件系统,是开发者和用户都对此软件质量非常关心的软件系统。

2.简述软件的特征。

(1)复杂性。软件是一个庞大的逻辑系统,比人类构造的其他产品更复杂。软件主要依靠人脑的“智力”构造出来的,多种人为因素使得软件难以统一化,更增加了其复杂性。软件的复杂性使得软件产品难以理解、难以生产、难以维护,更难以对生产过程进行管理。

(2)一致性。软件必须和运行它的硬件保持一致,这是由软件对硬件的依赖所决定的,一般都采用软件顺应硬件接口,而不是硬件顺应软件的方案。由于计算机的软件和硬件是具有功能互换性的,所以也可能出现用软件来替代硬件接口的功能。

(3)退化性。软件不会磨损,但它却会退化,因此,软件在其生命周期中都需要进行多次的维护。

(4)易变性。软件在生产过程中,甚至在投入运行之后,也可以再改变。软件必须能够经历变化并容易改变,这也是软件产品的特有属性。这种动态的变化不仅难以预测、难以控制,而且可能对软件的质量产生负面影响。

(5)移植性。软件的可移植性就是软件要适应于不同的计算机系统平台,好的软件在设计时就考虑到软件如何应用到不同的系统平台。

(6)高成本性。软件的开发是一个复杂的过程,涉及到大量的人力成本和管理成本。所以,软件的成本非常高昂。

3.通过资料分析伦敦救护车系统存在的问题。

(1)软件范围或规模不明确

(2)需求的变更

(3)项目预算难以估计

(4)测试的不充分

4.通过分析淘宝网的主要功能来说明现代商务系统平台的复杂性。

淘宝网的主要功能包括:

商品查询子系统

订单生成子系统

支付子系统

订单管理子系统

评价子系统

商品管理子系统

店铺管理子系统

投诉子系统

物流子系统

交流子系统

每个子系统都要满足不同用户的需要,个性化需求多样化,导致系统复杂。

5.软件工程两大范型分别是什么?它们有什么不同?

结构化开发范型自1968年被提出经过近20多年的发展,形成了一套完整的体现。构成结构化开发范型的技术包括结构化分析、结构化设计、结构化编程和结构化测试,这些技术在以数据为主或小型系统方面得到广泛应用。

面向对象开发范型以面向对象技术为基础,即把数据和行为看成同等重要,即将对象视作一个封装了数据与操作的统一的软件组件。对象的概念符合业务或领域的客观实际,反映了实际存在的事物,也符合人们分析业务本质的习惯。使用这个对象的用户只需要知道其暴露的方法,通过这些方法来完成各种各样的任务,完全不需要知道对象内部的细节,保证相对独立性。

不同点:

面向对象的优势主要体现在维护阶段。相对于结构化技术,无论对象的内部细节如何变化,只要对象提供的接口(方法定义)保持不便,则整个软件产品的其他部分就不会受到影响,不需要了解对象内部的变化。因此,面向对象开发范型使维护更快、更容易,同时产生回归的机会也大大降低了。面向对象开发范型使开发变得相对容易。大多数情况下,一个对象对应物理世界一个事物。软件产品中的对象和现实世界的同等对应物之间的密切对应关系,促进了更优化的软件开发。

传统软件开发范型仍然是人们时使用十分广泛的软件工程方法学。广大软件工程师对这种范性型比较熟悉,而且在开发某些类型的软件时也比较有效,因此,在相当长一段时期内这种方法学还会有生命力。在使用结构化开发范型时,分析阶段和设计阶段过渡太快,而面向对象范型是一种迭代的从一个阶段向另一个阶段过渡,比结构化开发范型平滑得多,从而降低了开发过程中的返工数目。

6.举例说明软件危机的存在。

软件危机主要是两个方面的问题:

1、如何开发软件,以满足对软件日益增长的客户需求。客户需求不断增长,比如网上购物系统,早期只有简单的商品浏览,到后来的需要订单管理,在后来需要电子支付,在后来需要信用评价。。。

2、如何维护数量不断膨胀的现有软件。软件交付以后需要不断修改错误,添加新功能,这些都需要大量的人员花费大量的精力去完成。比如千年虫问题,英国一家医院信息系统,早期设计只保存年的后两位数字,结果1999到2000年就变成99到00,存在100年的差距,导致许多计费、控制等功能出现问题。据该公司测算,20年来开发的所有软件都要修改的话,所花费的资金相当于这些年来的所有利润总

文档评论(0)

lai + 关注
实名认证
内容提供者

精品资料

版权声明书
用户编号:7040145050000060

1亿VIP精品文档

相关文档