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

快速软件开发项目周期的通用架构 - 第 1 部分

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.49/5 (17投票s)

2012年1月27日

CPOL

5分钟阅读

viewsIcon

73709

快速软件开发项目周期的通用架构

目录
  1. 引言 (第 1 部分)
    1. 新建项目
      1. 项目初步分析
      2. 客户想要什么?
    2. 项目架构设计
      1. “以人为本的软件” (HAAS)
      2. 我身处何处?
      3. 我将走向何方
  2. 实现 (第 2 部分)
    1. 数据库设计与性能测试 (DBDPT)
    2. 产品架构设计 (PAD)
    3. 通用模板设计
      1. 使用 N 层架构
      2. 在模板中使用多种设计模式。
  3. 编码 (第 3 部分)
    1. 代码引擎
      1. 代码引擎的使用
      2. 集成代码引擎输出类
      3. 使用 DAO GEN 服务
      4. 集成 DAO GEN 输出类/方法
  4. 测试与部署 (第 4 部分)
    1. 主机环境分析
    2. 应用程序安全模块
    3. 产品测试与发布试运行 (PTRT)
  5. 参考文献
  6. 关注点
  7. 结论
  8. 历史
图示:快速软件开发项目周期通用架构。


引言 (第 1 部分)

大家好,在过去几年里,我一直试图建立一个有组织的结构,以便我们能够利用最新技术快速推进,同时不牺牲产品质量。因此,我试图创造一个优秀的沟通环境,以及我们如何处理新项目、如何更快交付,实际上核心在于为我们的组织创建一个 RAD(快速应用程序开发)环境,甚至像一个组件化构建环境。

从上述观点出发,我准备了一份项目流程图,我很乐意与大家分享。这样大家可以帮助我使其更加标准化、更有效率,指出我做得不对的地方或做得对的地方。

不过,让我们按照图示的步骤来。在这里,我将讨论这个过程如何比以往更快地进行,并在规定时间内完成整个项目。

新建项目

首先,我想说的是,我不会讨论 **市场** 部门、**管理** 部门和 **行政** 科室的作用。不过,当我开始一个新的软件开发项目时;我首先将客户需求放在首位。在此部分,我为一个特定项目分配一名项目经理、一个项目管理团队和一个系统分析师。这些人与客户打交道并研究需求。如果客户有任何现有系统;或者客户已经在使用任何第三方服务,那么我的团队将深入研究整个现有系统,并最终找出其局限性。

项目初步分析

这个团队实际上遵循完整的 SDLC 并维护适当的文档。在完成初步分析后,经典的下一步是提出新系统,并提供客户所需的所有详细信息。在这里,我增加了一个新步骤,即项目原型设计,这实际上是使用样本数据对新系统进行的图形表示。

客户想要什么?

这样做的目的是向客户保证,我们已经准确地理解了客户的需求。我们必须确保客户理解我们的需求。为了双方更好地理解,我们进行项目原型设计。之后,我们进行演示并请求客户提出意见;我们讨论原型,并询问客户;原型是否正确?是否需要更改任何内容。如果是,我们就进行更改,然后再次演示原型,这只是一个循环过程,直到客户批准该原型并正式签订协议。

项目架构设计

我认为这是任何软件开发项目周期中的核心部分;在这个部分,作为架构师,我首先会画出整个项目的完整图景,有很多标准方法可用,例如,研究软件需求规范 (SRS),编写用例,数据流图,使用 UML 等……当然,我会遵循所有这些,但我还会加入另一个步骤,我称之为“以人为本的软件”(HAAS)。

“以人为本的软件” (HAAS)

让我们更清楚地解释 HAAS。HAAS 只是一个图,它表示我们要自动化的两个或多个人员之间的每一个交互。根据我的经验,我发现这个图对开发人员在设计软件算法、编写代码等方面产生了非常好的影响。就像开发人员正在开发一个将扮演 HAAS 图角色的系统一样,在编写代码时,这个图有助于程序员绘制一个视觉图像,并以视觉方式表示人类行为。

我身处何处?

好吧,让我们继续了解更多有趣的事情;好的,我希望大家能够理解/掌握到需求分析、标准 SDLC 步骤的流程。那么现在我们手头有以下项目要继续推进

  • 所有与 SDLC 相关的文档。
  • 实际产品的可视化表示/原型。
  • 用于执行的 GANTT 图。
我将走向何方

太好了,我非常关注任何软件开发项目所需的技术。因此,我筛选出了开发此项目所需的开发工具。你可能会问,有什么需要筛选的……如果目标平台是 Microsoft,应用程序类型可能是 Web 应用程序、标准 win32Form 应用程序、Web 服务……等,那么通常我们会选择 Microsoft Visual Studio .Net (Framework 4)、Eclipse、NetBean 等作为项目的 IDE,开发语言可以是 C#、Visual Basic、F# 或其他,而数据库平台则很简单,要么是 Microsoft SQL Server 2008、Oracle 11g、Microsoft Access、DB2 等。

是的,我当然也同意你的看法,我也倾向于这样做,但会对需求和所有开发工具做一点分析。首先,我倾向于使用轻量级的开源 API,我不想用我传统上用来猎杀大老虎的所有装备来打一只蚊子……哈哈……使用轻量级高效的工具是个好主意。
所以现在我做出了决定,并选择了将用于该项目开发的所有工具,而且我讨厌在开发项目的中间阶段更改工具/任何第三方 API。

参考文献

关注点

好吧,我希望我能完成所有部分,并乐于创造这种环境。

结论

这样做的目的不是分享新东西,我希望大家能深入了解,并非常感谢你们任何宝贵的建议。

历史

  • 2012 年 1 月 27 日 - 初始帖子。
  • 2012 年 2 月 2 日 - 尝试纠正格式和一些拼写错误。
© . All rights reserved.