软件体系结构与设计模式第一章.ppt
《软件体系结构与设计模式第一章.ppt》由会员分享,可在线阅读,更多相关《软件体系结构与设计模式第一章.ppt(46页珍藏版)》请在三一办公上搜索。
1、第一章 软件危机,什么是软件,1.1 软件,软件的分类,1.1 软件,通用软件(Generic Software)通用软件是由软件开发组织开发,面向市场用户公开销售的独立运行系统,有时也被称为套装软件。举例:操作系统、数据库系统、字处理软件等定制软件(Customized Software)定制软件是由某个特定客户委托,软件开发组织在合同的约束下开发的软件。举例:企业ERP 系统、卫星控制系统、空中交通指挥系统等,软件的应用,1.1 软件,软件的本质特征,1.1 软件,复杂性(Complexity)一致性(Conformity)可变性(Changeability)不可见性(Invisibili
2、ty),软件的本质特征,1.1 软件,复杂性软件在规模上可能比任何由人类创造的其他实体都要复杂,复杂性是软件的本质特性。软件的复杂性是必要属性大量的组合状态丰富的结构和相互依赖性良好的接口用以封装内部的复杂性开发问题也会增加复杂性高效率的代码通常是复杂的重用通用化的组件意味着复杂的状态连接复杂的代码难以维护,导致设计上的更复杂,软件的本质特征,1.1 软件,一致性软件必须遵从人为的惯例并适应已有的技术和系统软件必须遵循各种接口、协议和标准有些情况下,兼容性是软件开发的目标软件需要随接口的不同而改变,随时间的推移而变化,而这些变化是不同的人设计的结果。许多复杂性来自保持与其他接口的一致,对软件的
3、任何再设计,都无法简化这些复杂特性。,软件的本质特征,1.1 软件,可变性软件产品扎根于文化的母体中,如各种应用、用户、自然及社会规律、计算机硬件等,后者持续不断地变化着,这些变化无情地强迫着软件随之变化。所有成功的软件都会发生变更!当人们发现软件很有用时,会在原有应用范围的边界,或者在超越边界的情况下使用软件;功能扩展的压力主要来自那些喜欢基本功能,又对软件提出了很多新用法的用户们。,软件的本质特征,1.1 软件,不可见性软件是不可见的和无法可视化的软件的客观存在不具有空间的形体特征定义“需要做什么”成为软件开发的根本问题人们一直试图使用不同的技术进行软件可视化控制流程、数据流、依赖关系、U
4、ML、这些技术仍然无法给出准确的、完整的描述软件仍然保持着无法可视化的固有特性,从而剥夺了一些具有强大功能的概念工具的构造思路。这种缺憾不仅限制了个人的设计过程,也严重地阻碍了相互之间的交流。,软件工程的定义,1.2 软件的发展阶段,Bauer,1972软件工程是为了经济地获得能够在实际机器上高效运行的可靠软件而建立和使用的一系列好的工程化原则。CMU,1990软件工程是以工程的形式应用计算机科学和数学原理,从而经济有效地解决软件问题。IEEE,1993软件工程是将系统性的、规范化的、可定量的方法应用于软件的开发、运行和维护,即工程化应用到软件上;对中所述方法的研究。,软件工程的关注焦点,1.
5、2 软件的发展阶段,软件质量(Software Quality)软件质量是软件产品与明确的和隐含的需求相一致的程度软件质量通常采用一系列质量特性来描述软件成本(Software Cost)软件开发成本是指软件开发过程中所花费的费用软件维护成本是指软件投入运行后软件变更所需的费用,软件工程的三要素,1.2 软件的发展阶段,软件工程面临的挑战,1.2 软件的发展阶段,遗留系统的问题遗留系统是指那些过时或存在问题的计算机系统,通常是许多年以前开发的挑战:既要以合理的成本维护和更新系统,又要能够继承系统中重要的商业信息和服务异构系统的问题网络环境下包含不同的硬件平台和软件系统挑战:需要提出新的开发技术
6、,能够使所开发的软件系统运行在不同的硬件平台和系统环境下,软件工程面临的挑战,1.2 软件的发展阶段,高可信软件开发的要求软件的重要作用要求正确性、可靠性、安全性等可信性质挑战:如何在软件的开发和运行中保证其具有高可信的性质软件开发方式的变化网络时代带来的冲击开源软件开发技术Web 工程挑战:研究分布式的软件体系结构和开发模式,探索与之相适应的软件工程策略,软件危机的表现,软件成本日益增长 开发进度难以控制 软件质量差 软件维护困难,1.3 软件危机,软件危机的表现,软件成本日益增长 20世纪50年代,软件成本在整个计算机系统成本中所占的比例为10%-20%。到20世纪60年代中期,软件成本在
7、计算机系统中所占的比例已经增长到50%左右。而且,该数字还在不断地递增,下面是一组来自美国空军计算机系统的数据:1955年,软件费用约占总费用的18%,1970年达到60%,1975年达到72%,1980年达到80%,1985年达到85%左右。,1.3 软件危机,1.1 从软件危机谈起,软件危机的表现,开发进度难以控制 由于软件是逻辑、智力产品,软件的开发需建立庞大的逻辑体系,这是与其他产品的生产不一样的。在软件开发过程中,用户需求变化等各种意想不到的情况层出不穷,令软件开发过程很难保证按预定的计划实现,给项目计划和论证工作带来了很大的困难。盲目增加软件开发人员并不能成比例地提高软件开发能力。
8、相反,随着人员数量的增加,人员的组织、协调、通信、培训和管理等方面的问题将更为严重。,1.3 软件危机,1.1 从软件危机谈起,软件危机的表现,软件质量差 软件项目即使能按预定日期完成,结果却不尽人意。1965年至1970年,美国范登堡基地发射火箭多次失败,绝大部分故障是由应用程序错误造成的。在“软件作坊”里,由于缺乏工程化思想的指导,程序员几乎总是习惯性地以自己的想法去代替用户对软件的需求,软件设计带有随意性,很多功能只是程序员的“一厢情愿”而已,这是造成软件不能令人满意的重要因素。,1.3 软件危机,1.1 从软件危机谈起,软件危机的表现,软件维护困难 由于在软件设计和开发过程中,没有严格
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 体系结构 设计 模式 第一章
链接地址:https://www.31ppt.com/p-6027861.html