1、简单题
- 简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点
- 瀑布模型:
- 定义: 是将工作分为需求、设计、实现、验证、维护等等阶段,这些阶段动的工作对象来自于上一项活动的输出,这些输出一般是代表本阶段活动结束的里程碑式的文档。每个阶段根据本阶段的活动规程执行相应的任务,并对本阶段活动执行情况进行评审。
- 优点: 降低软件开发的复杂程度,提高软件开发过程的透明性,提高软件开发过程的可管理性;推迟软件实现,强调在软件实现前必须进行分析和设计工作;以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,保证了阶段之间的正确衔接,能够及时发现并纠正开发过程中存在的缺陷,使产品达到预期的质量要求。
- 缺点: 过于强调过程活动的线性顺序,缺乏灵活性,尤其无法解决软件需求不明确或不准确的问题,风险控制能力较弱;瀑布模型中的软件活动是文档驱动的,当阶段之间规定过多的文档时,会极大地增加系统的工作量;管理人员如果仅仅以文档的完成情况来评估项目完成进度,往往会产生错误的结论。
- 增量模型:
- 增量模型首先对系统最核心或最清晰的需求进行分析、设计、实现、测试并集成到系统中,再按优先级逐步实现后续需求。
- 优点: 增强客户对系统的信心;降低系统失败风险;提高系统可靠性;提高系统的稳定性和可维护性。
- 缺点: 建立初始模型时,作为增量基础的基本业务服务的确定有一定难度;增量粒度难以选择。
- 螺旋模型:
- 定义: 螺旋模型结合了瀑布模型的一些关键方面和快速原型方法,以努力结合自上而下和自下而上概念的优势。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。特别适用于大型复杂系统。螺旋模型采用一种周期性的方法来进行系统开发。每个周期就是一次瀑布模型。开发过程每迭代一次,软件开发又前进一个层次。
- 优点: 设计上的灵活性,可以在项目的各个阶段进行变更;以小的分段来构建大型系统,使成本计算变得简单容易;客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性;随着项目推进,客户始终掌握项目的最新信息 ,从而他或她能够和管理层有效地交互;客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品。
- 缺点: 很难让用户确信这种演化方法的结果是可以控制的。建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。
- 瀑布模型:
- 简述统一过程三大特点,与面向对象的方法有什么关系?
- 统一过程的三大特点分别是
- 软件开发是迭代过程;
- 软件开发以用户为中心;
- 软件开发是以架构设计(Architecture Design)为中心的。
- 统一软件过程是将类似的产品(如面向对象的软件过程OOSP),以及OPEN Process都是理解性的软件工程工具–把开发中面向过程的方面(例如定义的阶段,技术和实践)和其他开发的组件(例如文档,模型,手册以及代码等等)整合在一个统一的框架内。
- 统一过程的三大特点分别是
- 简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?
- 初始阶段: 初始阶段的目标是系统建立商业案例并确定项目的边界。该阶段中所关注的是整个项目进行中的业务和需求方面的主要风险。该阶段的里程碑是生命周期目标(Lifecycle Objective)。
- 细化阶段: 分析需求,建立健全的体系结构基础,编制项目计划,淘汰项目中最高风险的元素。理解整个系统–做出决策–建立支持环境。该阶段的里程碑是生命周期结构。
- 构建阶段: 不断迭代以构建产品,对以往过程遗留或者当前过程产生的风险进行处理,并继续演进需求、体系结构和计划,直到产品完成。该阶段的里程碑是产品的初始创建。
- 交付阶段: 确保软件对最终用户是可用的。在该阶段中对产品进行多次测试与bug的修复,以及产品的优化。该阶段的里程碑是成品的发布。
- 软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?
- 因为软件统一过程是一个迭代增量过程,将开发过程分为四个阶段,在阶段结尾执行一次评估以确定这个阶段的目标是否已经满足。而每个迭代都可以产生一个可执行的产品,这些产品就是固定周期发布的软件产品。
- 它给企业项目管理带来的好处有:
- 每个迭代都是瀑布流的过程,每次开发都十分简单,开发流程更清晰。
- 每次迭代都可以将产品变得更好,而且中间产品可运行,利于及时交付使用并反馈。
- 固定的迭代周期,利于量化团队和个人的生产率,建立了简洁和清晰的过程结构,为开发过程提供较大的通用性。
2、实践题
-
下载腾讯微信企业版PC端,安装腾讯敏捷产品研发平台(TAPD),了解使用 TAPD 的最佳实践
- tapd可以管理的生命周期如下图所示:
- 项目示例:
- 项目默认有需求,迭代,故事墙,缺陷,文档,报表这几个功能,在【设置】/【应用设置】还可以启用看板和wiki的功能。项目支持企业微信绑定和邮箱绑定,设置项目通知后,可以很便捷地通知对应的跟进人员。首页工作台是一个很直观的待处理界面,很多协作人员在这里就可以知道自己需要跟进的内容。左侧的消息可以查看所有的操作日志。在左下角的设置里可以管理成员,设置项目权限,还可以设置安全访问IP,只有特定IP才可以访问你的项目。系统还支持Github、Gitlab、TGit的管理,管理后可以直观看到开发人员的代码提交趋势统计、成员贡献统计。
- tapd可以管理的生命周期如下图所示:
-
比较完善 backlog 支持(树结构)
显然,该项目有完善的需求规划backlog的支持。可以创建新需求,而需求又可以像文档树一样分化子任务和划分优先级。
-
迭代(sprint)安排
- 如下图,可以新建迭代,可以在迭代中新建任务并划分优先级。
- 可以规划迭代范围,可以分配成员任务,并进行任务跟踪
- 还有很多其他功能。
-
较好的缺陷管理
可以对缺陷进行增删改查并管理缺陷的优先度、严重程度、处理等等。
-
Kanban
在迭代中将视图格式改为看板视图即可,在这里可以创建并分配工作项,为工作项添加详细描述和附件,标签,评论。可以给工作项进行排序,完成工作项和关闭看板。
-
统计
在报表中可以看到各种数据的统计。