软件开发的流程及微软的产品开发实践课程_第1页
软件开发的流程及微软的产品开发实践课程_第2页
软件开发的流程及微软的产品开发实践课程_第3页
软件开发的流程及微软的产品开发实践课程_第4页
软件开发的流程及微软的产品开发实践课程_第5页
已阅读5页,还剩52页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

软件开发的流程

及微软的产品开发实践

微软嵌入型操作系统部BillLuanProgramManagerWindowsEmbedded,MicrosoftBLuan@M讲题目录引言:工程管理理论的介绍工程软件开发的流程及特征软件产品和系统开发工程的管理微软的传统文化及关键实践介绍问答工程管理的定义工程管理是为了完成一个工程的需求和目的所进行的管理工作。它应由专门的工程管理人员来负责,使用必要的知识、技术、工具等将工程管理的九个领域的知识对整个工程的五个阶段的流程运作进行管理来到达工程的最终目的。工程管理人员不仅要完成工程预定的范围、时间、费用、和质量的目标,他们还必须建立并充分利用与五个流程相对应的规章制度来促进工程的顺利进展、满足所有工程参与者的期望和他们的工作要求。引言:工程管理理论的介绍工程管理的九个领域性知识工程综合的管理(ProjectIntegrationManagement)工程范围的管理(ScopeManagement)工程时间的管理(TimeManagement)工程费用的管理(CostManagement)工程质量的管理(QualityManagement)工程人才资源的管理(HumanResourceManagement)工程信息交流的管理(CommunicationManagement)工程风险的管理(RiskManagement)工程外包的管理(ProcurementManagement)引言:工程管理理论的介绍参见Schwalbe,ProjectManagement2024工程流程的概念及五个流程阶段流程(Process)指的是完成每项工作的先后顺序和特定的运行周期工程流程的管理是指对工程运作过程的管理工程管理理论将工程流程划分了五个阶段:工程的起动阶段工程的方案阶段工程的执行阶段工程的控制阶段工程的结束阶段引言:工程管理理论的介绍工程流程管理的根本概念结束

计划控制执行

起动

引言:工程管理理论的介绍讲题目录引言:工程管理理论的介绍工程软件开发的流程及特征软件产品和系统开发工程的管理微软的传统文化及关键实践介绍问答软件开发工程的流程概念和管理工程软件开发的流程及特征软件开发工程的流程-被重复的方案和执行阶段工程软件开发的流程及特征对以上开发操作里程的分析(1)此通用流程时间表为各种开发工程的参考。各工作工程的时间长短需要视工程具体的要求来决定,且有的里程(如RC1,RC2)可有可无.关键点:功能需求必先于设计构划.程序设计必后于设计构划.设计构划书的周密严谨关系到整个产品开发的成败和质量.测试要与程序设计同步进行,以便及时纠错.工程软件开发的流程及特征对以上开发操作里程的分析(2)关键点:每个工程的时间进度表的制定应包括所有重要的里程碑.工程进度的跟踪以它们为准.对开发前期的工作工程花的工夫越多,如功能需求总结和设计构划书的撰写尽量做到周密严谨,和用户同一认识,后期的工作工程如编程测试等造成返工重做的机率就越小,会对整个工程的高效率和低开支起很大的促进作用.工程软件开发的流程及特征讲题目录引言:工程管理理论的介绍工程软件开发的流程及特征软件开发工程管理的指南微软的传统文化及关键实践介绍问答软件开发工程管理的指南软件工程需求管理的指南软件设计标准书撰写的指南开发管理的指南测试的管理指南团队建设的指南软件工程需求管理的指南功能需求是描述一个产品或工程该做什么,该提供什么功能,该完成什么任务的总结任何一个工程在开发前都有一列功能需求它可来自客户的要求,或市场的反响,或利用新技术增加新功能以便使产品更新换代的驱动它是一个工程的最前期的管理,也是把握工程范围的关键-设计是建立于功能需求的根底上的:功能需求总结越完善,设计就会越周密,测试就会越彻底,工程的质量就越好.软件开发工程管理的指南软件工程需求管理的指南如果没有完善的功能需求总结会发生什么?功能需求不正确会导致设计错误,导致推翻设计重新来过,造成人力和时间的浪费和客户对功能需求的理解不一致,导致客户最终不接受产品或系统,或不断要求再加新功能模糊不清的功能需求总结导致关键功能缺失,或开发人员瞻自参加不需要的功能,造成浪费不完善的功能需求总结导致无法建立准确的工程方案和时间表,也使工程进度的追踪困难大软件开发工程管理的指南软件开发工程管理的指南软件工程需求管理的指南功能需求总结是受多方面因素影响的软件开发工程管理的指南软件工程功能需求总结撰写的指南(1)应有的章节撰写内容(分析思考)的纲领前言或梗概产品或项目的开发的目的该文件使用的准则,文件读者范围及要求其它有关参考资料商务需求竞争这和竞争产品的分析总结为满足客户或赢得市场竞争所必须完成的功能使用者需求

