65.9K
CodeProject 正在变化。 阅读更多。
Home

软件项目与 SDLC 流程回顾

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.64/5 (7投票s)

2020 年 5 月 22 日

CPOL

10分钟阅读

viewsIcon

13577

本文重点介绍项目管理生命周期流程、SDLC流程、敏捷方法论、瀑布模型、RAD模型、Scrum框架和XP框架。

引言

为了开发一个成功的项目,项目管理团队和软件开发团队需要协同合作。项目管理团队遵循一些原则和项目管理生命周期流程。同样,开发团队也遵循软件开发模式和原则、SDLC流程、方法论和框架来实施项目。开发团队通常了解SDLC流程。但也建议了解项目管理生命周期流程。

涵盖主题

  • 项目管理原则
  • 项目管理中的三重约束理论
  • 项目管理生命周期流程的重要性
  • 项目管理生命周期阶段
  • SDLC的重要性
  • 软件开发生命周期阶段
  • 软件开发方法论的重要性
  • 选择不同的SDLC模型
  • 敏捷方法论中的SCRUM框架

必备组件

我猜您是专业人士,已经熟悉项目管理和软件开发生命周期流程。所以您已经知道如何进行分析和开发;无论如何,我将逐步指导您。

您喜欢学习吗?这里有一些问题给您!

  • 您是一名开发人员,那么您为什么需要项目管理生命周期流程的知识?项目计划的哪些组成部分对您的开发最重要?
  • 您熟悉项目管理文档吗,例如项目章程/项目启动文件、甘特图和工作分解结构等?
  • 实际上,您使用需求分析文档、软件架构文档和软件设计文档吗?
  • 您根据项目需求使用哪种SDLC方法论和框架?

项目管理

项目管理原则

  1. 项目目标原则
  2. 绩效基线原则
  3. 项目风险原则
  4. 项目生命周期原则
  5. 团队角色与职责原则
  6. 沟通原则

我将只解释原则2和4。原则4定义了项目管理生命周期流程和阶段。原则2在项目规划期间需要,它是项目管理生命周期阶段之一。

项目管理计划

您知道,项目计划有几个组成部分;例如,项目目标、时间表、预算、质量和资源计划(项目经理、利益相关者)。根据绩效基线原则,您需要设置质量衡量标准。质量的概念引入了“三重约束理论”。

项目管理中的三重约束理论

三重约束理论非常流行,自20世纪40年代以来,它在项目管理中已经存在了80多年。三重约束代表了项目的范围、时间和成本。

例如,假设我需要一个应用程序来上传和显示图像。项目范围定义了功能、特性等。所以我需要一个图像上传页面来将其存储到关系数据库中。其次,我想要一个图像库来查看图像。项目总成本大约可以是15555美元。项目持续时间可以是3周。现在约束效应取决于您主要关注项目中的哪一点。

  • 侧重时间:如果您想加快交付速度,那么您可能需要更多资源,这可能会增加您的成本,并且/或者您可能需要缩减项目功能。
  • 侧重成本:如果您想要更便宜的预算,那么您可能会缩短时间,并且/或者缩减项目功能,这可能会影响产品质量。
  • 侧重范围:如果您想要更多功能,那么您可能需要更多时间,并且/或者您可能需要更多资源来增加功能,这可能会增加成本。

:PMBOK考虑了六个约束:时间、成本、范围、质量、资源和风险。

项目管理生命周期流程的重要性

根据项目生命周期原则,项目团队需要遵循项目生命周期流程;因为,这是众所周知的高层次结构化流程,用于交付成功的项目。因此,项目管理生命周期主要包括其阶段:启动、规划、执行、监控与控制以及收尾。

项目管理生命周期阶段

项目启动:在此阶段,项目管理团队/项目经理可以使用项目章程(根据PMBOK指南)或项目启动文件(根据Prince2),其中定义了项目目标,识别了利益相关者,解释了项目目的和益处,并分析了项目的范围和风险。最后,他们需要获得利益相关者的批准。

规划:在此阶段,项目经理定义绩效基线,创建带有时间框架的项目进度表,为团队分配资源,定义沟通计划,并定义项目将如何执行、监控和控制。项目经理可以使用项目进度表为项目创建甘特图和工作分解结构。甘特图主要关注任务将**何时**完成,而工作分解结构关注将**做什么**。

执行:在此阶段,项目任务移交给开发团队,他们根据软件开发生命周期(SDLC)流程开始实施任务。

监控与控制:在此阶段,项目经理将实际完成的任务与实际计划进行比较/审查,并更新进度状态报告。

项目收尾:在此阶段,项目任务已完成。因此,项目经理获得批准并将项目交付给客户。最后归档所有项目文档和源代码以供将来使用/参考。

软件开发

SDLC流程的重要性

在软件工程中,您遵循SDLC;因为,这是众所周知的结构化流程,用于从开始到结束开发软件/项目。它主要包含高层设计,以便业务和技术团队理解整个项目。

软件开发生命周期阶段

