您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 北方工业大学--软件工程管理
武当山新闻(news.wdsxx.com)第3章软件工程管理武当山新闻(news.wdsxx.com)第3章软件工程管理1)人员组织与管理2)软件规模与成本估算3)软件开发计划与控制4)软件配置管理5)软件质量管理武当山新闻(news.wdsxx.com)3.1人员组织与管理3.1.1项目负责人案例:某项目经理的工作写技术可行性方案写投标书写项目开发计划需求调研组建团队技术培训,制定软件框架和各种规范开发原型开发软件测试讨论接口方案发现解决新系统问题培训客户催开发款武当山新闻(news.wdsxx.com)3.1人员组织与管理3.1.1项目负责人项目经理应该做的工作确定项目目标明确职责权利熟悉工作流程掌握技术要点把握内外资源制定项目计划控制项目变更保持良好客户关系武当山新闻(news.wdsxx.com)3.1人员组织与管理3.1.2项目组形式项目组形式民主式主程序员式现代程序员组1)民主式小组各成员地位平等,大家说了算--容易激发大家的创造力,有利于攻克技术难关。每个人之间都要进行相互沟通--这种结构要求组织内的成员不能太多,软件的规模不能太大。缺乏权威领导,很难解决意见分歧的问题。适合于规模小、能力强、习惯于共同工作的软件开发组,不适合规模大的软件项目。2)主程序员式主程序员是技术熟练、有经验的开发人员,对系统设计、编程、测试和安装负全部责任。负责指导其他程序员完成详细设计和编码工作。程序员之间没有通信渠道,所有的接口问题都有主程序员处理。主程序员后备程序员编程秘书程序员程序员程序员2)主程序员式(续)后备主程序员支持主程序员的工作,负责程序测试方案、分析测试结构以及其他独立于设计过程的工作。编程秘书负责与项目有关的事务性工作,维护项目的资料、文档、代码和数据。程序员在主程序员指导下,完成详细设计和编程工作。程序员之间没有通信渠道,所有问题都由主程序员处理。2)主程序员式(续)项目组人员的分工明确简化了成员之间的沟通和协调,提高了工作效率。问题:主程序员必须同时具备高超的管理才能和技术才能,在现实中这种全能人才很难得。案例:1972年,纽约时报信息库管理系统使用了结构化程序设计技术和主程序员的组织结构,项目获得了巨大的成功。83000行源程序只用了11人年就全部完成,验收测试中只发现了21个错误,系统运行第1年只暴露了25个错误。3)现代程序员组现代程序员组的结构中,取消主程序员的行政管理工作,设置一名行政组长专门负责项目组管理工作。技术组长行政组长编程秘书程序员程序员程序员3)现代程序员组(续)责任范围定义清楚,技术组长只负责技术,不必处理诸如预算、法律等问题;行政组长负责非技术的事务。注意:软件项目组人员不易过多当项目规模比较大时,应该把成员分为若干小组,可采用图示的组织结构。技术组长行政组长程序员程序员程序员技术组长行政组长程序员程序员程序员技术组长行政组长项目经理程序员程序员程序员秘书武当山新闻(news.wdsxx.com)3.1人员组织与管理3.1.3协调和沟通问题项目管理者应当合理地选择恰当的沟通方式,建立通畅的沟通渠道,保证能够及时准确地交流项目信息。常用沟通方式直接交流电话电子邮件会议论坛书面报告1)直接交流用于项目组成员、用户、领导之间的沟通。应用时机:讨论用户需求、关键技术解决方案、工作任务之间的协调等内容。讨论结果应写成电子邮件发给项目经理备查。2)电话交流当软件项目由多家合作开发,或者用户距离较远,电话是非常有效的沟通手段。应用时机:快速下达通知、了解或确认问题。打电话之前要做好充分的准备:要解决的问题是什么?自己的想法是什么?需要对方做什么?等等。注意:没有准备好之前不要打电话。对于重要的电话可以写备案或录音,以便查询。3)电子邮件电子邮件不仅拉近了人与人之间的距离,更重要的是它还创造了一种人与人之间沟通的适当分寸,这一点尤其值得注意。面谈固然十分高效,但要受到物理空间或地域的限制;电话方式虽然也很直接,但可能会暴露隐私、造成局促、逼迫,甚至是伤害。电子邮件则不然,它让沟通变得稳妥而不局促。电子邮件可以留下沟通的痕迹。例如,在一个大型软件开发项目中,我们要求用户将每次的需求变更都以电子邮件的形式发给项目组,项目组经讨论,故算出变更的影响和可能的工作量,以邮件的形式回复用户,当整个项目结束时。我们打印出所有的需求变更电子邮件和工作量,用户感到非常震惊。不但在第二期项目中追加了弥补第一期需求变更引起的工作量的资金,而且对待用户需求非常的认真,使后期的工作更加顺利。4)会议会议是最正式的沟通方式对软件项目管理来说必不可少,一些工作计划布置、落实、检查都要以会议的形式进行,以便快速地发现和解决问题。在软件开发的各个阶段,都要召开会议审查阶段产品。可以有不同级别武当山新闻(news.wdsxx.com)3.2可行性研究案例:某上市医药公司拟开发一个ERP(企业资源计划)系统,对企业的人力资源、物料、财务、信息资源进行整合的信息系统。软件部分计划投资30万元人民币,3个月完成。北京某公司投入5人,工作了10个月,被迫停止开发,项目下马。结论:不可行的事情不要做!应该进行可行性分析,确定是否能做。武当山新闻(news.wdsxx.com)3.2.1可行性研究的任务任务:确定待开发的系统是否可解和值得去解。前面的例子中开发资金不足开发时间不切合实际人员投入不够可行性分析是用最小的代价、在尽可能短的时间内确定问题是否能够解决、解决方案用户是否接受、资金是否满足、社会环境和法律上是否允许。注:不要花过多精力,占总成本的510%武当山新闻(news.wdsxx.com)可行性研究的本质:进行一次简化的系统分析和设计,或者说,在较高层次上以较抽象的方式进行的系统分析和设计过程。武当山新闻(news.wdsxx.com)3.2.2可行性研究的基本步骤1)复查系统的规模、目标和限制。要注意用户想的用户说的2)研究正在使用的系统问题新系统的效益老系统?注意:只了解老系统做什么,而不管怎样做;注意了解与其它系统的接口老系统功能新增功能武当山新闻(news.wdsxx.com)3)导出新系统的高层逻辑模型使用数据流程图描述数据在系统中流动和处理的情况,概括表达出对新系统的设想。数据流程图和数据字典共同定义了新系统的逻辑模型。…………抽象实现改进老系统模型新模型新系统武当山新闻(news.wdsxx.com)4)进一步定义问题分析员和用户一起复查问题定义、工程规模和目标,这次复查应该以数据流图和数据字典为基础。发现有误解或遗漏马上改正。可行性研究的前4个步骤实质上构成了一个循环,不断重复这个循环步骤,直到提出的逻辑模型完全符合系统目标。武当山新闻(news.wdsxx.com)5)导出和评价供选择的解决方案根据系统的逻辑模型,从技术角度提出不同的解决方案。例如,要求系统的响应时间不超过几秒钟,显然应该排除批处理的方案。分析员应该根据使用者处理事物的原则和习惯,去掉那些可操作性不好的方案。武当山新闻(news.wdsxx.com)6)推荐行动方针如果分析员认为值得继续进行这项工程,则应该选择相对最好的方案,并说明理由。通常使用部门的负责人主要根据经济上的可行性决定是否开发这项工程,因此分析员对于所推荐的方案必须进行仔细的成本/效益分析。武当山新闻(news.wdsxx.com)7)草拟开发计划分析员为推荐的方案拟一份开发计划:任务分解、工程进度,人员要求,其他资源(计算机硬件、软件工具等)的需求情况、估算开发成本和开发风险。武当山新闻(news.wdsxx.com)8)书写可行性研究报告,提交审查内容:简述项目背景、开发基础、技术路线、关键技术的先进性和效果论述、市场需求情况和风险分析、成本效益分析、研发基础和实力、进度计划等。用户、评审组专家和分析员讨论审查报告,评审方案的可行性。武当山新闻(news.wdsxx.com)3.2.3可行性研究的要素软件工程项目可行性分析研究的内容主要集中在:经济、技术、法律和社会环境武当山新闻(news.wdsxx.com)经济可行性成本-收益分析,短期-长期利益分析成本:房租、办公费用、设备折旧费、市场费用、人员工资、公司运营的各项管理费。收益:有形的效益可以用货币的时间价值、投资回收期、纯收入等指标进行度量。无形的效益主要是从社会影响力和对社会的贡献等方面考虑。注意:通常软件的生命周期按5年计算。武当山新闻(news.wdsxx.com)成本分析软件规模衡量的两个指标:1)源代码行2)功能点常见成本估算模型:1)IBM模型2)COCOMOII模型软件规模估算1)估计源代码行:选择多名有经验的软件工程师分别估算出程序的最小规模(a)、最大规模(b)和最有可能的规模(m),分别计算出这三个数的平均值sa、sb和sm后,再用下面的公式计算程序规模的估计值:LOC=(sa+4sm+sb)/6武当山新闻(news.wdsxx.com)例:大学图书馆图书信息管理系统主要实现读者管理、图书管理、借书、还书、处罚和预订,开发环境是C#,SQLServer功能最小规模最有可能规模最大规模估算结果LOC读者管理2004001000(200+4×400+1000)/6=467图书管理2004001000(200+4×400+1000)/6=467借书5008002000(500+4×800+2000)/6=950还书5008002000(500+4×800+2000)/6=950处罚3005001000(300+4×500+1000)/6=550预订100300500(100+4×300+500)/6=300数据库存储过程*3006001000(300+4×600+1000)/6=617注意*:读者管理、图书管理等功能需要操作后台数据库,为此将操作提炼出来用存储过程实现。案例小结:图书馆图书信息管理系统总代码量大约是4301行以20行/人天计算,大约需要215/人天,按每月22天计算,大约需要10人月人员成本:人月数×月平均月工资注意:每人每天平均生产20行代码是包括思考系统的数据结构、编写文档、调试等工作在内。2)基于功能点的估算方法确定五个信息域特性:输入项数:用户向软件输入的数据项数。输出项数:软件输出的数据项数,输出是指报表、屏幕、出错信息等。一个报表中的单个数据项不单独计算。查询数:一个查询被定义为一次联机操作,导致软件以联机输出的方式产生实时响应,每一个不同的查询都要计算。主文件数:逻辑主文件是数据的一个逻辑组合,可能是某个大型数据库的一部分或是一个独立的文件。外部接口数:机器可读的全部接口的数量,利用这些接口可以同另一个系统交换数据。第一步:计算未调整的功能点UFP。对软件信息域的每个特性分配一个表示复杂度的数值,然后根据复杂度为特性,分配一每个功能点数。如果既有简单的,又有复杂的,那么应该分别计算,例如有3个简单输入,4个复杂输入,计算过程如下:3×简单输入+6×复杂输入=3×3+6×4=33特性系数简单平均复杂输入系数a1346输出系数a2457查询系数a3346文件系数a471015接口系数a55710UFP=a1×Inp+a2×Out+a3×Inq+a4×Maf+a5×Inf武当山新闻(news.wdsxx.com)案例:大学图书馆的功能点数81信息域值估算值系数a1—a5分项功能点输入项数30390输出项数5420查询数339主文件数5735外部接口050UFP154第二步:计算技术复杂性因子TCF。在这一步中估算时要分析软件的特点,分别计算14种因素对软件规模的影响值,没有影响为0值,最大影响值是5。技术复杂性因子的计算公式如下:TCF=0.65+0.01×ΣFi14种影响因素如下表:序号技术因素F1系统需要可靠的备份和复原吗?F2需要数据通信
本文标题:北方工业大学--软件工程管理
链接地址:https://www.777doc.com/doc-172970 .html