精华内容
下载资源
问答
  • Java软件开发流程图Visio 2013.vsdx 文档管理软件、自动化打包软件、禅道、svn、maven等都在流程里面有规划
  • 软件开发流程图

    2011-10-22 10:20:13
    软件开发流程图软件开发流程图软件开发流程图软件开发流程图软件开发流程图软件开发流程图软件开发流程图
  • 软件开发流程图 最详细

    热门讨论 2008-04-02 20:52:25
    完整的软件开发流程图, 考虑到各个方面,全面、详细。
  • 详细的描述了软件开发的各个阶段所进行的流程图
  • 软件开发流程图的国家标准

    热门讨论 2008-02-22 12:47:18
    国标GB1526-89,关于流程图的国家标准
  • 软件开发流程图VISIO文档

    热门讨论 2009-07-06 09:17:56
    软件开发流程图VISIO文档,适合普遍的软件开发
  • 软件开发模式之敏捷开发(scrum) [原文]https://blog.csdn.net/xiajun2356033/article/details/81513957 [RbY本文转发时已对原文错误适当纠正;] 简介 这几年关于敏捷开发在互联网企业中越来越广泛被使用到,运用...

    软件开发模式之敏捷开发(scrum)

    [原文]https://blog.csdn.net/xiajun2356033/article/details/81513957
    [RbY本文转发时已对原文适当整理并纠错;]

    转载说明:

    • 敏捷开发(scrum), 从上世纪90年代开始在国外提出, 2010年以后逐渐引起国内关注;
    • 有人对敏捷开发的理解是“快”,其实只是其正确实施的结果; 这不是敏捷开发的本质;
    • 软件工程实践, 跟造房子那样的土木工程完全不一样; 软件工程是用逻辑构件来搭建,不是物理结构,整个逻辑大厦任何一个节点不合格,软件就可能崩塌;
    • 试着把设计和编码分两个阶段,期望在设计阶段就把需求理清楚,结果证明不可行,而需求还在不断改变,甚至需求可能还是冲突矛盾的;
    • 人类大脑很少拥有完美的理性思维;我们的理性很多时候只能保障一个小环节,涉及到复杂系统就勉为其难了; 于是,敏捷开发就有用了。
    • 敏捷开发的特点就是“摸着石头过河”,又有点像深度学习中的梯度下降法,我们走一步看一步,每一步都走得很踏实(本地测试),逐渐趋近目标。
    • 敏捷开发比瀑布式开发对团队的要求相对低些,不一定要有高级架构师,不要求完全理性正确,每走一步都有及时的测试来验证。
    • 敏捷开发成功实施的前提是,团队成员对用到的技术栈要熟悉,大家对敏捷流程要认同。
    • 敏捷开发是用来提升协作效率的, 也引入了用来提高软件质量的迭代; 但却难以提升团队成员技术能力; 因此对开发人员个人素质要求更高些;
    • 敏捷开发也适合基于英特网的虚拟团队, 可远程协作分布式开发;尤其对3~12人的小团队更有优势。

    本人看过国内最早提到"敏捷性"(介绍敏捷方法的使用,包括极限编程)的书, 是2010年版"图灵计算机科学丛书"之一的《软件工程(第4版)》; [美]Shari Lawrence Pfleeger & [加]Joanne M.Atlee 著; 杨卫东 译;
    书名原文:Software Engineering: Theory and Practice , Fourth Edition.

    阅读链接:
    敏捷开发推荐书:敏捷革命
    《敏捷革命:提升个人创造力与企业效率的全新协作模式》该书由【美】杰夫·萨瑟兰所著,于2017年4月由中信出版社出版发行。

    -
    
    • 敏捷开发简介

    这几年关于敏捷开发在互联网企业中越来越广泛被使用到,运用的比较多的当属scrum敏捷开发和xp极限开发,人人都在谈论敏捷开发。那什么才是敏捷开发呢?

    • 本文目录

    1.什么是敏捷开发?
    2.传统的开发模式和敏捷开发模式的对比。
    3.敏捷开发scrum的实施。

    • 一. 什么是敏捷开发

    敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。

    在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

    • 二. 传统的开发模式和敏捷开发模式的对比

    瀑布模型:–传统的开发模式

    在这里插入图片描述

    优点:

    1. 为项目提供了按阶段划分的检查点。
    2. 当前一阶段完成后,您只需要去关注后续阶段.
    3. 它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。

    缺点:

    1. 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
    2. 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。
    3. 通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
    4. 瀑布模型的突出缺点是不适应用户需求的变化。

    敏捷模型:–敏捷开发模式
    在这里插入图片描述

    优点:

    敏捷开发的高适应性,以人为本的特性。
    更加的灵活并且更加充分的利用了每个开发者的优势,调动了每个人的工作热情。

    缺点:

    由于其项目周期很长,所以很难保证开发的人员不更换,而没有文档就会造成在交接的过程中出现很大的困难。

    • 三. 敏捷开发scrum的实施

    Scrum的英文意思是橄榄球运动的一个专业术语,表示“争球”的动作;把一个开发流程的名字取名为Scrum,相当于大家像打橄榄球一样迅速、富有战斗激情; 而Sprint意思是短跑冲刺。Scrum就是这样的一个开发流程。

    Scrum开发流程中的三大角色

    – 产品负责人(Product Owner)

    主要负责确定产品的功能和达到要求的标准,指定软件的发布日期和交付的内容,同时有权力接受或拒绝开发团队的工作成果。

    – 流程管理员(Scrum Master)

    主要负责整个Scrum流程在项目中的顺利实施和进行,以及清除挡在客户和开发工作之间的沟通障碍,使得客户可以直接驱动开发。

    –开发团队(Scrum Team)

    主要负责软件产品在Scrum规定流程下进行开发工作,人数控制在5~10人左右,每个成员可能负责不同的技术方面,但要求每成员必须要有很强的自我管理能力,同时具有一定的表达能力;成员可以采用任何工作方式,只要能达到Sprint的目标。

    scrum开发流程图

    在这里插入图片描述

    1、我们首先需要确定一个Product Backlog(产品需求列表),这个是由PO负责的(如图(一))。

    图(一)
    在这里插入图片描述

    2、有了Product Backlog列表,我们需要通过 Sprint Planning Meeting(Sprint计划会议) 来从中挑选出一个Story作为本次迭代完成的目标,这个目标的时间周期是1~4个星期,然后把这个Story进行细化,形成一个Sprint Backlog。

    3、Sprint Backlog是由Scrum Team去完成的,每个成员根据Sprint Backlog再细化成更小的任务(细到每个任务的工作量在2天内能完成);

    4、在Scrum Team完成计划会议上选出的Sprint Backlog过程中,需要进行 Daily Scrum Meeting(每日站立会议),每次会议控制在15分钟左右,每个人都必须发言,并且要向所有成员当面汇报你昨天完成了什么,并且向所有成员承诺你今天要完成什么,同时遇到不能解决的问题也可以提出,每个人回答完成后,要走到黑板前更新自己的 Sprint burn down(Sprint燃尽图)(如图(二)和如图(三))。

    图(二)
    在这里插入图片描述
    图(三)
    在这里插入图片描述

    5、做到每日集成,也就是每天都要有一个可以成功编译、并且可以演示的版本。

    6、当一个Story完成,也就是Sprint Backlog被完成,也就表示一次Sprint完成,这时,我们要进行 Srpint Review Meeting(演示会议),也称为评审会议,产品负责人和客户都要参加(最好本公司老板也参加),每一个Scrum Team的成员都要向他们演示自己完成的软件产品。

    7、最后就是 Sprint Retrospective Meeting(回顾会议),也称为总结会议,以轮流发言方式进行,每个人都要发言,总结并讨论改进的地方,放入下一轮Sprint的产品需求中。

    图(四)

    在这里插入图片描述

    本文链接:
    敏捷开发管理工具:teambition
    现代软件工程讲义4 Scrum/Sprint

    参考链接:
    敏捷开发之Scrum扫盲篇
    百度百科
    敏捷开发 模型讲解

    展开全文
  • 嵌入式软件开发流程

    万次阅读 2018-05-06 20:16:33
    对于使用宿主机(PC)的集成化开发环境,软件开发流程一般包括创建项目、添加文件、编译连接、下载调试等步骤,如下所示。 1:嵌入式软件开发流程 (1)创建工程项目:在配置硬件设备和安装软件开发工具后,...

    根据使用的开发工具套件不同,软件开发流程会有差异,但主要步骤大致相同。对于使用宿主机(PC)的集成化开发环境,软件开发流程一般包括创建项目、添加文件、编译连接、下载调试等步骤,如下图所示。

    图1:嵌入式软件开发流程

    (1)创建工程项目:在配置硬件设备和安装软件开发工具后,就可以开始创建工程项目,通常需要选择项目文件的存储位置及目标处理器。

    (2)添加项目文件:开发人员需要创建源程序文件,编写应用程序代码,并添加到工程项目中;还将使用设备驱动程序的库文件,包括启动代码、头文件和一些外设控制函数,甚至中间件(Middleware)等。这些文件也需要添加到项目中。

    (3)配置工程选项:源于硬件设备的多样性和软件工具的复杂性,工程项目提供了不少选项,需要开发人员配置,如输出文件类型和位置、编译选项和优化类型等,还要根据选用的开发板和在线仿真器,配置代码调试和下载选项等。

    (4)交叉编译连接:利用开发软件工具对项目的多个文件分别编译,生成相应的目标文件,然后连接生成最终的可执行文件映像,以下载到目标设备的文件格式保存。如果编译连接有错误,返回修改;如果没有错误,先进行软件模拟运行和调试,再下载到开发板运行和调试。

    (5)程序下载:目前,绝大多数微控制器都使用闪存(Flash Memory)保存程序。创建可执行文件映像后,需要使用在线仿真器(或串口、网口)将其下载到微控制器的闪存中,实现闪存的编程;还可以将可执行文件下载到SRAM中运行。

    (6)运行和调试:程序下载后,可以启动运行,看是否正常工作。如果有问题,连接在线仿真器,借助软件开发工具的调试环境进行断点和单步调试,观察程序操作的详细过程。如果应用程序运行有错误,返回修改。

    展开全文
  • 软件项目开发流程

    万次阅读 多人点赞 2019-10-08 05:30:56
    软件开发流程(Software development process) 首先 看一下基本软件项目开发流程图 其中 1.需求分析: 通过对客户业务的了解和与客户对流程的讨论对需求进行基本建模,最终形成需求规格说明书。 2.总体...

     

     

     

     软件开发流程(Software development process)

     首先 看一下基本软件项目开发流程图

    其中

    1.需求分析:
      通过对客户业务的了解和与客户对流程的讨论对需求进行基本建模,最终形成需求规格说明书。
    2.总体设计:
      通过分析需求信息,对系统的外部条件及内部业务需求进行抽象建模,最终形成概要设计说明文档。
    3.详细设计:
      此部分在对需求和概要设计的基础上进行系统的详细设计(也包含部分代码说明)。
    4.开发编程:
      对系统进行代码编写。
    5.测试分析与系统整合:
      对所有功能模块进行模拟数据测试及其它相关性测试并整合所有模块功能。
    6.现场支持:
      系统上线试运行进行现场问题记录、解答。
    7.系统运行支持:
      系统正式推产后,对系统进行必要的维护和BUG修改

     

     

    需求分析是怎样做的?

    需求分析是构建软件系统的一个重要过程。 一般,把需求类型分成三个类型: 

    1、业务需求(business requirement)
      反映了组织机构或客户对系统、产品高层次的目的要求,它们在项目视图与范围文档中予以说明。 
    2、用户需求(user requirement) 
      文档描述了用户使用产品必须要完成的任务,这在使用实例文档或方案脚本说明中予以说明。 3、功能需求(functional requirement)
      定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。

     

    业务需求和用户需求是软件需求分析的基础,也是软件构建的前提。
    系统分析员通过对业务需求和用户需求的分解,将其转换成可以形式化描述的软件功能需求。
    开发软件系统最为困难的部分,就是准确说明开发什么。这就需要在开发的过程中不断的与用户进行交流与探讨,使系统更加详尽,准确到位。这就需要确定用户是否需要这样的产品类型以及获取每个用户类的需求。

      客户也经常是矛盾的。事实上,很少有客户能够明确的知道怎样的一个系统对自己是最有益处的,他们往往在集中方案之间徘徊,于是经常产生需求的变动。生产厂商经常陷入客户自己的矛盾之中。
      客户的负面影响可能对于能够在预算内按时完成项目产生很大的影响。尽管客户需要对需求的质量负责任,但是,当一个软件项目因为客户事先没有预料到的情况而导致失败的时候,即使客户不会追究开发方的责任,就软件项目本身而言,也已经是失败的。
     
    总结: 
    良好的需求分析是软件成功的基础。
    在软件项目整个过程中系统分析员主动进行沟通,提出指导性意见。当软件融合了客户和系统分析员双方智慧,其质量将会进一步得以提高。

     

     

    软件开发管理规范流程图

      摘项目管理的根本目的是按时、保质、保量完成预期交付的成果。项目管理要让整个组织能清楚理解项目实施的目的、影响、进度,应做到项目组所有员工都应理解项目实施的原因、意义及客户的要求。在项目管理中还能看到公司高层领导通过实际行动表现出来的对于项目实施的支持与帮助,通过以制度化管理来组织合理安排员工的工作职责和角色转换。为满足上述要求,就必须让员工、企业、客户能接受并适应新的“软件项目开发管理规范”。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     


     

    1.启动阶段

      这个阶段的工作目的是决定一个项目是否需要启动。为了达到这个目的,首先要明确项目的总体战略目标,对项目的需要建立认同。即确定到底需要做什么、开发什么产品或提供什么服务,以及需要解决什么样的问题和需要满足客户或市场的什么要求等,同时还要总结项目工作的范围、所需资源、大约开支、各种风险,以及该项目不执行的其他替代选择等。这些代表了对整个项目目标从战略角度和宏观层次所进行的分析,通过项目的意向书总结出来,由此确证客户或项目发起人和赞助者的要求与期望,并帮助他们判定项目是否上马。项目意向总结书的通过及项目被批准上马形成了这个项目的起始点。

    • 产品领域研究

      研究产品所在领域的状况,为项目论证提供依据。研究内容包括:

    产品领域的现状和前景
    产品领域的商业模式和业务流程
    产品的价值和盈利空间
    产品的特性和复杂度

     

     

    • 技术可行性研究

      研究产品的实现技术,总结技术可行性。研究内容包括:

    类似产品的当前实现技术和技术趋势
    实现技术的候选方案
    各个方案的优点、成本和风险
    开发团队与实现技术的匹配情况

     

     

     

    • 项目论证

      基于商业和技术等方面对项目的可行性进行论证,确定项目是否开展。如果开展项目,则进一步论证项目的总体方案。

      论证的内容包括:

    商业可行性
    技术可行性
    当前产品与类似产品的比较
    项目收益和前景
    项目的成本和风险
    项目的总体方案

     

     

    • 确定项目目标和范围

      项目开始时,所有相关人员必须对项目的目标和范围达成共识,形成共同的项目愿景。并把愿景叙述为《项目开发大纲》向相关人员传达。

    《项目开发大纲》的内容包括:

     

    概 

    用三到五张图表来描述产品目标、功能、平台、客户、进度表和开发职责

    高级功能

    用一个段落来综述产品,再用一个段落来描述每个重要的功能

    不实现的功能

    用一个段落来描述每个对产品有用的但本项目不实现的功能

    涉 

    用一个段落来明确每个重要的涉众群体和他们的风险股本

    项目需求

    用一个段落来讲述每个重要的项目需求

    项目风险

    按风险暴露量对每个重要的项目风险都用一个段落来讨论

    项目回报

    用一个段落综述产品的回报,其后再对每个重要的项目回报都用一个段落来讨论

    结 

    用一到三个段落将上述所有部分联系起来,明确项目的需求和风险,再用论点和论据来总结为什么这个项目会成功

     

     

     

    2.计划阶段

      这个阶段的工作是为整个项目做计划。项目开始后,首先要确定项目的具体范围,明确定出项目到底要做什么,总结、归纳并定出产品的功能。然后进一步制定项目的计划,列出每项具体工作,并建立所有工作任务的重要性及顺序;确定每项工作的执行人和所需资源;根据人员的配置和能力设定各项工作和整个项目的完成时间表。

    • 规模、工作量评估

      围绕各项计划的制定工作对项目的规模、工作量等进行评估,评估的内容包括:

    模块数量与复杂度
    输入、输出和对外接口等数量与复杂度
    SLOC和功能点
    非生产性的支持工作量
    开发工作量(人月)
    进度与里程碑
    进度风险

     

     

    • 定制项目开发计划

      项目开发计划体现了项目组对整个开发周期的预期,指定了项目开发的总体方针。与其他计划一样,项目开发计划不是固定不变的,在执行过程中要对计划进行监控,可能会根据实际情况修改计划并重新发布。

    《项目开发计划》的内容包括: 

    概 

    用三到五张图表来描述产品目标、功能、平台、客户、进度表和开发职责。

    (《项目开发计划》的概述部分应该是《项目开发大纲》中概述部分的拷贝。当项目计划改变时,修订《项目开发计划》的概述部分而不是修订《项目开发大纲》。这样,以后在进行项目评价时,通过比较《项目开发大纲》和《项目开发计划》的概述,就能看出项目是如何改变的)

    高级功能

    用一到五页的篇幅来概述产品的功能,其中,要包括这些功能的附加信息(开发者需要这样的信息来了解实现需求)。

    项目成员

    确定软件工程职能角色,以及分配到这些角色的人员数量。

    软件过程

    概述这个项目中所应用的软件过程。

    (具体内容可在《质量保证计划》中定义)

    软件工程方法

    概述这个项目中所应用的软件工程方法和技术。

    (具体内容可在《质量保证计划》中定义)

    进度和工作量

    这一部分要表达出整个项目进度和工作量的估计。其中要包括:

    • 对固定不变的里程碑和同步点的解释
    • 在评估中的设想情况、评估中的不准确性的可能来源
    • 随着项目的进展如何更新评估

    (具体进度表内容可在《开发进度表》中定义)

    风险管理计划

    概述这个项目中风险管理计划。

    (具体内容可在《风险管理计划》中定义)

    测 

    概述这个项目中要收集的测量。

    软件工具

    列出要使用的每一项软件工具,以及该工具所支持的任务。

    项目支持

    硬件支持 明确所需的硬件,包括那些需要移动、获取或升级的硬件。

    软件支持 明确所需的软件,包括需要获取、安装或升级的软件件。

    人力支持 由哪个人、部门或团队为开发组的哪项任务提供支持。

     

     

    • 定制风险管理计划

      风险管理任务包括:风险识别、风险分析、确定风险优先级、定制风险化解方案、风险化解和风险监控

     《风险管理计划》定义这些任务的执行流程和人员分配。

      《风险管理计划》的内容包括:

     

    概 

    用文字和图表概述风险管理任务的总体执行流程。

    风险识别

    详细说明“风险识别”任务的实施细节和各项工作的负责人。

    风险分析

    详细说明“风险分析”任务的实施细节和各项工作的负责人。

    确定风险优先级

    详细说明“确定风险优先级”任务的实施细节和各项工作的负责人。

    定制风险化解方案

    详细说明“定制风险处理方案”任务的实施细节和各项工作的负责人。

    风险化解

    当风险发生时,需要采取相应的措施化解风险。

    这部分的内容是描述风险化解工作的操作规范和流程。

    风险监控

    详细说明风险监控任务的实施细节和各项工作的负责人。

     

     

     

      风险管理中通常会用到《Top N 风险列表》,风险列表按照风险暴露量排序列出当前项目中主要的N个风险,《Top N 风险列表》的内容包括:

     

    本周排名

    本周的排名(如果本周已被完全化解用“---”表示)

    上周排名

    上周排名(如果是新识别的风险用“---”表示)

    上表周数

    该风险已上表的周数

    风 

    风险的名称或简述

    类 

    风险类型(只针对进度相关的风险):

    • 计划编制
    • 组织和管理
    • 设计和实现
    • 客户和需求
    • 承包商
    • 产品
    • 人员
    • 过程
    • 技术
    • 外部环境
    • 开发环境

    发生概率

    风险发生的百分比概率

    损失程度

    风险发生时损失的进度(工作日或工作周)

    暴露量

    发生概率 X 损失程度

    状 

    风险的当前状态:未发生、已发生、已化解

    化解方案

    简述风险的化解方案,如果有具体的化解方案文档则链接到相应文档

    化解进度

    对已发生的风险,简述化解进度(未发生的风险用“---”表示) 

     

    • 定制质量保证计划 

      保证工作质量的一个重要步骤是制定一套合理的质量保证计划并贯彻执行。

      《质量保证计划》的内容包括:

    概 

    说明编写的目的、适用范围以及对相关人员的要求等

    软件过程

    详细说明这个项目中所应用的软件过程。

    软件工程方法

    详细说明这个项目中所应用的软件工程方法和技术。

    工作规范

    对工程方法中的各种工作任务进行规范,明确执行的时机、流程和准则等。这些工作任务包括:

     

    常规开发活动

    (需求分析、架构设计、详细设计、编码和测试、发布和实施等)

    会议

    (工作例会、进度会议、审查会议等)

    评审

    (方案评审、技术评审、质量评审等)

    测量

    (产品规模测量、进度测量、缺陷率测量、测试覆盖率测量等)

    其他活动

    (技能培训、资料收集、内部流、客户沟通等)

     

     

    • 定制开发进度计划

      基于当前对项目的规模和工作量评估,定制初步的开发进度表,作为项目开发计划的组成部分。

      《开发进度表》的内容包括:

    项目的开始和结束时间
    项目各个阶段的开始和结束时间
    每个阶段的工作任务及其开始和结束时间
    每个工作任务的子任务的及其开始和结束时间
    里程碑和同步点
    角色的定义和任务分配

     

       作为跟踪项目进度的重要依据,进度表在项目推进过程中需要不断细化。另外,当实际进度与计划进度出现偏差时,需要修改进度表并重新发布。

     

     

     

    3.执行阶段

      这个阶段的工作是通过执行项目的计划来完成项目的任务。它包括落实一切所需资源,如:人员、设备、费用、技术、信息,由管理者领导全体项目参与者开展各项工作。同时跟踪各项具体工作和整个项目的进度,定期向全体项目人员及项目的发起人报告项目状态。

    • 需求分析

      分析产品的关键需求、对架构设计有影响的需求和风险较高的需求,直到分析的程度能开展足界面原型设计和架构设计工作。

      《需求规格说明书》的内容包括:

     

    商业或业务需求

    从商业或业务角度宏观上对产品或系统的要求。它主要在宏观的层面归纳总结为满足客户提出的要求或赢得市场竞争所必须实现的功能、性能、质量等要求。

    1. 做什么
    2. 做的范围
    3. 对结果的要求

    使用者需求

    从客户对软件产品或系统使用方案的角度出发,描述和总结使用者利用该软件产品或系统能够做的事或能够完成的任务。

    功能需求

    根据上述使用者需求列出的使用方案,列出开发者必须为软件产品或系统实现的功能。

    性能需求

    1. 运行速度、容量、并发性能
    2. 对资源的利用率
    3. 对外界输入的反馈速度和准确性
    4. 对差错的负荷能力

    系统需求

    • 必须适应的运行环境的要求

    (包括运行平台、网络及其他硬件要求)

    • 与其他系统兼容的要求

    (包括与操作系统、数据库、浏览器及其他应用软件的兼容要求)

    • 与外部其他系统和组件的接口要求

    质量需求

    • 对用户重要的质量标志

    (可靠性、效率性、灵活性、安全性、互操作性、稳定性、健全性、可用性)

    • 对开发者重要的质量标志

    (可维护性、多用转换性、重复使用性、可测试性)

    其他需求

    不属于上述需求范围的,但受到其他环境和商业合同影响的要求。

    1. 国家或地区的任何特别的标准
    2. 软件使用界面的特别要求
    3. 与知识产权有关的要求
    4. 软件所面对的市场和行业的规范
    5. 客户的特别要求

    开发的局限

    对开发的成功与否起很大影响的因素,是开发能力的局限:

    1. 人员的局限
    2. 技术的制约和局限
    3. 客户的特别要求

    《需求分析报告》的编制方式可以是多样的,例如把所有“非功能性需求”组织成“外部接口需求”、“质量属性需求”和“需求约束”。

    • 界面原型设计

      明确了系统的关键需求后,就可以进行界面原型设计工作,获取用户的反馈,尽快确定产品的界面基调。同时要编写一份《界面设计概要》文档,作为后续的界面设计工作的指导。

      《界面设计概要》的内容包括:

    • 设计的理念
    • 理念的来源或参考
    • 设计的要点
    • 与类似产品界面的对比

     

    • 架构设计

      架构设计从关键需求开始,建立概念性的架构,并逐步细化和验证。最终生成架构设计说明书和架构基线代码。

      架构设计的方法:可以从几个不同的视角进行架构设计,然后汇总综合得出完整的设计。

    《架构设计说明书》的内容包括:

     

    概 

    说明编写的目的、适用范围以及设计原则等。

    逻辑架构

    关注功能。其设计着重考虑功能需求。

    1. 细化功能单元
    2. 发现通用机制
    3. 细化领域模型
    4. 确定子系统接口和交互机制

    开发架构

    关注程序包。其设计着重考虑开发期质量属性,如可扩展性、可重用性、可移植性、易理解性和易测试性等。

    1. 确定要开发或直接利用的程序包之间的依赖关系
    2. 确定采用的技术、框架等

    数据架构

    关注持久化数据的存储方案。其设计着重考虑“数据需求”。

    1. 持久化数据存储方案
    2. 数据传递、数据复制、数据同步等策略

    运行架构

    关注进程、线程、对象等运行时概念,以及相关的并发、同步、通信等问题。其设计着重考虑运行期质量属性,例如性能、可伸缩性、持续可用性和安全性等。

    1. 确定引入哪些进程与线程
    2. 确定主动对象、被动对象,以及控制关系
    3. 处理进程线程的创建、销毁、通信机制、资源争用等
    4. 协议设计

    物理架构

    关注软件系统最终如何安装或部署到物理机器。其设计着重考虑“安装和部署需求”。

    1. 确定物理配置方案
    2. 确定如何将目标程序映射到物理节点

    总 

    基于上述的设计进行总结,并描述架构基线。

     

     架构设计的另一个重要任务是编写架构基线代码,基线代码表述和验证架构,同时也是指导后续开发的基础代码。架构基线代码的内容包括:

    所有工程项目
    工程目录结构
    软件包结构
    导入所有依赖包
    基础公共代码
    架构框架代码
    架构框架示例代码和测试代码
    数据库框架

    展示了软件架构师的工作和成功的软件架构设计包含的内容:

    软件架构师的工作

    成功的软件架构设计

      软件构建

       软件可以分阶段进行构建,每个阶段可以使用增量的方式开发,用通过若干个Build构建,最后发布阶段性产品成果。

      (注意:在这里 ,名词“阶段”的含义和本文其他地方的含义不一样)

     

    • 阶段计划

      构建阶段计划的内容包括:

    确定本阶段要实现的功能
    列出阶段任务
    计划Build构建数量
    细化《开发进度表》中本阶段的工作内容

     

     

    • Build 构建

       Build构建以增量的方式执行阶段的开发任务,每个Build构建的周期一般不超过两星期,每一次Build构建都会发布为一个内部版本,并提交测试。测试发现的问题留待以后的Build构建解决。

     

    • Build计划

      《Build计划》的内容包括:

    本次Build的版本号
    本次Build的历时
    本次Build的工作任务
      要解决的遗留Bug
      本应由以前的Build实现的,但推迟到本次Build实现的功能
      要实现的新功能
      其他工作任务
    工作任务分配

     

     

    • 需求细化

      根据《Build计划》,细化本次Build要实现的需求,细化到能进行详细设计为止。有了细化的需求后就编写本次Build的测试计划。

      《测试计划》的内容包括:

    • 功能测试
      要测试的功能
      测试时间
      测试方式
      验收标准

       

    • 其他测试(性能测试、边界测试、使用界面测试、可用性测试、安全性测试等)
      要测试的内容
      测试时间
      测试方式
      验收标准

       

    • 。。。。。。

     

    • 界面设计

      根据细化的需求设计用户界面,当界面确定后即可编写测试用例。

      《测试用例》的内容包括:

    测试用例对应的功能模块
    测试用例的性质(功能测试用例、性能测试用例、。。。。。。)
    输入(或操作步骤)
    期望输出
    实际输出(执行测试后再填写)
    是否通过(执行测试后再填写)

     

     

    • 详细设计

      详细实际每项需求的实现方法,对于重要的设计决策、算法、公共模块和外部接口等必须以模块设计文档的形式进行记录。《模块设计文档》的内容包括:

    模块名称
    设计思想
    设计图表(类图、流程图等)
    要点描述(包、接口、类、方法、算法、设计模式)
    测试方式

     

     

    • 编码、单元测试

      编码和单元测试是开发人员的工作,对于重要的代码都必须进行单元测试,编写代码必须遵守下列准则:

    遵守编码规范
    编码前必须充分理解相关的需求
    编码前先进行设计,把流程理顺
    注意设计方法和设计模式的灵活运用
    总体考虑问题,使代码遵从架构并容易测试
    设计时要充分考虑异常情况和临界条件
    严禁Copy-Paste,注意提取公共代码,在编码过程中实现重构
    异常处理必须记录日志,严禁草率地直接打印异常信息
    灵活运用ASSERT() / VERIFY()等断言来帮助调试程序
    单元测试是程序员的工作,所以编码完成后必须对代码严格测试
    功能代码完成后必须先做以下4件事情:
      编译代码,保证编译通过
      (不运行程序)对代码进行全面检查
      用调试模式启动程序,一行一行单步执行代码,并注意调试输出
      改变条件,让代码尽可能走遍所有程序分支
    Check In代码前必须保证能编译通过

     

     

    •  创建Build

      代码集成发布前需冻结代码,所有人把要提交的代码Check In,并保证编译后的程序能在测试服务器上正常启动,界面能正常打开。同时还要提交Build清单。

      《Build清单》的内容包括:

    Build版本号和日期
    改正的Bug
    修改的功能
    实现的新功能
    其他说明

     

     

    • 集成测试

      按照《测试计划》针对《Build清单》执行《测试用例》,测试完成后编写测试报告。

      《测试报告》的内容包括:

    测试用例汇总(用例数量、通过的用例数量、未通过的用例数量等)
    Bug汇总(Bug总数、新增Bug数量、关闭Bug数量、Bug趋势图表等)
    测试计划执行情况
    测试总结

     

     

     

    • 阶段产品发布

      构建阶段完成后发布阶段产品成果,向用户展示并接受用户反馈,同时做好阶段总结。

      《发布清单》的内容包括:

    产品版本号和日期
    改正的Bug
    修改的功能
    实现的新功能
    其他说明

     

      《阶段总结报告》的内容包括:

    阶段任务的完成情况
    进度计划的执行情况
    用户的反馈情况
    本阶段碰到的主要问题
    下一阶段的改进建议

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    4.控制阶段

      这个阶段的工作是确证项目工作的结果符合项目的计划。它通过对项目结果的衡量和审核,与项目计划所期望的结果进行比较,找出实际结果与计划的差别,并制定处理措施。这个阶段的工作还包括对项目进程中出现的任何更改要求进行审核和批准。同时调解项目进程中出现的各种问题,如:对缺乏的资源的补偿调节;对项目的进度表及各项具体工作的优先级或顺序的修订。

    • 风险管理

      开发期间要对风险进行监控,定期检查、更新和发布《风险列表》。

     

    • 质量管理

      1)  评审

      评审是质量保证的重要环节,原则上每个重要的工作任务或阶段结束前都必须经过评审,如:方案评审、计划评审、需求评审、设计评审和代码评审等,工作是否被通过、是否需要修改或重做均由评审结果决定,评审结果以《评审报告》的形式发布。

      《评审报告》的内容包括:

     

    基本信息

    评审主题、时间、提交者、评审者等

    评审内容

    评审内容的列表和简述

    问答记录

    评审过程中重要的问答记录

    评审结论

    整个评审的结果,如:

    1. 完全通过,无需修改
    2. 基本通过,需要作小量修改,但不必再评审
    3. 大体通过,需要作一些修改,之后再评审
    4. 不通过,需要作大幅修改,之后必须重新评审

    评审意见

    针对评审结论提出的意见和建议

     

     

     2)  测试

      测试是对被构建产品最直接有效的质量保证措施,测试结束后需要提交《测试报告》。

     

    • 变更管理

      开发过程中经常会出现多种变更,如:需求变更、设计变更或人员变更等。这些变更通常会对开发进度造成影响,因此要对变更及其处理过程进行跟踪,最后报告变更的处理结果。

      《变更处理报告》的内容包括:

     

    基本信息

    变更主题、发生时间等

    详细信息

    变更的详细描述

    变更处理

    变更的处理方式和步骤

    处理结果

    变更的处理结果

    变更影响

    变更对项目造成的影响

     

    • 进度监控

      项目进度会议是了解项目实际进度的有效措施,在会议中评审工作报告,解决遇到的问题并计划下一步工作:

      《工作报告》的内容包括:

    基本信息:  报告者、汇报时间、工作时间段等
    工作情况:  已完成的工作、未完成的工作
    遇到的问题:工作中碰到的阻碍
    工作计划:  下一步的工作计划

     

     

      项目进度会议的另一个重要议题是审查进度表,了解项目实际进度与计划进度的差异。为进度表调整和资源调配提供重要依据。

     

    • 测量

      在项目开发过程中,收集一些关键的测量,对了解项目状态和进行项目决策很有帮助,同时也为以后的项目提供历史数据参考。每个测量都要生成测量报告并存档。

      《测量报告》的内容包括:

    基本信息,包括测量主题、测量时间、测量者等
    测量内容和测量值
    测量分析

     

     

     

     

    5.结束阶段

      这个阶段的工作是确保项目的最终结果或提交物达到计划的要求,并对完成的结果作可接受的确认。还包括在项目完成之后的收尾工作,对整个项目的经历进行总结,修订项目文档,用户培训等。

    • 产品测试

      因为产品即将验收和发布,所以必须对产品进行完整测试,产品测试比其他测试要求更严格,当产品的质量达到发布的要求后才能发布。产品的质量由《测试报告》体现。

     

    • RC版本发布

      发布RC版本让用户体验并收集反馈意见,为产品验收作准备。RC版本发布后,产品不应该有大改动,一般只是界面的局部调整。

     

    • 编制用户文档

      针对不同的使用者角色,编制相应的用户文档,对管理者用户需要提供《安装、维护指南》,对普通用户需要编制《产品使用手册》。

      《安装、维护指南》的内容包括:

    产品各组件的说明
    产品部署架构
    安装、配置和卸载等步骤
    启动、停止和重启等操作
    其它操作:日志、备份、还原等

     

     

      《产品使用手册》的内容包括:

    产品介绍
    各个功能的介绍
    通过实际案例介绍各个功能的使用方式和操作步骤

     

     

    • 产品使用培训

      对于为特定客户开发的软件产品,在发布前需要对用户进行产品的使用培训。培训前需要部署好操作环境,编写培训资料,然后组织培训会议。

     

    • 产品验收

      对于为特定客户开发的软件产品,通常根据签订的开发合同和产品方案等条款逐项验收,验收时,用户通常会执行验收测试案例。

     

    • 最后修订

      在产品验收通过后,正式发布前对产品作最后的修订,可能包括:

    开发文档修订
    用户文档修订
    代码整理

     

     

    • 正式版发布

      正式版的发布标志着开发阶段的结束,产品从此时起进入维护阶段,正式发布前可能要做一些准备工作,如:数据迁移和环境配置等。

          

    • 项目总结

      项目结束后需要对整个项目开发阶段的工作进行总结,交流心得,吸取经验和教训,并归档为《项目总结报告》。

      《项目总结报告》的内容包括:

    总体评价
    成本、收益汇总
    重要心得
    管理总结
    技术总结

     

     

    6,总结

      软件项目开发经历多个阶段,每个阶段包含多个任务,每个任务会产生相应的工件。需要相应的质量保证措施对任务进行监控,保证任务的执行。任务完成后也需要对任务进行评审,保证任务的质量。

      这些工作均由开发团队和相关人员按照工作流程执行。因此,合理的角色任务分配和沟通制度是软件项目成功的重要保障。

     

     列出几种比较普遍的角色和任务划分方案:

    职责和角色不清楚往往是造成软件项目团队管理混乱的一个重要原因,一个好的软件团队必须根据团队规模的不同和项目本身的特点对项目成员的角色和岗位进行明确的划分,这样团队中的每个成员才可能有清晰的责任和目标。

      软件开发不管采用哪种生命周期模型和开发方法论,整个过程都会包含需求,设计,开发,测试,配置管理等各项活动。而这些活动会对应到项目中的不同角色,项目中进行岗位划分后每个岗位成员可以兼职多个角色。形成相关的角色岗位矩阵。

     

      方案一 项目负责人总览全局

      对于小作坊的软件开发团队,可以由一个项目负责人总览全局。项目负责人承担从用户需求->软件需求->总体设计的所有工作。同时还需要做到整个团队进度规划,质量保证,配置管理和沟通协调等相关工作。所以小型项目团队对项目负责人的业务,技术和沟通管理等技能都要求较高,项目负责人是项目中的总体方案确认者和架构师。项目负责人能力和技能往往决定了整个软件项目的成败。

      我们这里指的小型团队并不是只一个人单打独斗的项目,所以项目负责人最好不要介入到模块设计和编码活动中,而是应该把重点放在进度的控制和质量的保证上面。由于项目负责人一般有较强的技术能力,所以项目负责人可以承担项目中要使用的一些新技术的研究,项目中一些疑难问题的解决等相关工作。项目负责人还应该有计划的设计开发人员的代码进行Review,对发现的规范性,性能,复用差等问题跟项目成员确认,并写入到项目开发规范中。

     

      方案二 项目负责人和开发负责人分离

      在这种方案下项目负责人和开发负责人在软件需求和架构上的工作是重叠的。这两个岗位的人员共同来确认项目的总体方案和架构。项目负责人的重点在项目管理和与客户交流沟通上,只有确认清楚第一手的用户需求,才能开发出用户满意度高的软件。对于很多小型项目往往是用户需求都没有搞清楚就开工,项目成员完全凭借着自己的感觉在做系统,过程中又不注意与用户及时反馈和迭代,导致开发出完全不能使用的系统;开发负责人的重点是对整个开发过程负责,包括对项目经理确认的进度目标进行任务的进一步分解,安排后续的增量和迭代计划。方案二的重点是第一次解放项目经理,架构的核心移动到了开发负责人,而项目经理仅仅是参与讨论和评审。而单独剥离出开发负责人后,可以更好的对开发过程进行跟踪和协调,开发负责人重点放在项目内部,而避免过多去和外部干系人沟通和协调。

     

      方案三 测试的专职化

      对于项目团队发展到5-10的时候,项目中的测试工作必须专职化的由测试人员来完成。一般测试人员的配置比例为4-6个开发人员需要配置一名专职化的测试人员。测试人员站在第三方和模拟使用者角度来进行系统的测试,可以更好的发现系统的BUG和相关问题,有效的保证系统的质量。

      方案三中项目经理工作进一步清晰,项目经理不在承担软件需求和架构的相关工作。而重点放在项目内外的沟通协调和整个项目进度计划的安排上。这个时候项目中的设计负责人对整个系统的总体设计方案和架构负责,而且设计负责人也将不在参与具体的功能模块的设计和开发工作。设计负责人的重点转化到的软件需求的开发和总体设计上面(如涉及到RUP中的用例建模,用例分析,架构设计,组件接口复用)。

     

      方案四 项目经理和需求角色分离

      当项目团队的规模发展到12-20人的时候,项目团队基本上可以算做中小型的项目团队。这个时候项目经理完全专职化做项目管理的工作。包括项目进度计划制定,项目跟踪监控,风险分析和控制,项目度量分析和决策等相关内容。对于需求活动设置专门的需求工程师岗位来完成需求的开发。同时项目中设置专门的架构设计人员,架构设计人员不再负责需求的开发工作,而重点在于系统总体设计方案的确定,系统的4+1视图的分析,同时架构人员要考虑整个系统的集成方案的确定和具体功能单元和模块的集成。

      由于项目规模的扩大,项目的配置项更加复杂,项目也需要同时起开发,测试,集成和BugFix等多个分支。因此需要设置专门的配置管理员来进行项目的配置管理。

      对于项目同时需要开发新版本,又需要对已经发布的维护版本进行功能改进的时候,项目中要考虑设置专门的维护人员。由维护人员来完成项目小功能的改进和BUG的修复。这样新版本设计开发人员可以更专注的进行新功能的开发。

     

     

     

     

     

     

     

    阶段完成标志

      在项目开发过程中,当一个阶段完成后才会开展下一个阶段的工作;另外,“某个阶段完成”通常被定义为项目的一个里程碑,里程碑标识了项目的进度,它是项目开发和控制的重要参考,对整个项目有重要的意义。因此,“确证某个阶段是否已经完成”的工作非常有重要。

     

    • 每一个阶段的结束以它特定任务的完成为象征

      只有当某个阶段中被规定的所有工作任务都完成了,这个阶段才算真正结束,整个项目才可以进入到下一个阶段中去。反过来说,要是阶段中某个任务没有全部完成,按照项目的定义,整个阶段就不能算是完成,因此项目就不能进入到下一个阶段去。

    • 衡量阶段结束的工作结果必须是实在的交付品

      阶段中的任务是否完成是透过任务活动中产生的交付品来体现的,交付品必须是可交付的、非抽象的、实质的并且可以通过用衡量的方法来判断是否真正地完成了的具体事物。如:某一阶段的完成是以建造一个样品或完成某分文件作为象征。任何项目阶段的结束,都应该有这样的实质性东西的完成作为象征。

    • 跨阶段的进程以阶段结尾的合格验证和审核来决定

      当一个阶段结束时,在进入到下一个阶段之前所需要做的工作应包括对交付品进行合格验证,并检查这一阶段的工作质量和效率,由此判断是否可以进入到下一个阶段。这些检验象征了一个阶段的结尾终点,表示项目的进程离开了上一个阶段而进入了下一个阶段。

     

     

     

     

     

         1 相关系统分析员和用户初步了解需求,然后用WORD列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面。 
      2 系统分析员深入了解和分析需求,根据自己的经验和需求用WORD或相关的工具再做出一份文档系统的功能需求文档。这次的文档会清楚例用系统大致的大功能模块,大功能模块有哪些小功能模块,并且还例出相关的界面和界面功能。 
      3 系统分析员和用户再次确认需求。 
      4 系统分析员根据确认的需求文档所例用的界面和功能需求,用迭代的方式对每个界面或功能做系统的概要设计。 
      5 系统分析员把写好的概要设计文档给程序员,程序员根据所例出的功能一个一个的编写。 
      6 测试编写好的系统。交给用户使用,用户使用后一个一个的确认每个功能,然后验收。 


      举个例子来看: 
      1 某公司想找人订做一套人事管理软件,从某种渠道上得知我们有提供这种服务,所以联系上了我们。 \
      2 我们会派专门的软件工程师到他们那里去了解我们要设计一个什么的东西给他们用,然后回来做个方案给他们,其中方案的内容包括:我们开发出来的软件大概的界面是怎样?方便什么人使用?什么人可以使用什么功能?方便到什么程度?大概的硬件要求是怎样等? 
      3 他们看了方案后,确定他们就是要做一套这样的软件,我就开始开发这套软件。 
      4 我们把开发出来的软件交用他们使用,其中在使用的过程中哪里使用不方便或哪里达不到要求,我们会第第一时间修改这些功能,直到他们要求的所有功能都能很完美的解决掉。









     

    转载于:https://www.cnblogs.com/hwaggLee/p/4483720.html

    展开全文
  • 一个完整的软件项目开发流程

    万次阅读 2018-06-02 15:34:50
    苏州免费报名:http://www.hdb.com/party/b8an2.html?hdb_pos=manager_info在我转产品之前,虽然我混迹IT行业,做过实施和售前,也跟研发打过交道,但我一直都不知道一个软件是怎么开发出来的。直面客户,扛着压力,...

    https://blog.csdn.net/s_king_/article/details/78612905


    《IT项目管理与职业生涯规划大型论坛》中国.苏州

    免费报名:http://www.hdb.com/party/b8an2.html?hdb_pos=manager_info

    在我转产品之前,虽然我混迹IT行业,做过实施和售前,也跟研发打过交道,但我一直都不知道一个软件是怎么开发出来的。直面客户,扛着压力,在对程序一无所知的情况下,很容易产生一些想法:为什么产品的结果是这样?为什么产品开发的速度不能再快一点?为什么程序员经常加班?他们都在忙些什么?测试是不是就是每天忙着点点程序看会不会报错?

    所以本文面向的对象是,适合和我当初一样对软件开发一无所知的IT从业者(或者有兴趣者),另外也欢迎我的程序员小伙伴和测试小伙伴,因为你们也懂这个过程,所以我们可以作更多探讨,这个过程中我们可能会发现大家对同一件事的理解并不一致,也许经过碰撞,我们能共创智慧的果实。

    一、开发流程图

    为使流程更清晰,本图省略了各环节的评审,如有更好的表现形式,欢迎提出建议。

    二、过程产物及要求

    本表主要列出开发阶段需要输出的过程产物,包括产物名称、成果描述、负责人及备注,即谁、在什么时间、应该提供什么内容、提供内容的基本方向和形式是什么。

    项目启动阶段

    产物名称成果描述负责人

    调研文档了解项目背景,了解项目干系人目标方向产品经理

    团队组建确认团队人员及配置产品总监

    业务梳理明确项目的目标、角色、各端口及模块产品经理

    需求阶段

    产品原型产品的线框图产品经理

    需求概要基于线框图,作技术评估,达成业务理解的一致性研发工程师

    项目里程碑确认项目重大时间节点研发项目 经理

    项目开发计划梳理各阶段、各端口的开发计划研发项目经理

    项目任务分解表将计划分配到团队研发项目经理

    设计阶段

    界面效果图及标注基于线框图,作效果图,须适量考虑交互内容UI设计师

    UI设计规范在UI界面基础上,输出主要界面的设计规范UI设计师

    需求规格基于效果图,明确业务实现细节,消除对最终成果理解的不一致研发工程师

    概要设计功能实现的可视化,有助于理清思路,减少技术盲区和低级缺陷,实现并行开发,提高效率研发工程师

    通讯协议通信协议是指双方实体完成通信或服务所必须遵循的规则和约定研发工程师

    表结构设计确认要建的数据库表及其表结构研发工程师

    开发阶段

    产品代码代码

    测试阶段

    测试用例明确测试方案,包括测试模块、步骤、预期测试工程师

    测试结果报告输出测试结果测试工程师

    用户手册系统操作手册测试工程师

    常规文档

    项目周报每周开发内容及下周开发计划研发项目经理

    测试周报每周测试内容及下周测试计划测试工程师

    评审会议纪要评审的过程文档整体团队

    三、过程说明

    项目启动

    产品经理和项目干系人确定项目方向,产品型项目的干系人包括公司领导、产品总监、技术总监等,项目的话则包括客户方领导、主要执行人等。

    公司领导确认项目组团队组成,包括产品经理、研发项目经理、研发工程师、测试团队等。

    明确项目管理制度,每个阶段的成果产物需要进行相应的评审,评审有相应的《会议纪要》;从项目启动起,研发项目经理每周提供《项目研发周报》;测试阶段,测试工程师每周提供《项目测试周报》。

    产品经理进行需求调研,输出《需求调研》文档。需求调研的方式主要有背景资料调查和访谈。

    产品经理完成《业务梳理》。首先,明确每个项目的目标;其次,梳理项目涉及的角色;再来,每个角色要进行的事项;最后,再梳理整个系统分哪些端口,要有哪些业务模块,每个模块再包含哪些功能。

    需求阶段

    进入可视化产物的输出阶段,产品经理提供最简单也最接近成品的《产品原型》,线框图形式即可。在这个过程中还可能产生的包括业务流程图和页面跳转流程图。业务流程图侧重在不同节点不同角色所进行的操作,页面跳转流程图主要指不同界面间的跳转关系。

    产品经理面向整个团队,进行需求的讲解。

    研发项目经理根据需求及项目要求,明确《项目里程碑》。根据项目里程表,完成《产品开发计划》,明确详细阶段的时间点,最后根据开发计划,进行《项目任务分解》,完成项目的分工。

    研发工程师按照各自的分工,进入概要需求阶段。《概要需求》旨在让研发工程师初步理解业务,评估技术可行性。

    设计阶段

    UI设计师根据产品的原型,输出《界面效果图》,并提供界面的标注,最后根据主要的界面,提供一套《UI设计规范》。UI设计规范主要是明确常用界面形式尺寸等,方便研发快速开发。UI设计常涵盖交互的内容。

    研发工程师在界面效果图,输出《需求规格》,需求规格应包含最终要实现的内容的一切要素。

    研发工程师完成《概要设计》、《通讯协议》及《表结构设计》,及完成正式编码前的一系列研发设计工作。

    开发阶段

    研发工程师正式进入编码阶段,这个过程虽然大部分时间用来写代码,但是可能还需要进行技术预研、进行需求确认。

    编码过程一般还需进行服务端和移动端的联调等。

    完成编码后需要进行功能评审。

    测试阶段

    测试工程师按阶段设计《测试实例》,未通过的流程测试提交至Jira,分配给相应的开发人员调整。

    研发工程师根据测试结果修改代码,完成后提交测试,测试通过后完成。

    测试工程师编写《测试结果报告》,包括功能测试结果、压力测试结果等。

    测试工程师编写系统各端口的《操作手册》、维护手册等。

    系统上线

    与客户或者上级达成一致后,系统进行试运行,稳定后上线。

    最后,以上内容仅限于我所在公司,不代表绝对专业意见,不知道其他行业的IT小伙伴和我们是否一样呢,欢迎与我交流

    本文转自:人生如轻尘栖弱草

    以上内容为原创,转载请标明来源,谢谢。

    展开全文
  • 软件开发基本流程【一】

    万次阅读 多人点赞 2019-02-14 10:45:49
    分析  软件需求分析就是回答做什么的问题。它是一个对用户的需求进行去粗取精、去伪存真、正确理解...需求分析的主要方法有结构化分析方法、数据流程图和数据字典等方法。本阶段的工作是根据需求说明书的要求 ,...
  • 描述软件从需求到面世的整个流程。 立项阶段-需求阶段-设计阶段-编码阶段-单元测试-集成测试-系统测试-验收测试-项目总结阶段
  • 汽车电子软件开发 - 流程简介

    千次阅读 2021-01-28 16:39:14
    系统设计 架构设计
  • 软件安全开发 - 流程规范

    千次阅读 2019-03-20 15:37:20
    写一篇软件安全开发流程分享给大家,帮助从事软件开发,测试,管理的人员,规范操作,重视软件工程安全。 现今社会存在各种网络安全事件,比如勒索病毒导致许多网络系统瘫痪,大量注册用户个人数据泄露导致企业...
  • 项目开发流程图

    千次阅读 2019-11-01 09:55:11
    项目开发流程图    抽空总结了下项目开发流程,大多数公司应该都沿用这个流程方式。
  • 软件项目开发基本流程详解

    万次阅读 2018-03-15 09:30:29
    软件项目开发流程图是用来详细描述了软件在开发过程中产品调研、设计、开发、测试等各个阶段中各个角色,包含产品经理、研发、测试、用户等需要处理的事情,以及在不同阶段可以达到哪种效果。那么,一款软件从研发到...
  • 流程图绘制心得

    千次阅读 2017-06-26 17:04:35
    网页制作Webjx文章简介:一个哥们在MSN上告诉我,他们公司的交互设计师只产出流程图,并问我用什么标准评价流程图的好坏。他的说法把我彻底震了-这分工也太细了吧!也不知道该说他们那里这样是好还是不好。 ...
  • 软件开发模式之敏捷开发(scrum) 版权声明:本文为博主 android_Mr_夏 原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiajun2356033/article/details/81513957 简介 这几年关于敏捷开发在互联网企业...
  • 软件开发流程规范

    千次阅读 2020-04-11 14:02:34
    软件开发流程规范 第一版 作者:Charles 时间:2019-05-16 第一章、目的和作用     为了规范互联网软件产品开发项目管理过程,指导开展项目研发、管理等活动,缩短开发周期,提高软件开发质量...
  • 感觉是一个不错得流程图,所以自己画了下
  • 软件流程图及功能节点图

    千次阅读 2020-10-21 19:14:01
    根据产品原型图,为了弄清楚产品的业务流程以及确定项目中存在的功能点及其具体规则和要求,绘制出软件流程图以及功能节点图,本文以赞赞羊项目为例。 1.软件流程图:作用是弄清楚项目的业务流程。 流程图符号说明:...
  • IT软件开发流程

    千次阅读 2018-07-05 17:48:52
    一、开发流程图 为使流程更清晰,本图省略了各环节的评审,如有更好的表现形式,欢迎提出建议。 开发流程图 二、过程产物及要求 本表主要列出开发阶段需要输出的过程产物,包括产物名称、成果描述、负责人及...
  • 软件开发流程(Software development process)

    万次阅读 多人点赞 2017-07-06 10:41:25
    软件开发流程(Software development process)
  • 1. 软件开发流程与QA工作流程

    千次阅读 2019-09-03 11:09:06
    图释:简要介绍一下我们当前的开发流程,以及QA在其中的活动、关键里程碑和主要产出物。 关于Scrum和关键活动: 产品、开发、QA、PMO以及Scrum master在整个Scrum Flow中都有固定投入和产出,这里以介绍QA工作为...
  • 一、嵌入式软件开发流程 1.1 嵌入式系统开发概述 由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其...
  • 如何绘制业务流程图:http://www.uml.org.cn/RequirementProject/201207111.aspUML建模之时序图(Sequence Diagram):http://www.cnblogs.com/ywqu/archive/2009/12/22/1629426.html【UML 建模】UML入门 之 交互图 ...
  • 嵌入式产品开发流程

    万次阅读 2017-04-21 10:11:14
    但是,与普通电子产品相比,嵌入式产品的开发流程又有其特殊之处。它包含嵌入式软件和嵌入式硬件两大部分,针对嵌入式硬件和软件的开发,在普通的电子产品开发过程中,是不需要涉及的。嵌入式产品的研发流程具体如下...
  • 软件工程(系统流程图讲解)

    千次阅读 2021-03-18 14:45:29
    系统流程图是概括地模型物理系统的工具。 基本符号 系统符号 系统流程图的习惯画法是使信息在图中从顶向下或从左到右流动。 例子 某装配厂有一座存放零件的仓库,仓库中现有的各种零件的数量以及每种零件的...
  • 几款免费流程图制作软件

    千次阅读 2014-01-16 17:23:20
    流程图(flow charts)可以用直观的图表方式展现系统各组成部分的流动过程,是学习工作中经常用到的一个工具,以前只用微软的word和excel做过简单的流程图,没想到现在已经有这么多的替代的免费流程图制作软件和在线...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 327,537
精华内容 131,014
关键字:

软件开发流程图

友情链接: javasmil.rar