收藏 分享(赏)

2.1 process_A genetic view.ppt

上传人:eukav 文档编号:8241708 上传时间:2019-06-16 格式:PPT 页数:55 大小:932KB
下载 相关 举报
2.1 process_A genetic view.ppt_第1页
第1页 / 共55页
2.1 process_A genetic view.ppt_第2页
第2页 / 共55页
2.1 process_A genetic view.ppt_第3页
第3页 / 共55页
2.1 process_A genetic view.ppt_第4页
第4页 / 共55页
2.1 process_A genetic view.ppt_第5页
第5页 / 共55页
点击查看更多>>
资源描述

1、1,Software Engineering: A Practitioners Approach, 6/e,Software engineering is a key challenge in developing modern military aircraft like this C-17 transport. (Image courtesy of U.S. Air Force,Chapter 2-1: Process: A Generic View (软件过程),2,Where are we?,1 What is Software Engineering 2. SE:A Layered

2、Technology 3. A Process Framework 4. Basic Principles for SE 5. Software Engineering Standards,3,1 What is Software Engineering,Fritz Baue的软件工程定义 Software engineering is the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works effi

3、ciently on real machines.- Fritz Baue,为了经济地获得可靠的和能在实际机器上高效运行的软件而建立和使用的好的工程原则。,4,IEEE IEE93,The IEEE IEE93 has developed a more comprehensive definition when it states:Software Engineering: (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and main

4、tenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1).,软件工程:(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。(2)(1)中所述方法的研究。,5,Other definitions:,B. W. Boehm “运用现代科学技术知识来设计(包括软件的需求分析和对软件进行修改时所进行的再设计活动)并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。”Fairley

5、 “软件工程学是为在成本限额以内按时完成开发和修改软件产品所需的系统生产和维护的技术和管理的学科”。计算机科学技术百科全书:软件工程是应用计算机科学、数学、逻辑学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本和改进算法。其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。,6,Where are we?,1 What is Software Engineering 2. SE:A Layered Technology 3. A Process Fra

6、mework 4. Basic Principles for SE 5. Software Engineering Standards,7,2. SE:A Layered Technology(一种层次化的技术),A road map that helps you create a timely, high-quality result.,Provide technical how-tos for building software.,Computer-Aided Software Engineering,8,2.1 process,软件工程过程是进行一系列有组织的活动,通过建立过程框架,提供

7、项目管理控制的基础,从而能够合理和及时地开发出计算机软件。 过程定义了活动的时间、人员、工作内容,达到预期目标的途径,技术方法的采用、工程产品(包括模型、文档、数据、报告、表格等)的产生、里程碑的建立、质量的保证和变更的管理。,9,2.2 methods,软件工程方法为软件开发提供“如何做”的技术。它包括了项目计划、需求分析、系统设计、程序实现、测试与维护等一系列的任务。通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学(methodology),也称为范型(paradigm)。 Structured MethodObject Oriented Method,10,结构化方法也称

8、为面向功能的/数据流/传统的软件开发方法。结构化分析方法SA:对软件进行需求分析结构化设计方法SD:进行总体设计和详细设计 结构化编程SP 特点:将软件生命周期全过程划分为若干阶段,然后顺序完成各阶段任务。按照功能分解的原则,自顶向下、逐步求精,直到实现软件功能为止。 该方法简单、实用。 缺点:它以功能分解为基础,而用户的功能是经常改变的,必然导致系统的框架结构不稳定;从数据流程图到软件结构图之间的过渡有明显的断层,导致设计回溯到需求有困难。,2.2.1 Structured Method,11,研究始于1966年,自90年代以来,面向对象的分析、设计、测试、 度量和管理等研究都得到长足发展。

9、 对象是由数据和容许的操作组成的封装体,与客观实体有直接对 应关系,一个对象类定义了具有相似性质的一组对象。 继承性是对具有层次关系的类的属性和操作进行共享的一种方式。 基本思想:用对象模拟问题领域中的实体,以对象间的关系刻画 实体间联系。本质是主张从客观世界固有的事物出发构造系统。优点:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。 (2)以数据为中心,而不是基于对功能的分解, 使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。,2.2.2 Object Oriented Method,12,影响较大的面向对象方法有: (1) 面向对象方法学:对象、封

10、装、继承、消息 (2) Booch方法:该方法的分析能力较弱,是一种偏重设计的方法。所采用的对象模型要素是:封装、模块化、层次类型、并发。重要的概念模型是类和对象、类和对象的特征、类和对象之间的关系。使用的图形文档包括六种:类图、对象图、状态转换图、交互图、模块图和进程图。 (3) OMT方法:通过建立对象模型、动态模型、功能模型,来实现对整个系统分析和设计工作。 (4) OOSE方法:最大特点是用用例(UseCase)与外部角色的交互来表示系统功能,用例贯穿于整个开发过程。 (5) CoadYourdon的面向对象分析和设计方法:即OOA和OOD方法,它是最早的面向对象的分析和设计方法之一。

11、Coad-Yourdon面向对象通常按照定义主题、发现并标识对象与类、标识服务、标识结构、标识属性的步骤进行分析.根据面向对象方法的设计和使用特性,可将Coad-Yourdon面向对象设计任务在逻辑上分成四个部分,分别为问题域子系统的构建、设计人机交互子系统、设计任务管理子系统和设计数据管理子系统.,13,2.3 计算机辅助软件工程( CASE )Tools,CASE,Computer-Aided Software Engineering在软件工程活动中,人们按照软件工程的原则和方法,利用计算机及其集成的软件开发环境,辅助软件项目的开发、维护及管理的过程。CASE工具和环境的核心是软件工程信息

12、库。这些工具和环境应遵循统一的标准,在操作系统、网络和数据库的支持下工作,以便使开发者们方便地相互通信并协同工作。,14,CASE工具按功能可划分为几大类: 支撑类工具(如操作系统、数据库管理工具、质量保证工具、软件配置管理工具(VSS、CVS)、文档工具等); 事务系统规划类(如事务系统规划工具); 项目管理类(如项目计划工具(5A项目管理、易度) 、需求追踪工具(Reqtify)、度量和管理工具等); 分析和设计类(如结构化分析/结构化设计即SA/SD工具、界面设计工具);Power Design;Rational Rose;PSL;PSA,15,Where are we?,1 What

13、is Software Engineering 2. SE:A Layered Technology 3. A Process Framework 4. Basic Principles for SE 5. Software Engineering Standards,16,3. A Process Framework(过程框架),17,3.1 Framework Activities (框架活动),Communication(沟通) Planning(策划) Modeling(建模) Analysis of requirements Design Construction(构建) Code

14、generation Testing Deployment(部署),18,3.2 Umbrella Activities (普适性活动 OR 保护性活动 ),Span 跨越the entire process and focus primarily on project management, tracking and control. Software project tracking and control Risk management Software quality assurance Formal technical reviews正式的技术复审 Measurement定义和收集过

15、程、项目和产品的度量、以帮助团队在发布软件的时候满足客户要求 Software configuration management:软件变更 Document 工作产品preparation and production:包括了创建产品所必需的活动,如建模、文档、日志、表格和列表等。 Reusability management可复用管理,19,3.3 The Process Model: Adaptability (过程模型的适用性),To solve actual problems in an industry setting, a software engineer or a team o

16、f engineers must incorporate综合给出 a development strategy that encompasses覆盖 the process, methods, and tools layers and the generic phases discussedThis strategy is often referred to as a process model,20,Prescriptive process model(惯例过程模型)(重)强调对过程活动和任务的详细定义,识别和应用Agile process model(敏捷过程模型)(轻)强调项目的灵活性,

17、可操作性和可适应性eXtreme programming,21,the framework activities will always be applied on every project . BUT the tasks (and degree of rigor) for each activity will vary based on: the type of project characteristics of the project common sense 共识judgment; concurrence合作 of the project team过程模型的适用性(如软件所需解决的问

18、题,项目特点,开发队伍和组织文化等)是成功的关键。,22,Where are we?,1 What is Software Engineering 2. SE:A Layered Technology 3. A Process Framework 4. Basic Principles for SE 5. Software Engineering Standards,23,4. Basic Principles for SE,软件工程的基本原理:自“软件工程”提出后,专家和学者们陆续提出了100多条关于软件工程的准则或“信条”,有专家归纳出了确保开发质量和效率的原理的最小集合7条基本原理。,2

19、4,用分阶段的生存周期计划严格管理这条基本原理是应该把软件生存周期划分成若干个阶段,并相应地制定出切实可行的计划,然后严格按照计划对软件开发与维护工作进行管理。应该制定的计划有项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划和运行维护计划等。各级管理人员都必须严格按照计划对软件开发和维护工作进行管理。据统计,不成功的软件项目中,有一半左右是由于计划不周造成的。,25,2) 坚持进行阶段评审据统计,在软件生存周期各阶段中,编码阶段之前的错误约占63%,而编码错误仅占37%。另外,错误发现并改正得越晚,所花费的代价越高。坚持在每个阶段结束前进行严格的评审,就可以尽早发现错误,从而可以

20、最小的代价改正错误。因此,这是一条必须坚持的重要原理。,26,3)实行严格的产品控制决不能随意改变需求,只能依靠科学的产品控制技术来顺应用户提出的改变需求的要求。为了保持软件各个配置成分的一致性,必须实行严格的产品控制。其中主要是实行基准配置管理(又称为变动控制),即凡是修改软件的建议,尤其是涉及基本配置的修改建议,都必须按规程进行严格的评审,评审通过后才能实施。这里的“基准配置”是指经过阶段评审后的软件配置成分,即各阶段产生的文档或程序代码等。,27,4)采用现代程序设计技术实践表明,采用先进的程序设计技术既可以提高软件开发与维护的效率,又可以提高软件的质量。多年来,人们一直致力于研究新的“

