找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2351|回复: 0
打印 上一主题 下一主题
收起左侧

软件工程概述和过程模型介绍

[复制链接]
跳转到指定楼层
楼主
ID:108531 发表于 2016-3-12 15:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这可不好学纯理论的东西哎!
1.软件工程概述
  1.1.软件和软件危机
  代码、程序、软件是3个不同的概念。代码:计算机上运行的机器指令。程序:数据结构+算法。软件:计算机系统中与硬件相互依存的另一部分,包括:程序、相关数据及其说明文档。
  什么是软件危机?
  要了解软件危机就要了解软件的特点,那软件的特点有哪些呢?
  1.抽象性2.容易复制3.对硬件有依赖性4.至今未摆脱手工方式5.知识涉及面广6.不可见性。
  由于软件的这些特点,缺乏高效的开发方法,导致开发效率低,交期延迟,质量低。这种现象被称为软件危机。
  表现为:1.软件不满足用户需求2.开发进度不能保障3.开发成本难以计算4.软件质量不能保证5.没有相关文档,维护性低。
  1.2.软件工程发展简史
  在1968年由北大西洋公约组织(NATO)正式提出软件工程这一术语。20世纪70年代形成第一代软件工程。80代形成第二代(对象工程)。90年代后期形成第三代(组件工程)。
  1.3.软件工程的定义和目标
  软件工程的定义?
  软件工程是:1.将系统化得、规范化得、可度量的方法应用于软件的开发、运行和维护工程,将工程化应用于软件开发和管理之中2.对1中所选方法的研究。
  软件工程的目标?
  1.满足用户需求2.保证软件质量3.提高软件可维护性4.提高开发效率5.降低开发费用。
  1.4.软件工程的七条基本原理
  由美国著名软件工程专家B.W.Boehm提出。
  1.用分阶段的生命周期计划严格管理2.坚持进行阶段评审3.实行严格的产品控制4采用现代程序设计技术5.结果应能清楚地审查6.开发小组的人员应该少而精7.承认不断该井软件工程实践的必要性。
  1.5软件过程模型
  什么是软件过程?
  软件过程是人们开发和维护软件及相关产品的活动、方法、实践和改进的集合。比如培养一个运动员,需要研究一系列训练方法,设计一系列训练活动....
  软件工程8大活动:问题定义、可行性分析、需求分析、总体设计、详细设计、编码、系统测试和运行维护。
  这8大活动的顺不同就会产生不同的软件生命周期模型。严格按照8大活动顺序执行,叫瀑布型。其他模型有:快速原型化模型、演化模型、螺旋模型。近几年主流的软件工程模型:敏捷软件工程(ASP)、Rational统一过程(RUP)、Microsoft解决方案框架(MSF)、个体软件过程(PSP)和小组软件过程(TSP)。

下面详细介绍几种软件过程模型
                                                                                                1.瀑布模型
  瀑布模型由W.Royce于1970年首先提出,它规定了软件生命周期的各种活动。各项活动自顶向下,相互衔接如同瀑布。
  流程:问题定义(审查)、需求分析(审查)、计划(审查)、设计(审查)、编码(审查)、集成/系统/验收(测试)、运行维护、报废。
  特点:一个活动结束,进入到入到下一个活动后,很难再回到前一个活动中去,工作不可逆转。
  特需:带反馈的瀑布模型(每个阶段可以修改前一个阶段存在的问题 )。
2.快速原型化模型
  快速原型化模型是人们经过长期的实践总结提出的。
  基本思想:在需求分析的同时,以较小的代价快速建立一个反映用户主要需求的原型系统。用户在其上进行操作,提出修改意见,分析人员根据意见完善系统,再交用户评价,如此反复,知道开发的原型系统满足用户需求为止。
  特点:开发过程是线性的,从创建系统原型到系统运行其间没有反馈环,设计的结果正确率比较高。
4.演化模型
  演化模型从一组个定的需求开始,通过构造一系列可执行的系统组件来实施开发活动,以增量方式逐步完善待开发的系统。
  流程:问题定义(审查)、需求分析(审查)、计划(审查)、设计(审查)、对每个模块进行详细设计,编码,集成,测试,交付用户(反复)、运行维护(反复回到上一过程)、报废。
  特点:各阶段并不交付完整产品,而是交付系统的一个子集,产品分解为多个组件,每个组件可以独立运行。
  特需:一旦确定系统的问题域后,就开始进行第一个组件的需求分析,完成后开始第二个,第一个组件进行设计和编码工作,不同组件并行开发。可能会导致系统开发失败。
5.螺旋模型
  螺旋模型由Boehm于1988年提出。
  基本思想:通过建立原型、划开开发阶段来降低风险。
   适用于产品研发或机构内部较大规模的复杂系统开发。
  螺旋模型被划分2-6个框架活动:
  制定计划:明确软件目标,确定实施方案,设定约束条件。
  风险分析:针对方案,评价风险,制定控制风险措施。
  实施工程:实施开发,通过构造原型来确定不确定需求。
  客户评价:评价开发工作,提出修正意见。
  特点:风险驱动,每个方案实施前都要进行风险分析。风险过大,项目停止或改变方案。
6.V模型
  V模型是瀑布模型的一个变种,更强调软件在开发过程中的质量。
  特点:在代码产生之前每个阶段都要开展对应的测试设计。
7.RUP
  RUP也叫Rational统一过程。
  RUP是一个通用的过程框架,适用于各种不同类型的软件系统、应用领域、组织和项目规模。
  特点:用例驱动的开发,以架构为中心的体系结构,迭代和增量的开发过程。
  RUP开发过程是二维的:一维从时间上,二维从工作内容上。
软件开发方法简述
  为了应对软件危机,就要不断探索新的软件开发方法。
1.结构化方法
  精髓:自顶向下、逐步求精,将功能逐步分解,直到人们可以理解和控制它为止。
  缺点:不稳定,用户功能变化将导致系统的框架结构不稳定。数据流程图到软件结构图之间有断层,设计回溯到需求有一定困难。
2.面向对象的软件开发方法
  基本做法:用对象模拟实际问题领域中的实体,以对象间的关系刻画实体间的联系。
  有点:当系统的功能结构发生变法时不会引起软件结构的整体变化,只需进行一些局部的修改。
  本质:系统中的对象以及对象之间的关系能够如实反映问题域中固有事物及其关系。
软件工程相关的技术规范、标准和最新文献的信息源
  为了提高软件的开发效率,保障软件产品的质量,软件工程领域公布了许多标准,有国家标准、行业标准、企业标准、项目规范,通常由低级到高级使用。
  1.CMM规范 2.ISO9000-3 3.ISO、IEC12207 标准 4.PSP规范 5.TSP规范 6.IEEE软件工程系列标准 7.软件配置管理系列标准


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表