5-IT工程师的工程能力课件_第1页
5-IT工程师的工程能力课件_第2页
5-IT工程师的工程能力课件_第3页
5-IT工程师的工程能力课件_第4页
5-IT工程师的工程能力课件_第5页
已阅读5页,还剩118页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

IT工程师的工程能力,第五课,感谢刘国勇老师提供资源,主要内容,工程能力概述软件工程知识体系软件工程系统能力,工程能力概述,科学、技术与工程系统与计算机系统软件与软件工程项目与软件项目,工程能力概述科学、技术与工程,科学指探知事物的本质、特征、内在规律以及与其他事物的联系,是关于自然、社会和思维的发展与变化规律的知识体系。或者说科学是建立在经验主义、实验以及方法论自然主义之上的各种知识技术指运用科学规律解决实现某一目的的手段和方法,泛指根据生产实践经验和科学原理而发展形成的各种工艺操作方法、技能和技巧工程指将自然科学原理应用到工农业等生产部门中而形成的各门学科的总称。如机械工程、水利工程、化学工程、系统工程、软件工程等,工程能力概述科学、技术与工程,工程是有原理的,是在一定的边界条件下的技术集成。工程不是技术和装备的简单堆砌和拼凑,工程在集成过程中有其自身的理论、原则和规律,是科学在面对实践时针对特定问题的技术化,是技术与应用实践结合的具体化工程项目是通过建造目标来完成的,具有其特殊的对象、明确的目标、要求等,这个目标通常是一个当前不存在的客观事物,工程项目要通过具体的设计、建造和建设等实施过程来建造这个新的客观存在。因此,工程是一个复杂的建构和运行过程,是通过合理的工序、工艺和工期来完成的工程实施要与环境协调一致,其实施和运行,都要对自然生态系统产生一定的影响,必须考虑到工程活动可能引起的环境问题,以人为本,努力使工程与环境、生态协调一致。科学的设计步骤和实施阶段、合理的资金投入,工程的成本、质量、效率是工程的生命所在工程设计是可优化,其包含多种技术、多个方案、多种途径可被选择,如何利用最小的投入获得最大的回报,取得良好的经济效益、环境效益和社会效益,就要求工程实现在一定边界条件下的综合集成和多目标优化,工程能力概述,科学、技术与工程系统与计算机系统软件与软件工程项目与软件项目,工程能力概述系统与计算机系统,系统:一些部件(要素)为了实现一个目标而有机组合的整体。系统可以是物理存在的具体系统,也可以是抽象的或社会的系统。其基本要素包括目标:一定的输入变成一定的输出,实现输入到输出的变换组成:两个以上具体的部件(要素)或抽象的方法等结构:部件间相互依存的关系,不同的结构形成不同的系统属性控制:为保证实现系统的目标,需要施加负反馈和一定的控制策略,工程能力概述系统与计算机系统,工程能力概述系统与计算机系统,系统边界:系统范围系统输入输出接口:系统和外界交换物质、能量或信息等的界面系统负反馈:对系统输出量的测量,以便控制系统的状态,保证系统的稳定系统环境:系统存在的理由和约束,工程能力概述系统与计算机系统,计算机系统:适当地组织在一起的一系列系统元素的集合,这些系统元素互相配合、相互协作,通过对信息的处理而完成预先定义的目标计算机软件:程序、数据结构和相关文档的集合,用于实现所需要的逻辑方法、过程或控制计算机硬件:提供计算能力的电子设备和提供外部世界功能的电子机械设备人员:硬件和软件的用户和操作者数据库:通过软件访问的大型的、有组织的信息集合文档:描述系统使用方法的手册、表格、图形及其他描述性信息过程:一系列步骤,它们定义每个系统元素的特定使用方法或系统驻留的过程性语境,工程能力概述,科学、技术与工程系统与计算机系统软件与软件工程项目与软件项目,工程能力概述软件与软件工程,软件:计算机系统中与硬件相互依存的另一部分,包括程序,数据及其相关文档的完整集合程序:按事先设计的功能和性能要求执行的指令序列数据:使程序能正常操纵信息的数据结构文档:与程序开发,维护和使用有关的图文材料,工程能力概述软件与软件工程,软件工程定义指导计算机软件开发和维护的工程学科采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它IEEE(1993):软件工程是把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是化工程应用于软件中;研究中提到的途径,工程能力概述,科学、技术与工程系统与计算机系统软件与软件工程项目与软件项目,工程能力概述项目与软件项目,自从有了人类,人们就开展了各种有组织的活动。随着社会的发展,有组织的活动逐步分化为两种类型:一类是连续不断、周而复始的活动,人们称之为“运作”(Operations),如企业日常的生产活动另一类是临时性、一次性的活动,人们称之为“项目”(Projects),如企业的技术改造活动、一项环保工程的实施,工程能力概述项目与软件项目,在现代社会中“项目”是很普遍各类开发项目各种建设工程项目各种科研项目各种环保和规划项目各种社会项目各种投资项目各种国防项目从上述可见,项目已渗入到社会的经济、文化、军事的各个领域,社会的每一层次和每一角落,工程能力概述项目与软件项目,上课野餐活动集体婚礼社区保安开发操作系统每天的卫生保洁神州飞船计划,日常运作,项目,工程能力概述项目与软件项目,项目是一个组织为实现自己既定的目标,在一定的时间、人员和资源约束条件下,所开展的一种具有一定独特性的一次性工作,明确界定的工作范围,预定的资源,一次性工作,临时组织,明确具体的目标,团队合作,开始日期,结束日期,项目,工程能力概述项目与软件项目,目的性:任何一个项目都是为实现特定的目标服务独特性:项目的产品或服务都具有一定的独特之处一次性:每一个项目都有自己明确的时间起点和终点,都是有始有终的,而不是不断重复、周而复始制约性:每个项目都在一定程度上受客观条件的制约。最主要的制约是资源制约风险性:由项目各种条件和环境发展变化的不确定性所造成的项目后果损失或收益的可能性过程性:项目是由一系列的项目阶段、项目工作或项目活动所构成的一个完整过程其它特性:包括项目的创新性、项目后果的不可挽回性和项目组织的临时性与开放性等,工程能力概述项目与软件项目,项目的三项约束:每个项目都会在不同程度上受到范围目标、时间目标和成本目标的约束,这些有时被称为项目的三项约束。这三个目标经常存在冲突,良好的项目是达到三者的平衡范围:项目要努力实现的是什么?客户或发起人要通过项目获得什么样的产品或服务?时间:完成项目需要多长时间?项目进度是怎样安排的?成本:完成项目需要花费多少成本?如何做好进度和费用的综合控制?,工程能力概述项目与软件项目,工程项目是当今社会最为普遍,也是最为重要的项目类型。它存在于社会的各个领域、各个地方,在社会生活和经济发展中起着重要作用工程项目是以一个工程技术系统的建设和(或)运行为任务的过程工程项目的根本目的,是通过工程的建设和运行为社会提供合格的产品或服务,工程能力概述项目与软件项目,软件项目:以软件服务为主体的项目软件项目目标用有限的时间、有限的资源为特定用户提供满足其需求的软件服务,并获取对应价值,工程能力概述项目与软件项目,软件项目的三大构成项目流程项目的方向和进程项目团队项目的实施者项目制度项目实施的准绳,工程能力概述项目与软件项目,软件项目内容进行项目的开发和交付程序文档和代码保障项目的正常运行硬件集成、数据转换提供项目支持和服务用户培训、技术支持,工程能力概述项目与软件项目,工程类项目(重点)目标:交付工程用户:指定用户(如某家企业)产品类项目目标:交付产品用户:行业客户服务类项目目标:为用户提供特定的服务(如售后维护)用户:指定用户,主要内容,工程能力概述软件工程知识体系软件工程系统能力,软件工程知识体系,SWEBOK:软件工程知识体系SEEK:软件工程教育知识体系,软件工程知识体系-SWEBOK,1970年代末期,美国制定研究生教育计划时采纳了IEEE-CS提出的制定软件工程教程的建议。1980年代末和1990年代初,软件工程教育得到卡内基-梅隆大学软件工程研究所(SEI)的培育和支持。SEI发起和资助的第一届软件工程教育和培训会议(CSEET)1987年召开。大会为软件工程教育者提供一个论坛,提出和讨论软件工程教育观点、方法和活动。1995年,SEI建立关于软件工程教育和培训的一个工作组(WGSEET),目的是共同研究问题、提出解决方法,与软件工程教育和培训组织共享信息和最佳实践方法。1999年,工作组提出一个技术报告,为设计和实现本科软件工程教育计划提供指导。,软件工程知识体系-SWEBOK,1993年,IEEE-CS和ACM为把软件工程建设成为一个专业,建立了IEEE-CS/ACM联合指导委员会。随后,该指导委员会被软件工程协调委员会(SWECC)替代。开发了软件工程知识体(SWEBOK)。其中,SWEBOK全面描述了软件工程实践所需的知识,为开发本科软件工程教育计划打下了基础。2004年8月,全世界500多位来自大学、科研机构和企业界的专家、教授经过多年的努力,推出了软件工程知识体、软件工程教育知识体(SEEK)两个文件的最终版本。,软件工程知识体系-SWEBOK,SWEBOK(软件工程知识体):IEEE计算机学会职业实践委员会主持的一个项目。SWEBOK是IEEE的官方服务标记。,软件工程知识体系-SWEBOK,草人阶段(1997年5月)产生软件工程本体知识指南的雏型,主要是为该指南确定恰当的组织结构。石人阶段(2001年4月18日),草稿完成、进入试用阶段,SWEBOK0.95版的发布标志着该阶段结束。铁人阶段(2004年),从正式版本1.0版开始到现在,包括最新的2004版本,软件工程知识体系-SWEBOK,促进世界范围内对软件工程的一致观点阐明软件工程相对其它学科(如计算机科学、项目管理、计算机工程和数学等)的位置,并确立它们的分界刻画软件工程学科的内容提供使用知识体系的主题为开发课程和个人认证与许可材料,提供一个基础,软件工程知识体系软件工程知识体,SWEBOK的知识领域,(1)软件需求SoftwareRequirements,(2)软件设计SoftwareDesign,(3)软件构造SoftwareConstruction,(4)软件测试SoftwareTesting,(6)软件配置管理ConfigurationManagement,(5)软件维护SoftwareMaintenance,(7)软件工程管理SoftwareEngineeringManagement,(9)软件工程工具和方法SoftwareEngineeringToolandMethod,(8)软件工程过程SoftwareEngineeringProcess,(10)软件质量SoftwareQuality,软件工程知识体系软件工程知识体,(1)软件需求SoftwareRequirements,(2)软件设计SoftwareDesign,(3)软件构造SoftwareConstruction,需求是真实世界问题而必须展示的特性。,软件需求基础需求过程需求获取,需求分析需求规格说明需求确认,实践考虑,软件设计基础软件设计关键问题软件结构与体系结构,软件设计质量的分析与评价软件设计符号软件设计的策略与方法,定义一个系统或组件的体系结构、组件、接口和其他特征的过程。,指通过编码、验证、单元测试、集成测试和排错的组合,具体创建一个可以工作的、有意义的软件。,软件构造基础,管理构造,实际考虑,软件工程知识体系软件工程知识体,(4)软件测试SoftwareTesting,(6)软件配置管理ConfigurationManagement,(5)软件维护SoftwareMaintenance,软件测试基础与测试相关的度量,软件维护基础软件维护的关键问题,在有限测试用例集合上,根据期望的行为,对程序进行的动态验证。,测试级别测试过程,测试技术,在软件运行过程中,对可能出现的异常,运行环境的改变,作出处理,以保证软件正常运行。,维护过程维护技术,为了系统地控制配置的变更和维护在整个系统生命周期中的完整性和可追踪性,而标志软件在时间上不同点的配置的学科。,软件配置管理过程的管理软件配置项软件配置控制,软件配置状态统计软件配置审计软件发布管理和交付。,软件工程知识体系软件工程知识体,(7)软件工程管理SoftwareEngineeringManagement,(9)软件工程工具和方法SoftwareEngineeringToolandMethod,(8)软件工程过程SoftwareEngineeringProcess,(10)软件质量SoftwareQuality,处理软件工程的管理与度量,虽然度量是所有知识域的一个重要方面,但是这里涉及的是度量程序的专题。,启动和范围定义软件项目计划软件项目实施,评审与评价关闭软件工程度量,涉及软件工程过程本身的定义、实现、评定、度量、管理、变更和改进。,过程实施与变更过程定义,过程评估过程和产品度量,软件工程工具,软件工程方法,软件质量基础,软件质量管理过程实践考虑,软件工程知识体系软件工程知识体,软件工程的相关学科认知科学和人的因素计算机科学计算机工程管理和管理科学项目管理系统工程数学软件工程作为知识领域被其他计算学科引用计算机科学计算机工程计算机信息系统计算机信息技术,软件工程知识体系,SWEBOK:软件工程知识体SEEK:软件工程教育知识体,软件工程知识体系SEEK,Computing,ComputerEngineering,ComputerScience,InformationSystem,InformationTechnology,SoftwareEngineering,FutureModel,软件工程知识体系SEEK,CS知识领域(IEEE/ACM),01.离散结构(DS)02.程序设计基础(PF)03.算法极其复杂性(AL)04.程序设计语言(PL)05.计算机结构(AR)06.操作系统(OS)07.人-机交互(HC),08.图形学,可视化,多媒体(GR)09.智能系统(IS)10.信息管理(IM)11.以网络为中心的计算(NC)12.软件工程(SE)13.数值计算科学(CN)14.社会道德和职业问题(SP),红色表示与CE共域,软件工程知识体系SEEK,CE知识领域(IEEE/ACM),01.计算机体系结构和组织CAO02.计算机系统工程CSE03.电路和信号CSG04.数据库系统DBS05.数字逻辑DIG06.数字信号处理DSP07.电子学ELE08.嵌入式系统ESY09.算法和复杂性ALG,10.人机交互HCI11.计算机网络NWK12.操作系统OPS13.程序设计基础PRF14.社会和职业问题SPR15.软件工程SWE16.VLSI设计与构造VLS17.离散结构DSC18.概率和统计PRS,红色表示与CS共域,软件工程知识体系SEEK,SE知识领域(IEEE/ACM),红色表示与CS共域(SEEK),01.计算的本质02.数学与工程基础03.职业训练04.软件建模与分析05.软件设计06.软件验证,07.软件进化08.软件过程09.软件质量10.软件管理11.系统与应用专题,软件工程知识体系SEEK,IS知识领域(IEEE/ACM),信息技术,01.计算机体系结构02.算法与数据结构03.编程语言04.操作系统05.电信系统06.数据库07.人工智能,组织与管理,系统理论与开发,01.基本组织理论02.信息系统管理03.决策理论04.组织性能05.过程变动管理06.职业道德07.专业领域08.人际关系,01.系统与信息02.系统开发途径03.系统开发方法04.系统开发工具技术05.应用计划06.风险管理07.项目管理08.信息与商务分析09.信息系统设计10.系统实现与测试11.系统操作与维护12.专用信息系统开发,+,+,软件工程知识体系SEEK,SEEK的主要框架知识领域、知识单元、知识点知识单元的参考学时学生掌握知识点的方式知识理解应用标识知识点的重要程度核心必修选修用SEEK制定课程计划的途径,软件工程知识体系SEEK,软件需求软件设计软件构造软件测试软件维护软件配置管理软件工程管理软件工程过程软件工程工具和方法软件质量,计算基础数学和工程基础职业训练软件建模与分析软件设计软件验证与确认软件进化(演化)软件过程软件质量软件管理,SWEBOK,SEEK(CCSE),本科知识体系,行业知识体系,与CSCE交叉,主要内容,工程能力概述软件工程知识体系软件工程系统能力,软件工程系统能力,软件工程经济能力软件工程管理能力软件工程技术能力,软件工程系统能力软件工程经济学,SoftwareEngineeringEconomics是研究软件的分析、设计、开发和维护的工程经济方法的一门学科分支SoftwareEngineeringManagement是研究软件的分析、设计、开发和维护的工程管理方法的一门学科分支SoftwareEngineeringTechnology是研究软件的分析、设计、开发和维护的工程技术方法的一门学科分支SEE特点SE和工程经济学的交叉学科SE中经济问题和经济规律为研究对象的一门分支学科研究为实现特定功能需求的SE项目所提出的技术经济方案(产品与服务)的规划论证、分析、设计与比较决策的系统方法论的一门分支学科,软件工程系统能力软件工程经济学,具体解决软件工程的4个W问题的系统方法是否生产(Whether)?涉及成本、效益、风险、投资/筹资为谁生产(Forwhom)?用户需求设计、产品特性、功能价值怎样生产(How)?生产过程的计划、组织、协调与控制何时生产与交工(When)?工期、发行、定价、销售,软件工程系统能力软件工程经济学,组织协调,成本效益,时间进度工期,生产效率,质量,软件工程系统能力软件工程经济学,任何对软件项目的工程经济分析与研究都必须从实体、时间、要素三个维度的层面展开,时间维,要素维,实体维,设计,规划,分析,构建,运行与维护,人,生产率,成本,投资,效益,定价,质量与可靠性,软件,硬件,数据,软件工程系统能力软件工程经济学,软件工程生存周期的工程经济活动及其关联,可行性分析,成本质量工期与进度控制,风险控制,投标与招标,时间资源成本计划,投资与融资,设备工具原料厂房的购买或租赁,团队组织与建设,生产过程设计与分析,测试计划与组织,软件发行,软件定价,软件销售,销售收入,效益/利润,税金,项目折旧,项目成本,软件工程系统能力软件工程经济学,投资:企业为了实现某种特定的目标(获利、避险)而进行的资金投放或运行的经济活动生产性投资、非生产性投资(衍生品、放贷)建设项目投资:人们在社会生产活动中,为实现某项目(如软件项目、基本建设项目)特定的生产与经营目标而预先垫付的资金固定资产投资(厂房、生产工具)流动资金投资(工资、原材料)无形资产投资(专利、商标),软件工程系统能力软件工程经济学,筹资来源国内外银行贷款;国家、地方政府等管理部门申请基金与贷款向其他企业、亲友、同学、同乡等筹集借款国外企业直接投资或合资经营发行股票、债券融资、风险投资,软件工程系统能力软件工程经济学,成本:为取得各项生产要素、商品及劳务以及实现某些特定经济目的而发生的各种耗费。会计成本:指会计记录在企业账册上的客观的和有形的支出,包括生产经营过程中发生的原材料、动力、工资、租金、广告、利息等支出。按我国财务制度规定,总成本费用组成生产成本直接成本期间费用:管理费用、财务费用、销售费用间接成本,软件工程系统能力软件工程经济学,收入:企业在销售产品、提供劳务及其他使用本企业资产等经济活动中所形成的经济利益的总流入营业收入:产品销售收入、劳务收入其他业务收入:材料销售、无形资产转让等营业外收入:罚金收入、固定资产盘盈等投资收益:股利收入、利息收入,软件工程系统能力软件工程经济学,税金:国家为实现其发展经济、提高人民生活等职责需要,依据法律规定对具有纳税义务的单位和个人征收的财政资金税收是财政收入的主要来源,也是国家参与国民收入分配和再分配的一种形式。增值税、所得税销售税金及附加:营业税、城市维护建设税、教育费附加各税种的纳税对象、纳税依据和税率各不相同,软件工程系统能力软件工程经济学,利润:企业经营所追求的主要目标,它体现了企业在一定时期的经营成果,也是工程经济分析的重点销售利润=销售收入-总成本费用-销售税金及附加利润总额=销售利润+投资净收益+营业外收入-营业外支出税后利润=利润总额-所得税,软件工程系统能力软件工程经济学,项目招标与投标项目评价与决策软件成本与价值工程软件定价与营销软件项目的经济与社会效益软件项目的风险与控制,软件工程系统能力,软件工程经济能力软件工程管理能力软件工程技术能力,软件工程系统能力软件工程管理能力,软件项目管理概述软件合同管理软件度量软件项目跟踪软件配置管理软件团队管理,软件工程系统能力软件项目管理概述,软件工程系统能力软件项目管理概述,软件工程系统能力软件项目管理概述,项目经理,需求工程师,系统分析师,程序员,软件测试工程师,文档工程师,客户服务,培训主管,配置管理员,质量保证工程师,外包主管,软件工程系统能力软件项目管理概述,软件项目管理:对软件项目开发过程中所涉及的过程、人员、产品、成本和进度等要素进行度量、分析、规划、组织和控制的过程,以确保软件项目按照预定的成本、进度、质量要求顺利完成项目管理的对象项目项目管理的组织特点临时性、富有柔性项目管理的手段计划、组织、指导和控制项目管理的目标实现项目全过程的动态管理及项目的目标,软件工程系统能力软件项目管理概述,软件项目中常见问题需求不明确,变化比较多工作量估计过低项目团队水平不足开发计划不充分项目经理的管理能力不足软件项目管理的成功原则平衡原则高效原则分解原则实时控制原则分类管理原则简单有效原则规模控制原则,软件工程系统能力软件项目管理概述,项目主要的利益相关体项目业主:项目的投资人和所有者项目客户:使用项目成果的个人或组织项目经理:负责管理整个项目的人项目实施组织:完成一个项目主要工作的企业或组织项目团队:具体从事项目全部或某项具体工作的组织或群体,软件工程系统能力软件项目管理概述,项目经理是项目组织的核心和项目团队的灵魂,是实现项目目标的责任人,对项目进行全面的管理项目经理的管理水平、经验水平、知识结构、个人魅力都对项目的成败起着关键作用项目经理的职责确保项目目标实现开发计划组织实施项目控制,软件工程系统能力软件工程管理能力,软件项目管理概述软件合同管理软件度量软件项目跟踪软件配置管理软件团队管理,软件工程系统能力软件合同管理,合同:使卖方负有提供具体产品和服务的责任,买方负有为该产品和产品服务付款的责任的一种双方相互负有义务的协议定义合同签署方的权利与义务,以及违背协议会造成的相应法律后果监督项目执行的各方履行其权利和义务,具有法律效力的文件围绕合同,存在合同签署之前和合同签署之后的一系列工作,软件工程系统能力软件合同管理,软件项目合同主要是技术合同技术合同是法人之间、法人和公民之间、公民之间以技术开发、技术转让、技术咨询和技术服务为内容,明确相互权利义务关系所达成的协议技术合同有三种环境:需(甲)方环境、供(乙)方环境和内部环境,软件工程系统能力软件合同管理,合同生存期,需方,供方,招标书定义:确定需方的采购内容,供方选择:以招标方式选择供方,合同文本准备:需方与供方起草合同文本,正式签署合同成为具有法律效力的文件,分解需方任务,下达任务书,指派项目经理,采购对象验收:需方对供方交付的产品或服务进行验收检验,保证满足合同条款要求,违约事件处理:若供方发生与合同要求不一致的问题,导致违约事件,需执行违约事件处理,项目满足结束条件,项目经理/合同管理者宣布项目结束,终止合同执行,告知各方合同终止,项目分析:分析需方项目需求,开发出初步项目计划,项目竞标:能力评估、可行性分析和参加竞标,合同文本准备:需方提供合同框架结构,并起草主要内容,供方提供意见,正式确定供方项目经理项目任务书明确项目目标和约束,授权项目经理项目经理对任务书进行确认,合同跟踪管理合同修改控制违约事件处理产品交付产品维护,项目验收双方认可签字项目经验教训总结合同最后款项交付发票开具需方合同终止通知获取合同相关文件归档,软件工程系统能力软件工程管理能力,软件项目管理概述软件合同管理软件度量软件项目跟踪软件配置管理软件团队管理,软件工程系统能力软件度量,软件度量(Metrics)是指对软件产品、软件开发过程或者资源的简单属性的定量描述。产品:软件开发过程中所生成的各种文档和程序过程:与软件开发有关的各种活动,如软件设计等资源:软件开发过程中所需支持,如人员、费用等注:定量描述,而不是定性描述简单属性,无需参照其它属性便可直接获得定量描述,软件工程系统能力软件度量,软件测量(Measure)是对软件产品、软件开发过程和资源复杂属性的定量描述,它是简单属性度量值的函数,软件测量用于事后或实时状态,如软件可靠性注意点定量描述,而不是定性描述复杂属性-不可直接获得、需参照其它属性的度量值实时或者事后状态,用于对历史进行评估,软件工程系统能力软件度量,估算(Estimation)对软件产品、软件开发过程和资源复杂属性的定量描述,它是简单属性度量值的函数,软件估算用于事前,如软件开发成本注意点定量描述,而不是定性描述复杂属性-不可直接获得、需参照其它属性的度量值事前状态可采用经验公式,也可参考历史资料和数据。估算的结果一般用于签订合同、立项、制定工作计划等,软件工程系统能力软件度量,三个方面产品:各种文档和程序过程:各种软件开发活动资源:各种资源如人员、费用等,软件工程系统能力软件度量,两个层次内部属性软件产品,过程和资源本身所具有属性,如软件产品的复杂度、程序长度等易于度量外部属性软件产品,过程和资源与外部环境(用户、管理人员等)间的关系如成本、效益、可靠性、可维护性等难以度量,但由内部属性所决定,软件工程系统能力软件度量,软件工程系统能力软件度量,面向规模的度量:用软件代码行数目来表示软件项目规模面成功能的度量:用软件的功能表示软件的规模软件项目成本和工作量估算:参照和依据已完成项目的历史数据将大项目分解为小项目将项目按照软件生命周期分解根据经验估算公式上述方法可以同时、单独或者组合使用软件质量度量:McCall的软件质量度量模型,软件工程系统能力软件工程管理能力,软件项目管理概述软件合同管理软件度量软件项目跟踪软件配置管理软件团队管理,软件工程系统能力软件项目跟踪,软件项目跟踪:在项目实施过程中,随时掌握项目的实际开发情况,使得当项目实施与计划相背离,或者出现问题和风险时,能够采取有效的措施知道项目的实际执行和实施情况知道项目实施过程中(可能)出现了哪些问题知道如何采取措施防止问题的出现,或者出现时该采取什么办法减少它给软件项目实施带来的影响和损失,软件工程系统能力软件项目跟踪,软件项目跟踪的对象项目风险项目进展开发活动进展开发活动问题项目展望,技术风险进度风险成本风险人员风险工具和设备风险,工作量估算的不准确用户需求的变更交流的不畅人员的变更其他不可预知情况的干扰,详细具体了解各项活动的实际情况开发活动的计划将实际进展与计划进行比较,了解偏差,以便采取措施,具体项目的特殊情况计划的不全面性规程的不完备性交流的不充分性,后续主要成果公开发布日期产品交付日期,软件工程系统能力软件项目跟踪,软件开发计划活动和关系进度计划资源和人员计划成本计划软件项目实际实施过程实施了的实际进度实施面临的问题,软件工程系统能力软件项目跟踪,成立项目跟踪小组PTT(ProjectTracingTeam)由项目组成员(小项目)或者负责人(大项目)组成指定项目跟踪负责人负责协调项目进度的跟踪工作定期召开项目跟踪会议,获取项目实施的详细情况和面临的问题最好定期每周一次了解项目实施情况汇报问题,软件工程系统能力软件项目跟踪,跟踪对象,项目风险项目进展项目活动,开发活动问题项目展望,跟踪目标,项目跟踪负责人项目跟踪会议项目跟踪小组,软件工程系统能力软件工程管理能力,软件项目管理概述软件合同管理软件度量软件项目跟踪软件配置管理软件团队管理,软件工程系统能力软件配置管理,软件项目进行中面临的主要问题是持续不断的变化;配置管理是有效管理变更的手段,它贯穿着几乎软件的整个生命周期,开发人员使用错误的版本修改程序开发人员未经授权修改代码或文档,或修改的结果不能及时反映到各个相关部分人员流动,交接工作不彻底造成软件关键部件遗失已修复的Bug在新版本中出现,找不到某个文件的历史版本无法重新编译某个历史版本,使维护工作十分困难因协同开发中,或者异地开发,版本变更混乱导致整个项目失败,软件工程系统能力软件配置管理,配置的概念来自硬件,例如,计算机系统的CPU、磁盘以及外设配置等等配置管理是用于控制系统一系列变化的学科通过一系列技术,方法和手段来维护产品的历史,鉴别和定位产品独有的版本,并在产品的开发和发布阶段控制变化软件配置管理是对软件产品进行标志、存储和控制,以维护其完整性、可追溯性以及正确性,它为软件开发提供一套管理办法和活动原则,软件工程系统能力软件配置管理,软件配置项:凡是纳入配置管理范畴的工作成果统称为配置项。配置项主要有两大类:属于产品组成部分的工作成果,例如源代码、需求文档、设计文档、测试用例等等。在管理过程中产生的文档,例如各种计划、状态报告等等,这些文档虽然不是产品的组成部分,但是值得保存。每个配置项的主要属性有:名称、标识符、文件状态、版本、作者、日期等所有配置项都被保存在配置库里,确保不会混淆、丢失;配置项及其历史记录反映了软件的演化过程,软件工程系统能力软件配置管理,基线:是软件生存期各开发阶段末尾的特定点,也称为里程碑。基线(Baseline)由一组配置项组成,这些配置项构成了一个相对稳定的逻辑实体。基线中的配置项被“冻结”了,不能再被随意修改。基线通常对应于开发过程中的里程碑(Milestone),一个产品可以有多个基线,也可以只有一个基线。基线的主要属性有:名称、标识符、版本、日期等通常将交付给客户的基线称为一个“Release”;为内部开发用的基线则称为一个“Build”,软件工程系统能力软件配置管理,配置管理过程制定配置管理计划配置项标识、跟踪配置管理环境建立基线变更管理配置审核配置状态统计,确定软件配置管理的解决方案,确定要控制哪些文档,将软件项目待控制部分拆分为软件配置项,为其建立唯一标识和相互对应关系,进行系统跟踪和版本控制,建立配置管理库,存储所有基线配置项及相关文件,通过变更请求、变更评估、变更批准/拒绝、变更实现完成配置控制,确保某一变更请求已被确切实现,包括配置管理活动审核和基线审核,检查配置管理系统和内容,检测配置项变更历史的过程,软件工程系统能力软件配置管理,配置管理实施,确定初始基线:由配置管理委员会确定研发活动的初始基线配置库管理:配置人员根据软件配置管理规划设立配置库和工作空间,为执行软件配置管理做好准备,并定期执行备份和清理工作授权开发:开发人员按照统一的软件配置管理策略,根据获得授权的资源进行项目研发工作,集成:系统集成人员按照项目进度集成组内开发人员的工作成果,构建系统,推进版本演进管理基线:配置管理委员会根据项目的进展情况,并适时地建立基线,批准基线变更,保证开发和维护工作有序地进行产品开发:系统集成人员进行产品集成,由配置管理委员会批准,进行发布,软件工程系统能力软件工程管理能力,软件项目管理概述软件合同管理软件度量软件项目跟踪软件配置管理软件团队管理,软件工程系统能力软件团队管理,由一组具有共同目标、相互关联、相互合作的人组成的一个集体,例如战斗小组共同的目标明确的任务相互关联相互合作软件项目组就是一个团队目标:开发出软件产品、完成项目任务:需求分析、设计、管理相互关联:工作的依赖相互合作:解决问题,软件工程系统能力软件团队管理,软件项目团队的特征是一个临时性的团队是跨职能的在软件项目不同阶段中团队成员具有不稳定性成员具有极大的流动性年轻化程度高软件项目团队属于高度集中的知识型团队员工业绩难以量化考核软件项目团队非常注重自我高效的软件开发团队是建立在合理的开发流程及团队成员密切合作的基础之上,团队成员需共同迎接挑战、有效的计划、协调和管理各自的工作直至成功完成项目目标,软件工程系统能力软件团队管理,软件项目团队管理是运用现代化的科学方法,对项目组织结构和项目全体参与人员进行管理,在项目团队中开展一系列科学规划、开发培训、合理调配、适当激励等方面的管理工作,使项目组织各方面人员的主观能动性得到充分发挥,以实现项目团队的目标软件项目团队管理包括:团队的组织团队的交流和合作团队的纪律团队的激励机制,软件工程系统能力软件团队管理,高效成功团队的特征明确角色和职责各个成员清晰、明确地知道自己做什么项目计划监控个人表现和提供反馈让成员知道是可接受的还是有待进一步提高项目跟踪、质量保证有效沟通易于获得信息、沟通的媒介、参与、记录沟通配置管理、会议、文档化以事实为依据提供决策决策要依赖于事实依据,而不是主观判断相互帮助、不断改进、勇于创新的文化,软件工程系统能力软件团队管理,团队典型错误挫伤积极性如:要求工作到深夜,老板长时间休假而员工假期加班,到项目结束时无奖金人员素质低人员的选择着眼于尽快雇佣到人,而不是在项目周期中工作最好的人,虽然可以使项目尽早启动,但不能确保项目尽快完成英雄主义中等管理水平的项目经理更为强调团队精神,软件工程系统能力软件团队管理,项目后期加入人员火上浇油对有问题的员工失控这是项目组员对领导最常见的抱怨办公环境拥挤嘈杂开发人员与客户之间发生摩擦如客户不在开发计划上签字、需求确定后的需求变更、拒绝接受已完工的产品主要原因是缺少沟通,软件工程系统能力软件团队管理,缺乏有效的项目支持没有有效的高层支持;高层人员强迫开发者接受不现实的项目进度等缺乏各种角色的齐心协力缺乏用户介入没有用户早期介入的项目充满需求误解的风险政治高于物质政治家型项目组的精力集中在于领导的关系,在项目初期,会运行得很好,但进入中后期,会失败,软件工程系统能力软件团队管理,团队为什么会失败缺乏共同的远景没有认同感缺乏认可感生产力障碍低效率的沟通缺乏信任有问题的员工责、权、利不统一,软件工程系统能力,软件工程经济能力软件工程管理能力软件工程技术能力,软件工程系统能力软件工程技术能力,软件编码软件维护,软件工程系统能力软件编码,生命周期人的生命周期:婴儿、幼儿、儿童、少年、软件生命周期软件从提出开发开始到最终灭亡所经历的时期,软件工程系统能力软件编码,可行性研究,需求分析,概要设计,详细设计,实现,集成测试,确认测试,使用与维护,退役,软件定义,软件开发,维护,了解用户要求和现实环境,从技术、经济、市场等方面研究并论证开发该软件系统的可行性,确定用户对待开发软件系统的需求(功能、性能和运行环境约束),建立目标软件系统总体结构、设计全局数据库和数据结构,规定设计约束,制定集成测试计划等,细化概要设计所生成的各模块,详细描述程序模块的内部细节(算法,数据结构等),形成可编程的程序模块,制订单元测试计划,根据详细设计规格说明书编写源程序,并对程序进行调试和单元测试,验证程序与详细设计文档一致性,根据概要设计规格说明书,将经过单元测试的模块逐步进行集成和测试,根据软件需求规格说明书,测试软件系统是否满足用户的需求,对使用后的软件进行维护修正使用过程中发现的错误纠错性维护增加新的功能完善性维护从一个环境搬迁到另一个环境适应性维护,软件工程系统能力软件编码,软件编码是软件产品由概念到实体的一个关键过程,它将详细设计的结果翻译成用某种程序设计语言编写的并且最终可以运行的程序代码虽然软件的质量取决于软件设计,但是规范的程序设计风格将会对后期的软件维护带来不可忽视的影响,软件工程系统能力软件编码,书写良好的代码更容易阅读容易阅读的代码才容易被理解容易被理解的代码才健康编程风格体现了程序员对语言的理解水平求职:好的编程风格给别人良好的第一印象,是获得高薪的第一步,软件工程系统能力软件编码,编码规范:相关英文说法:codingstandard,codingconvention,codingcriterion是指被普通采用的、或由某个企业或机构规定的,用计算机语言编写程序的过程中需要遵守的一套规则或约定的集合编码规范并不是语言的语法规则不同的公司,对同一种开发语言,一般都采用类似的规范,也就是说编码规范具有一些通用性的标准,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论