other:软件开发流程

软件开发流程

那要看你的项目经理是当成什么层面的了,如果是负责面向客户联络沟通,内部监督控制进度的话是能做好内外沟通,两边都能协调好就可以了。如果你要深入项目管理,那么肯定要熟悉整个软件开发项目的过程,什么阶段做什么、怎么做、谁来做,时间、质量、进度三者平衡。没有一个完美的项目,因为总会有瑕疵,不要太追求完美,用户满意、适度质量的项目才好。关于软件开发过程的一些理解分享一下。

1、首先制定项目计划

最初计划是里程碑性质的。可以先按瀑布模型设置,里程碑点主要为需求评审、设计评审、经过代码开发和单元测试后进行集成测试、部署上线是一个很重要的里程碑,一般用户会期望系统何时能使用进入试运行期(也可以称为用户测试阶段)


2、需求开发阶段

怎么样写好需求很关键,如何学会进行需求开发可以去看下经典的《需求工程》这个翻译的书,不是很厚,但需要能理解为什么那样做更好,这个需要实践经验锻炼自己。如果有项目成员,可以一起做需求,这个阶段对于业务理解、分析、如何开展调研以及文字表述、业务流程图描述还有文档编辑能力都有不少要求。一般分为《用户需求说明书》和《需求规格说明书》,小项目可以写一个《需求分析报告》,《用户需求说明书》是针对用户的语言进行描述,让用户和开发团队对于需求的达成一致的理解,《需求规格说明书》,则是对用户需求的分析,形成系统要具有的功能,这个是真正提供用户可交互操作的文档,也就是后期设计和代码开发的重要基线。
另外,作为了解需求,拿出用户UI和用户交流也是一项比较重要的需求获取手段,虽然这个属于设计的范畴


3、系统设计阶段:

系统总体架构,结合用户对系统环境、开发语言以及运行的网络硬件等要求,确定开发工具等,对应用系统关系进行架构性设计,通过需求阶段对用户的分析归类,用图的方式描述出用户和各子系统或模块的全局视图,以及和其他系统的关系。也就是搞清楚系统的边界问题。
概要设计中除了高层架构设计,还需要设计网络拓扑图,以及系统部署图。概要设计比较重要的还有就是子系统、模块进行合理的划分。模块的名称很大程度上会成为用户的主要菜单,如何用用户的角度去取比较清楚的子系统和模块是很重要的。


4、代码开发和单元测试阶段:

这个阶段一般来说需要改进瀑布模型,类似迭代开发,把模块进行合理划分,把项目总体计划的代码开发测试阶段划分为多个时间段,每个时间段都包括代码开发、单元测试和集成测试,这个阶段还需要对需求变更进行跟踪控制,如果需求有变更,那么要把需求文档、设计文档都重新跟上。跌代开发的好处就是不让代码开发阶段拉的过程,没有进行及时的自我检查,不小心到了提交时间,却不是用户想要的,还有可能都不是自己想要的。
项目经理重要的责任是控制好进度,能及早发现风险,并能拿出好的预防和解决办法的措施。合理安排好开发团队的任务,合时的任务安排和衔接,你会觉得非常有艺术感,这个要自己体会了。另外,关注项目团队各人员的状况,保持高的战斗力,及时发现并能鼓励团队共同朝一个目标前进。


6、测试工作

测试是项目的很重要的环节,怎么测试,怎么准确测试,怎么有效测试,怎么覆盖测试,时间、人手、经验扽个方面都会有制约。高级测试人员能够分析系统各测试要点,在需求、设计阶段都要参与,提早了解如何去测试,能写出测试用例。


7、文档工作

文档在项目开发中也占有重要位置,除非你觉得代码是项目唯一的成果,那么你把文档抛掉吧,什么都在你的脑子里,团队中人员一走,项目的一部分也就带走了。代码开发其实也需要文档,代码是成果,代码注释是成果,模块开发卷宗也是重要的成果,因为程序员在开发时候的逻辑是怎么样的,对于今后查问题很有作用。除非你的系统设计程度到了方法、类,把代码逻辑也都设计好了,那么程序员就CODEING去吧。


8、QA

QA是对项目过程的质量保障,有些公司把QA和测试工作合成一个岗位叫做QA&测试人员,或者就叫QA人员。QA是对项目全过程的监管,独立于项目之外。监督项目经理在各项目里程碑提交相关成果,入库形成基线。

 

 

other:软件开发流程

other:软件开发流程

 

 

请教余老师今天面试了一家,一上来就问我 从项目立项到投产的过程怎么做的。。。我说了个大概 只不过他问我项目需求这边谁来做的 ,我说是项目经理 ,他后来说是有专门做需求分析的人做的?对吗?
余老师 2017/5/16 17:28:29
对,一般由项目经理,或者产品经理跟客户紧密沟通,把客户的需求整理成需求文档开发,根据需求分析,形成技术的概要设计,详细设计,然后编码,测试,验收,上线

 

 

http://blog.csdn.net/nishiwodeangel/article/details/11367507

项目经理

构架设计师

需求分析员

软件设计师

UI设计师

软件工程师

测试工程师

实施工程师

测试工程师(测试小组):白盒测试、黑盒测试、用户测试、负载测试

项目发布(投产)

角色

职责

项目经理

项目经理负责分配资源,确定优先级,协调与客户和用户之间的交往。总而言之,就是尽量使项目团队一直集中于正确的目标。项目经理还要建立一套工作方法,以确保项目工件的完整性和质量。

