软件工程与软件项目管理课件

上传人:bin****86 文档编号:57578085 上传时间:2018-10-23 格式:PPT 页数:89 大小:4.76MB
返回 下载 相关 举报
软件工程与软件项目管理课件_第1页
第1页 / 共89页
软件工程与软件项目管理课件_第2页
第2页 / 共89页
软件工程与软件项目管理课件_第3页
第3页 / 共89页
软件工程与软件项目管理课件_第4页
第4页 / 共89页
软件工程与软件项目管理课件_第5页
第5页 / 共89页
点击查看更多>>
资源描述

《软件工程与软件项目管理课件》由会员分享,可在线阅读,更多相关《软件工程与软件项目管理课件(89页珍藏版)》请在金锄头文库上搜索。

1、2018/10/23,0,软件项目管理,信息科技学院192.168.130.142,2018/10/23,1,软件工程与软件项目管理,一、软件危机与软件工程 二、软件过程及其模型,2018/10/23,2,本章要点,一、软件危机与软件工程 二、软件过程及其模型,2018/10/23,3,软件工程的含义,软件工程是一种方法论,而不是一种具体的摸得着、看得见的产品。软件工程 (Software Engineering) 是将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的工程。,2018/10/23,4,软件的定义与特点,1.能够完成预定功能和性能的可执行的指令(计算机程序); 2.使

2、得程序能够适当地操作信息的数据结构; 3.描述程序的操作和使用的文档。,2018/10/23,5,软件的特点与本质,1.软件是一种逻辑实体,不是具体的物理实体。,硬件失效率曲线,软件失效率曲线,2018/10/23,6,2.软件是不可见性决定了它的抽象性,软件的本质是数字存在。软件的载体有大脑意识载体、语言符号载体和电磁物理载体三种形式,软件在其电磁物理载体上表现为驻存型、执行型和传输型三种存在形态。软件只有经数字化才取得自己的存在地位,软件的本质是数字存在。,2018/10/23,7,3.软件的生产是一种认知过程 4.软件的构造性与演化性,2018/10/23,8,软件危机,“软件危机”的概

3、念是在1968年北大西洋公约组织(NATO)的计算机科学家在联邦德国召开的国际学术会议上才第一次提出,软件开发长期以来存在“开发周期长、成本高、质量差、适应性差、难维护”这四大难题,在早期我们称它为“软件危机”,它是计算机科学发展进程的必然产物,只不过到后来这种现象日渐严重,已经影响到计算机事业的发展,因而才引起各界的关注。,2018/10/23,9,2018/10/23,10,复杂性是“软件危机”的本质原因,无法解除危机是因为软件学科固有的本性,在规模上,软件实体可能比任何由人类创造的其它实体要复杂,因为没有任何两个软件部分是相同的。当它执行时,软件经过一种不连续的离散状态,一个“比特”位的

4、变化就会导致整个软件状态的变化。而这种软件状态的总数量是惊人的。,2018/10/23,11,布鲁克斯(Brooks)分别于1975和1987年出版了两本著名的软件工程知识著作“人月神话”和“没有银弹”(No Silver Bullet),Brooks的著名论断“软件工作是人类所从事的最复杂的工作.”,2018/10/23,12,软件工程的三个要素,软件工程是一门新兴的边缘学科,涉及的学科多,研究的范围广。归结起来软件工程研究的主要内容有方法、工具和过程三个要素,它们构成了一种层次化的技术。整个体系结构反映了以质量为中心的观点。关注质量是软件工程的根本出发点和最终目标。,2018/10/23,

5、13,2018/10/23,14,软件工具为软件工程方法提供支持,研究支撑软件开发方法的工具,建立软件工程环境,为方法的运用提供自动或者半自动的支撑环境,软件工具的集成环境,又称为计算机辅助软件工程(CASE)。,2018/10/23,15,软件过程则是指将软件工程方法与软件工具相结合,实现合理、及时地进行软件开发的目的,为开发高质量软件规定各项任务的工作步骤。软件工程的根基在于质量关注点(quality focus)。,2018/10/23,16,软件开发方法,软件的实质也主要牵涉“现实世界概念世界计算机世界”三个空间。因而软件设计方法也应在这三个范畴极限之内寻求发展。,2018/10/23

