欢迎来到天天文库
浏览记录
ID:38681415
大小:3.01 MB
页数:62页
时间:2019-06-17
《软件工程课件ch1概述》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、知识回顾软件工程40年回顾信息时代的软件工程第一章软件工程概述信息学院计算机系张翠肖软件是人类思维创造的杰作,是信息化的核心。如何以经济有效的方法开发高质量的软件是人们一直努力研究的问题。软件工程(SoftwareEngineering)是在克服60年代末所出现的“软件危机”的过程中逐渐形成与发展的。软件工程是一门指导计算机软件系统开发和维护的工程学科,是一门新兴的边缘学科,主要研究如何应用软件开发的科学理论和工程技术来指导大型软件系统的开发。软件工程是为了解决开发成本效益和软件质量的问题。内容提纲•软件–软
2、件的定义与软件危机–软件的本质特性•软件工程–定义与发展历史–理解软件质量–过程、方法和工具•软件工程学科–软件工程知识体系(SWEBOK)–软件工程职业道德规范基本要求了解软件的发展历程掌握软件和软件工程的概念理解软件工程知识体系了解软件工程职业道德规范内容提纲•软件–软件的定义与软件危机–软件的本质特性•软件工程–定义与发展历史–理解软件质量–过程、方法和工具•软件工程学科–软件工程知识体系(SWEBOK)–软件工程职业道德规范1.1什么是软件•软件的定义(IEEEStandardGlossaryofSo
3、ftwareEngineeringTerminology)软件是计算机程序、规程以及运行计算机系统可能需要的相关文档和数据。•从软件的内容来说,软件更像是一种嵌入式的数字化知识,其形成是一个通过交互对话和抽象理解而不断演化的过程。•软件=程序?(1)软件的分类•通用软件(GenericSoftware)–通用软件是由软件开发组织开发,面向市场用户公开销售的独立运行系统,有时也被称为套装软件。–举例:操作系统、数据库系统、字处理软件等•定制软件(CustomizedSoftware)–定制软件是由某个特定客户委
4、托,软件开发组织在合同的约束下开发的软件。–举例:企业ERP系统、卫星控制系统、空中交通指挥系统等根据软件服务对象的范围分类实时系统:嵌入式系统:数据处理系统:信息系统:传感系统:系统软件:通信软件:办公系统:科学计算软件:图形软件:空中交通控制系统数码相机,GPS电话帐单网站,数字图书气象数据操作系统,编译器路由器,移动电话文字处理,视频会议仿真模拟,天气预报电影制作,CAD设计7软件的应用•Nosilverbullet:essenceandaccidentsofsoftwareengineering–Fr
5、edrickP.Brooks,IBMOS360项目经理–1999年图灵奖获得者“没有任何技术或管理上的进展,能够独立地许诺十年内使生产率、可靠性或简洁性获得数量上的进步。”•软件的本质特性复杂性(Complexity)一致性(Conformity)可变性(Changeability)不可见性(Invisibility)12(2)软件的本质特性复杂性(1)软件实体可能比任何由人类创造的其他实体要复杂,因为没有任何两个软件部分是相同的。(2)数字计算机本身就比人类建造的大多数东西复杂。计算机拥有大量的状态,这使得
6、构思、描述和测试都非常困难。软件系统的状态又比计算机系统状态多若干个数量级。(3)软件实体的扩展也不仅仅是相同元素重复添加,而必须是不同元素实体的添加。(4)软件的复杂度是必要属性,不是次要因素。抽掉复杂度的软件实体描述常常也去掉了一些本质属性。数学家和物理学家们建立模型以简化复杂的现象,从模型中抽取出各种特性,并通过试验来验证这些特性复杂性复杂性复杂性问题造成软件产品开发问题团队成员之间的沟通非常困难,导致了产品瑕疵、成本超支和进度延迟由于复杂度,列举和理解所有可能的状态十分困难,影响了产品的可靠性由于函数
7、的复杂度,函数调用变得困难,导致程序难以使用由于结构性复杂度,程序难以在不产生副作用的情况下用新函数扩充由于结构性复杂度,造成很多安全机制状态上的不可见性复杂性复杂度引发管理上的问题全面理解问题变得困难,从而妨碍了概念上的完整性它引起了大量学习和理解上的负担,使开发慢慢演变成了一场灾难•一致性(Conformity)–软件必须遵从人为的惯例并适应已有的技术和系统•软件必须遵循各种接口、协议和标准•有些情况下,兼容性是软件开发的目标–软件需要随接口的不同而改变,随时间的推移而变化,而这些变化是不同的人设计的结果
8、。–许多复杂性来自保持与其他接口的一致,对软件的任何再设计,都无法简化这些复杂特性。14(2)软件的本质特性•可变性(Changeability)–软件产品扎根于文化的母体中,如各种应用、用户、自然及社会规律、计算机硬件等,后者持续不断地变化着,这些变化无情地强迫着软件随之变化。–所有成功的软件都会发生变更!•当人们发现软件很有用时,会在原有应用范围的边界,或者在超越边界的情况下使用软件;•功能扩展
此文档下载收益归作者所有