构架设计师

构架设计师负责在整个项目中对技术活动和工件进行领导和协调。构架设计师要为各构架视图确立整体结构:视图的详细组织结构、元素的分组以及这些主要元素组之间的接口,最终的部署等。因此,与其它角色相比,构架设计师的见解重在广度,而不是深度。

需求分析员

业务分析员通过概括和界定作为建模对象的组织来领导和协调业务用例建模。例如,确定存在哪些业务主角和业务用例,他们之间如何交互。通过描述一个或几个用例的需求状况以及其他支持软件的需求来获取系统功能某一部分的规约。还要负责用例包并维护该用例包的完整性。

软件设计师

设计员定义一个或几个类的职责、操作、属性及关系,并确定应如何根据实施环境对它们加以调整。此外,设计师可能要负责一个或多个设计包或设计子系统,其中包括设计包或子系统所拥有的所有类。编写部分模块设计文档和代码,检查软件工程师编写的模块代码。

UI设计师

界面设计人员通过以下方法来领导和协调 Web 界面的原型设计和正式设计:获取对 Web 界面的需求(包括可用性需求),构建 Web 页面原型,使 Web 界面的其他涉众(如最终用户)参与可用性复审和使用测试会议,复审并提供对 Web 界面最终实施方案(由其他开发人员员创建,如设计师和实施工程师)的适当反馈。

软件工程师

软件工程师负责完成设计师的设计意图,根据设计文档编写代码;根据设计文档编写单元测试代码,根据测试报告BUG记录修订BUG,完成包或子系统的开发。

测试工程师

(质量小组)

测试工程师负责执行测试,其中包括设置和执行测试,评估测试执行过程并修改错误,以及评估测试结果并记录所发现的缺陷。

实施工程师

负责软件产品安装调试和部署,完成项目相关系统工程工作,负责客户技术支持,负责编写系统部署方案和使用手册、维护手册,负责系统实施计划和规划。

说明

什么叫测试工程师或质量小组:小组的责任当然是发现在开发中所出现的技术问题和错误,及时的向项目小组报告情况,并督使项目小组相关的开发人员解决被发现的问题。质量小组的人员的组成,当然首先会是开发小组中的全部技术人员。除此以外可以邀请公司里其他非项目小组的同事加入发现问题的队伍。一般项目的质量测试有以下4个过程: 

 

    A、白盒测试:就是项目的开发人员自己在平时的开发中,或者是在一个小模块开发完成后。测试自己的所开发模块的过程。其测试内容主要是自己原代码的完整性和规范性,自己开发的模块流程是否清晰、逻辑正确等等。 

 

    B、黑盒测试:由开发小组的人员互相交换或者在空闲时间干脆请公司里非开发项目小组的同事来帮助测试各个模块。重要的内容是:检查各个模块的连接是否紧密,各个超级连接是否正确,软件中是否有JS等报错,表单区域中的文本框等和用户交互的部分是否有长度的限制?是否有超文本语言的过滤?是否有非法字符的验证?在用户填写相关信息出错的时候,程序是否有相关的处理等等。 

 

    C、用户测试:主要是邀请本项目外的其他同事以用户的角色来测试项目的功能。其内容主要是:评价每个模块的风格和项目的总体的风格是否冲突?功能是否能否实现,流程是否清晰,界面是否友好,页面安排是否舒适?各种连接所放的位置是否舒适等等。 

 

    D、负载测试:当项目看来可以很好的工作了,就可以开始负载测试的阶段。项目小组这个时候应该在公司和客户的帮助下,安排尽量多的用户登陆开发基本完成的项目,使项目尽可能的承受长时间和高强度的测试。这个时候往往会发现相当多的问题(特别是以程序为主的WEB站点)。比如程序运行时服务器出现内存溢出?CUP资源占用瞬间涨满?两个用户在数据库中查询同一数据时造成冲突?一些查询过程时间过长?甚至是一些客户端脚本与浏览器版本不兼容等等。 

 

    在质量小组每完成一步测试的时候,都要详细的写好测试结果,测试环境以及问题描述的报告直接交给项目经理,再由项目经理了解大概情况分发给问题相关的开发人员并监督其解决问题。测试过程完成后当然是。。。庆祝项目发布啦!!

 

other:软件开发流程

 

 重要必看ppt: https://wenku.baidu.com/view/afdb16146c175f0e7cd1375e.html

 

系统架构师:设计阶段对软件架构,关键构建和接口的设计。

需求分析师:《需求调研计划》《用户需求说明书》《需求变更说明书》

系统分析师:《软件需求规格说明书》《系统概要设计说明书》

数据库设计师:数据库建模、根据《系统详细设计说明书》编写对应的视图,存储过程,函数,触发器。Sql指导培训等,为测试经理及测试工程师建立测试数据。

软件开发:按《系统详细设计说明书》进行代码实现,控制本模块的开发速度。对自己的代码进行复查并进行简单的测试。

测试经理:测试计划、测试用例、协调测试团队和开发团队之间的关系。完成执行测试的工作、编写《用户手册》、《操作手册》、相关培训教材、项目的质量审查。

测试工程师:在测试经理领导下,进行各种测试工作。

实施经理:制定实施计划、系统安装、用户培训、系统上线、系统试运行、

实施工程师:编写《确认测试报告》

质量保证人员QA:研发流程的执行监督、反馈、数据收集。项目风险识别,项目预警。

other:软件开发流程

 

other:软件开发流程