单元一 初识软件工程.ppt_第1页
单元一 初识软件工程.ppt_第2页
单元一 初识软件工程.ppt_第3页
单元一 初识软件工程.ppt_第4页
单元一 初识软件工程.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程,主讲人:路 景,单元一 初识软件工程,软件,工程,教学目标,理解软件工程的发展历程、基本思想及常用方法; 掌握软件生存周期的含义及软件生存周期模型的优缺点; 能够根据软件项目的自身特点、客户要求等选择合适的生命周期模型进行项目开发;,你正确认识软件了吗? 软件发展简史,软件是什么? 不同的人对软件认识不同。 用户:软件是刻在光盘上,安装后能完成一定 功能的东西 开发商:软件就是一种产品 开发人员:软件是智慧的结晶,软件的内涵 软件是计算机系统中的程序和有关文 档的完整集合。,计算任务的处理对象和处理规则的描述;(指令序列及数据),为了便于了解程序所需的资料说明(文字资料、图形资料、使

2、用说明书、设计技术资料等),软件程序文档,千万不能没有我!,二. 软件的特征,软件是无形的,不是具体的物理实体 软件与硬件的生产方式不同 软件与硬件的维护不同 软件是复杂的 软件成本相当昂贵,三. 软件开发技术的发展,计算机发展史 软件开发技术发展史,电子管时代 (19461958),晶体管时代 (19581965),集成电路时代 (19651970),大规模集成电路时代 (1970至今),程序设计阶段(个体手工劳动) (20世纪50年代初60年代中),程序系统阶段(软件作坊) (20世纪60年代中70年代初),软件工程阶段 (20世纪70年代中至今),四、软件工程诞生的导火索 软件危机,1.

3、 软件危机的含义 软件危机是指在计算机软件开发和 维护过程中所遇到的一系列严重问题。 软件危机在20世纪60年代末全面爆 发,主要针对如何开发软件、怎样满足 对软件日益增长的需求、如何维护现有 软件三个重要问题。,危机何在(软件危机产生的原因): 软件不符合用户的实际需求 软件价格昂贵 软件开发项目超支和延期 软件质量低,可靠性差 软件缺少适当的文档资料 难于修改和维护软件,2. 如何化解危机,我们需要从管理、技术和工具三个方面入手来解决软件危机 加强软件开发过程的管理 推广使用开发软件的成功技术和方法 开发和使用好的软件工具,1968年在前联邦德国格密斯举行了 称为“软件危机”的国际学术会议

4、。,我们必须既要有技术措施,又要有管理措施!,软件工程是解决软件危机的唯一有效方法!,初识软件工程,一.软件工程的定义 软件工程是对软件开发、运行、维护的系统化的、有纪律的、可定量的方法之应用,即对软件的工程化应用。(IEEE) 软件工程是为了经济的获得可靠的并且能在实际计算机上工作的软件,所需要的健全的工程原理及方法的确立和使用。,软件工程三要素,方法:软件开发使用的专业技术指明软 件开发“如何做” 工具:软件开发、维护和分析中使用的 程序系统 过程:将方法与工具综合起来,定义方 法使用的顺序,要求交付的文 档、资料等,二. 软件工程的基本内容,软件工程研究的主要内容是软件开发技术和软件开发

5、管理两个方面。其目的是研究如何以较小的代价获得高质量的软件。,传统软件工程学的基本内容: 软件生存周期模型 软件分析 可行性分析 需求分析 软件设计 总体设计 详细设计 软件实现 软件测试 软件维护 软件管理,软件生存周期,一. 什么是软件生存周期? 一个计算机软件从功能确定、设计到开发成功投入使用,并在使用中不断修改、增补和完善,直到停止该软件使用的全过程。,你能找出上述定义中包含的软件开发整个过程需要完成的工作吗?,二. 软件生存周期的阶段,项目实施人员,改进后的系统,维护、改进、完善系统,使用和维护,软件运行维护,测试人员,测试报告,发现错误、 排除错误(质检),软件测试,程序员,系统程

6、序,编写程序,实现(单元测试),用户、 开发人员,概要设计说明书 详细设计说明书,建立软件模块结构,设计具体算法(怎么做),软件设计,软件开发,用户、 开发人员,需求规格说明书,理解、表达用户需求(“做什么”),需求分析,用户、 开发人员,可行性研究报告,确定总目标, 项目可行性研究,可行性分析与计划,软件定义,参与人员,主要成果,工作任务,阶段名称,总体设计 详细设计,集成测试 确认测试,三.软件生存周期模型,软件开发模型是从软件项目需求定义直至软件经使用后废弃为止,跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。,软件生命周期模型反映了软件生存期 各种活动应该如

7、何组织,8个阶段应该如 何衔接。 它实质上反映了软件工程三要素中的 过程,因此也被称为“软件过程模型” 或“软件生存周期模型”。,1.瀑布模型(最早的软件开发模型),基本思想 各项活动自上而下,相互衔接,以固定次序进行,如同瀑布流水,逐级下落。 每一阶段开发活动应按如下步骤进行: 从上一项活动接收本项活动的工作对象 利用这一输入完成本项工作 对本项活动实施的工作进行评审 将本项活动工作成果,作为输出传给下面,优点和缺点 优点: 能够保证产品有较高质量,保证缺陷能尽早发现。 缺点: 在软件开发初期指明软件系统的全部需求较困难; 易导致项目人力资源过多的闲置; 用户要等相当长时间才能得到最初版本;