21、程序设计技术”。比如,20世纪60年代末提出的结构程序设计技术;后来又发展出各种结构分析(SA)和结构设计(SD)技术;之后又出现了面向对象分析(OOA)和面向对象设计(OOD)技术等等。,28,5) 结果应能清楚地审查软件产品是一种看不见、摸不着的逻辑产品。因此,软件开发小组的工作进展情况可见性差,难于评价和管理。为了更好地进行评价与管理,应根据软件开发的总目标和完成期限,尽量明确地规定软件开发小组的责任和产品标准,从而使所得到的结果能清楚地审查。,29,6)开发小组的人员应少而精软件开发小组人员素质和数量是影响软件质量和开发效率的重要因素。实践表明,素质高的人员与素质低的人员相比,开发效率

22、可能高几倍至几十倍、而且所开发的软件中的错误也要少得多。另外,开发小组的人数不宜过多,因为随着人数的增加,人员之间交流情况、讨论问题的通信开销将急剧增加,这不但不能提高生产率,反而由于误解等原因可能增加出错的概率。,30,7) 承认不断改进软件工程实践的必要性遵循上述六条基本原理,就能够较好地实现软件的工程化生产。但是,软件工程不能停留在已有的技术水平上,应积极主动地采纳或创造新的软件技术,要注意不断总结经验,收集工作量、进度、成本等数据,并进行出错类型和问题报告的统计。这些数据既可用来评估新的软件技术的效果,又可用来指明应优先进行研究的软件工具和技术。,31,Basic goals for

