第一部分软件工程与过程ppt课件.ppt
《第一部分软件工程与过程ppt课件.ppt》由会员分享,可在线阅读,更多相关《第一部分软件工程与过程ppt课件.ppt(105页珍藏版)》请在三一办公上搜索。
1、软件工程方法与实践,课程简介,课时数:3*18学时本课程讨论关于软件的工程化构建课程目标:理解软件工程的思想和原则;了解软件过程的方法、工具和过程;熟悉一种软件开发过程;,第一部分:软件工程与过程,什么是软件工程?什么是工程化思想?什么是软件过程?有哪些过程模型?如何建立过程模型?什么是统一过程?什么是敏捷过程?有哪些模型?什么是软件工程实践?注:本部分的实验课参照实验教材实验1和实验2进行,第1章 概述(主要内容),软件工程的基本概念软件工程化思想软件工程两大范型软件工程思想与基本原理软件工程基本活动,软件工程定义-1,Fritz Bauer的定义: 软件工程是为了经济地获得能够在实际机器上
2、有效运行的可靠软件而建立和使用的一系列完善的工程化原则。1968年在NATO科技会议上首次提出软件工程的概念,软件工程定义-2,B.W.Boehm的定义: 运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必须的相关文件资料。巴利玻姆,软件工程估算模型COCOMO模型之父、 软件过程螺旋式模型之父。,软件工程定义-3,1983年美国IEEE软件工程标准术语的定义为: 软件工程是开发、运行、维护和修复软件的系统方法,其中“软件”的定义为:计算机程序、方法、规则、相关的文档资料以及在计事机上运行时所必需的数据。,什么是软件?,软件是计算机系统中与硬件相对应的另一部分,包括一系
3、列程序、数据及其相关文档的集合。三要素:程序文档数据,软件的特征,特性:复杂性一致性不会磨损和“老化”易变性移植性成本高,时间,故障率,软件演化-1,第一代:程序设计阶段。1946年到60年代初,其主要特征是程序生产方式为个体手工方式。 第二代:程序系统阶段。60年代初到70年代初,软件工程学科诞生。软件的开发方式由个体生产发展到了小组生产,软件的开发与维护费用以惊人的速度增加,维护困难,导致软件危机。,软件演化-2,第三代:传统软件工程阶段。20世纪70年代中期至80年代中期,软件工程师把工程化的思想加入到软件的开发过程中,用工程化的原则、方法和标准来开发和维护软件。第四代:面向对象阶段。2
4、0世纪80年代中期至今,面向对象的方法学受到了人们的重视,促进了软件业的飞速发展,软件产业在世界经济中已经占有举足轻重的地位。,软件危机-1,主要表现:软件的规模大复杂度增加软件的需求量增大价格昂贵供需差增大开发速度慢质量难以保证,软件危机-2,两个方面的问题:如何开发软件,以满足客户对软件日益增长的需求;如何维护数量不断膨胀的软件;,软件危机解决途径,重视需求分析,明确与确切表达需求重视与客户沟通与交流统一的、公认的方法论和规范指导重视设计和实现过程的资料充分的检测工作,软件工程化思想,把软件看作是一个工程产品两个方面:软件开发技术软件工程管理软件危机的原因:缺乏软件过程控制能力1991年,
5、SEI提出了能力成熟模型(Capability Maturity Model)V1.0版,软件工程两大范型,范型用来表示一套涵盖整个软件生产过程的技术集合。传统的结构化范型特征:结构化技术要么面向行为,要么面向数据构成结构化范型的技术包括:结构化分析结构化设计结构化编程结构化测试结构化维护,软件工程两大范型,面向对象范型特征:将对象视作一个融合了数据及在其上操作的行为的、统一的软件组件。技术包括:面向对象分析面向对象设计面向对象编程面向对象测试面向对象维护优势:对象的概念符合业务或领域的客观实际维护容易,软件工程基本原理,B.W.Boehm在1983年提出七条基本原理:分阶段的软件生存周期坚持
6、进行阶段评审实行严格的产品控制采用现代程序设计技术明确职责开发小组的人员应少而精不断改进开发过程,软件工程思想,推迟实现的观点逐步求精的观点分解与抽象的观点信息隐蔽观点质量保证观点,软件工程基本活动,软件开发活动软件生命周期模型项目管理活动项目的范围(要做的内容)进度(要花费的时间)成本(要耗费的资源)过程改进活动关注质量软件开发的最佳实践过程定义和改进,小结,软件工程的主旨是以工程化的思想进行软件开发,以生产高质量和高效率的软件。软件工程化思想的核心是,把软件看作是一个工程产品。软件工程方法学分别是传统结构化范型和面向对象范型。软件工程活动包括开发活动、管理活动和过程改进活动。,分组,每组6
7、人组长1名:负责项目管理活动组员4名:负责软件开发活动,包括需求分析软件设计编码软件测试配置管理,课程考核,课堂考勤 10%分组作业和讨论 60%每组有6个角色,每个角色必须承担各自的任务组员成绩由个人成绩(60%)和团队成绩(40%)构成团队成绩为全组平均分期末考试(卷面) 30%,第2章 软件过程(内容提要),什么是软件过程?什么软件生命周期?能力成熟度模型敏捷过程软件过程实践,软件过程,定义:软件过程是为了开发出软件产品,或者是为了完成软件工程项目而需要完成的有关软件工程的活动通常使用生命周期模型简洁地描述软件过程。生命周期模型规定了把生命周期划分为哪些阶段及各个阶段的执行顺序,也称为过
8、程模型,软件工程三要素,层次:软件工程是一门建立在以质量焦点为基础,分过程、方法和工具三个研究层次的综合技术,软件过程框架,定义:框架是实现整个软件开发活动的基础,并且那些与过程有关的角色、职责的定义以及实现也都离不开框架的支持包括两个方面组织及管理框架技术及工具框架,软件过程模型,把软件生命周期中各项开发活动的流程用一个合理的框架开发模型来规范描述,这就是软件过程模型。软件生命周期模型软件生命周期划分为定义、开发和运行三个阶段细分为六个阶段:问题的定义及规划需求分析软件设计程序编码软件测试运行维护,软件生命周期模型,软件生命周期划分为定义、开发和运行三个阶段细分为六个阶段:问题的定义及规划需
9、求分析软件设计程序编码软件测试运行维护,能力成熟度模型集成,CMM(Capability Maturity Model)是指“能力成熟度模型”CMM是由美国卡内基梅隆大学的软件工程研究所(SEI)开发的软件成熟度模型。CMM核心:把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究。,能力成熟度模型集成,CMM是目前国际上最流行的一种软件生产过程标准,已经得到了众多国家一级国际软件产业界的认可。CMM为软件企业的过程能力提供了一个阶梯式的改进框架,它基于过去所有软件工程过程改进的成果,吸取了以往软件工程的经验教训,提供了一个基于过程改进的框架。能力成熟度模型集成(CMMI-
10、Capability Maturity Model Integration)是CMM模型的最新版本。,CMM概述,为企业的发展规定过程成熟级别,分为5级(Version 1.0):初始级(Initial):一般企业皆具有可重复级(Repeatable):成功经验可以重复定义级(Defined):一套完整的企业过程,人员自觉遵守(培训)管理级(Managed):过程&产品可度量和控制优化级(Optimizing):过程持续改进从无序到有序、从特殊到一般、从定性管理到定量管理、最终达到动态优化,CMM概述(续),2. Repeatable,1. Initial,3. Defined,4. Mana
11、ged,Disciplined Process,Standard, Consistent Process,Predictable Process,Continuously Improving Process,Unpredictable and poorly controlled,Can repeat previously mastered tasks,Process characterized, fairly well understood,Process measured and controlled,Focus on process improvement,5.Optimizing,Pro
12、ject Management,Integrated Engineering Process,Product and Process Quality,Managing Change,Disorder,Disciplined,Predictable,Immature,Mature,CMM的概念模型,关键过程域KPA:代表一组相关的工作(活动)。每个KPA都有一个确定的目标,完成该目标即认为过程能力的提高。一般特性CF(Common Features):进一步细分KPA的工作。五个特性:承诺(commitment)准备(ability)执行(activity)度量分析(measurement &
13、analysis)验证(verifying implementation),CMM的五个级别,Level 1:初始级过程无序且不可见,CMM的五个级别,Level 2:可重复级里程碑( Milestone )可见,按计划开发,CMM的五个级别,Level 2的6个KPA:侧重于管理需求管理(Requirements Management)软件项目计划(Software Project Planning)软件项目的跟踪和监控(Software Project Tacking and Oversight)软件子合同管理(Software Subcontract Management)软件质量保证(
14、Software Quality Assurance)软件配置管理(Software Configuration Management),CMM的五个级别,Level 3:定义级每个阶段的内部活动可见标准过程和项目定义过程裁剪,CMM的五个级别,Level 3的7个KPA:工程过程企业理念机构过程关注(Organization Process Focus)机构过程定义(Organization Process Definition)培训计划(Training Program)集成软件管理(Integrated Software Management)过程裁剪和定义软件产品工程(Software
15、 Product Engineering)过程执行组间协调(Intergroup Coordination)对等审查(Peer Reviews),CMM的五个级别,Level 4 管理级过程可度量,预测值与结果之间的偏差可控,CMM的五个级别,Level 4的2个KPA:预测量化管理定量过程管理(Quantitative Process Management)过程度量软件质量管理(Software Quality Management)产品度量,CMM的五个级别,Level 5 优化级过程动态调整、新技术的采用对过程的不断改进,CMM的五个级别,Level 5的3个KPA:动态优化缺陷预防(D
16、efect Prevention)技术改变管理(Technology Change Management)过程改变管理(Process Change Management),能力成熟度模型集成,CMMI-Capability Maturity Model Integration是CMM模型的最新版本。CMMI有两种表示方法:和软件CMM一样的阶段式表现方法连续式的表现方法过程管理项目管理工程支持CMMI的目标是质量、时间表和最低的成本,敏捷过程,2001年2月11日到13日,17位软件开发领域的领军人物聚集在美国犹他州的滑雪胜地雪鸟(Snowbird)雪场。经过两天的讨论,“敏捷” (Agil
17、e)这个词为全体聚会者所接受,用以概括一套全新的软件开发价值观。这套价值观,通过一份简明扼要的敏捷宣言,传递给世界,宣告了敏捷开发 运动的开始。敏捷不是一个过程,是一类过程的统称。符合敏捷价值观、遵循敏捷原则,敏捷宣言,我们通过身体力行和帮助他人来揭示更好的软件开发方式。经由这项工作,我们形成了如 下价值观: 个体与交互 重于 过程和工具可用的软件 重于 完备的文档客户协作 重于 合同谈判响应变化 重于 遵循计划 在每对比对中,后者并非全无价值,但我们更看重前者。,敏捷过程,敏捷方法的两大主要特征:对“适应性”的强调对“人”的关注做法:引入迭代式的开发手段将整个软件生命周期分解为若干个小的迭代
18、周期获取切实有效的客户反馈提出12条基本原则,敏捷12原则,1. 我们的最高目标是,通过尽早和持续地交付有价值的软件来满足客户。 2. 欢迎对需求提出变更即使是在项目开发后期。要善于利用需求变更,帮助客 户获得竞争优势。 3. 要不断交付可用的软件,周期从几周到几个月不等,且越短越好。 4. 项目过程中,业务人员与开发人员必须在一起工作。,敏捷12原则,5. 要善于激励项目人员,给他们以所需要的环境和支持,并相信他们能够完成任 务。 6. 无论是团队内还是团队间,最有效的沟通方法是面对面的交谈。 7. 可用的软件是衡量进度的主要指标。 8. 敏捷过程提倡可持续的开发。项目方、开发人员和用户应该
19、能够保持恒久稳定的 进展速度。,敏捷12原则,9. 对技术的精益求精以及对设计的不断完善将提升敏捷性10. 要做到简洁,即尽最大可能减少不必要的工作。这是一门艺术。 11. 最佳的架构、需求和设计出自于自组织的团队。 12. 团队要定期反省如何能够做到更有效,并相应地调整团队的行为。,极限编程,敏捷开发过程的方法很多,主要有SCRUMCrystal特征驱动软件开发(Feature Driven Development,简称FDD)自适应软件开发(Adaptive Software Development,简称ASD) 以及最重要的极限编程(eXtreme Programming,简称XP)。,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第一 部分 软件工程 过程 ppt 课件

链接地址:https://www.31ppt.com/p-1355334.html