欢迎来到天天文库
浏览记录
ID:43815897
大小:275.50 KB
页数:52页
时间:2019-10-15
《软件工程 ch1 软件工程基本概念》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第一章软件工程基本概念内容软件的概念、特点及分类软件的发展和软件危机的原因软件工程及其基本目标和原则软件工程知识体系指南的目的、内容及其相关学科软件过程和软件过程改进CMM模型的概念、特点及分类面向对象技术的概念和特点软件体系结构的概念、特点及分类高质量软件生产知识集成支持结构软件(software)是计算机系统中与硬件相互依存的另一部分,它包括程序、数据及相关文档的完整集合。软件危机的根本原因是软件系统高度复杂、难于驾驭。软件及其复杂性软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。软件的开发与硬件不同。在软件的开发过程中没有明显的制造过程。软件在运行和使用过程
2、期间,没有硬件那样的机械磨损、老化问题。软件的开发和运行常常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。软件的开发至今尚未完全摆脱手工艺的开发方式。软件是复杂的。软件成本相当昂贵。相当多的软件工作涉及到社会因素。软件的特点NATO关于软件工程问题报告(1968)客户和设计者缺少对系统需求的了解。由于估算技术差劲、没有为客户需求的变化预留时间,以及没有很好地了解系统就将程序任务分块。从而使得对于开销和时间上的估计往往与实际的花费有巨大的差距。变数很大。例如,根据一项研究,程序员的生产率水平有可能相差26倍。很难区分设计和开发(编程)工作,有些设计方面的决策仍必须在编
3、程中做出。由于“程序开发通常并不是一系列步骤的简单叠加,每一个步骤都是相互关联的”,因此很难监控软件项目的进度。软件系统规模的快速增长。同一项目下各工作小组之间缺乏沟通,许多事情没有有效地协调或充斥大量无用的信息,这使得沟通效果更加糟糕,并且处理所需信息的自动化程度不高。开发在线产品控制工具需要巨大的花费。很难客观地度量程序员绩效和系统的性能。软件开发人员之间在系统开发过程中,追求的不是“实用”而是“更新”和“更好”,这使得他们在单个项目中既有研究、又有开发和商品化,从而使得预测和管理变得极其困难。对程序员需求呈快速增长之势,然而训练有素、经验丰富的程序员数量有限。难以保证大
4、型软件系统的可靠性(减少错误及提高系统的容错性)。软件依赖于硬件,这使得很难在不同的计算机之间实现软件的标准化。缺少可辅助构建新的程序的可重用的软件组件。软件维护成本往往超过系统最初的开发成本。软件生产的复杂性(Brook,1975)复杂性:数学和物理的简化技术之所以有用,只是因为那些系统的复杂性是非本质问题,而不是像在软件产品中那样,复杂性是本质问题。一致性:第一类一致性是软件必须和现有系统接口,从而使软件的复杂性达到了不必要的程度;第二类一致性是人们错误地认为软件是最容易调整的部分,使得软件的复杂性达到了不必要的程度。可变性:系统的功能体现在它的软件中,通过修改软件,就可
5、以收到改变系统功能的效果。他认为可变性是软件的本质属性,是一个不可克服的固有的复杂性问题。不可见性:软件无法形象化表示的结果,不仅使软件难以理解,而且严重妨碍了软件专业人员之间的联系。软件生产改进途径不可见性可变性一致性解决软件复杂性软件技术(高级语言、分时共享和软件开发环境)软件设计大师接口一致性修改一致性使用新硬件用户新要求与时俱进容易修改难可视化信息遗漏改进软件生产软件工程定义(IEEE)软件工程是开发、运行、维护和修复软件的系统方法”。其中“软件”的定义为:计算机程序、方法、规则、相关的文档资料以及在计算机上运行时所需要的数据(1983年)。软件工程是:①把系统化的、
6、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;②研究①中提到的途径(1993年)。软件工程项目的基本目标付出较低的开发成本达到要求的软件功能取得较好的软件性能开发的软件易于移植需要较低的维护费用能按时完成开发工作,及时交付使用21世纪的软件生产(杨芙清,1995)多方法、多角色独立性支持(逻辑、物理)开发性支持(标准化)时间支持工具(包括智能助手)集成机制(表示、数据、控制、过程)新型应用技术超文本、多媒体、可视化运行支持OS,DBMS,UIMS等软件工程演化的黑格尔的观点永恒的法则和正在过时的实践(Boehm,2006)时间1950196
7、019701980199020002010永恒的法则不要漠视科学凡事预则立(不要过早的承诺)开放思维尊重软件的差异性将错误扼杀在萌芽阶段确定系统目标有许多途径提高生产率好的产品也是好的过程时间对人类就是财富和价值制造对人类有用的软件如果变化迅速,适应性胜过重复性关注和满足所有利益相关者的价值主张量力而行有退出策略过时的实践避免机械的线性过程避免牛仔式编程避免自顶向下和简单化对银弹的怀疑快而不急避免空喊口号不要相信您读的一切未来50年软件工程教育的挑战保持课程持续更新预期未来的趋势并为之准备好学生从过时的
此文档下载收益归作者所有