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

软件详细设计第1章软件工程概述.ppt

  1. 1、本文档共127页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第1章 软件工程概述 1.1 软 件 1.1.1 软件的定义   在软件的发展过程中,软件从手工作坊式的程序演变为工程化的产品,人们对软件的看法也发生了根本性的变化。“软件=程序”显然不能涵盖软件的完整内容,除了程序之外,软件还应包括与之相关的文档和配置数据,用以保证这些程序的正确运行。 《IEEE Standard Glossary of Software Engineering Terminology》给出了有关软件的定义:软件是计算机程序、规程以及运行计算机系统可能需要的相关文档和数据。其中:① 计算机程序是计算机设备可以接受的一系列指令和说明,为计算机执行提供所需的功能和性能;② 数据是事实、概 念或指令的结构化表示,能够被计算机设备接受、理解或处理;③ 文档是描述过程、方法及使用的图文材料。   然而,软件的真正含义却不是一个形式的定义所能体现的。从软件的内容来看,软件更像是一种嵌入式的数字化知识,其形成是一个通过交互对话和抽象理解而不断演化的 过程。   软件的应用领域十分广泛,呈现形式也是多种多样的,在某种程度上很难对软件的类型给出一个通用的界定。根据软件服务对象的范围不同,一般可以将软件划分为通用软件和定制软件两种类型。   1.通用软件(Generic Software)   通用软件是由软件开发组织开发,面向市场用户公开销售的独立运行系统,像操作系统、数据库系统、字处理软件、绘图软件包和项目管理工具等都属于这种类型。有时,通用软件也被称为套装软件(Packaged Software)   2.定制软件(Customized Software)   定制软件是受某个特定客户委托,由软件开发组织在合同的约束下开发的软件,像企业ERP系统、卫星控制系统和空中交通指挥系统等都属于这种类型。   通用软件由开发组织根据市场调研自主提出产品需求,并以此进行设计和开发。其最大的优势在于,可以通过近乎零成本的复制来分摊最初投入的一次性开发成本,最终使原本昂贵的软件产品的价格降至众多用户可接受的程度,从而有效地提高市场份额和利润。但是,为了分摊最初的开发投入,通用软件必须面对足够大的市场空间,其功能设计也只能面向大规模用户普遍存在的共性需求。   对于不同的用户来说,除了共性需求之外还存在着个性化的需求,而这些个性化需求对于很多用户来说,恰恰是应用的关键所在。定制软件完全是订单开发,即按照单个客户的个性化要求,以软件项目的方式为其提交个性化的解决方案,从而更好地满足客户的需求。 1.1.2 软件的特性   计算机在使社会生产力得到迅速解放、使人类生活高度自动化和信息化的同时,却没有使计算机本身的软件生产得到类似的巨大进步。软件开发依然面临着过分依赖人工、软件难以重用、大量重复开发和生产率低下等问题,而导致这些问题的关键在于软件本身的特性。   (1) 软件是复杂的。软件是人类思维和智能的一种延伸和在异体上的再现,远比任何以往人类的创造物都复杂得多。在大型软件系统中,无数种数据、状态和逻辑关系的组合以及人类思维的复杂性和不确定性导致的理解歧义和差异,使整个系统的复杂性急剧增加,也使软件的设计、实现和测试都变得相当困难。   在著名的《没有银弹:软件工程中的根本和次要问题》一文中,Fred Brooks认为正是软件固有的复杂性造成了软件开发的诸多问题。由于复杂性,人们难以全面理解问题,团队成员之间的沟通也变得非常困难,从而导致了产品缺陷、成本超支和进度拖延;由于复杂性,描述和理解软件系统所有可能的状态是极其困难的,影响了产品的可靠性;由于软件结构及其依赖关系的复杂性,软件的任何更改和扩充都有可能带来灾难性的后果,形成所谓的“雪崩效应”。   (2) 软件是不可见的。一般情况下,人们可以通过几何抽象模型准确地描述有形的物体,例如建筑师可以用平面图描述建筑物的结构,硬件工程师可以用电路图描述计算机的系统结构,甚至化学家也可以用分子模型描述客观事物的微观结构。但是,软件是客观世界空间和计算机空间之间的一种逻辑实体,不具有物理的形体特征。人们一直试图用不同的图形技术来描述软件结构,即便是现在流行的面向对象技术,也仍然无法给出其准确、完整的描述。   (3) 软件是不断变化的。软件是纯粹思维活动的产物,它不会像硬件一样发生磨损,而是需要随着应用、硬件、用户和社会等各种因素的变化不断地被修改和扩展。由于软件是人类思维和智能的一种延伸,因此当软件被真正应用之后,人们往往希望超越原有的应用边界进行软件功能的提升或扩展;另外,由于软件必须依附于硬件平台,因此需要随着硬件设备的更新和接口的不同而变化。   人们总是认为软件是很容易被修改的,通常忽视了修改带来的副作用,即引入新的错误,造成故障率的升

您可能关注的文档

文档评论(0)

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

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档