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