23、SE,付出较低的开发成本 达到要求的软件功能 取得较好的软件性能 开发的软件易于移植 需要较低的维护费用 能按时完成开发工作 及时交付使用,32,Where are we?,1 What is Software Engineering 2. SE:A Layered Technology 3. A Process Framework 4. Basic Principles for SE 5. Software Engineering Standards,33,5.1 软件工程标准,1)国际标准:由国际联合机构制定和公布,提供各国参考的标准。ISO(International Standards

24、 Organization)国际标准化组织,该机构建立了“计算机与信息处理技术委员会”(简称ISOTC97),专门负责与计算机有关的标准化工作。 这类标准通常标有ISO字样,如ISO 863186 Information processing Program constructs and conventions for the representation(信息处理程序构造及其表示法的约定),该标准现已被我国收入国家标准。,34,2)国家标准,由政府或国家级的机构制定或批准,适用于全国范围的标准。 GB中华人民共和国国家标准。国家技术监督局是我国的最高标准化机构,它所公布实施的标准简称为“GB

25、”。 ANSI(American National Standards Institute)美国国家标准协会。这是美国一些民间标准化组织的领导机构,具有一定权威性。 BS(British Standard)英国国家标准。,35,3)行业标准,由行业机构、学术团体或国防机构制定并适用于某个业务领域的标准。 IEEE(Institute Of Electrical and Electronics Engineers)美电气和电子工程师学会。近年该学会专门成立了软件标准分技术委员会(SESS),积极开展了软件标准化活动,取得了显著成果,受到软件界的关注。IEEE通过的标准常常要报请ANSI审批,使其

