软件工程概述
2020-04-21 10:31:40 1 举报
AI智能生成
软件工程概述
作者其他创作
大纲/内容
软件
软件的概念
软件是计算机系统运行的指令,数据和相关文档的集合,即软件等于程序,数据并加上文档。
软件的特征
软件是由开发或者工程化开发而得到的。
软件不会磨损。
大多数软件是定制开发的,而非软件构件装配得来。
软件的分类
按功能划分
系统软件
支撑软件
应用软件
按规模划分
微型
小型
中型
大型
超大型
按工作方式划分
实时软件
分时系统软件
交互式应用软件
批处理软件
按服务对象的范围划分
项目软件
产品软件
软件危机
危机产生原因
软件开发规模逐渐变大,软件复杂度提高,软件需求的快速变化。
没有按照工程化方式运作,开发过程没有统一的标准的准则,以及科学规范的指导方法。
软件需求分析于设计考虑不周,软件开发,维护和管理不到位。
开发人员与用户或开发人员之间的相互交流沟通不够,文档和资料不完备。
软件测试不规范和调试不正确,不细致,导致交付的软件质量不合格。
忽视软件运行过程相关的维护和管理。
危机主要变现
已开发完成的软件系统出现功能,性能不满意或出现故障的现象。
软件产品的可靠性和质量安全等方面时常达不到标准。
开发出的软件产品质量难以保证,甚至在开发过程中出现被迫中断的情况。
软件开发管理水平差,对成本和进度的估计经常不准确。
软件系统出现无法维护、升级或更新的现象。
软件开发没有标准、完整、统一规范的文档资料。
开发完成的计算机软件除了程序,还应当有一整套规范的文档资料和售后服务措施。
软件开发效率低,无法满足计算机系统迅速发展的实际应用需要。
软件研发成本在计算机系统总成本中所占的比例逐年上升,影响了软件应用的进一步推广。
解决软件危机主要途径
技术开发。运用软件工程技的术,方法和标准规范。
开发工具。选用先进高效的软件工具,同时采取切实可行的实时策略。
组织管理。研发组织应当做到使用严格的管理制度、标准和规范,分工、职责明确,实施严格的质量保证措施,开发成员相互团结互助、齐心协力,开发中应注重文档的编写并提供优质的服务。
软件工程
定义
采用工程的概念,原理,技术和方法,在计划,开发,运行,维护与管理软件的过程中,将科学的管理和最佳的技术方法紧密结合,并采用适当的工具,以比较经济的手段获得满足用户需求的可靠软件的一系列方法。
特点
多学科
涉及计算机科学,工程科学,管理科学,数学等多个学科。
多目标
不仅关心项目产品及其功能,还注重质量,成本,进度,性能,可靠性,安全性,通用性,可维护性,有效性等。
多阶段
软件开发不只是编程,而是由问题的提出,可行性研究,需求分析,总体设计,编程等阶段构成的完整过程。
研究对象
软件开发技术
包括软件工程方法,软件工具和软件开发环境。
软件工程管理
包含软件工程经济学和软件管理学
基本目标与原理
基本目标
软件工程的日的是在规定的时间和开发经费内,开发出满足用户需求的、高质量的软件产品。
基本原理
(1)用分阶段的生存周期计划进行严格的管理。
(2)坚持进行阶段评审。
(3)实行严格的产品控制。
(4)采用现代程序设计技术。
(5)软件工程结果应能清楚地审查。
(6)开发小组的人员应该少而精。
(7)承认不断改进软件工程实践的必要性。
基本原则
(1)选取适宜的开发模型。
(2)采用合适的设计方法。
(3)提供高质量的上程支撑环境。
(4)重视软件的工程化管理。
发展
传统软件工程
对象工程
过程过程
构成构成
软件生存周期与开发
生存周期的概念
从开始研发软件到软件停止使用的整个过程。
生存周期的阶段划分
(1)软件策划。主要完成问题定义、可行性论证、 制订开发计划和项目中报工作,明确“要解决的问题是什么”。
(2)需求分析。需求分析和定义阶段的任务不是具体地解决问题,而是确定软件须具备的具体功能、性能等,即明确“必须做什么”及其他指标要求。
(3)概要设计。主要设计软件的结构,结构的组成模块,模块的层次结构、调用关系及功能,并设计总体数据结构等。
(4)详细设计。对模块功能、性能、可靠性等进行具体技术描述,并转化为过程描述。
(5)编写程序。又称为编码,将模块的控制结构转换成程序代码。
(6)测试。为了保证软件需求和质量,在设计测试用例的基础,上对软件进行检测。
(7)运行维护。对交付并投人使用的软件进行各种维护,并记录保存文档。
软件过程
(1)软件规格说明:规定软件的功能,性能,可靠性及其运行环境
(2)软件开发:研发符合规格说明的具体软件
(3)软件确认:确认软件能够完成客户的应用需求
(4)软件演进:为满足用户的变更要求,软件必须在使用过程中引进新技术,新方法并根据新业务及时升级更新
软件过程模型
瀑布模型
(1)开发过程的顺序性
(2)统筹兼顾不过早编程
(3)严格要求保证质量
1.必须各阶段都要求按照要求认真完成规定的文档
2.各阶段须对完成文档复审,及时发现隐患或问题并加以排除或解决
快速原型模型
螺旋模型
制订计划,确定软件目标,选定实施方案,弄清项目开发的限制条件。
风险分析,分析评估所选方案,考虑如何识别和消除风险。
实施工程,实施软件开发和验证。
客户评估,评价开发工作,提出修正建议,制订下一步计划。
增量模型
V模型
喷泉模型
(1)规定软件开发过程有4个阶段:需求分析、总体设计、详细设计和实现,还可分成多个开发步骤。
(2)各阶段相互重叠,反映了软件过程并行性的特点。
(3)以分析为基础,资源消耗呈塔形,在分析阶段消耗的资源最多
(4)反映了软件过程迭代性的自然特性,从高层返回低层无资源消耗。
(5)强调增量开发,依据分析一点设计一点的原则,并不要求一个阶段的彻底完成,整个过程是一个迭代的逐步提炼的过程。
(6)该模型是对象驱动过程,对象是活动作用的实体,也是项目管理的基本内容。
(7)实现中由于活动不同,可分为系统实现和对象实现,这既反映了全系统的开发过程,也反映了对象的开发和重用过程。
统一过程模型
RUP的二维开发模型及其核心工作流
主要包括业务建模、需求、分析与设计、实现、测试、部署、配置和变更管理、项目管理和环境
开发过程中的各个阶段和里程碑
①初始阶段。此阶段结束时是第一一个重要的里程碑,即生存周期目标里程碑,它评价项目基本的生存能力。
②细化阶段。 结束时是第二个重要的 里程碑,即生存周期结构里程碑,它 为系统的结构建立了管理基准并使项目小组能够在构建阶段中进行衡量。此刻,要检验详细的系统目标和范围、结构的选择。
③构造阶段。结束时是第三个重要的里程碑,即初始功能里程碑,它决定了产品是否可以在测试环境中进行部署。此刻,要确定软件、环境、用户是否可以开始系统的运作。
软件开发模型的选定
(1)符合软件本身的性质,包括规模、复杂性等。
(2)满足软件应用系统整体开发进度要求。
(3)尽可能控制并消除软件开发风险。
(4) 具有计算机辅助工具快速的支持, 如快速原型工具。
(5)与用户和软件开发人员的知识和技能匹配。
(6)有利于软件开发的管理与控制。
软件开发方法简述
结构化方法
主要采用结构化技术,包括结构化分析,结构化设计和结构化实现,按照软件的开发过程,结构和顺序完成开发任务。
面向对象的方法
由面向对象的分析,面向对象的设计,面向对象的程序设计组成。
收藏
0 条评论
下一页