[从业资格考试]软件工程基础new.ppt
《[从业资格考试]软件工程基础new.ppt》由会员分享,可在线阅读,更多相关《[从业资格考试]软件工程基础new.ppt(47页珍藏版)》请在三一办公上搜索。
1、第12章 软件工程基础,12.1.1 软件的定义与特点1.软件(software)的定义 计算机软件是计算机系统中与硬件相互依存的另一部分,应包括程序、实现此程序功能所采取的方法、规则以及与其相关的文档和在机器上运行它所需要的数据等。软件在开发、生产、维护合使用等方面与硬件相比存在着明显差异。2.软件具有以下特点(1)软件是功能、性能相对完善的程序系统。软件不仅是程序,还包括说明其功能、性能的说明、文档。(2)软件的生产与硬件不同,没有明显的制造过程,是具有使用性能的软设备。(3)软件的开发、运行对计算机系统具有依赖性。(4)软件是只有过时而无“磨损”的商品。(5)软件开发涉及诸多的社会因素。
2、,12.1 软件工程的基本概念,12.1.2 软件危机与软件工程1.软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的诸如成本、质量、生产率等一系列严重问题。主要表现:(1)软件开发成本和进度难以控制。开发成本高,很少有在预定的成本预算内完成的;进度无法控制,周期拖的很长。(2)软件质量难以保证,出错率高。(3)软件产品维护困难,维护人员和费用不断增加,甚至出现不可维护。(4)软件开发生产率的提高与硬件的发展和应用需求差距大。,2.软件工程 软件工程是采用工程的概念、原理和方法来指导软件的开发和维护,目的是解决软件开发中的问题,提高软件的生产率和质量,促进软件的发展。软件工程包括3个
3、要素:即方法、工具和过程。方法是完成软件工程项目的技术手段;工具用于支持软件的开发、管理和文档生成;过程是对软件开发各个环节的控制、管理。软件工程方法是完成软件工程项目的技术手段,它支持项目计划和估算、系统和软件需求分析、软件设计、编码、测试和维护。软件工程使用的软件工具是人类在开发软件的活动中智力和体力的扩展和延伸,它自动或半自动地支持软件的开发和管理,支持各种软件文档的生成。,12.2.1 软件的生命周期 软件从产生、发展到最后被淘汰的全过程。可大致分为几个阶段:问题定义、可行性研究与制定计划、需求分析、概要设计、详细设计、编码、测试及运行维护。生命周期的主要活动阶段:1.问题定义。确定系
4、统“解决什么问题”,明确任务。2.可行性研究与制定计划。在对软件系统进行调研和可行性论证的基础上制定初步的项目开发计划。3.需求分析。指用户对待开发软件系统功能、行为、性能、设计约束等方面提出来的需求进行分析并给出详细定义。编写软件规格说明书及初步用户手册,提交评审。,12.2 软件生命周期与开发模型,(4)软件设计。分概要设计和详细设计。给出软件的结构图、模块划分、功能的分配及处理流程。(5)编码。完成程序的编码。(6)测试。完成系统的测试工作。(7)运行和维护。软件交付用户运行使用,并在使用中不断维护,根据用户 提出的要求进行必要和可能的扩充与修改。,12.2.2 软件开发模型1.瀑布模型
5、 按照软件生命周期的划分,明确规定每个阶段的任务,并且规定了它们自上而下、互相衔接的固定次序,如同瀑布流水,逐级下落。,使用范围用户需求比较明确,开发技术比较成熟,工程管理比较严格的情况。如 操作系统、编译系统、数据库管理系统、卫星图象处理系统等系统软件。此模型适合于面向过程的软件开发方法。,需求分析,设计,运行、维护,测试,编码,计划,要解决什么问题,是否有可行解?确定目标系统的功能和信息。,确定系统的实现方案及软件模块功能。,采用某种程序设计语言及结构程序设计技术书写程序。,在软件投入运行之前,尽可能多地发现错误,即对重要的执行通路进行测试。,软件交付使用后,为了改正错误或满足需要而修改软
6、件的过程。,全面了解用户需求,了解业务流程,“逻辑模型”-做什么,“物理模型”-怎么做,2.演化(原型)模型 演化模型开发方法不要求从一开始就有一个完整的软件需求定义,往往是用户自己对软件需求的理解还不甚明确,故可以从部分需求定义出发,先建立一个不完全的系统,通过测试运行系统取得经验和反馈,加深对软件需求的理解,进一步完善和扩充系统,如此反复进行,直至软件人员和用户对所设计完成的软件满意为止。,适用范围需求比较模糊或随时间变化的系统。如商业信息处理系统、决 策 支持系统。,用快速原型法开发软件的,概括地确立用户的需求,根据系统的主要功能,建立原型系统,评价、使用原型系统,修改原型系统,转变成最
7、佳的目标系统,软件生存期的演化模型,用户满意否,N,Y,3.螺旋模型 螺旋模型是瀑布模型与原型模型的结合,不仅体现了两个模型的优点,而且还增加了新的“风险分析”部分。由需求定义、风险分析、工程实现、评审4个部分组成。软件开发过程每迭代一次,软件开发就推进一个层次,系统又生成一个版本,而软件开发的时间和成本又有了新的投入。最后总能得到一个用户满意的版本。在实际开发中,只有降低迭代次数,减少每次迭代的工作量,才能降低软件开发的时间和成本。,12.3 软件工程的目标与原则软件工程的目标 在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可
8、操作性且满足用户需求的软件产品。软件工程的原则 为了达到软件工程的目标,在软件开发过程中,必须遵循软件工程的基本原则。基本原则包括:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。,抽象:抽取事物最基本的特性和行为,忽略本质细节。采用自顶向下、逐步细化的方法,控制软件开发过程的复杂性。信息隐蔽:采用封装技术,将程序模块的实现细节隐藏起来,使模块接口尽量简单。模块化;模块是程序中相对独立的成分,一个独立的编程单位,应该有良好的接口定义,模块大小要适中。局部化:要求在一个物理模块内集中逻辑上相互关联的计算资源,保障模块间具有松散的偶合关系,模块内部有较强的内聚性。,小概念:衡量模
9、块独立的两个标准耦合和内聚耦合:指模块之间联系的紧密程度。耦合度越高,则模块的独立性越差。在设计软件时,应该追求尽可能松散耦合的系统。内聚:是对模块内各元素彼此结合的紧密程度的度量。内聚度越高越好。,确定性:软件开发过程中所有的概念的表达应是确定的、无二义性且规范的。一制性:包括程序、数据和文档的整个软件的各模块,应使用已知的概念、符号和术语。完备性:软件系统不丢失任何部分,完全实现系统所需的功能。可验证性:系统应遵循易检查、易评测、易评审的原则,确保系统的正确性。,12.4 软件开发方法 主要有3种:面向过程的方法、面向对象的方法、面向数据的方法。12.4.1 面向过程的方法 1.面向过程的
10、方法简介 面向过程的方法又称为结构化的方法,习惯上称为结构化分析(SA)、结构化设计(SD)、结构化编程(SP)、结构化测试(ST)和结构化维护(SM)。包括面向可维护性和可设计性设计的 Parmas方法和面向数据结构设计的Jackson方法等。支持这些方法的是面向过程的结构化编程语言。基本特点:分析设计中强调“自顶向下”、“逐步求精”,编程实现强调程序的“单入口和单出口”,程序的执行过程不由用户控制,完全由程序控制。此方法在国内曾经十分流行,应用广泛。,2.面向过程方法开发过程(1)制定开发计划 确定要开发软件的目标,并对资源分配、进度安排等作出合理计划书。参加人员:用户、项目负责人、系统分
11、析员等。生成的文档:项目计划书(2)可行性论证 在系统开发前,对整个系统开发的总体目标、时间与周期、人员安排、投资情况等作出客观的分析与评价。产生的文档:可行性报告。可行性分析包括以下三方面内容:经济可行性技术上的可行性社会可行性,(3)需求分析 需求分析的任务:确定系统的要求系统功能要求系统性能要求系统的运行要求系统将来可能提出的要求安全、保密性及可靠性方面的要求 分析系统的数据要求 分析系统的基本元素、数据之间的关系及数据量等,然后导出系统的逻辑模型。修正开发计划 根据在分析过程中获得的对系统的更深入具体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发计划。编写需求分析报告,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 从业资格考试 从业 资格考试 软件工程 基础 new

链接地址:https://www.31ppt.com/p-4604220.html