- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一章 软件危机 1.4 软件过程 ◇软件演化 1.4 软件过程 ◇软件过程模型 ?软件过程模型 –软件过程模型是对实际过程的抽象描述 –包括软件过程的活动、软件产品以及参与人员的不同角色 ?常见的软件过程模型 –瀑布模型 –快速原型模型 –增量模型 –螺旋模型 –形式化方法模型 –基于组件的开发模型 * ◇ 什么是软件 1.1 软件 ◇ 软件的分类 1.1 软件 ?通用软件(Generic Software) –通用软件是由软件开发组织开发,面向市场用户公开销售的独立运行系统,有时也被称为套装软件。 –举例:操作系统、数据库系统、字处理软件等 ?定制软件(Customized Software) –定制软件是由某个特定客户委托,软件开发组织在合同的约束下开发的软件。 –举例:企业ERP 系统、卫星控制系统、空中交通指挥系统等 ◇ 软件的应用 1.1 软件 ◇ 软件的本质特征 1.1 软件 –复杂性(Complexity ) –一致性(Conformity ) –可变性(Changeability ) –不可见性(Invisibility ) ◇ 软件的本质特征 1.1 软件 ?复杂性 –软件在规模上可能比任何由人类创造的其他实体都要复杂,复杂性是软件的本质特性。 –软件的复杂性是必要属性 ?大量的组合状态 ?丰富的结构和相互依赖性 ?良好的接口用以封装内部的复杂性 –开发问题也会增加复杂性 ?高效率的代码通常是复杂的 ?重用通用化的组件意味着复杂的状态连接 ?复杂的代码难以维护,导致设计上的更复杂 ◇ 软件的本质特征 1.1 软件 ?一致性 –软件必须遵从人为的惯例并适应已有的技术和系统 ?软件必须遵循各种接口、协议和标准 ?有些情况下,兼容性是软件开发的目标 –软件需要随接口的不同而改变,随时间的推移而变化,而这些变化是不同的人设计的结果。 –许多复杂性来自保持与其他接口的一致,对软件的任何再设计,都无法简化这些复杂特性。 ◇ 软件的本质特征 1.1 软件 ?可变性 –软件产品扎根于文化的母体中,如各种应用、用户、自然及社会规律、计算机硬件等,后者持续不断地变化着,这些变化无情地强迫着软件随之变化。 –所有成功的软件都会发生变更! ?当人们发现软件很有用时,会在原有应用范围的边界,或者在超越边界的情况下使用软件; ?功能扩展的压力主要来自那些喜欢基本功能,又对软件提出了很多新用法的用户们。 ◇ 软件的本质特征 1.1 软件 ?不可见性 –软件是不可见的和无法可视化的 ?软件的客观存在不具有空间的形体特征 ?定义“需要做什么”成为软件开发的根本问题 –人们一直试图使用不同的技术进行软件可视化 ?控制流程、数据流、依赖关系、UML、…… ?这些技术仍然无法给出准确的、完整的描述 –软件仍然保持着无法可视化的固有特性,从而剥夺了一些具有强大功能的概念工具的构造思路。这种缺憾不仅限制了个人的设计过程,也严重地阻碍了相互之间的交流。 ◇ 软件工程的定义 1.2 软件的发展阶段 [Bauer, 1972] 软件工程是为了经济地获得能够在实际机器上高效运行的可靠软件而建立和使用的一系列好的工程化原则。 [CMU, 1990] 软件工程是以工程的形式应用计算机科学和数学原理,从而经济有效地解决软件问题。 [IEEE, 1993] 软件工程是①将系统性的、规范化的、可定量的方法应用于软件的开发、运行和维护,即工程化应用到软件上;②对①中所述方法的研究。 ◇ 软件工程的关注焦点 1.2 软件的发展阶段 ?软件质量(Software Quality) –软件质量是软件产品与明确的和隐含的需求相一致的程度 –软件质量通常采用一系列质量特性来描述 ?软件成本(Software Cost) –软件开发成本是指软件开发过程中所花费的费用 –软件维护成本是指软件投入运行后软件变更所需的费用 ◇ 软件工程的三要素 1.2 软件的发展阶段 ◇ 软件工程面临的挑战 1.2 软件的发展阶段 ?遗留系统的问题 –遗留系统是指那些过时或存在问题的计算机系统,通常是许多年以前开发的 –挑战:既要以合理的成本维护和更新系统,又要能够继承系统中重要的商业信息和服务 ?异构系统的问题 –网络环境下包含不同的硬件平台和软件系统 –挑战:需要提出新的开发技术,能够使所开发的软件系统运行在不同的硬件平台和系统环境下 ◇ 软件工程面临的挑战 1.2 软件的发展阶段 ?高可信软件开发的要求 –软件的重要作用要求正确性、可靠性、安全性等可信性质 –挑战:如何在软件的开发和运行中保证其具有高可信的性质 ?软件开发方式的变化 –网络时代带来的冲击 ?开源软件开发技术 ?Web 工程 –挑战:研究分布式的软件体系结构和开发模式,探索与之相适应的软件
您可能关注的文档
最近下载
- AP化学 2012年真题 (选择题+问答题) AP Chemistry 2012 Released Exam and Answers (MCQ+FRQ).pdf VIP
- 第六章 教会法.ppt
- 城镇供水厂运行维护及安全技术规程-详版.pptx
- 无铬厚膜底漆、厚膜预涂板和制备方法.pdf VIP
- 教师道德与法治新课标考试试题三套及答案.docx
- CMA考试 P2试题500道含解析.pdf VIP
- 新型锂电池电解液添加剂技改扩能项目环境影响报告书.pdf
- 2025年广东省中山市华辰实验中学九年级中考数学一模试题(原卷版+解析版).docx VIP
- 历史逻辑 理论逻辑 实践逻辑的必然结果.docx VIP
- 2024年05月江苏无锡市梁溪区机关事业单位招考聘用编外工作人员20人笔试历年高频考点(难、易错点)附带答案详解.docx VIP
文档评论(0)