- 1、本文档共52页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件生产的复杂性-Read
第一章 软件工程基本概念 内 容 软件的概念、特点及分类 软件的发展和软件危机的原因 软件工程及其基本目标和原则 软件工程知识体系指南的目的、内容及其相关学科 软件过程和软件过程改进 CMM模型的概念、特点及分类 面向对象技术的概念和特点 软件体系结构的概念、特点及分类 高质量软件生产知识集成支持结构 软件及其复杂性 软件(software)是计算机系统中与硬件相互依存的另一部分,它包括程序、数据及相关文档的完整集合。 软件危机的根本原因是软件系统高度复杂、难于驾驭。 软件的特点 软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。 软件的开发与硬件不同。在软件的开发过程中没有明显的制造过程。 软件在运行和使用过程期间,没有硬件那样的机械磨损、老化问题。 软件的开发和运行常常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。 软件的开发至今尚未完全摆脱手工艺的开发方式。 软件是复杂的。 软件成本相当昂贵。 相当多的软件工作涉及到社会因素。 NATO关于软件工程问题报告(1968) 客户和设计者缺少对系统需求的了解。 由于估算技术差劲、没有为客户需求的变化预留时间,以及没有很好地了解系统就将程序任务分块。从而使得对于开销和时间上的估计往往与实际的花费有巨大的差距。 变数很大。例如,根据一项研究,程序员的生产率水平有可能相差26倍。 很难区分设计和开发(编程)工作,有些设计方面的决策仍必须在编程中做出。 由于“程序开发通常并不是一系列步骤的简单叠加,每一个步骤都是相互关联的”,因此很难监控软件项目的进度。 软件系统规模的快速增长。 同一项目下各工作小组之间缺乏沟通,许多事情没有有效地协调或充斥大量无用的信息,这使得沟通效果更加糟糕,并且处理所需信息的自动化程度不高。 开发在线产品控制工具需要巨大的花费。 很难客观地度量程序员绩效和系统的性能。 软件开发人员之间在系统开发过程中,追求的不是“实用”而是“更新”和“更好”,这使得他们在单个项目中既有研究、又有开发和商品化,从而使得预测和管理变得极其困难。 对程序员需求呈快速增长之势,然而训练有素、经验丰富的程序员数量有限。 难以保证大型软件系统的可靠性(减少错误及提高系统的容错性)。 软件依赖于硬件,这使得很难在不同的计算机之间实现软件的标准化。 缺少可辅助构建新的程序的可重用的软件组件。 软件维护成本往往超过系统最初的开发成本。 软件生产的复杂性 (Brook,1975) 复杂性:数学和物理的简化技术之所以有用,只是因为那些系统的复杂性是非本质问题,而不是像在软件产品中那样,复杂性是本质问题。 一致性:第一类一致性是软件必须和现有系统接口,从而使软件的复杂性达到了不必要的程度;第二类一致性是人们错误地认为软件是最容易调整的部分,使得软件的复杂性达到了不必要的程度。 可变性:系统的功能体现在它的软件中,通过修改软件,就可以收到改变系统功能的效果。他认为可变性是软件的本质属性,是一个不可克服的固有的复杂性问题。 不可见性:软件无法形象化表示的结果,不仅使软件难以理解,而且严重妨碍了软件专业人员之间的联系。 软件生产改进途径 软件工程定义(IEEE) 软件工程是开发、运行、维护和修复软件的系统方法”。其中“软件”的定义为:计算机程序、方法、规则、相关的文档资料以及在计算机上运行时所需要的数据(1983年)。 软件工程是:①把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;②研究①中提到的途径(1993年) 。 软件工程项目的基本目标 付出较低的开发成本 达到要求的软件功能 取得较好的软件性能 开发的软件易于移植 需要较低的维护费用 能按时完成开发工作,及时交付使用 21世纪的软件生产(杨芙清,1995) 软件工程演化的黑格尔的观点 永恒的法则和正在过时的实践(Boehm, 2006) 未来50年软件工程教育的挑战 保持课程持续更新 预期未来的趋势并为之准备好学生 从过时的实践中分离出永恒的法则 练习与大型产业实践相关的小型学生项目 参与研究,并将结果融入课程 帮助学生学会学习 为实践者提供终生学习 知识域的组织结构类图 软件工程知识体系指南2004版 软件过程成熟度模型 软件过程(Software Process)是用来生产软件产品的一系列工具、方法和实践。 软件能力成熟度模型(Software Capability Matured Model, SW-CMM)给软件组织提供如何增加对其开发和维护软件过程的控制,如何向软件工程和管理的优秀文化进化等方面的指导。 成熟度等级是妥善定义的向成熟软件组织前进中的阶段 SW-CMM的结构 SW-CMM的关键过程域 SW-CMM五个公共属性 执行约定(Co
您可能关注的文档
最近下载
- 《Principles Of Magnetic Resonance Imaging》教学Chapter 3.pdf VIP
- 党旗和党徽背后的故事.doc VIP
- 2023版《静脉治疗护理技术操作规范》解读ppt课件.pptx
- 广州广日扶梯GRF电气原理图纸接线图.pdf
- (人教2024版)信息科技七年级全一册 1.1互联网发展靠创新 课件.pptx
- XX公司隐蔽工程验收记录(火灾自动报警及联动系统电管敷设(墙体内 顶板))(2023年).docx
- 寓言故事PPT金斧头.ppt
- 股票交易记录表格.docx VIP
- 护理专业本科通科实习出科考核病历.docx
- 2020秋七彩课堂初中语文部编版九年级上册教学课件24 刘姥姥进大观园.ppt
文档评论(0)