产品的客户客户的特征及使用者的培训要求功能需求总结产品或项目的开发范围产品或项目功能的阐述产品或系统运行的环境产品使用界面的要求软件开发工程管理的指南软件工程功能需求总结撰写的指南(2)应有的章节撰写内容(分析思考)的纲领系统需求运行环境的要求,包括运行平台、网络、及其它硬件的要求与其它系统兼容的要求,包括与操作系统、数据库、浏览器、及其它运用软件的兼容要求与外部其它系统和组件的接口的要求现存系统的操作和运行要求系统的整体使用界面的要求性能需求开发产品的对输入的反应速度要求运行速度的快慢要求反馈的准确性的要求使用界面的清晰度的要求软件开发工程管理的指南软件工程功能需求总结撰写的指南(3)应有的章节撰写内容(分析思考)的纲领质量需求整个软件的已知的缺陷和故障的数量测试的要求对意外事件、使用操作中的错误、及数据的错误的应付能力对信息和数据超载的应付能力系统的稳定性,安全性的要求非功能需求必须遵守的国家、地区、和企业界里的某些标准和规章条例合同中客户的其它特别要求开发局限影响到开发成功的因素所需的人才、费用、技术、设备、及其它资源软件开发工程管理的指南从使用方案到功能设计的三步法使用方案对客户产品使用产品的方法和过程的具体描述功能需求每一个使用方法中解决具体问题所需要的功能功能设计每一个具体的功能和性能特点的设计软件开发工程管理的指南从使用方案到功能设计的三步法使用方案A功能需求A1功能设计A1-1功能设计A1-2功能需求A2功能设计A2-1使用方案B功能需求B1功能设计B1-1功能设计B1-2功能需求B2功能设计B2-1功能设计B1-3功能设计B2-2怎样管理功能需求总结的流程?–(1)制定一套功能需求改变的流程:任何需求改变的决定都得经过这套流程的批准组建一个需求改变管理班,核审任何需求改变对任何功能需求改变的要求,都要进行此改变对已在进行的工程中其它局部影响的分析对任何已批准的需求改变作受其影响的跟踪,记录由此带来的对设计,编程,测试,文档编写等其它工程局部的带来的工作增量及时间的推迟软件开发工程管理的指南怎样管理功能需求总结的流程?–(2)制定功能需求的基准线:将工程开始时和客户已经同意的功能需求作一记录.以后任何不同于此根底线的需求改变都得经过事先设定的功能需求改变流程的审核和批准.对任何需求改变的历史都做档案记录–日期,要求,改变的理由,内容,工作量,版本,等等.衡量工程功能需求的稳定性–工程中改动有多少,以便有具体的数字来做控制需求改变的指南.软件开发工程管理的指南当你有了这套需求改变的管理制度你能向客户展示你工程管理的流程中怎样控制需求改变你更便于和客户对工程的要求统一认识完善的控制需求改变管理将帮助你〞守住你的防线〞–保护工程质量,时间表,及你的利润使客户能更好地理解你为什么可以拒绝需求改变或设计改变的要求,或为什么需求改变或设计改变会导致费用升高或质量降低.软件开发工程管理的指南软件开发工程管理的指南软件工程需求管理的指南软件设计标准书撰写的指南开发管理的指南测试的管理指南团队建设的指南软件设计标准书撰写的指南设计标准书(DesignSpecification)是什么?设计构划书是描写软件产品或系统具体功能特性和设计方案的文件它是整个产品或系统的蓝图-开发设计和测试方案都以次为根底进一步撰写它由设计工程经理负责撰写,组织核审,并根据开发过程中的由编程设计改动作随时的订正,使文件中的设计与具体的编程随时保证同步.软件开发工程管理的指南软件开发工程管理的指南软件设计标准书撰写的指南(1)应有的章节撰写内容的纲领前言题目、作者、日期、版本用简短的段落阐述软件产品或系统的目的。用一句话来列出该产品的最重要的三到五项功能特性来做开场白开发范围此章节列出软件产品或系统开发项目该包括的功能,及哪些虽然很值得但此项目不包括的功能。开发理由此章节回答以下问题:为什么要开发此产品或系统;为什么要按此设计来开发此产品或系统。开发目标此章节回答以下问题:此产品或系统完成后要达到什么目的,能解决什么客户或使用者的问题,在运行速度,效率,使用方便性,质量等方面的目标软件开发工程管理的指南软件设计标准书撰写的指南(2)应有的章节撰写内容的纲领功能需求此章节回答以下问题:此产品或系统要能提供什么样的功能,功能要达到什么样的特性与效益。哪些是必须有的功能与效益,哪些是可有可无的使用概况方案此章节回答以下问题:各关健功能会被怎样使用,使用者与客户是谁,使用者应有的水平,及教育或培训客户的要求是什么。运行需求此章节回答以下问题:此产品或系统对运行环境的各种要求,如操作平台要求,硬件要求,网络要求,系统安全要求,使用时按规章执行的要求,等等.开发时间表此章节列出该项目的开发时间表,对每一具体开发任务所需的人力及时间的初步估计,及所有的项目里程碑软件开发工程管理的指南软件设计标准书撰写的指南(3)应有的章节撰写内容的纲领成功所依赖的因素此章节列出对所有可以估计到的外在制约的因素,特别是写明哪些因素是该项目成功所依赖的,如特别的人才,设备,所需的技术,等等.未解决的问题此章节列出任何尚未解决的问题,或有待近一步调查商讨才能定出答案的有关设计方案和计划,及任何与客户间尚未同意的事项,等等.产品功能设计的具体描述此章节列出此产品或系统所有设计细节–对每个功能及设计,及运用时的使用界面,做详细的解释。对使用界面的设计,配备大量图例,对每个控制键,使用界面,该显示的文字,图像,出错的回馈,等等,作具体地解说。软件开发工程管理的指南软件设计标准书例如-用表列出使用行为UIElement:Mainwindowview,whenanindividualCategorynodeisselectedintheSLDBrowserwindowBehavior:WhentheuserclicksonanyCategoryNode–Categories,CDshoulddisplaythispaneontherighthandside.Atthetopportionofthepane,itshouldcontainthestandardpropertiesforallCategoryobjects:Name,Description,Version,Owner,etc.PlatforminformationfortheCategorynodeisshowninaread-onlytextboxbelow.ThereisaPlatformbuttonthatallowstheusertoselectasecondaryplatform.Itworksthesamewayasthatdescribedin2.11.1.ExtendedProperties:UsercanattachanynumberofExtendedPropertiestoaCategoryusingtheAdvancedbutton.Thisisthesameasdescribedinsection2.11.2above.Menu:

Allmenuitemsshouldbeenabledaccordingly.Toolbarbuttons: 1.Alltoolbarbuttonsshouldbeenabled.2.Tooltipsshouldbeallenabledforallbuttons,evenonthegrayedoutbuttons.WindowTitle Thewindowtitlebarshoulddisplaytheproductname“WindowsXPEmbeddedComponentDesigner”,followedbya“-“,followedbytheselectedSLDfilename,followedbya“:”,followedbytheselectedcategorynodename.Forexample,“WindowsXPEmbeddedComponentDesigner–NetworkDriver.SLD:Software:Systems”StatusbartextThenameoftheNELnode,forexample,ifitisaCategorynode:Category:Software:System:ApplicationManagement软件开发工程管理的指南软件设计标准书例如-用图示来解释设计及使用软件开发工程管理的指南软件设计标准书例如-用图示来解释设计及使用软件开发工程管理的指南软件设计标准书例如-每个性能都参加测试的要求FeatureName:AcommandlineswitchtosupportsilentmodefortheDOSprogramSDI2HD.EXEUsageSyntax:Ifanyuserneedstorunthetoolinbatchmodeandwanttosuppressanyoutput,hecaninvokethetoolwiththesilentmodeswitch.Commandlineswitchof/Qforquietmode.Comments:

Withthisswitchenabled,noanyoutputwillbedisplayed.Ifthereareotherswitchedalsospecified,/Qwillsilenttheoutputfromthemall./Qhastheprecedenceoverotherswitches.Whenrunninginsilentmode,thedefaultvalueforanyselectionisyesandthedefaultswillbeused.Example:sdi2hdd:\MySDIFile.SDI/d1/Qsdi2hdd:\MySDIFile.SDI/d1/I/Q(Evenof/Iisused,SDIheadinformationwillnotbedisplayedinthiscase).TestRequirements:Ensurethatwhen/Qisused,noscreenoutisgenerated.Iftherearemorethanonecommandlineswitchesareused,allthescreendisplayoutputwillbesuppressed.软件开发工程管理的指南软件开发的种类软件工程需求管理的指南软件设计标准书撰写的指南开发管理的指南测试的管理指南团队建设的指南开发管理的一些指南(1)写任何程序前一定要先有设计构划书任何复杂的系统程序要先有构架设计书对系统组件有明确的功能定义.对组件的接口的设计事先有完整的纪录.构架设计书由构架设计师或开发工程师的领导人员来撰写.构架设计书要通过工程经理和测试人员在内的审核及通过,才能开始编写程序.软件开发工程管理的指南开发管理的一些指南

(2)

建立程序原代码的提交库,并建立完整的原代码的提交的流程管理制度原代码只允许一人改动.改动前先要从提交库申请出原代码.改动后再送进提交库.改动完先要在开发工程师的机器上编译,与其它组件一起运行过,确证没有致命的缺陷后,才能送进原代码的提交库.在产品发行前,整个提交库都被锁上,只有被批准的缺陷修补的原代码才能提交进库.软件开发工程管理的指南开发管理的一些指南(3)建立原代码互审的管理制度每个软件开发工程师遍写的原代码都有致少一个以上的同事对程序进行审查.建立原代码编写的标准每个软件开发工程师都应按照标准进行程序设计,包括编写的风格,格式,组件接口的标准,解说词的撰写,等等.软件开发工程管理的指南测试管理的一些指南(1)根据设计构划书撰写测试方案测试方案要请工程经理和开发工程师一起进行审查.测试方案用列表式将所有的测试方案写下.每个具体地的测试方案都有专人执行,并记录每个测试方案的结果.任何缺陷都记录下来.测试与开发同步进行在局部组件编写完后就进行.软件开发工程管理的指南测试管理的一些指南(2)测试方案执行中的本卷须知由测试员发现的缺陷分给开发工程师修改纠错.修改完毕由测试员先进行初步质量验证(SmokeTest),通过后才能由开发工程师送进原代码的提交库.每次任何影响到其它组件的程序纠错改动,不仅是经过改动的程序要重新测试,任何可能受到影响的其它组件或程序也必须重测(RegressionTest).发行前要进行全程测试(FullTestPass).软件开发工程管理的指南团队建设及管理的艺术建立分工清晰的团队从工程管理,产品或系统的设计,编程,测试,到使用书的编写,都有专人负责。具体的分工不能越职,如设计师搞测试。并将各局部该完成的时间表统一在整个工程的时间表里,公布于整个团队。软件开发工程管理的指南软件开发队伍的组织结构及功能副总裁(VP)总经理(GM)