26、具有国家标准的性质。因此,我们看到IEEE公布的标准常冠有 ANSI字头。例如,ANSIIEEE Str 8281983软件配置管理计划标准。 GJB中华人民共和国国家军用标准。这是由我国国防科学技术工业委员会批准,适合于国防部门和军队使用的标准。例如,1988年发布实施的GJB47388军用软件开发规范。 DOD-STD(Department Of Defense- STanDards)美国国防部标准。适用于美国国防部门。,36,4)企业标准,一些大型企业或公司,由于软件工程工作的需要,制定适用于本部门的规范。例如,美国IBM公司通用产品部(General Products Division

27、)1984年制定的“程序设计开发指南”,仅供该公司内部使用。,37,5)项目规范,由某一科研生产项目组织制定,并且为该项任务专用的软件工程规范。例如,计算机集成制造系统(CIMS)的软件工程规范。,38,CMM(Capability Maturity Model)能力成熟度模型 CMMI(CMM Integration)能力成熟度模型集成 卡耐基梅隆大学软件工程研究院(SEI, Software Engineering Institute)受美国国防部委托制定的软件过程改良、评估模型,也称为SEI SW-CMM,(Software Engineering Institute SoftWare-

28、 Capability Maturity Model)。 CMM的成功促使其他学科也相继开发类似的过程改进模型,例如系统工程、需求工程、人力资源、集成产品开发、软件采购等. CMMI是美国国防部的一个设想,他们想把现在所有的以及将被发展出来的各种能力成熟度模型,集成到一个框架中去。这个框架有两个功能,第一,软件采购方法的改革;第二,建立一种从集成产品与过程发展的角度出发、包含健全的系统开发原则的过程改进。就软件而言,CMMI是SW-CMM的修订本。 CMMI是目前世界公认的软件产品进入国际市场的通行证,它不仅仅是对产品质量的认证,更是一种软件过程改善的途径。,5.2 The CMMI,39,具

29、体好处,第一,能保证软件开发的质量与进度,能对“杂乱无章、无序管理”的项目开发过程进行规范。 第二,有利于成本控制。因为质量有所保证,浪费在修改、解决客户的抱怨方面的成本会降低很多。现在绝大多数情况是缺少规范制度,只是求快。项目完成后,要花很多时间修修补补,费用很容易失控。 第三,有助于提高软件开发者的职业素养。每一个具体参与其中的员工,无论是项目经理,还是工程师,甚至一些高层管理人的做事方法逐渐变得标准化、规范化。 第四,能够解决人员流动所带来的问题。公司通过过程改进,建立了财富库以共享经验, 而不是单纯依靠某些人员。 第五,有利于提升公司和员工绩效管理水平,以持续改进效益。通过度量和分析开

30、发过程和产品,建立公司的效率指标。,40,CMMI里程碑,1997 CMMI由美国国防部和美国国防工业协会发起 1998 首次团队会议召开 1999 发布操作概念 完成首次试验 2000 完成更多试验发布供初次使用的CMMI-SE/SW 1.0版本发布供初次使用的CMMI-SE/SW/IPPD 1.0版本发布供初次使用的CMMI-SE/SW/IPPD/SS 1.0版本 2002 发布CMMI-SE/SW1.1版发布CMMI-SE/SW/IPPD 1.1版发布CMMI-SE/SW/IPPD/SS 1.1版发布CMMI-SW1.1版 2006 发布CMMI-DEV 1.2版发布CMMI-DEV+I

31、PPD 1.2版 2007 发布CMMI-ACQ 1.2版,41,The Capability Maturity Model Integration (CMMI) represents a process model, which is continuous and staged.CMMI的两种不同的实施方法: continuous and staged不同的实施方法,其级别表示不同的内容。连续式:主要是衡量企业的项目能力。企业在接受评估时可以选择自己希望评估的项目来进行评估。它仅仅表示企业在该项目或类似项目的实施能力达到了某一等级。阶段性:主要衡量一个企业的成熟度,亦即是企业在项目实施上的综

32、合实力。企业在进行评估时,一定要由评估师来挑选企业内部的任何项目,甚至于任何项目的任何部分。,42,CMMI is rated as 5 capability levels:Level 0: Incomplete不完全级Level 1: Performed已执行级Level 2: Managed已管理级Level 3: Defined已定义级Level 4: Quantitatively managed已定量管理级Level 5: Optimized已优化级,43,Top Management,Middle Management,Dept. B,The Organization,Dept. A

