还剩11页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
软件项目管理复习提纲填空30分简答40分计算题10分论述题20分第一章软件项目管理导论
1、软件项目管理是对整个软件项目生命周期实施的项目管理,软件项目不仅仅是软件开辟项目
2、项目就是在既定资源和要求的约束下,为了创造某一独特的产品或者服务,由个人或者组织机构所做的一次性工作任务项目具有的特征
①目标性
②独特性■每一个项目都是惟一的
③暂时性-明确的开始和结束
④制约性
⑤不确定性
⑥特定委托人■项目结果的需求者
⑦结果的不可逆转性-不管结果如何,项目结束,结果确定
3、以下哪些是项目呢?
②③⑤⑦⑧⑨①上课
②野餐活动
③集体婚礼
④社区保安
⑤开辟微软的操作系统
⑥每天的卫生保洁
⑦神舟飞船计划
⑧建造大楼
⑨解决某个研究课题、开辟软件
4、项目管理就是指把各种系统,方法和人员结合在一起,在规定的时间,预算和质量目标范围内完成项目的各项工作
5、项目管理的知识领域
①项目范围管理
②项目时间管理
③项目成本管理
④项目质量管理
⑤项目人力资源管理
⑥项目沟通管理
⑦项目风险管理
⑧项目合同管理
⑨项目综合管理
6、软件项目分类1通用软件产品开辟项目■系统软件windows开辟平台.Net嵌入式软件,cad软件2定制软件系统开辟项目3软件实施项目■在成熟产品基础上二次开辟,如ERP4软件服务项目-免费维护期后的服务
7、CMM模型能力成熟度模型CMMCapabilityMaturityModel
8、CMM模型的5个等级及各自的含义特征CMM将软件机构软件过程的成熟度分为5级初始级,可重复级,已定义级,已管理级,优化级1初始级软件过程是未加定义的随意过程,项目的执行时随意甚至是混乱的随意过程2可重复级第二级的焦点集中在软件管理过程上一个可管理的过程是一个可重复的过程,可重复的过程才干逐渐改进和成熟管理过程可重复3已定义级该级别要求制定企业范围的工程化标准,并将这些标准集成到企业软件开辟标准过程中去有企业的工程化标准,不能随意修剪4已管理级所有过程需建立相应的度量方式,所有产品的质量包括工作产品和提交给用户的最终产品需要有明确地度量指标过程有度量方式5优化级该级别的目标是达到一个持续改善的境界所谓持续改善是指可以根据过程执行的反馈信息来改善下一步的执行过程,即优化执行步骤根据反馈改善过程第二章组织平台
1、组织一个公司的组织三要素包括其结构、政策和文化,这些因素可能在急剧变换的经济危机中成为机能障碍
2、CMM中的关键工作组及相关角色的职责大概知道1软件工程组SoftwareEngineeringGroup2软件相关组SoftwareRelatedGroup1使最浊弱的环节安全SecuringtheWeakestLink木桶原理纵深防御DefenseinDepth.安全地错误退出FailingSecurely.最小权限原则LeastPrivilege5权限分离SeparatkmofPHvil%e两把锁开门、核武器.保护机制的经济性EccoctnyofMechanism让设计尽可能简单和.最小共性原则LeastCommonMechanism.勉强信任原则ReluctancetoTrust先做小人,认为都是不安全的.不要认为你的秘密是安全的NeverAssumingthatyourSecretsareSafb.完全仲裁CompleteMediation1L心理接受能力PsychologicalAcceptability
12.保护隐私PromotingPrivacy
16、软件安全需求的定义结合需求工程和安全工程从需求工程来说,它使用功能目标的概念,通过适当地限制将功能目标转化为功能需求从安全工程来说,它采用资产和破坏资产的威胁的概念安全目标旨在防止这些威胁,并且被视为安全需求,在功能需求上加以限制来自安全团体的定义安全需求为私密性、完整性以及需要保护个体的可用性来自需求团体的定义大量的关于安全需求的论文集中描述它们是如何被入侵的安全需求被定义为系统功能上的限制要求思量可能是论述题如果你是软件项目经理,你会怎样管理你的团队⑶软件工程过程组SoftwareEngineeringProcessGroup4系统工程组SystemEngineeringGroup⑸软件测试组SoftwareTestGroup6软件质量保证组SoftwareQualityAssuranceGroup7软件配置管理组SoftwareConfigurationManagementGroup8培训组TrainingGroupCMM中的工作组中的角色及职责1系统分析员开辟域专家职责对当前系统建模并产生关于将来系统的信息2体系结构员一个综合性角色,系统设计的主要角色,系统集成的主要角色职责在需求分析阶段从系统的角度统一用例和对象模型,解决分析过程中的分歧体系结构员是交叉功能体系结构小组的领导者3体系结构联络员体系结构小组的成员,子系统小组的代表职责为其所在小组传递信息、处理接口变化在系统设计阶段,集中负责子系统服务;在编码阶段,负责API的一致性4核心设计者职责在启动对象设计前开辟出编程指导原则和约定对许多约定来说,实际约定不如所有设计人员和开辟人员承诺使用约定更重要核心设计者还负责保持SDD和RAD的一致性5对象设计者职责定义并具体化由他们实现的类的接口规格说明或者子系统6程序员职责将对象模型转化为源代码这包括实现每一个对象的属性和方法,集成所有的对象使之成为一个单独的系统修改错误,进行现场调试等7测试工程师职责发现系统错误并记录8实施人员职责现场环境测试,系统安装,客户培训,问题跟踪,客户协调等9文档编辑者职责负责文档的低层次综合如文档的整体格式与索引技术文档编写者负责整理ODD的最终版本,确保文档从结构和内容的角度都是一致的他们还检查是否遵循指导原则和规范文档编辑者还负责编辑、修改产品功能说明书、使用手册等10项目经理职责组织协调相关人员进行需求分析、设计、编码、测试与修改、系统实施、客户协调等负责计划、人员管理,负责跟踪、监控项目执行情况,组织项目会议,修改项目计划等,根据项目计划、质量计划组织、审核项目质量,确保按计划完成目标第三章软件项目立项
1、立项的目标说服组织的决策者允许启动一个项目或者继续进行项目的下一个阶段立项阶段的最终交付项是立项报告立项报告是一份描述项目可行性的正式文档,是立项评审和决策的依据
2、立项分为定制软件和通用软件立项之别产品立项比定制立项复杂的多
3、从商业竞争的角度考虑软件产品可分为1高技术产品,进入门坎和附加值高2短线产品,技术含量不高,但需要快速占领市场3行业业务系统,对行业精通,行业市场运作能力4规模产品,SAPoracle等
4、对产品的内涵进行战略管理才是产品定义、产品立项、产品计划的核心产品的五个层次是:1完成客户的核心需求2实现辅助核心需求,形成普通产品3期望产品,在普通产品基础上,满足客户更高期望4附加产品在期望产品上锦上添花5潜在产品,满足客户潜在需求
5、产品定位战略所考虑的因素1重要性,能提供高价值的利益2独特性,与众不同,简单、便宜3优越性,ipad4沟通性5先发制人6价格的可支付性7盈利性
6、软件项目合同主要是技术合同;技术合同普通包括主合同和合同附件第五章软件估算
1、软件项目估算是以准确的调查资料和项目可用资源信息为依据,对估算对象的规模、工作量、进度和成本和缺陷进行预测是对非零可能性的未来的预测它是项目计划的依据
2、估算收敛图P88可能细化的数量估算收敛图
3、项目的演变两种策略P89功能趋于与可用的资源相匹配大多数软件项目在开始时,期望的功能与可用的资源之间不匹配,但随着项目的发展,功能或者资源(或者两者)必然要互相匹配
4、估算内容内容
(1)产品规模估算(代码行或者功能点)
(2)工作量估算(人月)
(3)进度估算(日历月份)
(4)成本估算(人力和软硬件成本,学习、培训、风险和维护成本)
(5)缺陷数估算,缺陷数影响工作量和进度估算
5、FP功能点估算法(计算)
6、COCOMO估算法(计算)
7、COCOMO(COnstuctiveCOstmode)模型结构性成本模型COCOMO模型分为基本、中级模型和详细模型
8、COCOMO适合的软件项目
(1)组织型(Organic):相对较小,简单项目,工作人员理解好,经验丰富,硬件相关性小如多数应用软件,编译程序,老操作系统
(2)嵌入型(Embadded):项目密切联系硬件、软件、操作对接口,数据结构,算法要求较高,规模任意如航天指挥系统
(3)半独立型介于两者间
9、COCOMO模型参量DSI(原指令条数-Size)定义为代码或者卡片形式的源代码若一行由两个语句,算作一条指令,包括作业控制语句,格式语句,不包括注释语句1KDSI=1024DSIMM(度量单位为人月-Effort)表示开辟工作量,定义1MM=19人日=152人时=1/12人年TDEV(度量单位为月)表示开辟进度,他由工作量决定
10、基本COCOMO公式
11、例一个规模为10KDSI的商用微机远程通信嵌入软件,使用中间COCOMO模型进行软件成本估算则程序名义工作量MM=
2.8*
(10)
1.20=
44.38(MM)程序实际工作量MM=
44.38*f1*f2*f3……*f15=
44.38*
1.17=
51.5(MM)开辟所用的时间TDEV=
2.5*(
51.5)
0.32=
8.9(月)如果分析员与程序员的工资都按每月6000美元计算,则该项目的开辟人员的工资总额为
51.5*6000=309000(美元)第七章软件配置管理
1、软件配置管理包括标识在给定时间点上软件的配置,系统地控制对配置的更改,并维护在整个软件生命周期中配置的完整性和可跟踪性
2、软件配置管理的功能1配置项识别确认,是前提和基础2版本控制,基本功能3变更控制4配置状态统计5配置审核6构造管理,综合不同版本配置项构建不同版本产品7过程管理
3、实施SCM的主要活动软件配置管理SCM1制定SCM计划2软件配置标识与维护管理3软件配置控制与变更管理4版本管理5软件配置状态发布6配置审计7软件构件与发布管理
4、基线指已经过正式评审和认可的标准,作为以后进一步开辟的基础,并且惟独通过正式的更改控制规程才干进行更改的规程说明或者产品基线是由管理人员或者顾客正式检查并允许的配置项版本
5、配置管理工具P139RCS免费,不支持分支管理CVS免费,并发版本管理,是对RCS的扩展VSS支持版本、变更管理和并行开辟HarvestClearCaseTogetherHanskyFirefly第八章软件质量管理
1、软件质量定义IS09001的定义客户要求的一种产品或者服务所具备的所有特性ANSI/IEEE定义:软件产品满足规定的和隐含的需求的有关特征或者特性集合
2、软件质量的要素1软件的运行特征最基本的正确性,可靠性,有效性,完整性,可用性2软件修正的能力可维护性,灵便性,可测试性3软件转移特征对新环境的适应程度可移植性,可重用性,可互操作性
3、SQA软件质量保证组织结构有三类及各自的区别P156职能结构没有独立的SQA部门、矩阵结构有独立的SQA部门、柔性结构两者结合
4、软件质量控制定义监控软件开辟过程与结果,确保软件可以满足在设计中明白交待出来的要求和没明确指出的需求也就是在软件开辟过程的若干关键点上进行软件项目跟踪和监控
5、质量控制方法前3个
①缺陷追踪旧M是最早发现质量和软件进度关系的公司他们发现具有至少缺陷的产品也就是具有最短开辟时间的产品
②源代码追踪缺陷追踪是记录和追踪有关缺陷从发现到解决过程的工作源代码追踪是利用开辟工具的调试器,一行行追踪代码的执行情况这项工作主要是由程序员来做
③技术检查技术检查是由技术专家或者开辟人员来检查别人完成的工作
④测试
⑤Pareto分析
⑥6希格玛方法第九章软件质量软件度量的根本目的是为了项目管理的需要,利用度量来改进软件过程
2、需要注意的两个问题1度量结果是定量描述,不是定性描述2与估算是提前预测不同,度量是对实时或者事后状态的采集与分析,用于对历史进行评估第十章风险管理
1、风险词典定义可能失去东西或者受到伤害软件开辟的滑铁卢》罗伯特・格拉斯遇到危wei险、遭受伤害、经受损失,或者是招致伤害或者损失两层含义一种风险是不可抗力,一种是失误、自己招致的风险管理是软件项目管理的第二大关键问题
3、软件项目风险软件开辟过程中及软件产品本身可能造成的伤害或者损失它是介于确定性和不确定性之间的状态包含两个特征1不确定性;2损失分为三类1已知风险,如技术创新;2可预测风险,如人员调整;3不可预测风险
4、引起风险的因素1商业环境风险2企业环境风险3软件项目风险
5、风险管理过程分为两大类风险分析、风险控制
6、风险识别的步骤了解1采集资料2估计项目风险形势3识别风险第十二章人力资源管理与团队建设
1、人力资源管理关键要素1合理的薪酬,最重要、最易使用的激励方法2有事做,有愿意做、有挑战的事情做3职业发展4激励・
2、人性的三类基本需求--■欲望,情感,知识第十三章软件知识产权管理
1、我国现有条例学习著作权法计算机软件保护条例计算机软件著作权登记办法
2、计算机软件的特点复制容易复制品的质量稳定复制成本低廉传播容易开辟者对于他人复制很难控制*商品化软件的研发难度和研发成本都很高,擅自复制、擅自应用他人研发的软件是无偿占用软件研发者劳动成果的行为*
3.开源软件和自由软件的特征自由软件是指使用者对该软件的使用具有以下四种自由1可以自由运用该软件,无论是什么目的2可以自由学习该程序怎样工作,并使之适应被许可人的需求其前提是可以自由读取源代码3可以自由重新分发拷贝以便匡助被许可人的邻友4可以自由改善该程序,并发布给公众,让整个社会得利其前提是可以自由读取源代码开辟源代码软件opensourcesoftware简称开源软件开源软件和自由软件的区别在于许可证对权利义务的规定程度上自由软件的许可证不允许被许可人将本许可证许可的源代码的修改版本、演绎版本以其他的许可证方式再许可或者保留起来不许可,只能按此许可证实施再许可开源软件的许可证则允许以其他许可证的方式实施再许可第十四章软件安全
1.软件安全是指采取工程的方法使得软件在敌对攻击的情况下仍能够继续正常工作即采用系统化、规范化、和数量化的方法来指导构建安全的软件
2.McGraw博士提出了软件安全工程化的三个支柱1风险管理一种贯通软件开辟的生命周期的战略性方法;2软件安全切入点在软件开辟生命周期中保障软件安全的一套最佳实际操作方法这一套最佳实践方法包括代码审核,体系结构风险分析,渗透测试,基于风险的安全测试,滥用案例,安全需求和安全操作3安全知识
3、缺陷的定义从产品内部看,软件缺陷是软件产品开辟或者维护过程中所存在地错误、毛病等各种问题从外部看,软件缺陷是系统所需要实现的某种功能的失效或者违背
4、漏洞的定义系统设计、实现和操作管理中存在的缺陷和弱点,能被利用而违背系统的安全策略是缺陷不一定是漏洞,漏洞一定是缺陷
5、软件缺陷的严重性级别可以分为四类1致命的造成系统和应用程序崩溃、死机、系统悬挂,数据丢失、主要功能完成丧失等2严重的功能或者特性没有实现,主要功能丧失、导致严重的问题,或者致命的错误声明3普通的不影响系统的级别使用,但没有很好地实现功能,没有达到预期效果如次要功能丧失,操作时间长等4轻微的对功能几乎没有影响,产品及属性仍可使用
6、根据漏洞浮现的阶段,软件安全漏洞可分为两大类设计漏洞和实现漏洞
7、栈溢出漏洞其产生的原因是输入数据时,由于没有进行边界检查,导致输入的数据的数量超过了堆栈预留的存储空间,最终覆盖了堆栈中的返回地址,如果覆盖返回地址的是一个攻击程序的地址,则导致去执行这个恶意程序栈溢出的主要危害是能够修改邻接变量和返回地址8SQL注入SQLInjection漏洞是Web系统特有的一类漏洞,源于用户输入数据的错误解析
9、恶意软件的定义恶意软件,统称其行为伤害系统用户和系统所有者利益的软件,是故意在计算机系统上执行恶意任务的恶意代码的集合
10、恶意软件的分类恶意软件大致分为两类,该分类是从主机依赖的角度进行的分类,即依赖主机程序的恶意软件和独立主机的恶意软件前者不能独立于应用程序或者系统程序,即存在宿主文件,必须依赖宿主的运行而启动;后者是能在操作系统上运行的、独立的程序恶意软件依赖主M程户|独■于主机琲萌羽随理恒|怛绝服务攻击隼序
11、三种主要的恶意软件及其区别1病毒virus如果恶意代码将其自身的副本添加到文件、文档或者磁盘驱动器的启动扇区来进行复制,则被认为是病毒病毒代码的明显特征是自行复制病毒通常会将其包含的负载如木马放置在一个本地计算机上,然后执行一个或者多个恶意操作如删除用户数据此外,仅进行复制而不具有负载的病毒仍然是恶意软件,因为该病毒自身在复制时可能会损坏数据、消耗系统资源并占用网络带宽2蠕虫worm如果代码在没有携带者宿主文件的情况下复制,则被是认为是蠕虫蠕虫试图将自己复制到宿主计算机上,然后利用此计算机的通信信道进行复制病毒寻觅文件以进行感染,但蠕虫仅尝试复制其自身3木马Trojan木马与病毒或者蠕虫的区别在于它不进行复制传播但是病毒和蠕虫可用于将木马作为攻击负载的一部份复制到目标系统上木马通常的意图是在系统中提供后门,使攻击者可以窃取数据此代码是病毒结束
112、软件开辟生命周期指软件开辟的开始到完成经历的过程,这个过程定义了软件开辟经历的不同阶段传统软件开辟生命周期,主要从软件功能实现的角度出发,其基本目的是如何合理地组织开辟流程以高效地完成软件的各项功能,通常只是注重软件功能的定义,实现与测试,安全策略却没有得到充分地考虑即使是在测试环节考虑到软件系统的安全性,也往往是在编码完成后进行,而没有将软件安全的思想贯通到软件开辟的整个过程
13、安全软件的开辟生命周期SecureSoftwareDevelopmentLifecycleSSDL旨在通过软件开辟的各个步骤来确保软件的安全性,其目标是确保安全的软件得以成功实现
14、软件开辟生命周期的阶段前两个阶段1安全原则、规则及规章安全原则、规则和规章通常被视为保护性需求阶段2安全需求工程这里通常是特定功能需求所需的特有安全需求,这些安全需求有别于系统范围的安全策略和安全规范阶段3架构和设计评审、威胁建模阶段4软件安全编码阶段5软件安全测试
15、软件安全原则了解类型工作量进度组织MM=
2.4KDSI
1.05TDEV=
2.5MM
0.38半独立MM=
3.0KDSI
1.12TDEV=
2.5MM
0.32嵌入MM=
3.6KDSI
1.20TDEV=
2.5MM
0.32。