根据生命周期原则,您知道软件开发生命周期有阶段,每个阶段都维护着一个启动的优先顺序。

  1. 需求分析:在此阶段,业务分析师与客户沟通,了解他们的需求。需求被记录为业务需求规范 (BRS)。业务分析师使用项目章程或项目启动文档 (PID) 作为BRS的输入。现在系统分析师/技术文档撰写者使用用例描述系统的外部可见行为,并将其记录为功能需求规范 (FRS)。之后,系统分析师描述拟议系统需要做什么,并将其记录为软件需求规范 (SRS)。SRS包括详细功能、接口、安全性等。
  2. 架构设计:在此阶段,应用架构师将根据FRS准备软件架构文档 (SAD) 和软件设计文档 (SDD)。

    SAD包括应用程序的结构(基于组件或分层架构)、组件之间如何通信(面向服务的架构或消息总线)、组件将如何部署(客户端/服务器或N层)、将使用哪些框架、开发工具、前端/后端/数据库技术、编程语言/脚本等。

    SDD由高层设计(HLD)文档、中层设计(MLD)文档和低层设计(LLD)文档组成。

    • HLD文档包括应用程序的所有组件将如何设计(洋葱架构)、如何实现(领域驱动设计)、通信通道将如何实现、需要定义应用程序的所有组件/模块等。
    • MLD文档包括数据库模式设计、组件/模块的类图/序列图等。
    • LLD文档包括实现指南、算法、每个组件/模块根据设计模式/原则的功能逻辑等。
  3. 实施:在此阶段,UI/UX开发人员、软件开发人员和数据库设计师根据架构设计开始构建应用程序。例如,如果它是一个基于Web的应用程序,那么UI/UX开发人员开始实现图形用户界面(GUI)和GUI相关逻辑;软件开发人员开始为每个组件/模块实现编程逻辑;数据库设计师开始设置数据库相关权限/安全性以及/或模式设计相关的SQL/No-SQL脚本。
  4. 验证:在此阶段,开发团队开始为组件/模块的每个方法编写单元测试。他们还集成了所有组件,并在集成测试中验证了每个组件之间的通信。质量保证(QA)团队在系统测试中开始功能和性能测试。最后,他们在验收测试中验证了所有客户需求。
  5. 部署与维护:在部署阶段,应用程序被部署到生产环境;这样,最终用户就可以开始使用它。如果最终用户在系统中发现任何错误,开发人员需要在维护阶段修复它;有时开发人员会收到更改请求(CR)以更新功能,他们需要实现这些CR。

软件开发方法论的重要性

有许多SDLC方法,您必须根据您的情况选择其中一种,考虑团队规模、资源技术技能、项目持续时间、成本、项目规模和复杂性等。一旦您选择了SDLC方法,那么您就必须遵循特定的模型和阶段。因此,每种方法都会为您提供合理的理论指导方针,以从开始到结束组织您的项目开发。如果您知道要去哪里,那么您就知道何时到达。无论如何,一些流行的SDLC方法包括:敏捷、瀑布、迭代、快速应用程序开发(RAD)等。

选择不同的SDLC模型

瀑布模型:瀑布模型的阶段是顺序的,一个阶段的输出是下一个阶段的输入。

  • 它适用于一个大型项目。
  • 项目持续时间:非常长,或6/12/18个月
  • 团队规模:15名成员或更多/更少
  • 文档:需要文档;分析文档=>业务需求规范(BRS)、功能需求规范(FRS)和软件需求规范(SRS);设计文档=>软件架构文档(SAD)和软件设计文档(SDD)
  • 部署:最终一次发布到生产环境

迭代模型:它是一种迭代式软件开发方法,您需要将一个大型项目拆分为较小的部分(迭代),然后逐一实施。

  • 将一个大型项目拆分为较小的迭代
  • 项目持续时间:每次迭代2-4周
  • 团队规模:9名成员或更少
  • 文档:您需要业务需求规范(BRS)文档;但分析文档、软件架构文档和软件设计文档是可选的
  • 部署:多次发布

快速应用开发模型:它类似于敏捷流程;但它主要侧重于原型设计;它根据用户反馈迭代原型并最终确定产品。

  • 如果您的项目很小,并且您需要根据用户反馈制作原型并最终确定产品,那么RAD非常适合您。
  • 项目持续时间:短/2-3个月
  • 团队规模:5名成员或更少
  • 文档:您只需要业务需求规范(BRS)文档
  • 部署:获得用户反馈后的最终发布

敏捷方法论中的SCRUM框架

一旦您可以根据您的需求选择SDLC方法,那么您就需要基于框架实现该方法。例如,您选择敏捷方法,那么您可以通过Scrum或极限编程(XP)框架来实现它。在SCRUM中,整个项目被拆分为多个迭代。每个迭代都称为冲刺。

SCRUM 工件

  • 产品待办事项列表:包含需要完成的任务列表。
  • 冲刺:每个冲刺包含6-10个用户故事,持续2-4周。
  • 燃尽图:它监控冲刺中给定任务的进度。

SCRUM 角色与职责

  • 产品负责人收集需求并与客户沟通。需求包含用户故事。
  • 开发团队实现并测试软件。
  • Scrum主管安排每日15分钟的站立会议。

SCRUM 事件

  • 冲刺规划:冲刺中可以完成什么以及任务将如何完成。
  • 每日Scrum/站立会议:每天进行15分钟,与团队沟通。团队解释他们昨天做了什么以及今天将做什么。
  • 冲刺评审:利益相关者和Scrum团队评审任务。
  • 冲刺回顾:回顾团队在冲刺期间的工作方式,并为下一个冲刺提出改进建议。

敏捷XP框架:XP类似于Scrum。但XP团队允许在冲刺中进行更改,每个冲刺持续2周。

历史

  • 2020 年 5 月 22 日:初始版本
© . All rights reserved.