第一篇:软件开发流程与规划学习心得
软件开发学习流程与规划心得
班级:软件0902学号:090203049姓名:杨菲
一、前期规划:
我理解的前期规划是:在市场人员们汇总一个需求提交给产品专家带领的产品经理团队,然后经过这个团队根据公司具体情况再次分析和规划出一个最终需求文档。
这个需求文档应当首先提交给技术研发部门的负责人以及核心开发人员。由开发团队对其进行技术和风险分析。如果对此需求统一有异议的地方,需要返回给产品团队,重新修正需求。反复如此,直至需求完善准确,细致,清晰。
前期规划就像高楼的地基,如果马马虎虎,就算是一块砖块没摆好都可能导致整个高楼建设的失败。在规划中我认为,交流永远是需要双方积极主动,能认真听取每个人的建议。前期工作思维不慎重,不细致,不认真,不够完善,将产生连锁效应直接导致整个工程和项目的失败。
对于第一种,当然是因为前期规划疏漏了某些细小功能,没能把需求文档做完善。应该是规划工作做的还不够认真和细致。
对于第二种情况,我认为更多是在产品设计规划方面经验还不够成熟。这种问题应该是很难避免的。因为每种新产品对产品团队来说都很陌生。即使以前做过类似的东西,也难免面面俱到。这只能通过不断努力和认真的态度来弥补。
前期规划的交流涉及了市场、产品和技术研发等多个团队之间。需要的不仅是团队内部的交流,更多需要协调好团队之间的交流。可能有时候需要公司高层和中层参与协调。
二、概要设计:
我理解的概要设计步骤:(以项目为中心的开发流程)项目经理仔细阅读项目需求文档。项目经理召集项目开发成员,开项目启动会议。具体商议项目的开发任务和责任分配。
3核心开发人员开发确定,以及各模块开发人员确定。
4由系统分析员和核心开发人员仔细阅读需求文档,对系统整个架构分析和做技术规划。
5系统分析员整理和书写最终的系统架构和概要设计文档。
6系统分析员在文档提交日,提交给项目经理。项目经理确认文档并审批。
7项目经理召集项目开发成员,开一个概要设计以及系统架构确定的会议。向每个成员分发文档,并讨论确定最终概要设计文档。
8开始详细设计文档的工作
三、详细设计:
1项目经理组织成立各个模块的开发小组,并确定开发小组组长(程序经理)。
2各开发组长书写各自模块的详细设计文档,开发成员需要协助,配合。
3在指定提交日,开发组长提交文档给系统分析员。由系统分析员审批。
4系统分析员组织召开一个详细设计文档确认的会议。
5然后开发组长分发各自模块的详细设计文档给程序员,程序员在指定时间内完成。
6程序员做内部测试。开发组长协调并配合。
7确认无bug提交给开发组组长。
8所有模块整合工作,由整个开发组成员参与完成。由所有开发组长和系统分析员负责主要部分工作。程序员协助和配合。
9对整合后工程做详细测试。
10确认测试通过后,开发组长根据开发成员表现以及提交成果填写绩效考核表。然后提交给项目经理。
11项目经理会召开项目总结会,同时向优秀成员颁奖。同时鼓励所有成员继续努力。对不能按时完成导致项目能按时提交,以及对导致失败的关键人员给与惩罚处理。
四、具体编码:
开发几个项目之后,对编写程序有了更进一步的了解。
好的程序应该具有: 易读性,易扩展性,容错性。
易读性: 所有变量和函数以及类名用简单易懂易记忆的命名方式。所有类和函数甚至变量都有关键的注释说明。这点很重要,也是最基础的。如果代码书写
不够美观和易懂,我想自己以后也不想再看。就更别谈功能的扩展和新版本开发了。
易扩展性: 整体系统架构逻辑简单清晰。模块与模块之间尽量做到互不影响,也就是尽可能的独立。这部分工作主要体现在前期设计工作中,需要掌握好的设计经验和方法才能够做得比较好。
容错性: 对数据流和指针以及数组都做数据有效性检查;对第三方接口的调用失败的容错性。对所有代码都做调用失败后的错误处理。以及在大的工程中加入trace文件输出,把关键的数据流和关键处理部分的操作信息输出。以便对工程异常情况产生条件的定位,及时解决问题。
五、调试、跟踪与测试:测试需要注意的:
1对每个模块的接口做测试,数据边界的检查。在对整个模块做测试。主要测试稳定性,效率以及功能是否正常。确认单个模块完全正常后,再加入工程。在系统架构设计的时候,可能会引入原型参考。要对原型做完成测试后,确认没有问题后,才可使用。可以采用VC自带Trace或者将信息输出为文本文件的方式跟踪程序并输出关键信息,以便定位程序异常的原因。对于通信模块的测试,特别注意服务端和客户端的数据流。可以针对性的写一个客户端或服务端的测试程序,检验通讯过程是否正常。在用VC做开发中,一定先要让Debug版本正常运行,保证没有任何异常,内存泄漏和Assert等调试警告信息。如果用到其他Lib,一定要保证Lib本身不存在问题。
第二篇:软件开发流程与规划化(范文模版)
《软件开发流程与规划》总结
软件开发流程大体分为这么几个阶段,其中包括需求分析、分析设计、编码 单元测试、集成测试、系统测试。如必须完成全部的系统需求规格说明书之后才能够进入概要设计阶段,编码必需在系统设计完成之后才能够进行。这就意味着只有当所有的系统模块全部开发完成之 后,我们才进行系统集成,对于一个由上百个模块组的复杂系统来说,这是一个非常艰巨而漫长的工作。
首先呢,就是市场调研,只有了解市场需要才能更好地进行开发,技术和市场要结合才能体现最大价值。
第二呢,就是进行需求分析,开始做需求分析,主要是细化分解需求,并提出可行性解决方案进行可行性分析。有了解决方案直接就可以做开发计划了,根据预估的时间节点(有时候是客户提出的)和开发的工程量。这个阶段需要出三样东西,用户视图,数据词典和用户操作手册。用户视图是该软件用户(包括终端用户和管理用户)所能看到的页面样式,这里面包含了很多操作方面的流程和条件。数据词典是指明数据逻辑关系并加以整理的东东,完成了数据词典,数据库的设计就完成了一半多。用户操作手册是指明了操作流程的说明书。请注意,用户操作流程和用户视图是由需求决定的,因此应该在软件设计之前完成,完成这些,就为程序研发提供了约束和准绳,很遗憾太多公司都不是这样做的,因果颠倒,顺序不分,开发工作和实际需求往往因此产生隔阂脱节的现象。需求分析,除了以上工作,作为项目设计者应当完整的做出项目的性能需求说明书,因为往往性能需求只有懂技术的人才可能理解,这就需要技术专家和需求方(客户或公司市场部门)能够有真正的沟通和了解。
其次呢就是概要设计,将系统功能模块初步划分,并给出合理的研发流程和资源要求。作为快速原型设计方法,完成概要设计就可以进入编码阶段了,通常采用这种方法是因为涉及的研发任务属于新领域。技术主管人员一上来无法给出明确的详细设计说明书,但是并不是说详细设计说明书不重要,事实上快速原型法在完成原型代码后,根据评测结果和经验教训的总结,还要重新进行详细设计的步骤。
初步的设计弄好之后呢,就得进行详细设计,一份好的详细设计说明书,可以使编码的复杂性减低到最低,实际上,严格的讲详细设计说明书应当把每个函数的每个参数的定义都精精细细的提供出来,从需求分析到概要设计到完成详细设计说明书,一个软件项目就应当说完成了一半了。换句话说,一个大型软件系统在完成了一半的时候,其实还没有开始一行代码工作。那些把作软件的程序员简单理解为写代码的,就从根本上犯了错误了。
以上的需求分析和初步和详细设计什么的,这些都是准备工作,最重要的就是编码,如果你分析做的再好,无法用代码实现,就等于是徒劳。在规范化的研发流程中,编码工作在整个项目流程里最多不会超过1/2,通常在1/3的时间,所谓磨刀不误砍柴功,设计过程完成的好,编码效率就会极大提高,编码时不同模块之间的进度协调和协作是最需要小心的,也许一个小模块的问题就可能影响了整体进度,让很多程序员因此被迫停下工作等待,这种问题在很多研发过程中都出现过。编码时的相互沟通和应急的解决手段都是相当重要的,对于程序员而言,bug永远存在,你必须永远面对这个问题,大名鼎鼎的微软,可曾有连续三个月不发补丁的时候吗?从来没有!
最后呢就是对所开发的项目进行测试了,需要测试她是否符合需求。测试测试有很多种:按照测试执行方,可以分为内部测试和外部测试;按照测试范围,可以分为模块测试和整体联调;按照测试条件,可以分为正常操作情况测试和异常情况测试;按照测试的输入范围,可以分为全覆盖测试和抽样测试。以上都很好理解,不再解释。总之,测试同样是项目研发中一个相当重要的步骤,对于一个大型软件,3个月到1年的外部测试都是正常的,因为永
远都会又不可预料的问题存在。完成测试后,完成验收并完成最后的一些帮助文档,整体项目才算告一段落,当然日后少不了升级,修补等等工作,只要不是想通过一锤子买卖骗钱,就要不停的跟踪软件的运营状况并持续修补升级,直到这个软件被彻底淘汰为止。
总而言之、言而总之软件开发流程就是根据特定的步骤进行实现进行,当然了要因项目而异,但是总要进过这几个过程,需求分析,软件设计,代码实现和最后的测试,只要掌握好这几点,大体方向就不会错了,然后再根据项目本身就行相应的调整就好了。
第三篇:软件开发流程
开发流程
第一步:需求调研分析1相关系统分析员和用户初步了解需求,然后用WORD列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面。2 系统分析员深入了解和分析需求,根据自己的经验和需求用WORD或相关的工具再做出一份文档系统的功能需求文档。这次的文档会清楚例用系统大致的大功能模块,大功能模块有哪些小功能模块,并且还例出相关的界面和界面功能。3 系统分析员和用户再次确认需求。
第二步:概要设计首先,开发者需要对软件系统进行概要设计,即系统设计。概要设计需要对软件系统的设计 进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。
第三步:详细设计在概要设计的基础上,开发者需要进行软件系统的详细设计。在详细设计中,描述实 现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。应当保证软件的需求完全分配给整个软件。详细设计应当足够详细,能够根据详细设计报告进行编码。
第四步:编码在软件编码阶段,开发者根据《软件系统详细设计报告》中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。
第五步:测试测试编写好的系统。交给用户使用,用户使用后一个一个的确认每个功能。
第六步:软件交付准备在软件测试证明软件达到要求后,软件开发者应向用户提交开发的目标安装程序、数据库的数据字典、《用户安装手册》、《用户使用指南》、需求报告、设计报告、测试报告等双方合同约定的产物。《用户安装手册》应详细介绍安装软件对运行环境的要求、安装软件的定义和内容、在客户端、服务器端及中间件的具体安装步骤、安装后的系统配置。《用户使用指南》应包括软件各项功能的使用流程、操作步骤、相应业务介绍、特殊提示和注意事项等方面的内容,在需要时还应举例说明。
第七步:验收用户验收。
第四篇:软件开发流程
某软件项目开发流程
1.总纲
目的主要讲述如何组织开发软件项目,使之更加快速、有效的完成。并分成以下几个阶段进行详细讲述:项目计划阶段、需求分析阶段、软件开发阶段、测试阶段、管理软件开发过程、各参与角色的具体职责描述及对人员的要求。
适用范围
开发周期3周、开发人月2人月的项目,中小型(3-7人)软件项目的开发指南,而大型软件项目使用RUP会更好。
注:周期小于上述范围,使用开发任务需求单进行安排,走任务开发流程。
总体流程
计划阶段-》需求分析阶段-》软件开发阶段-》测试阶段-》完成2.项目计划阶段
项目计划草案和风险管理计划作为第一步,当有一个商业机会后,根据公司高层负责制定的初步商业计划书来完成项目的计划草案,确定、分析项目风险并确定其优先级,还要制定风险解决方案。本阶段的目的是确立产品开发的经济理由。
当确定开发之后则制定软件开发计划、人员组织结构定义及配备、过程控制计划。
(1)项目计划草案
项目计划草案应包括产品简介、产品目标及功能说明、开发所需的资源、开发时间和里程碑。
(2)风险管理计划
也就是把有可能出错或现在还不能确定的东西列出来,并制定出相应的解决方案。风险发现得越早对项目越有利。
(3)软件开发计划
软件开发计划的目的是收集控制项目时所需的所有信息,项目经理根据项目计划来安排资源需求并根据时间表跟踪项目进度。项目团队成员根据项目计划以了解他们的工作任务、工作时间以及他们所依赖的其他活动。
可将计划分成总体计划和详细计划,总体计划中每个任务为一个里程碑,详细计划中必须将任务落实到个人。
软件开发计划还应包括产品的应收标准及应收任务(包括确定需要制订的测试用例)。
(4)人员组织结构定义及资源计划
常见的人员组织结构有垂直方案、水平方案、混合方案。垂直方案中每个成员充当多重角色。水平方案中每个成员充当一到两个角色。混合方案则包括了经验丰富的人员与新手相互融合。具体选择根据人员实际技能情况进行选择。
适用范围:开发人月大于5人月、周期超过2个月、投入人员4人以上的项目必须编写计划,低于范围的则可省略或者简化
(5)过程控制计划
过程控制计划的目的是收集项目计划正常执行所需的所有信息,用来指导项目进度的监控、计划的调整,确保项目按时完成。
适用范围:开发人月大于5人月、周期超过2个月、投入人员4人以上的项目必须编写计划 低于范围的则可省略或者简化
3.需求分析阶段
需求分析阶段的目的是在系统工作方面与用户达成一致。
(1)软件需求规约
详细说明系统将要实现的所有功能。
参考文档:
(2)用户界面原型
可以有三种表示方法:图纸(在纸上)、位图(绘图工具)、可执行文件(交互式)。
参考文档:
4.软件开发阶段
本阶段从物理上实现目标系统。采用了面向对象方法。
(1)软件架构
说明软件的组织结构、部署结构及运行环境。
(2)类设计
定义类之间的关联和类的属性、方法。
(3)数据库设计
定义数据库表之间的关联和各个表的字段。
(4)编码和单元测试
按照设计文档进行编码,每完成一个模块应进行单元测试。
(5)集成系统
按软件组织结构的要求将各个子系统组合起来。
四、测试阶段
测试的目的是在发布之前找出程序的错误。包括:核实每个模块是否正常运行(参考设计文档)、核实需求是否被正确实施(参考需求文档)。
(1)测试计划
收集和组织测试信息,为测试工作提供指导。
(2)测试数据
尽量使用真实数据。
(3)测试报告
记录测试结果,详细描述问题,提出解决办法。
(4)帮助文件和用户操作手册
五、管理软件开发过程
有以下几方面地工作:
(1)组织会议
讨论会议、总结会议等。
(2)评审程序
对各个阶段的工作结果进行审核。
(3)协调人员
(4)配置管理
使用一些配置管理工具进行开发文档管理,如:Visual Sourcesafe,Teamsouce等
六、各参与角色的具体职责描述及对人员的要求
(1)项目经理
职责:
1、制定产品的目标。
2、制定各个工作的详细任务表,跟踪这些任务的执行情况,进行控制。
3、组织会议对程序进行评审。
4、综合具体情况,对各种不同方案进行取舍并做出决定。
5、协调各项目参与人员之间的关系。
人员要求:
对产品有激情,具有领导才能。
对问题能正确而迅速地做出确定。
能充分利用各种渠道和方法来解决问题。
能跟踪任务,有很好地日程观念。
能在压力下工作。
(2)系统分析员
职责:
1、了解用户需求,写出《软件需求规约》。
2、建立用户界面原型。
人员要求:担任系统分析员的人员应该善于协调,并且具有良好的沟通技巧。担任此角色的人员中必须要有具备业务和技术领域知识的人才。
(3)设计员
职责:
1、定义类的方法和属性以及各个类之间的关联,画出类图。
2、进行数据库设计。
人员要求:掌握面向对象分析与设计技术,统一建模语言(UML)。
(4)程序员
职责:按项目的要求进行编码和单元测试。
人员要求:良好的编程技能和测试技术。
(5)测试员
职责: 执行测试,描述测试结果,提出问题解决方案。
人员要求:了解被测试的系统,具备诊断和解决问题的技能,编程技能
根据每个人的特长来担任其中的一个或多个角色。最好是每个人都能参与设计和编码工作,每个人都能够建立起系统地全局观
第五篇:软件开发管理流程
软件开发管理流程
根据我公司目前工作现状,开发管理流程涉及到三个方向的工作管理;一是全新项目开发整体流程;二是二期项目开发管理流程(项目已部分上线,二期进行其它公司或模块上线);三是维护工作管理流程;
一、升级项目流程
针对我公司现有的BSP项目,存在有些省份的BSP项目存在部分上线而对于后期需要继续上线其他部分的情况,提出以下工作流程。
总体流程
计划阶段-》需求分析阶段-》软件开发阶段-》测试阶段-》部署上线—》验收完成(一)计划阶段
制定整体开发计划,计划体现整个开发周期,包括需求、编码、测试周期以及资源要求;
(二)需求分析阶段
修订需求版本,提供需求说明书,并提出需求评审申请。
评审:发起需求评审的同时提交评审资料至项目管理部—》项目管理部给相关
人员发放资料并通知评审安排--》记录评审结果(需整改时整改之后可再次评审)--》确定需求版本。
(三)软件开发阶段
编码开发前:开发环境搭建,其中包括迁出代码最新版本,从线上复制出数据库(或者导出基础数据库表数据);其目的为开发环境与正式环境保持一致,为上线前的部署做好准备。
编码开发中:开发组长对整个开发过程做好监控,保证质量的同时保证进度;并且要求开发人员做好工作记录;加强团队的协作与沟通。
编码开发完:提交相关资料(操作手册、部署文档:sql脚本、代码文件路径记录、流程文件路径记录),组长整理部署文档并且提交测试申请;部署文档要求写明部署步骤及部署内容及相应注释;
(四)测试阶段
测试组长根据测试申请中的测试内容安排测试。测试环境模拟线上测试环境,根据部署文档进行部署,并且记录所有补丁包。测试过程中开发人员在修改bug的同时需要维护部署文档。
(五)部署
部署人员根据部署文档中描述的步骤部署系统。完成之后实施人员安排验收。
二、全新项目开发管理流程
总体流程
计划阶段-》需求分析阶段-》软件开发阶段-》测试阶段-》部署上线—》验收完成(一)计划阶段
项目计划草案和风险管理计划作为第一步,确定、分析项目风险并确定其优先级,还要制定风险解决方案。本阶段的目的是确立产品开发的经济理由。当确定开发之后则制定软件开发计划、人员组织结构定义及配备、过程控制计划。
项目计划草案
项目计划草案应包括产品简介、产品目标及功能说明、开发所需的资源、开发时间和里程碑。
风险管理计划
就是把有可能出错或现在还不能确定的东西列出来,并制定出相应的解决方案。风险发现得越早对项目越有利。
软件开发计划
软件开发计划的目的是收集控制项目时所需的所有信息,项目经理
根据项目计划来安排资源需求并根据时间表跟踪项目进度。项目团队
成员根据项目计划以了解他们的工作任务、工作时间以及他们所依赖的其他活动。
项目管理培训
可将计划分成总体计划和详细计划,总体计划中每个任务为一个里
程碑,详细计划中必须将任务落实到个人。
软件开发计划还应包括产品的应收标准及应收任务(包括确定需要
制订的测试用例)。
人员组织结构定义及配备
常见的人员组织结构有垂直方案、水平方案、混合方案。垂直方案
中每个成员充当多重角色。水平方案中每个成员充当一到两个角色。
混合方案则包括了经验丰富的人员与新手相互融合。具体选择根据人
员实际技能情况进行选择。
过程控制计划
过程控制计划的目的是收集项目计划正常执行所需的所有信息,用来
指导项目进度的监控、计划的调整,确保项目按时完成。
(二)需求分析阶段
需求分析阶段的目的是在系统工作方面与用户达成一致。
(1)软件需求规约
详细说明系统将要实现的所有功能。
(2)用户界面原型
可以有三种表示方法:图纸(在纸上)、位图(绘图工具)、可执行文件(交互式)。
(三)软件开发阶段
本阶段从物理上实现目标系统。采用了面向对象方法。
(1)软件架构
说明软件的组织结构、部署结构及运行环境。
(2)功能设计
定义功能点之间的关联。
(3)数据库设计
定义数据库表之间的关联和各个表的字段。
(4)编码和单元测试
按照设计文档进行编码,每完成一个模块应进行单元测试。
(5)集成系统
按软件组织结构的要求将各个子模块组合起来。
(四)测试阶段
测试的目的是在发布之前找出程序的错误。包括:核实每个模块是否正常运行(参考设计文档)、核实需求是否被正确实施(参考需求文档)。
(1)测试计划
收集和组织测试信息,为测试工作提供指导。
(2)测试数据
尽量使用真实数据。
(3)测试报告
记录测试结果,详细描述问题,提出解决办法。
(4)用户操作手册
(五)管理软件开发过程
有以下几方面地工作:
(1)组织会议
讨论会议、总结会议等。
(2)评审程序
对各个阶段的工作结果进行审核等。
(3)协调人员
(4)监控进度
软件项目开发流程
第一个步骤是市场调研,技术和市场要结合才能体现最大价值。
第二个步骤是需求分析,需求人员出需求分析说明书。发起需求评审申请,项目管理部组织开发团队进行评审;
评审:发起需求评审的同时提交评审资料至项目管理部—》项目管理部给相关人员发放资料并通知评审安排--》记录评审结果(需整改时整改之后可再次评审)--》确定需求版本。
第三个步骤是概要设计,将系统功能模块初步划分,并给出合理的研发流程和资源要求。按照公司现状,使用快速原型设计方法完成概要设计就可以进入编码阶段了,通常采用这种方法是因为涉及的研发任务属于新领域,技术主管人员一上来无法给出明确的详细设计说明书,但是并不是说详细设计说明书不重要,事实上快速原型法在完成原型代码后,根据评测结果和经验教训的总结,还要重新进行详细设计的步骤
第四个步骤是详细设计,这是考验技术专家设计思维的重要关卡,详细设计说明书应当把具体的模块以最‘干净’的方式提供给编码者,使得系统整体模块化达到最大;一份好的详细设计说明书,可以使编码的复杂性减低到最低。
第五个步骤是编码,开发人员需严格按照编码规范及需求文档编码,编码时不同模块之间的进度协调和协作是最需要小心的,也许一个小模块的问题就可能影响了整体进度,让很多程序员因此被迫停下工作等待,这种问题在以前的开发过程中都出现过。编码时的相互沟通和应急的解决手段都是相当重要的。项目组长需提高对开发过程中问题的管控能力。尽量避免重大问题,提高工作效率。
第六个步骤是测试,测试有很多种:按照测试执行方,可以分为内部测试和外部测试;按照测试范围,可以分为模块测试和整体联调;按照测试条件,可以分为正常操作情况测试和异常情况测试;按照测试的输入范围,可以分为全覆盖测试和抽样测试。总之,测试同样是项目研发中一个相当重要的步骤。
第七个步骤是部署,搭建部署环境,按照部署方案进行部署,完成后验收测试;