33、,Dept. C,Div. BB,Div. AA,Project 4,Project 3,Projects,Processes,CMMI一级组织的例子-基本没有流程要求,44,几个级别的介绍,已执行级:对项目的目标与要做的努力很清晰,目标得以实现。但由于任务的完成带有很大偶然性,企业无法保证在实施同类项目的时候仍然能够完成任务。 企业在一级上的项目实施对实施人员有很大的依赖性。 已管理级:实现基本项目管理。在项目实施上能够遵守既定的计划与流程,有资源准备,权责到人,对相关的项目实施人员有相应的培训,对整个流程有监测与控制,并与上级单位对项目与流程进行审查。企业在该级水平上体现了对项目的一系列的

34、管理程序,排除了完成任务的随机性,保证了企业的所有项目实施都会得到成功。,45,Top Management,Middle Management,Dept. B,The Organization,Dept. A,Dept. C,Div. BB,Div. AA,Project 4,Project 3,Projects,Processes,CMMI二级组织的例子-已经有许多流程,但都集中在项目级,46,已定义级:不仅能够对项目的实施有一整套的管理措施,并保障 项目的完成;而且,企业能够根据自身的特殊情况以及自己的标准流程,将这套管理体系与流程予以制度化、标准化。不仅能够在同类的项目上得到成功的实施

35、,在不同类的项目上一样能够得到成功的实施。科学的管理成为企业的一种文化,企业的组织财富。 已定量管理级:企业的项目管理不仅形成了一种制度,而且要实现数字化的管理。对管理流程要做到量化与数字化。通过量化技术来实现流程的稳定性,实现管理的精度,降低项目实施在质量上的波动。 已优化级:企业的项目管理达到了最高的境界。企业不仅能够通过信息手段与数字化手段来实现对项目的管理,而且能够充分利用信息资料,对企业在项目实施的过程中可能出现的次品予以预防。能够主动地改善流程,运用新技术,实现流程的优化。,47,较高级别的组织的例子-组织级的流程并不断改进,对选择的流程进行统计过程控制,并按照投入产出比进行不断提

36、高,48,49,Other topics:软件工程师职业道德规范,1)规范 1999年由ACM/IEEE-CS软件工程师道德规范和职业实践(SEEPP)联合工作组制订了软件工程师职业道德规范,规范含有8组由关键词命名的行为准则。 公众 、客户和雇主 、产品 、判断 、管理 、专业 、同行 、自身 。,50,2)职业化素质,职业化,简单说就是能胜任工作,让人放心。 “能胜任工作”,就需要具备相应的专业技能、知识和经验; “让人放心”意味着很多,包括遵守行业成文的或未成文的规则和规范,积极有效地和同事沟通,确保自己的工作产品是大家所期望的,尽可能地向客户提供最专业的服务和产品。 自律、沟通和技能是

37、成为职业化软件工程师的必要条件。,51,3)职业化软件工程师忌讳的十大问题,行为一:对外交付半成品。 行为二:不遵守标准和规范。 行为三:不积极帮助他人。 行为四:版权意识不敏感。 行为五:对待计划不严肃。 行为六:公事私事相混淆。 行为七:不注意知识更新。 行为八:不主动与人沟通。 行为九:不遵守职业规则。 行为十:不够诚实和正直。,52,Summary of Chapter ,Software engineering is discipline that integrates process, methods ,tools for the development of computer s

38、oftware . A number of different process models have been proposed ,but all define a set of framework activities , a collection of tasks that are conducted to accomplish each activity ,work products produced as a consequence of the tasks, and a set of umbrella activities that span the entire process.

39、,53,Exercises,1. Which item listed below is not one of the software engineering layers? a) Process b) Manufacturing c) Methods d) Tools 2. Software engineering umbrella activities are only applied during the initial phases of software development projects. 3. Which of these are the 5 generic softwar

40、e engineering framework activities? a) communication, planning, modeling, construction, deployment b) communication, risk management, measurement, production, reviewing c) analysis, designing, programming, debugging, maintenance d) analysis, planning, designing, programming, testing,54,4. Process mo

41、dels are described as agile because they a) eliminate the need for cumbersome documentation b) emphasize maneuverability and adaptability c) do not waste development time on planning activities d) make extensive use of prototype creation 5. Which of these terms are level names in the Capability Matu

42、rity Model? Performed b) Repeated c) Reused d) Optimized e) both a and d 6. Software processes can be constructed out of pre-existing software patterns to best meet the needs of a software project.,Answer: b;F;a;b;e;T,55,Homework (HW1),1.List and describe three generic factors of software engineering . 2.What are the five generic process framework activities?(五个最基本的过程框架活动是什么?每个活动的主要内容有哪些。),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报