6、,17,经过30多年的研究与实践,人们已经摸索和建立了多种软件工程方法。譬如,结构化方法、形式化方法、面向对象方法、基于构件的方法、基于Agent的方法、基于净室技术的方法、基于敏捷技术的方法等。这些方法在自身的发展过程中又不断吸收其他方法和技术的长处,导致新技术新方法层出不穷,成为现代软件工程发展过程的亮点,从而不断丰富和发展了软件工程的理论与实践。,2018/10/23,18,面向过程的结构化开发方法,结构化开发方法由结构化分析、结构化设计和结构化程序设计三部分有机组合而成的。这里所说的结构是指软件系统内各个组成要素之间的相互联系、相互作用的框架。,2018/10/23,19,在本质上,结

7、构化的软件开发方法是面向数据、面向过程、面向功能、面向数据流的观点来映射问题的。,2018/10/23,20,面向对象的开发方法,面向对象方法 对象 类 继承 消息机制,2018/10/23,21,软件工程与相关科学的关系,2018/10/23,22,2018/10/23,23,软件工程的标准,2018/10/23,24,国际标准化组织ISO,2018/10/23,25,IEEE,在软件工程标准方面,IEEE更贴近于软件工程的实际,如(IEEE 软件质量保证计划)、(IEEE软件配置管理计划、(IEEE 软件测试文档标准)、IEEE 软件需求规格说明的实施建议、(IEEE软件单元测试标准)、(

8、IEEE软件验证和确认标准)、(IEEE软件用户文档标准等 。,2018/10/23,26,中国国家标准,2018/10/23,27,计算机辅助软件工程,在软件工程活动中,软件工程师和管理员按照软件工程的方法和原则,借助于计算机及其软件工具的帮助,开发、维护、管理软件产品的过程,称为计算机辅助软件工程(Computer-Aided Software Engineering,简称CASE)。,2018/10/23,28,职业道德与行为准则,和其他工程人员一样,软件工程人员必须承认他们的工作不仅仅是技术的应用,还要担负许多责任。他们的工作是在法律和社会的框架内完成的:软件工程要受地方的、国家的、国

9、际的各种法律的约束,因而工程人员要想受人尊敬,其行为就必须合乎道德,必须有责任心。,2018/10/23,29,1机密工程人员必须严格保守雇主或客户的机密,而不管是否签署保密协议;2工作能力工程人员应该实事求是地表述自己的工作能力,不应有意接受超出自己能力的工作。3知识产权工程人员应当知晓控制专利权、著作权等知识产权使用的地方法律,必须谨慎行事,确保雇主和客户的知识产权受到保护。4计算机滥用软件工程人员不应运用自己的技能滥用他人的计算机。滥用计算机有时对他人影响不大,但有些时候后果非常严重(如个人隐私和传播病毒)。,2018/10/23,30,ACM/IEEE职业道德准则,1.公众感软件工程人

10、员应始终与公众利益保持一致。 2.客户与雇主软件工程人员应当在与公众利益保持一致的前提下,满足客户与雇主的最大利益。 3.产品软件工程人员应当保证他们的产品及其相关附件达到尽可能高的行业标准。 4.判断力软件工程人员应当具有公正和独立的职业判断力。,2018/10/23,31,5.管理软件工程管理者和领导者应当拥护并倡导合乎道德的有关软件开发和维护的管理方法。 6.职业感软件工程人员应当弘扬职业正义感和荣誉感,尊重社会公正利益。 7.同事软件工程人员应当公平地对待和协助每一位同事。 8自己软件工程人员应当毕生学习专业知识,倡导合乎职业道德的职业活动方式。,2018/10/23,32,本章要点,

11、一、软件危机与软件工程 二、软件过程及其模型,2018/10/23,33,软件过程,IEEE(STD-610)将过程(process)定义为实现给定目标所执行的一系列操作步骤。由此,我们可以把一个有序任务集合看作是一个过程,一个用来产生某类想要的产品所涉及的活动、约束和资源的步骤序列。,2018/10/23,34,每个过程均包含一系列的阶段,每个阶段结束于一个主要的里程碑。,过程的特征之一,2018/10/23,35,过程是一个生命周期。当过程涉及某种产品的建立时,我们称这个过程为一个生命周期。,。,过程的特征之二,2018/10/23,36,过程的特征之三,每个过程均有一系列己定义好的输入作

12、为其操作的对应。每个过程均会形成一系列的输出,并以此作为其他过程的输入,过程会将相应的输入转换为事先己定义好的输出。,2018/10/23,37,过程的特征之四,过程具有迭代特征。,2018/10/23,38,软件过程提供公共框架,软件过程提供了一个框架,在该框架下可以建立一个软件开发的综合计划: 若干框架活动适用于所有软件项目,而不在乎其规模和复杂性。 若干不同任务的集合每一个集合都由任务、里程碑、交付物以及质量保证点组成。 若干保护性活动如软件质量保证、软件配置管理、测试与度量等。它们贯穿于整个过程模型之中。保护性活动独立于任何一个框架活动,且贯穿于整个过程之中。,2018/10/23,3

13、9,软件过程模型,软件过程模型是从一特定角度提出的软件过程的简化描述,是一种开发策略,这种策略针对软件工程的各个阶段提供了一套范形,使工程的进展达到预期的目的。其中每个过程模型都代表了一种将本质上无序的活动转换为有序化的步骤,每个模型都具有能够指导实际软件项目进行控制及协调的特性。,2018/10/23,40,过程管理,过程管理,就是对过程进行管理,目的是要让过程能够被共享、复用,并得到持续的改进。 软件过程管理就是要注重循序渐进地积累,积累项目中的各个环节项目管理的实践经验,保证我们的生产力持续地发展。,2018/10/23,41,过程管理和项目管理关系,项目管理用于保证项目的成功, 过程管

14、理用于管理最佳实践。 这两项管理不是相互孤立的,而是有机地紧密地结合的。,2018/10/23,42,瀑布模型,2018/10/23,43,瀑布模型分析,瀑布模型强调系统开发应有完整之周期,且必须完整的经历周期的每一开发阶段,由于该模式强调系统开发过程需有完整的规划、分析、设计、测试及文件等管理与控制,因此能有效的确保系统品质,它已经成为业界大多数软件开发的标准。,2018/10/23,44,瀑布模型缺点,线性顺序模型过程的缺点也是非常明显的: 1.实际的项目很少按照该模型给出的顺序进行。 2.项目初期用户常常难以清楚地给出所有需求,而这恰恰是线性顺序模型所必须给出的。 3.用户必须有耐心,程

15、序的运行版本要等到项目开发晚期才能得到。大的错误如果到检查运行程序时才被发现,后果可能是灾难性的。,2018/10/23,45,演化软件过程模型,演化模型是利用一种迭代的思想方法,它的特征是使软件工程师渐进地开发逐步完善的软件版本。主要包括增量模型和螺旋模型两种范型。,2018/10/23,46,增量模型,2018/10/23,47,增量模型的特点,产品是以一系列增量构件的形式设计、实现、集成和测试的,其中,每个构件由一些代码块组成,这些代码块来白多个相互作用的模块,完成特定的功能。,2018/10/23,48,增量模型的特点,增量模型和瀑布模型之间的本质区别是: 瀑布模型属于整体开发模型,它

16、规定在开始下一个阶段的工作之前,必须完成前一阶段的所有细节。而增量模型属于非整体开发模型,它推迟某些阶段或所有阶段小的细节,从而较早地产生工作软件。,2018/10/23,49,2018/10/23,50,增量模型的讨论,每个增量提供系统功能的一个子集。对增量中功能的分配取决于用户指明的功能优先次序。 增量模型的另一个优点是,逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。,2018/10/23,51,使用增量模型的困难是,在把每个新的增量构件集成到现有软件体系结构中时,必须不破坏原来已经开发出的产品。 此外,必须把软件的体系结构设计得便于按这种方式进行扩充,向现有产品中加入新构件的过程必须简单、方便,也就是说,软件体系结构必须是开放的。,2018/10/23,52,螺旋模型,对于大型软件,只开发一个原型往往达不到要求。螺旋模型将瀑布模型和增量模型结合起来,并加入了风险分析。该模型将开发过程划分为沟通、制定计划、风险分析、实施工程、构造与发布和系统评估6个活动。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号