《软件工程与项目管理课程》由会员分享,可在线阅读,更多相关《软件工程与项目管理课程(76页珍藏版)》请在金锄头文库上搜索。
1、软件工程与面向对象软件工程与面向对象华中科技大学华中科技大学机械学院机械学院 CAD中心中心刘清华、丁建完刘清华、丁建完华中科技大学机械学院华中科技大学机械学院CADCAD中心中心软件工程学的范畴 传统软件工程的内容第一章第一章 绪论绪论第五章第五章 软件设计概述软件设计概述第四章第四章 软件需求分析软件需求分析第三章第三章 软件项目计划软件项目计划第二章第二章 软件开发模型软件开发模型第九章第九章 软件测试软件测试第八章第八章 编码和语言的选择编码和语言的选择第第十一十一章章 统一建模语言统一建模语言第七章第七章 面向对象设计方法面向对象设计方法第六章第六章 传统设计方法传统设计方法第十章第
2、十章 软件维护软件维护软件工程的内容o软件工程的基本概念o软件过程o软件开发各阶段的任务、技术、方法o传统方法、面向对象方法o软件项目管理o软件质量保证软件危机与软件工程o软件与软件危机o软件工程硬件/软件成本变化趋势软件技术进步落后于需求增长o软件危机:20世纪60年代,软硬件的不平衡发展导致的软件危机是软件企业面临的第一个难题。o针对当年的软件危机,学者们提出了用工程化的思想来开发软件,即软件工程来应对。o软件产业中的管理问题可以采用工程项目的管理思软件产业中的管理问题可以采用工程项目的管理思想想,这就是软件项目管理学科的主要研究内容。o软件项目管理是软件工程与项目管理的交叉学科,软件项目
3、管理是软件工程与项目管理的交叉学科,是项目管理原理与方法在软件工程领域的应用。是项目管理原理与方法在软件工程领域的应用。华中科技大学机械学院华中科技大学机械学院CADCAD中心中心软件o程序、软件与软件产品的对比简单程序 较复杂程序 软件产品 | | |独唱 小合唱 万人大合唱o软件产品包括n程序:按事先设计的功能和性能需求执行的指令序列n数据:是程序能正常操纵信息的数据结构n文档:与程序开发、维护和使用有关的图文材料 软件开发的发展过程计算机应用发展软件数量多规模大软件成本高质量低个体化软件开发方法软件维护困难软件危机软件工程软件危机o定义计算机软件开发和维护过程所遇到的一系列严重问题 o表
4、现n对软件开发成本和进度的估算很不准确n用户很不满意n质量很不可靠,错误百出n没有适当的文档n软件开发成本剧增n生产率低下:软件开发生产率跟不上计算机应用迅速深入的趋势 软件危机o原因n客观:软件本身特点o逻辑部件o规模庞大n主观:不正确的开发方法o忽视需求分析o简单地将软件开发等同于程序编写o轻视软件维护软件危机o解决途径n组织管理o借鉴工程项目管理方法n技术措施o软件开发技术与方法o软件工具软件开发方法学为软件提供了“如何做”的技术。A.早期的程序设计基本上属于个人活动性质,程序员各行其是,并无统一的方法可循。B.20世纪60年代后期兴起结构化程序设计,不仅可以改善程序的清晰度,而且也能提
5、高软件的可靠性与生产率。C.20世纪80年代出现了smalltalk,C+等语言,只有在软件开发早期乃至全过程都采用面向对象技术,才能更好的发挥该技术的固有优势。软件开发工具软件开发工具为软件工程方法提供了自动的或半自动的软件支撑环境。“工欲善其事,必先利其器工欲善其事,必先利其器”软件工程环境软件工程环境 方法与工具相结合,再加上配套的软,硬件支持就形成环境。软件工程管理软件工程管理 目的:为了按照进度及预算完成软件开发计划,实现预期的经济和社会效益。软件工程的定义软件工程的定义 软件工程是即采用工程的概念,原理,技术和方法来开发和维护软件,将工程管理技术成功的经验和思想与具体软件的开发过程
6、,研究技术相结合,形成一整套适合于计算机软件开发的方方法法,规范规范和技术技术。软件工程软件工程o定义n指导计算机软件开发和维护的工程学科 n工程方法 + 管理技术 + 技术方法工程观点管理观点技术观点工程的观点:包括:软件项目的招标、投标、合同、实施、监督、验收、推广等方面来研究,以经济管理科学的理论为依据,研究软件工程的规划策略和经济收益等工程问题。 管理的观点:包括:软件项目开发的人员组织、过程控制、进度风险分析和质量保证体系等方面,以科学性、合理性、高效可行、及可测量性为目标,来研究工程项目管理。 技术的观点:包括:软件项目的分析、设计、编码、测试、维护等技术方法。依据软件技术理论,以
7、高效、健壮、可复用、可维护的软件为目标。研究软件体系结构、组成成分,以及构造方式等。软件工程的多视角理解软件工程的多视角理解软件工程学的目的软件工程学的目的以较低的成本研制具有较高质量的软件软件工程课程教学与实践的目标:转变对软件的认识:程序系统转变思维方式: 程序员系统工程师软件工程技术的两个明显特点:强调规范化强调文档化软件工程项目的基本目标软件工程项目的基本目标n付出较低的开发成本n达到要求的软件功能n确保按时交付使用n具有较好的软件性能n开发的软件易于移植n需要较低的维护费用基本目标之间的关系基本目标之间的关系两类软件工程方法两类软件工程方法o传统软件工程n软件分析 总体设计 详细设计
8、 面向过程的编码 测试 o面向对象软件工程n软件分析与对象抽取 对象详细设计 面向对象的编码 测试 软件工程框架软件工程框架华中科技大学机械学院华中科技大学机械学院CADCAD中心中心软件工程框架软件工程框架o软件工程目标n正确性:软件产品达到预期功能的程度n可用性:软件基本结构、实现和文档为用户接受的程度n经济型:软件开发、运行和维护满足经济目标的程度o软件工程活动n问题定义明确要解决的问题明确要解决的问题,通过对用户的访问调查提出关于问题性质、工程目标和规模的书面报告n可行性分析问题定义阶段的问题是否有可行解问题定义阶段的问题是否有可行解。为此系统分析员要进行一次大大压缩和简化了的系统分析
9、和设计过程。可行性研究阶段应导出系统的高层逻辑模型高层逻辑模型,更准确具体地分析工程的规模和目标分析工程的规模和目标,对建议的系统进行仔细的成本和效益分析。成本和效益分析。它是决定工程继续与否的决定工程继续与否的重要依据重要依据华中科技大学机械学院华中科技大学机械学院CADCAD中心中心软件工程框架软件工程框架o软件工程活动(续一)n需求分析确定解决问题的目标系统应该具备哪些功能,需求分析的成果是系统需求分析的成果是系统逻辑模型逻辑模型。用于描述系统逻辑模型的方法有数据流图、数据字典和简要的算法n设计,包括总体设计和详细设计o总体设计:从概况的层面讨论如何解决问题,给出若干种解决方案和推荐方案
10、o详细设计:把解决方案具体化,不是编写程序,而是设计出程序的详细规格说明n实现实现阶段的关键任务是写出正确的、容易理解和维护的程序,实现过程中往往伴随单元测试华中科技大学机械学院华中科技大学机械学院CADCAD中心中心软件工程框架软件工程框架o软件工程活动(续二)n确认确认活动是综合测试的过程,其关键任务是通过各种联系的测试使软件达到预订的要求,最基本的测试是集成测试和验收测试。o集成测试:组织通过单元测试的模块,并在组装过程中进行必要的测试o验收测试:按需求规格说明书有用户或在用户积极参与下对目标系统进行验收o支持指对软件的维护以使系统能持续地满足用户的需要。四类维护活动:o改正性维护:修改
11、软件错误o适应性维护:修改软件以适应使用环境的变化o完善性维护:根据用户的要求改进或扩充软件功能o预防性维护:修改软件为将来的维护活动预先做准备华中科技大学机械学院华中科技大学机械学院CADCAD中心中心软件工程框架软件工程框架o软件工程原则n选取合适的开发模型n采用合适的设计方法n提供高质量的工程支持n重视开发过程管理华中科技大学机械学院华中科技大学机械学院CADCAD中心中心软件工程模型软件工程模型软件的生命周期软件的生命周期华中科技大学机械学院华中科技大学机械学院CADCAD中心中心软件过程模型软件过程模型o瀑布模型(waterfall model)o快速原型模型(rapid proto
12、type model)o螺旋模型(spiral model)o构件集成模型(component integration model) oRational统一过程(Rational Unified Process)线性模型(瀑布模型)线性模型(瀑布模型)华中科技大学机械学院华中科技大学机械学院CADCAD中心中心瀑布模型瀑布模型o特点n阶段的顺序性和依赖性n简单,容易理解n推迟实现的观点o存在问题n假设项目只经历一次,体系结构出色并易于使用,设计合理可靠,错误只发生在编码实现阶段n假设一次性地构建整个系统,所有设计、大部分编码和部分单元测试完成后才集成各部分并开始后续的工作n不适合需求模糊的系统
13、快速原型模型快速原型模型需求分析原型开发最终系统设计原型评价最终系统实现用户反馈快速原型模型快速原型模型o特点n快速开发工具n循环n低成本o种类n渐进型n抛弃型螺旋模型螺旋模型华中科技大学机械学院华中科技大学机械学院CADCAD中心中心螺旋模型螺旋模型螺旋模型螺旋模型o特点n瀑布模型+快速原型+风险分析n迭代过程o一个螺旋式周期 n确定目标,选择方案,选定完成目标的策略 n风险角度分析该策略 n启动一个开发阶段 n评价前一步的结果,计划下一轮的工作 渐增式模型渐增式模型o在线性模型基础上发展起来的,是分段的线性模型o特点:增量开发整个系统,在每一个阶段都有可运行的系统o很早就可以开始用户测试华
14、中科技大学机械学院华中科技大学机械学院CADCAD中心中心构件集成模型构件集成模型构件集成模型构件集成模型o特点n面向对象n基于构件库n融合螺旋模型特征n支持软件开发的迭代方法 n软件重用软件开发方法软件开发方法o结构化方法也称面向功能的软件开发方法,或面向数据流的软件开发方法。SASDSP,结构化分析、设计与编程o面向数据结构的软件开发方法:三种基本数据结构形式:顺序、选择和循环。o面向问题的分析法:考虑到输入、输出数据结构,指导系统分解,在系统分析指导下逐步综合o原型化方法:确定用户需求开发原始模型征求改进意见修改原型o面向对象的软件开发方法OOA OOD OOPo模型驱动的软件开发方法M
15、DA华中科技大学机械学院华中科技大学机械学院CADCAD中心中心项目管理简介项目管理简介Introduction to Project Management什么是项目什么是项目?项目的定义项目的定义o一定约束条件下具有特定目标的一项一次性任务o项目的属性n特定目标n临时性/一次性n需要资源n有主要利益相关者n有不确定性华中科技大学机械学院华中科技大学机械学院CADCAD中心中心IT项目的实例项目的实例o航空票务系统o教学管理系统oXXX客户关系管理系统的开发oXXX产品数据管理系统的实施o华中科技大学机械学院华中科技大学机械学院CADCAD中心中心项目的三维约束项目的三维约束o项目的约束n范围
16、: 试图完成什么?n时间: 需要多少时间?n成本: 费用多少?o项目负责人的职责就是在这三者间进行平衡。华中科技大学机械学院华中科技大学机械学院CADCAD中心中心应用规范项目管理的优点应用规范项目管理的优点o较好地控制进度、质量和人力资源等o有利于维护较好的客户关系o缩短项目开发时间o降低项目开发费用o高质量和高可靠性o团队内部沟通好,士气高华中科技大学机械学院华中科技大学机械学院CADCAD中心中心什么是项目管理什么是项目管理?项目管理的定义项目管理的定义 应用与项目活动相关的知识、技能和工具等,来满足项目出资人的需求或期望的过程。华中科技大学机械学院华中科技大学机械学院CADCAD中心中
17、心操作操作 vs. 项目管理项目管理o项目管理n一次性执行n目标驱动n团队工作n变更管理n操作n已有系统的重复n效率和有效性n线性管理n保持一致性华中科技大学机械学院华中科技大学机械学院CADCAD中心中心项目项目“利益相关者利益相关者”o项目活动涉及或影响的“人”,包括:n项目团队n后勤保障团队n出资人/所有者n客户(使用者)n供应商、承包商n项目反对者华中科技大学机械学院华中科技大学机械学院CADCAD中心中心项目管理框架项目管理框架华中科技大学机械学院华中科技大学机械学院CADCAD中心中心项目管理的知识领域项目管理的知识领域o项目管理的知识领域包括:n n四个核心知识领域:四个核心知识
18、领域:通向特定项目目标,包括范围、时间、费用和质量。n n四个推进知识领域:四个推进知识领域: 人力资源、沟通、风险和采购管理。n n一集成知识领域:一集成知识领域:与其它知识领域相互影响。华中科技大学机械学院华中科技大学机械学院CADCAD中心中心项目管理的知识体系项目管理的知识体系两大项目管理研究体系:欧洲国际项目管理协会IPMA,美国美国项目管理学会PMIo集成管理集成管理:确保项目各部分有机地整合在一起,协调并权衡各个相互冲突的目标和解决方案,包括:n项目计划的制定:n项目计划的执行n集成变更控制o范围管理范围管理:界定项目的范围,包括范围计划编制、范围定义、范围核实和范围变更控制o时
19、间管理时间管理:描述用以保证按时完成项目的各过程,包括活动定义、活动安排、活动历时估算、进度计划编制和进度计划控制等华中科技大学机械学院华中科技大学机械学院CADCAD中心中心项目管理的知识体系(续项目管理的知识体系(续1)o成本管理成本管理:描述用以保证在预算内完成项目的各过程,包括资源计划、成本估算和成本控制等o质量管理质量管理:为确保项目结果满足用户需求的一系列过程,包括质量计划编制、质量保证和质量控制o人力资源管理人力资源管理:为确保项目成员发挥其最佳效能的管理过程,包括计划编制、人员获取和团队组建o沟通管理沟通管理:项目执行过程中信息的收集、存储、发布和最终处理o采购管理采购管理:确
20、保项目进行过程中所需原材料、资源和服务的满足o风险管理风险管理:对项目可能遇到的分析进行识别、分析和应对的过程华中科技大学机械学院华中科技大学机械学院CADCAD中心中心项目管理工具与技术项目管理工具与技术o项目管理工具与技术在多方面有助于项目管理者及其团队,包括:n n项目信息和工作分解结构(项目信息和工作分解结构(WBSWBS)n n甘特图、网络图、关键路径分析甘特图、网络图、关键路径分析n n费用估算及收益管理费用估算及收益管理华中科技大学机械学院华中科技大学机械学院CADCAD中心中心项目信息示例项目信息示例华中科技大学机械学院华中科技大学机械学院CADCAD中心中心项目信息项目信息
21、(续续) 角色与职责角色与职责华中科技大学机械学院华中科技大学机械学院CADCAD中心中心图表方式的项目工作分解结构图表方式的项目工作分解结构华中科技大学机械学院华中科技大学机械学院CADCAD中心中心甘特图甘特图The WBS is on the left, and each tasks start and finish dateare shown on the right using a calendar timescale.华中科技大学机械学院华中科技大学机械学院CADCAD中心中心网络图网络图 Each box is a project task from the WBS. Arrow
22、s show dependenciesbetween tasks. The bolded tasks are on the critical path. If any tasks on thecritical path take longer than planned, the whole project will slip unless something is done.华中科技大学机械学院华中科技大学机械学院CADCAD中心中心1.4 项目管理与其它学科的关系项目管理与其它学科的关系与其它学科的关系与其它学科的关系o管理项目所需很多知识是项目管理所独有的o然而,项目管理者必须具备如下素质
23、:n常规管理能力n项目领域知识o项目管理者必须聚焦到特定的项目目标华中科技大学机械学院华中科技大学机械学院CADCAD中心中心项目管理与其它学科项目管理与其它学科华中科技大学机械学院华中科技大学机械学院CADCAD中心中心项目管理软件项目管理软件o上百种o主要有三大类:n低端产品:管理单个小项目,售价低于200$n中档产品:管理多个项目和用户,售价200500$,Microsoft Project最流行。n高端产品:也称企业级的项目管理软件,通常按节点收费。华中科技大学机械学院华中科技大学机械学院CADCAD中心中心不要迷信项目管理软件不要迷信项目管理软件o没有项目管理概念,不可能用好项目管理
24、软件。o“A fool with a tool is still just a fool.”华中科技大学机械学院华中科技大学机械学院CADCAD中心中心项目管理的应用领域项目管理的应用领域o适用于工作,也适用于个人项目o适用于不同学科领域,包括IT,工程,建筑,金融,运动会等等。o项目管理技能对日常生活也有帮助,特别是界定项目范围的能力和与各色人等打交道的能力。华中科技大学机械学院华中科技大学机械学院CADCAD中心中心项目的生命周期项目的生命周期o项目的启动:可行性分析、需求确认和立项o项目的计划:建立解决需求或问题的方案,提交各种计划书,如背景描述、目标确定、范围定义、进度安排、资源计划、
25、成本估计、工作分解结构、项目详细计划等o项目的实施:执行项目计划阶段提出的解决方案,主要活动有实施计划、进度控制、费用控制、质量控制、变更控制、合同管理和现场管理等o项目的结束:正式验收项目,主要活动有:范围确认、质量验收、费用结算与审计、项目资料验收项目交接与清算、项目审计、项目评估华中科技大学机械学院华中科技大学机械学院CADCAD中心中心项目管理学科的发展项目管理学科的发展项目管理学科发展的特点:o全球化全球化:国际间的项目合作越来越多、国际化的专业活动越来越频繁、项目管理专业信息的国际共享o多元化多元化:行业领域及项目类型的多样性导致了项目管理理论和方法的多元化o专业化专业化:项目管理
26、的广泛应用促进了其向专业化分析发展、学历教育与非学历教育、项目管理软件、研究咨询机构华中科技大学机械学院华中科技大学机械学院CADCAD中心中心软件项目管理软件项目管理软件项目管理的特点:o抽象性:是脑力劳动的结果,具有抽象性,可以大量复制,需要知识产权保护o缺陷检测的困难性:需要一系列测试活动以降低软件的错误率o高度复杂性:包括实际问题的复杂性和软件自身逻辑的复杂性o缺乏统一规则:软件开发还没有完全摆脱手工工艺的方式,软件复用、软件自动生成等在软件项目中采用率不高华中科技大学机械学院华中科技大学机械学院CADCAD中心中心软件项目失控软件项目失控失控:项目进行的困难远超过可控制范围。原因:o
27、需求不明确:软件项目失控的主要原因,包括需求过多、不稳定、模棱两可和不完整o不充分的计划n工作责任范围不明确,工作分解结构与项目组织结构不明确或不对应,项目成员的接口不明确n各开发阶段应提交的结果不明确n开发计划没有指定里程碑或检查点,也没有规定设计评审期n开发计划没有规定进度管理方法和职责o过于乐观的评估:n因客户或公司上层的压力在工作量估算上妥协n设计者过于自信,对一些技术问题不够重视n过份相信经验华中科技大学机械学院华中科技大学机械学院CADCAD中心中心软件项目失控(续软件项目失控(续1)o盲目采用新技术n不了解新技术的限制,技术无法扩展n新技术是错误的解决方案n新技术不具有要求的功能
28、o缺乏管理方法或不恰当o性能问题:如软件运行速度达不到用户要求o人的因素:n技术人员水平达不到特定项目要求,或缺乏资深人员而设计能力不足n开发商与客户、销售人员与技术人员、项目管理者与开发人员华中科技大学机械学院华中科技大学机械学院CADCAD中心中心软件项目管理的定义与过程软件项目管理的定义与过程o定义:在软件项目活动中运用一系列知识、技能、工具和技术来满足软件需求方整体需求的过程o软件项目管理的过程:1.启动软件项目2.制定项目计划3.跟踪及控制项目计划4.评审项目计划5.编写管理文档华中科技大学机械学院华中科技大学机械学院CADCAD中心中心软件项目管理的内容软件项目管理的内容o软件项目
29、需求管理o软件项目估算与进度控制o软件项目配置管理o软件项目风险管理o软件项目质量管理o软件项目资源管理华中科技大学机械学院华中科技大学机械学院CADCAD中心中心9、静夜四无邻,荒居旧业贫。2024/7/212024/7/21Sunday, July 21, 202410、雨中黄叶树,灯下白头人。2024/7/212024/7/212024/7/217/21/2024 2:38:32 AM11、以我独沈久,愧君相见频。2024/7/212024/7/212024/7/21Jul-2421-Jul-2412、故人江海别,几度隔山川。2024/7/212024/7/212024/7/21Sund
30、ay, July 21, 202413、乍见翻疑梦,相悲各问年。2024/7/212024/7/212024/7/212024/7/217/21/202414、他乡生白发,旧国见青山。21 七月 20242024/7/212024/7/212024/7/2115、比不了得就不比,得不到的就不要。七月 242024/7/212024/7/212024/7/217/21/202416、行动出成果,工作出财富。2024/7/212024/7/2121 July 202417、做前,能够环视四周;做时,你只能或者最好沿着以脚为起点的射线向前。2024/7/212024/7/212024/7/21202
31、4/7/219、没有失败,只有暂时停止成功!。2024/7/212024/7/21Sunday, July 21, 202410、很多事情努力了未必有结果,但是不努力却什么改变也没有。2024/7/212024/7/212024/7/217/21/2024 2:38:32 AM11、成功就是日复一日那一点点小小努力的积累。2024/7/212024/7/212024/7/21Jul-2421-Jul-2412、世间成事,不求其绝对圆满,留一份不足,可得无限完美。2024/7/212024/7/212024/7/21Sunday, July 21, 202413、不知香积寺,数里入云峰。2024
32、/7/212024/7/212024/7/212024/7/217/21/202414、意志坚强的人能把世界放在手中像泥块一样任意揉捏。21 七月 20242024/7/212024/7/212024/7/2115、楚塞三湘接,荆门九派通。七月 242024/7/212024/7/212024/7/217/21/202416、少年十五二十时,步行夺得胡马骑。2024/7/212024/7/2121 July 202417、空山新雨后,天气晚来秋。2024/7/212024/7/212024/7/212024/7/219、杨柳散和风,青山澹吾虑。2024/7/212024/7/21Sunday,
33、 July 21, 202410、阅读一切好书如同和过去最杰出的人谈话。2024/7/212024/7/212024/7/217/21/2024 2:38:33 AM11、越是没有本领的就越加自命不凡。2024/7/212024/7/212024/7/21Jul-2421-Jul-2412、越是无能的人,越喜欢挑剔别人的错儿。2024/7/212024/7/212024/7/21Sunday, July 21, 202413、知人者智,自知者明。胜人者有力,自胜者强。2024/7/212024/7/212024/7/212024/7/217/21/202414、意志坚强的人能把世界放在手中像泥
34、块一样任意揉捏。21 七月 20242024/7/212024/7/212024/7/2115、最具挑战性的挑战莫过于提升自我。七月 242024/7/212024/7/212024/7/217/21/202416、业余生活要有意义,不要越轨。2024/7/212024/7/2121 July 202417、一个人即使已登上顶峰,也仍要自强不息。2024/7/212024/7/212024/7/212024/7/21MOMODA POWERPOINTLorem ipsum dolor sit, eleifend nulla ac, fringilla purus. Nulla iaculis tempor felis amet, consectetur adipiscing elit. Fusce id urna blanditut cursus. 感感谢谢您您的的下下载载观观看看专家告诉