8、 上流的错误会在下流进行传播,逆转会延误工期,增加成本。,适用场合 当有一个明确的、相对稳定的需求分析和很容易被理解的技术解决方案时,可以采用瀑布模型。 需要对一个已有系统进行明确定义的适应性调整或增强的时候,可以采用瀑布模型。,2.原型模型,基本思想 (1)开发人员根据用户需求快速开发一个原型 (2)征求用户对原型的评价意见,进一步使需求精确化 (3)根据精确后的需求改进、完善原型,直到满足用户需求为止,原型开发途径 (1)仅模拟软件系统的人机界面和人机交互方式 (2)开发一个工作模型,实现软件系统中重要的或容易产生误解的功能 (3)利用一个或几个类似的正在运行的软件向用户展示软件需求中的部

9、分或全部功能,优点和缺点 优点: 原型模型能够从实践中了解用户的需求,对 改善沟通和用户参与有较好的效果,是一种良好 的启发式方法。 缺点: 搭建原型时,经常没有考虑整体质量和今后的可维护性问题 可能采用不适当的程序设计语言或算法 用户不能正确理解原型的意义,适用场合 需求不明确或需求经常随时间变化的系统。,3.增量模型(渐增模型),基本思想 (1)首先建立一个统一的体系结构分析设计 (2)在增量模型的每一个阶段,都要编码产生一个新的构件(中间版本) (3)将新构件集成到先前已经构成的产品中并作为一个整体进行测试,直到满足用户需求为止 一般首先开发产品的核心部分,然后再逐步开发产品的附加部分,

10、开发流程,一个典型的产品通常由1050个构件组成。,优点和缺点 优点: 增量模型的每个阶段都交付一个可操作的 产品,从第一个构件交付开始,客户就能做有用 的工作 缺点: 后开发的构件必须能够集成到先前已开 发的产品中而不毁坏已开发的功能。,要求体系结构设计必须是开放的,否则有难度,适用场合 当没有足够的人员在规定的期限内开发完整的产品 由于不可克服的客观原因而把交付期限规定的太短,原型模型是一种迭代的开发形式,想想原型模型与渐增模型有什么不同之处?,4.演化模型,基本思想 第一次迭代(需求-设计-实现-测试-集成)-反馈- 第二次迭代(需求-设计-实现-测试-集成)-反馈- 采用演化模型的开发

11、过程,实际上就是从初始的原型逐步演化成最终软件产品的过程。,缺点 如果所有的产品需求在一开始并不完全弄清楚的话,会给总体设计带来困难及削弱产品设计的完整性,影响产品性能的优化及产品的可维护性。 如果缺乏严格的过程管理的话,这个生命周期模型很可能退化为一种原始的无计划的“试错改”模式。 心理上,可能产生一种影响尽最大努力的想法,认为虽然不能完成全部功能,但还是造出了一个有部分功能的产品。 如果不加控制地让用户接触开发中尚未测试稳定的功能,可能对开发人员及用户都产生负面的影响。,适用场合 演化模型特别适用于对软件需求缺乏准确认识的情况。,想想演化模型与增量模型有什么不同之处?,5.螺旋模型,基本思

12、想 (1)将瀑布模型与原型模型结合起来 (2)增加了风险分析 (3)将瀑布模型的多个阶段转化到多个迭代过程中,开发过程 螺旋模型主要由4个部分组成:需求定义、风险分析、实施开发和计划评审。 每一次迭代均包含六个步骤: 决定目标和解决方案 识别和解决项目的风险 评估解决方案 开发本次迭代的交付物,验证交付物的正确性 计划下依次迭代 提交下一次迭代的步骤和方案,优点和缺点 优点: 实现了随着项目成本投入不断增加,风险 逐渐减小 缺点: 需要具有相当丰富的风险评估经验和专 门知识,而且费用昂贵,适用场合 一般适用于大型软件项目的开发,微软的软件产品周期,计划,设计,执行,稳定,发布,规划阶段和设计阶

13、段,产品规划(Planning) 市场机会 客户需求 功能和技术 愿景(Vision) 制定计划和过程 产品设计(Design) 细化需求 功能和架构设计 界面设计 开发计划,实施阶段和定型阶段,实施阶段(Implement) 编写代码 构建产品 产品定型(Stabilize) 验证和改进 测试和调试,44,发布阶段,产品发布阶段(Release) 交付生产 在线内容的发布和维护 进入产品更新阶段,45,微软里程碑模型,由微软软件工程团队在实际中逐步创立 集合了各种软件开发模型的优点 微软软件工程实践的真实写照,什么是里程碑?,项目的检查点(Checkpoint) 包含产品生命周期中的一个或多

14、个阶段 基于 Exit Criteria 一系列”是/否”问题 所有问题的回答都是”是”时,可以进入下一阶段 由M0, M1, M2, M3 RC0, RC1等一系列阶段组成 M: Milestone RC: Release Candidate,微软里程碑模型,微软里程碑模型,49,里程碑(Milestones) M0: 规划和设计(plan and design) Mn: 实施(coding as speced) 定型/稳定(Stabilization: test, verify and stabilize) 交付生产(RTM/W: release to manufacture/web),里程碑模型术语,8.生命周期模型的选择原则,在前期需求明确的情况下尽量采用瀑布模型 在用户无信息系统使用经验,需求分析人员技能不足情况下要借助原型模型 在不确定因素很多,很多东西前面无法计划情况下,尽量采用增量、迭代和螺旋模型 在需求不稳定情况下尽量采用增量、演化模型 在资金和成本无法一次到位情况下可采用增量模型 模型可以综合使用,思考题:假设你被任命为一家软件公司的项目负责人,你的工作是管理该公司已被广泛应用的字处理软件的新版本开发。由于市场竞争激烈,公司规定了严格的完成期限并且已对外公

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论