zoukankan      html  css  js  c++  java
  • 完整开发流程管理提升与系统需求分析过程 随堂笔记(day 1) 【2019/10/14】

    Top12原则:

    1. 主要资源,重要功能,依据需求重要度进行资源分配, 项目100功能 1 day -> 100Task -> 10 Dev 20% 80%

    开发各阶段流程及规范

          需求、架构、设计、开发、测试等阶段流程及规范

                        需求是基石

        总流程 :战略规划 3-4年->产品立项-> 用户调研+竞品分析->业务信息 -> 需求分析 -> 指导 开发 与测试规范 -> 标尺【功能清单 + 4 要素: 界面 + 逻辑 + 交互 + 数据】-> 架构过程 -> 主体结构【系统模块/接口/分层/框架】-> 项目管理分工->详细设计【模块代码 结构定义】-> 代码实现 -> 迭代开发 + 迭代测试 + 持续集成 -> 系统测试 -> alpha test -> 用户验收测试 -> Beta Test -> 商用

    产品效率质量 =团队能力 + 写作流程

    改进收益: 需求>测试>架构>编码

    软件研发完成过程 -> 迭代画开发 ->敏捷开发

    敏捷开发过程 : REQ ->Architecure -> Iteration[Desing + Coding + Test] -> System Test

    迭代过程    ex :24month project

    HLR(高阶需求,只列出功能列表) 5% 2 week  400 Feature-> Architecture 5% module/interface/Layers/Tiers/Deploy/Process(系统有多少层, 每个层有多少个模块, 每个模块的接口,分层,物理分层,) -> 20 Iterations {20Feature -> 8 developer -> US LLR (低阶需求) 3day + Design 2 day + Code 2 Week + 1 week IT(集成测试) }

    迭代过程伴随  Continous Integration -> System Test -> User Acceptence Test -> Beta Test -> Maintenance


     


     

    需求阶段:最重要 + 改进  收益最大 -> 软件研发 唯一依据 标尺 -> 开发 + 测试  (两者无歧义)-> UML建模(容易被开发测试理解)

     以用户为中心  软件研发过程

    以用户需求为中心 软件研发过程

    Conception -> Feature -> Scenarion ->UseCase

    HLR(高阶需求) High Level Requirements ->  Scope -> Feature Bucket -> Function List   在软件设计初步完成

    Conception :一级业务需求 业务方向 业务目标-> Architecture  (ps: 一个concept 就是一个模块  所有模块加起来就是Architecture )

    Feature: 三级业务需求/四级业务需求 具体系统业务功能->Design

    Statements Of Work SOW

    LLR(低阶需求)Low Level Requirements  在迭代中完成

    Scenatio : 业务描述 每个独立业务功能 真实场景 --> 业务痛点

    Use Case: 软件 界面 + 交互 + 业务逻辑 + 数据变化  4要素 ->Code

     

    需求输出: 需求规格说明书【需求用例描述】


     

    敏捷迭代开发流程图

    1. 高阶需求-> 系统功能清单 400
    2. 架构设计 : 模块设计
    3. 迭代开发: 月迭代50 4Week 功能低阶需求分析【】
    4. 最终测试: 系统测试 + alpha test /用户验收测试 + beta test/灰度测试
    5. 商用运维

    以需求/业务架构设计为中心,软件研发-> 以模块 分解 分工 协作【USER + PM + DEV +TEST + OPRATION】->系统化工程->模块化开发

    Conception ->业务模块分析UML分析 ->Architecture -> 4 + 1 视图【逻辑视图/组件视图/并发视图/部署视图】-> 系统测试【功能性测试+非功能性测试】

    Feature->业务功能分析UML分析-> Design【类图 面向对象设计原则】->集成测试【功能性测试】

    Feature细化: Scenario/UseCase -> 用例分析 UML分析->Code->测试用例

    系统测试->迭代集成测试->测试用例

    架构设计【模块间设计】-> 详细设计【模块内类间设计】->编码


     

    设计阶段:架构设计 + 详细设计

    架构设计->系统模块 + 模块接口 + 系统接口 + 分层 + 进线程 + 组件 + 部署

    输出物:架构文档

     

    详细设计-> 每个模块都有个详细设计   

    目的:完成 类 + 公有函数 + 接口 + 继承 + 抽象类

    输出物:设计规格说明书


     

    编码阶段:不同模块开发人员 依据 详细设计说明书 + 需求规格说明书 每天代码实现

    编码/单元测试 + 持续集成【TFS/GIT/SVN/Jenkins】 + 迭代

    1. 开发人员每天代码提交
    2. 每天晚上代码集成 - CI
    3. 代码编码
    4. 代码静态质量检查
    5. 代码单元测试
    6. 自动化测试 Selenium
    7. 自动集成
    8. 自动部署

     


     

    测试阶段: 迭代测试 + 整体测试

    迭代测试-> 测试用例 + 集成测试 + 回归测试

    整体测试-> 系统测试 + 验收测试 + 灰度测试

    每日测试-> 自动化测试 + 单元测试


     

     


     

     

    需求分析 - 业务架构设计

    系统架构设计

    测试实践

     

    案例贯穿:去哪儿网


     

    系统集成架构设计

     

    需求 业务->业务架构分析->架构 技术

     

    架构:整体结构定义 功能性需求 + 非功能性需求  技术定义

    功能性需求-> 业务架构分析->功能性需求架构定义-> 逻辑架构设计 -> 静态结构

    非功能性需求->非功能性需求架构定义->框架架构设计->Framework->扩展性/配置性->动态解决方案

    架构设计粒度:模块间关系 package

    详细设计粒度:模块内类间关系

     

    架构设计 = 系统模块 + 模块间关系 + 系统框架

     

    架构设计 = 逻辑架构设计  + 框架设计

     

     

    架构设计6个阶段: 业务架构设计 -> 逻辑架构设计 -> 框架架构设计 -> 架构评审-> 架构上线 -> 架构重构

     

     

    架构设计4个输出 : 业务架构 + 数据架构 + 应用架构 + 框架架构API

     


    架构层面 - 粒度

    架构设计与详细设计

    架构设计与需求分析

    架构设计与项目管理

     


     

    去哪儿网 / 抖音 背景-> 业务架构设计 -> 逻辑架构/应用 设计 -> 基础/框架 架构

    需求 = 高阶 + 低阶

    高阶需求

    Conception: 业务大方向/业务大目标,业务域/业务模块多维分析,系统间关系 UML建模

    Feature:

    低阶需求

    Scenrio

    UseCase

    UML工具选型

    Rational Rose: 成本高,层次UML

    Enterpris Achitecture: 层次UML

    Visio: 美观,没有层次

     

     

     


     

     

    去哪儿网:

    项目发起人, 2*1.5 用户访谈

    建设背景:所有商务人士,所有航班在线预订, 所有酒店的在线检索与预订,线上订单,线上支付,账户,广告管理,促销活动,用户基本信息,

    一期系统大目标-业务模块

    航班服务

    酒店服务

    团购服务

    保险服务

    火车服务

    旅游服务

    报销中心

    订单中心

    支付中心

    账户中心

    广告管理

    促销管理

    用户中心

    金融中心

     

     

     

     

     

     

  • 相关阅读:
    Oracle exp/imp导出导入命令及数据库备份 (转载)
    多表初始化
    调用别的窗体
    修复k8s内存泄露问题
    如何高效的学习(转)
    Ansible11:变量详解【转】
    沟通的方式方法
    shell中的循环及条件判断
    Tomcat参数优化
    将DataReader转化为DataTables的一个简单实现
  • 原文地址:https://www.cnblogs.com/hao11/p/11670783.html
Copyright © 2011-2022 走看看