网站大量收购独家精品文档,联系QQ:2885784924

第一讲 软件与软件工程.docVIP

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一讲 软件与软件工程 软件 关键的概念:软件、软件角色、软件特点、软件分类、软件危机、软件问题、软件神话、遗留软件与软件进化。 软件定义:软件是多种术语和对象的集合,并将这些术语和对象有效地配置在一起。一般包括程序、文档和数据。 软件在整个社会体系中一般承担两种角色: 软件首先作为一种服务社会的产品,提供计算的能力;产生、管理、获取、修改、显示或传送信息的功能 其次软件也可以作为其他产品的承载工具,如支持或直接提供系统功能;控制其他的软件(如操作系统);辅助通讯(如网络软件);帮助建立其他软件(如软件工具)。 软件的特点: 软件是被工程化的逻辑系统; 软件一般没有磨损; 软件具有不同于一般实物系统的复杂性; 软件分类: 传统分类: 系统软件; 应用软件; 工程和科学软件; 嵌入式软件; 专用产品软件; Web 应用软件; 人工智能软件; 现代分类: 随处计算软件(Ubiquitous computing, 无线网络wireless networks为代表); 网络源软件(Netsourcing,, the web as a computing engine); 开源软件(免费开放的源代码对于所有感兴趣的人,是希望但也存在许多问题); 数据挖掘(Data Mining); 网格计算(Grid computing); 认知机器(Cognitive machines); 软件新经济研究; 软件危机: 软件危机是指在软件发展过程中遇到的一系列严重问题。这些问题不是在解决具体问题时遇到的,而是软件开发过程所面临的具有普适性的问题。 主要的典型表现有: 1.对软件开发成本和进度的评估常常很不准确。 2.用户对“已完成的”软件系统不满意 3.软件产品的质量无法保障 4.软件难以维护 5.相关的开发文档不健全 6.软件的重要性在不断提高 7.软件开发的工作量的提高 8.软件需求越来越复杂 软件问题: 为什么需要这么长的时间去获取一个可用的软件; 为什么软件开发的费用这么高; 为什么不能在将软件提交给我们的用户之前,发现所有的软件错误并解决它们; 为什么需要花费那么多的时间和努力来维护已经在运行的系统; 为什么无论在软件被开发还是在维护阶段我们都那么困难来度量它; 软件神话: 所谓软件神话主要是针对三类人来说:软件管理者、软件客户和软件开发者。分析人们日常理解中的一些误区。 例如: 管理者角度 有些人认为:对于软件开发有一些通用的能够适应所有需要的准则或程序,可满足所有的开发需求。 实际情况是:这种理想是不现实的,即使有这种理想的东西存在,他也是不可用的。因为软件是一种社会性和变化性非常强的产品。 有些人认为:如果软件产品的开发周期拖后了,可以通过增加人手来加快软件的开发速度,并尽快完成产品。 实际情况是:软件产品的开发不同于普通机器的生产过程。一般来说,直观的感觉通过增加人手可以有效地提高劳动生产效率,但软件的开发,对于新加入的人来说还需要对其进行有效的培训和熟悉需求要求的过程,因此综合考虑各种因素,简单地添加人手是不能很好地解决问题,有时还时工程进一步拖延。 有些人认为:通过从第三方采购软件项目,就可以轻松地什么都不用做地完成项目。 实际情况是:如果你不能够自己管理和控制软件,那你将永远不能够掌握用户,以及和第三之间的无休止的争吵。 用户角度: 有些人认为:一般对于需求的描述就足够开始编写程序了,详细的细节将由程序开发人员在开发过程中补充完善。 实际情况是:在需求描述中综合且稳定的描述并不总是存在的。用户的需求往往描述的非常模糊,有时甚至充满冲突,只有保证一定的沟通时间才能够将需求正确的理解清楚。 有些人认为:项目的需求在不断的改变,但由于软件是灵活的因此这种变化可以轻易地被在软件中进行调整。 实际情况是:对于这种变化在软件开发的早期可能比较容易调整,但如果到了软件开发的后期,这种变化有时将是致命的,有可能将导致整个软件的重新开发。 开发者角度: 有些人认为:一旦我们编写完程序,并使他们上线运行,那么我们的工作就完成了 实际情况是:实际的工业数据显示,大约有60%到80%的软件产品提交给用户后还需要进行扩展。有句话说的好,你开始编写代码越快,而你将花费越长的时间来结束它。 有些人认为:直到程序运行,我多没有办法来评估我的软件的好坏。 实际情况是:软件的测试和度量技术都是对软件进行评估的好工具。 有些人认为:仅仅可运行的软件产品才是用户需要的东西。 实际情况是:一个工作程序仅仅整个软件配置中各类元素之一,文档和相关的一些数据对于软件开发将更加重要。 有些人认为:在编写软件过程中,还要编写文档和进行一些与编程无关的活动是浪费时间。 实际情况是:编写文档和其他的一些工作将有效地减少重复工作的时间,加快工程的进度。 遗留软件与软件进化: 所谓

文档评论(0)

***** + 关注
实名认证
文档贡献者

本账号下所有文档分享可拿50%收益 欢迎分享

1亿VIP精品文档

相关文档