《软件工程与项目管理ppt课件》由会员分享,可在线阅读,更多相关《软件工程与项目管理ppt课件(75页珍藏版)》请在金锄头文库上搜索。
1、华中科技大学机械学院CAD中心软件工程与面向对象华中科技大学 机械学院 CAD中心刘清华、王彦伟 软件工程学的范畴传统软件工程的内容第一章 绪论第五章 软件设计概述第四章 软件需求分析第三章 软件项目计划第二章 软件开发模型第九章 软件测试第八章 编码和语言的选择第十一章 统一建模语言第七章 面向对象设计方法第六章 传统设计方法第十章 软件维护软件工程的内容o 软件工程的基本概念o 软件过程o 软件开发各阶段的任务、技术、方法o 传统方法、面向对象方法o 软件项目管理o 软件质量保证软件危机与软件工程o 软件与软件危机o 软件工程硬件/软件成本变化趋势软件技术进步落后于需求增长华中科技大学机械
2、学院CAD中心o 软件危机:20世纪60年代,软硬件的不平衡发展 导致的软件危机是软件企业面临的第一个难题。o 针对当年的软件危机,学者们提出了用工程化的思 想来开发软件,即软件工程来应对。o 软件产业中的管理问题可以采用工程项目的管理思 想,这就是软件项目管理学科的主要研究内容。o 软件项目管理是软件工程与项目管理的交叉学科, 是项目管理原理与方法在软件工程领域的应用。软件o 程序、软件与软件产品的对比 简单程序 较复杂程序 软件| | | 独唱 小合唱 万人大合唱o 软件包括n程序:按事先设计的功能和性能需求执行的指令序列n数据:是程序能正常操纵信息的数据结构n文档:与程序开发、维护和使用
3、有关的图文材料 软件开发的发展过程计算机应用发展软件数量多 规模大软件成本高 质量低个体化软件开发方法软件维护困难软件危机软件工程软件危机o 定义 计算机软件开发和维护过程所遇到的一系列严重问题 o 表现 n 对软件开发成本和进度的估算很不准确 n 用户很不满意 n 质量很不可靠,错误百出 n 没有适当的文档 n 软件开发成本剧增 n 生产率低下:软件开发生产率跟不上计算机应用 迅速深入的趋势 软件危机o 原因n 客观:软件本身特点o 逻辑部件o 规模庞大n 主观:不正确的开发方法o 忽视需求分析o 简单地将软件开发等同于程序编写o 轻视软件维护软件危机o 解决途径n 组织管理o 借鉴工程项目
4、管理方法n 技术措施o 软件开发技术与方法o 软件工具软件开发方法学为软件提供了“如何做”的技术。 A. 早期的程序设计基本上属于个人活动性质, 程序员各行其是,并无统一的方法可循。B. 20世纪60年代后期兴起结构化程序设计,不 仅可以改善程序的清晰度,而且也能提高软件 的可靠性与生产率。C. 20世纪80年代出现了smalltalk,C+等语言 ,只有在软件开发早期乃至全过程都采用面向 对象技术,才能更好的发挥该技术的固有优势 。软件开发工具为软件工程方法提供了自动的或半自动的软 件支撑环境。“工欲善其事,必先利其器”软件工程环境方法与工具相结合,再加上配套的软,硬 件支持就形成环境。软件
5、工程管理目的:为了按照进度及预算完成软件开发 计划,实现预期的经济和社会效益。软件工程的定义软件工程是即采用工程的概念,原理,技术 和方法来开发和维护软件,将工程管理技术成功 的经验和思想与具体软件的开发过程,研究技术 相结合,形成一整套适合于计算机软件开发的方 法,规范和技术。软件工程o 定义n 指导计算机软件开发和维护的工程学科 n 工程方法 + 管理技术 + 技术方法软件工程工程观点管理观点技 术 观 点工程的观点:包括:软件项目的招标、投标 、合同、实施、监督、验收、 推广等方面来研究,以经济管 理科学的理论为依据,研究软 件工程的规划策略和经济收益 等工程问题。 管理的观点:包括:软
6、件项目开发的人员组织 、过程控制、进度风险分析和质 量保证体系等方面,以科学性、 合理性、高效可行、及可测量性 为目标,来研究工程项目管理。 技术的观点:包括:软件项目的分析、设计、编 码、测试、维护等技术方法。依据 软件技术理论,以高效、健壮、可 复用、可维护的软件为目标。研究 软件体系结构、组成成分,以及构 造方式等。软件工程的多视角理解软件工程学的目的以较低的成本研制具有较高质量的软件软件工程课程教学与实践的目标:转变对软件的认识:程序系统转变思维方式: 程序员系统工程师软件工程技术的两个明显特点: 强调规范化 强调文档化软件工程项目的基本目标n 付出较低的开发成本n 达到要求的软件功能
7、n 确保按时交付使用n 具有较好的软件性能n 开发的软件易于移植n 需要较低的维护费用基本目标之间的关系两类软件工程方法o 传统软件工程n 软件分析 总体设计 详细设计 面向 过程的编码 测试 o 面向对象软件工程n 软件分析与对象抽取 对象详细设计 面 向对象的编码 测试 华中科技大学机械学院CAD中心软件工程框架华中科技大学机械学院CAD中心软件工程框架o软件工程目标 n正确性:软件产品达到预期功能的程度 n可用性:软件基本结构、实现和文档为用户接受的程度 n经济型:软件开发、运行和维护满足经济目标的程度 o软件工程活动 n问题定义 明确要解决的问题,通过对用户的访问调查提出关于问题性质、
8、工程 目标和规模的书面报告 n可行性分析 问题定义阶段的问题是否有可行解。为此系统分析员要进行一次大大 压缩和简化了的系统分析和设计过程。可行性研究阶段应导出系 统的高层逻辑模型,更准确具体地分析工程的规模和目标,对建 议的系统进行仔细的成本和效益分析。它是决定工程继续与否的 重要依据华中科技大学机械学院CAD中心软件工程框架o软件工程活动(续一) n需求分析 确定解决问题的目标系统应该具备哪些功能,需求分析的成果是系统 逻辑模型。用于描述系统逻辑模型的方法有数据流图、数据字典 和简要的算法 n设计,包括总体设计和详细设计 o总体设计:从概况的层面讨论如何解决问题,给出若干种解决方 案和推荐方
9、案 o详细设计:把解决方案具体化,不是编写程序,而是设计出程序 的详细规格说明 n 实现 实现阶段的关键任务是写出正确的、容易理解和维护的程序, 实现过程中往往伴随单元测试华中科技大学机械学院CAD中心软件工程框架o软件工程活动(续二) n确认 确认活动是综合测试的过程,其关键任务是通过各种联系的测试使软件达 到预订的要求,最基本的测试是集成测试和验收测试。 o 集成测试:组织通过单元测试的模块,并在组装过程中进行 必要的测试 o 验收测试:按需求规格说明书有用户或在用户积极参与下对 目标系统进行验收 o支持 指对软件的维护以使系统能持续地满足用户的需要。四类维护活动: o 改正性维护:修改软
10、件错误 o 适应性维护:修改软件以适应使用环境的变化 o 完善性维护:根据用户的要求改进或扩充软件功能 o 预防性维护:修改软件为将来的维护活动预先做准备华中科技大学机械学院CAD中心软件工程框架o软件工程原则n 选取合适的开发模型n 采用合适的设计方法n 提供高质量的工程支持n 重视开发过程管理华中科技大学机械学院CAD中心软件工程模型软件的生命周期软件过程模型o 瀑布模型(waterfall model)o 快速原型模型(rapid prototype model)o 螺旋模型(spiral model)o 构件集成模型(component integration model ) o Ra
11、tional统一过程(Rational Unified Process)华中科技大学机械学院CAD中心线性模型(瀑布模型)瀑布模型o 特点n阶段的顺序性和依赖性n简单,容易理解n推迟实现的观点o 存在问题n假设项目只经历一次,体系结构出色并易于使用,设计合理可 靠,错误只发生在编码实现阶段n假设一次性地构建整个系统,所有设计、大部分编码和部分单 元测试完成后才集成各部分并开始后续的工作n不适合需求模糊的系统快速原型模型需求分析原型开发最终系统设计原型评价最终系统实现用户 反馈快速原型模型o 特点n 快速开发工具n 循环n 低成本o 种类n 渐进型n 抛弃型华中科技大学机械学院CAD中心螺旋模型
12、螺旋模型螺旋模型o 特点n 瀑布模型+快速原型+风险分析n 迭代过程 o 一个螺旋式周期 n 确定目标,选择方案,选定完成目标的策略 n 风险角度分析该策略 n 启动一个开发阶段 n 评价前一步的结果,计划下一轮的工作 华中科技大学机械学院CAD中心渐增式模型o在线性模型基础上发展起来的,是分段的线性模型o特点:增量开发整个系统,在每一个阶段都有可运行的系统o很早就可以开始用户测试构件集成模型构件集成模型o 特点n 面向对象n 基于构件库n 融合螺旋模型特征n 支持软件开发的迭代方法 n 软件重用华中科技大学机械学院CAD中心软件开发方法o结构化方法也称面向功能的软件开发方法,或面向数据流的
13、软件开发方法。SASDSP,结构化分析、设计与编程o面向数据结构的软件开发方法:三种基本数据结构形式:顺 序、选择和循环。o面向问题的分析法:考虑到输入、输出数据结构,指导系统 分解,在系统分析指导下逐步综合o原型化方法:确定用户需求开发原始模型征求改进意见 修改原型o面向对象的软件开发方法OOA OOD OOPo模型驱动的软件开发方法MDA项目管理简介Introduction to Project Management什么是项目?华中科技大学机械学院CAD中心项目的定义o 一定约束条件下具有特定目标的一项一次性任 务 o 项目的属性 n 特定目标 n 临时性/一次性 n 需要资源 n 有主要
14、利益相关者 n 有不确定性华中科技大学机械学院CAD中心IT项目的实例o 航空票务系统o 教学管理系统o XXX客户关系管理系统的开发o XXX产品数据管理系统的实施o 华中科技大学机械学院CAD中心项目的三维约束o 项目的约束n 范围: 试图完成什么?n 时间: 需要多少时间?n 成本: 费用多少?o 项目负责人的职责就是在这三者间进行 平衡。华中科技大学机械学院CAD中心应用规范项目管理的优点o 较好地控制进度、质量和人力资源等o 有利于维护较好的客户关系o 缩短项目开发时间o 降低项目开发费用o 高质量和高可靠性o 团队内部沟通好,士气高什么是项目管理?华中科技大学机械学院CAD中心项目
15、管理的定义 应用与项目活动相关的知识、技能和工 具等,来满足项目出资人的需求或期望 的过程。*The Project Management Institute (PMI) is an international *The Project Management Institute (PMI) is an international professional society. Their web site is www.pmi.org.professional society. Their web site is www.pmi.org. 华中科技大学机械学院CAD中心操作 vs. 项目管理o 项
16、目管理n 一次性执行n 目标驱动n 团队工作n 变更管理n操作n已有系统的重复n效率和有效性n线性管理n保持一致性华中科技大学机械学院CAD中心项目“利益相关者”o 项目活动涉及或影响的“人”,包括:n 项目团队n 后勤保障团队n 出资人/所有者n 客户(使用者)n 供应商、承包商n 项目反对者华中科技大学机械学院CAD中心项目管理框架华中科技大学机械学院CAD中心项目管理的知识领域o 项目管理的知识领域包括:n n 四个核心知识领域:四个核心知识领域:通向特定项目目标,包括 范围、时间、费用和质量。n n 四个推进知识领域:四个推进知识领域: 人力资源、沟通、风险 和采购管理。n n 一集成知识领域:一集成知识领域:与其它知识领域相互影响。华中科技大学机械学院CAD中心项目管理的知识体系两大项目管理研究体系:欧洲国际项目管理协会IP