产品单元经理(PUM)产品组经理GroupManager客户教育经理UEManager文档编辑员UEManager产品组项目经理GroupProgramManager(GPM)开发经理DeveloperManager质量保证经理QAManager项目经理ProgramManager(PM)软件工程师SoftwareDeveloper(SDE)测试工程师TestEngineer(QA)测试软件工程师SoftwareDeveloperinTest(SDET)设计项目经理FeaturePM发行项目经理ReleasePM产品使用性工程师UsabilityEngineer使用设计工程师UIDesigner开发团队常用的人员配备及工作分配(1)发行经理(ReleasePM)作用:工程流程的总管负责产品发行和开发工程流程的管理-对整个工程的流程设定规章制度制定工程的时间进度表和里程碑,和产品发行够格的衡量标准对整个工程的进程进行追踪、并向整个团队通报,对出现的问题及时协调并解决.掌握“除害三国会议〞(BugTriage)和“战争会议〞(WarMeeting)负责软件产品发行工作的管理软件开发工程管理的指南开发团队常用的人员配备及工作分配(2)设计经理(FeaturePM)作用:产品功能的设计师和使用客户的代言人确定工程范围和做需求管理总结。负责产品种各功能和性能的设计.撰写产品功能设计构划书(Specification)–进行功能设计和使用界面设计帮助其它团队制定开发方案、测试方案、和文档方案对功能设计作随时的必要调整和修改与发行经理通气、合作、对所负责的功能的开发进度进行追踪、对时间表进行随时的必要调整软件开发工程管理的指南开发团队常用的人员配备及工作分配(3)其他附助经理(OtherAuxiliaryPMs)作用:对工程的成功提供其它的必要支持负责产品的初版使用客户联络和支持与市场部门和销售部门协调合作进行与文档和界面设计团队协调合作进行与产品所依靠的其它内部团队协调合作软件开发工程管理的指南开发团队常用的人员配备及工作分配(4)软件开发工程师(SoftwareDeveloperEngineer):撰写产品编程的设计构划书(Developspec.).根据产品功能设计构划书和编程的设计构划书,编写产品开发的程序.软件测试工程师(SoftwareTestEngineer):根据产品功能设计构划书编写产品测试的构划书,并执行测试构划书定下的测试方案对产品和组件进行测试(白箱及黑箱应测试,等).软件开发工程管理的指南开发团队常用的人员配备及工作分配(5)测试工具工程师(SoftwareDeveloperinTest):

这是在测试部门的开发工程师.他们的任务不是开发厂品,而是编写产品测试所需要的自动测试的程序和工具.使用界面及性能设计师(UIDesigner):这是负责设计厂品可用性的人员.他们专做厂品的使用界面的设计,负责界面的设计统一性,布局的美观,使用流程的合理性.软件开发工程管理的指南团队建设及管理的艺术鼓励团队精神从工程的一开始就让所有成员都清楚地知道开发的目的和要求(ProjectVision)掌握好工作强度的松紧:时间方案要有张弛,防止长时要求员工加班加点,并定期举办给成员放松的活动。只紧不松只会降低效率.定期召开团队全体成员会议,通报工程进度,及开诚布公所遇到的问题。每次工程结束后召开成败总结经验会议,改进以后的流程。软件开发工程管理的指南讲题目录引言:学习工程管理的重要性工程管理理论的介绍软件开发工程的管理的指南微软的传统文化及关键实践介绍问答微软的传统文化及关键实践介绍设计在先,编码在后没有设计规划书就不写一行编程码所有的编码要有员工间的核审CodeReview,BuddyTest所有的编码在参加整体汇编前必须在开发工程师的机器上先汇编“吃你自己的狗食〞:产品发行前全体团队成员要自己使用尚未完善的产品,并报告缺陷.微软的传统文化及关键实践介绍专门的汇编团队负责整个产品的建造,并每天

温馨提示

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

评论

0/150

提交评论