这段时间闲来无事,就在总结以前的项目经验,然后写成博客的形式以进行记录。本文就对《IT软件人员学习系列文章》做个开篇吧。

  对于IT软件的开发来说,无外乎B/S、C/S和Android、iOS(后两项也是C/S)。在B/S领域,无外乎PHP、JAVA和ASP.NET这几大阵营。而在C/S领域,JAVA的开发比较复杂,需要编写一些重复的和底层的代码,相比C#的可视化和相似的语法,还是微软的开发工具和语言比较容易上手。

  但是,我们今天讲的不是代码,而是整个软件流程,这个属于软件工程的范畴。我们知道,做软件项目,就是把用户的要求转化成需求,然后需求转化成设计,然后设计转化成代码。总的来说,就是把大的项目划分成小的项目,大的模块划分成小的模块。任何项目都是这样做的需求和设计,尤其是大的项目,总是要划分成小的模块,这样能让项目的不同参与者负责各自的模块,然后再集成起来进行测试。

  按笔者对项目管理的经验,任何项目的分析方法模型(瀑布模型、原型模型、迭代模型等),最终都能划分成小的瀑布模型。也就是说,所有的项目功能,都能划分成小的一个个的瀑布过程以进行处理。因为瀑布模型在所有模型中是最简单化最直接化的。也就是说,所有的功能点,在每个瀑布过程的结尾都是一个里程碑。下面就对软件项目的整个流程进行描述。

  一、项目立项

  在项目的开始,项目需要进行立项。就是项目经理要跟项目客户去谈需要做的整个项目的内容。在这个阶段,项目需要进行市场调研,可行性分析等一系列的活动,保证项目的价值是可取的、可行的。一般来说,每个项目都有它的可行性和价值,但是对于企业项目来说,基本上每个项目都是可取的,都是为了某个业务领域而做的业务系统。对于互联网项目来说,比如电商项目,这个就得做市场调查,以确定该项目在当前是具有社会价值的。

  二、项目启动会

  在项目立项之后,就得召开项目启动会了。项目启动会,主要是确定项目的项目招标方和项目投标方。项目招标方确定项目的客户方的负责人和用户;项目投标方确定项目经理、产品经理(如果需要)、技术经理、项目开发人员等项目组成员。项目启动会也是项目的一个里程碑,说明项目要开始了,确定了双方的负责人和责任人。

  三、项目需求调研

  项目启动会开过之后,项目经理就要开始和项目客户方进行沟通,对项目的需求进行调研了。项目经理需要对项目的需求领域做一定的功课,让自己对项目领域知识有一定的了解,这样在进行需求调研的时候与客户谈起来就能更快的理解需求。同时,项目组内部也要举行项目领域知识的培训,让项目组成员都了解要做的是哪个领域的业务系统。在该阶段,项目经理需要将总结下来的需求与客户进行确认,以保证项目需求的正确性和稳定性。

  四、项目的设计

  在掌握了一定的项目领域知识,且项目经理已经将项目需求总体的确定下来之后,项目就进入了设计阶段。这时候,项目组需要对项目进行架构选型、设计,开发工具,开发语言,开发平台以及项目的运行平台进行选择确定。然后,由项目经理牵头,架构师或技术经理进行系统架构设计,技术经理和项目组成员进行概要设计和详细设计。在该阶段,需要对项目的各个设计进行审查,以确定由需求到设计的正确性。

  五、项目的开发

  在项目的设计阶段部分或总体结束之后,就进入到了项目的代码开发阶段。在该阶段,技术经理负责对项目的整体代码进行把控,软件工程师对项目设计转化为代码进行开发。项目经理在该阶段需要不断的调整项目计划,以让项目整体能够跟上进度,同时要让开发出来的系统让客户方进行试用,以不断调整项目开发上的问题,同时要防止需求的大变更。

  六、项目的测试

  在项目系统开发出部分或总体功能之后,项目的测试人员就需要介入对项目系统进行测试了。这个阶段,包括黑盒白盒测试。单元测试和集成测试等等。以保证系统对需求的和设计上的开发的正确性。

  七、项目试运行

  在项目系统进行了总体测试通过之后,项目经理要联系项目客户方进行系统的试运行了。试运行阶段主要是对需求到设计,设计到代码的确认。保证系统的功能的正确性。同时也是需求变更比较大的阶段,在这个阶段,项目经理要把控好和计划好时间,尽量避免需求大的变更出现。

  八、项目验收

  项目在进行试运行结束后,就到了项目验收阶段了。项目验收阶段就是项目收尾阶段,包括项目收尾和合同收尾。在该阶段,项目经理该联系项目客户方组织专家组对项目系统进行评估、审查,保证项目的正确性。

  在这里强调一下,上述的三、四、五、六阶段是一个重复的过程。我们这里只是使用瀑布模型对项目系统的整个流程进行了描述。其实,在很多公司,都存在着项目组人员身兼多职的问题,这个是因为项目人员配备不齐,公司规模,项目规模都有关系。所以,我们在项目中不应该抱怨公司的条件达不到要求。总的来说,在小公司能学到的东西更多。

Etc.最后说一说,项目组成员应该积极的提升自己的能力,一个是为了自身发展要求,另一方面也是项目组本身条件要求。所以,项目经理应该对团队建设做一个规划,以让项目组成员能够进行系统的、规范的、标准化的培训。

开篇:软件项目的整个流程 - IT软件人员学习系列文章的更多相关文章

  1. 1、HTML学习 - IT软件人员学习系列文章

    本文做为<IT软件人员学习系列文章>的第一篇,将从最基本的开始进行描述,了解的人完全可以跳过本文(后面会介绍一些工具). 今天讲讲Web开发中最基础的内容:HTML(超文本标记语言).HT ...

  2. 2、CSS学习 - IT软件人员学习系列文章

    上文我们讲了HTML,本文讲讲CSS. 上次我们讲了CSS是HTML页面的装修部分,就是各种瓷砖.粉墙.说明了CSS在HTML页面中的重要地位.没有CSS,那么HTML页面将很粗糙,就象我们的毛坯房一 ...

  3. 3、Javascript学习 - IT软件人员学习系列文章

    接下来,我们开始进入Javascript语言的学习. Javascript语言是一种解释性的语言,不同于ASP.NET.C#语言的这种编译性的语言.它随着HTML网页的发布而发布,就是说嵌入到HTML ...

  4. 11、项目经理要阅读的书籍 - IT软件人员书籍系列文章

    项目经理是负责软件项目的总体把控的角色.项目经理在项目中是一个管理者的角色,他需要对项目的9大领域进行学习,同时针对项目的范围.进度.沟通和风险进行处理,让项目能够按时保质保量的完成. 项目经理需要学 ...

  5. 开篇:IT软件人员学习的书籍 - IT软件人员书籍系列文章

    读书是一件快乐的事情. 读书能够增长知识,了解社会,了解人类的思想,继而转换成智慧.无论是什么人,都需要读书,多读书,读好书,同时也要把书中的精髓记录下来,一个是当做读后感,一个是为以后如果忘记了回头 ...

  6. UCP规模估算方法介绍 基于UCP方法的软件项目成本估计及其应用方法,软件,项目,UCP方法,应用,项目估算及软件及应用,软件估算,项目成本,软件项目

    基于UCP方法的软件项目成本估计及其应用 UCP说明: UCP = 交易的UCP数 + Actor的UCP数,1.交易/Actor在估算时按复杂度分为简单.普通.复杂.主观类别,权重分别对应1.2.3 ...

  7. 5、软件架构师要阅读的书籍 - IT软件人员书籍系列文章

    软件架构师在项目中的地位是不言而喻的,其对于项目的需求要相对比较了解,然后对项目代码的结构需要做到覆盖全面.本文就说说作为一个软件架构师需要阅读的一些书籍. 当然,这些书籍都来源于网络,是笔者收集整理 ...

  8. 1、软件工程师要阅读的书籍 - IT软件人员书籍系列文章

    软件工程师要阅读的书籍估计是项目组内最多的.软件工程师处于项目组中最基础的人员储备阶层,与项目的关系最密切.当然,现在是大数据时代,我们无法全部看完所有相关的书籍,只能够先学习工作需要的知识,然后在项 ...

  9. 17、文案人员 - IT软件人员书籍系列文章

    这里说的文案人员是软件项目中的一个角色.其主要负责相关文档的整理,用户使用说明书的编写等等,在项目中是一个辅助的角色. 文案人员所做的事情不错,但是她能够辅助软件配置管理工程师进行工作,更好的为维护文 ...

随机推荐

  1. Android随笔之——Android广播机制Broadcast详解

    在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理.这个广播跟我们传统意义中的电台广播有些相似之处.之所以叫做广播,就 ...

  2. 改写yii2的listview功能

    在vendor\yiisoft\yii2\widgets路径下新增文件ListViewtest,将下列代码粘贴并保存 <?php namespace yii\widgets; use Yii;u ...

  3. 微软消息分析器(Microsoft Message Analyzer )更新至1.2版-2015-1-20

    就在刚才,收到了微软Connect的邮件推送,大名鼎鼎的微软消息分析器更新至1.2版,并且有公众下载链接,大家可以在这里进行下载. 这里简单摘录一下博客里面提到的新版所增加的功能与功能的改进方面. G ...

  4. Global eval. What are the options?

    David Flanagan最近写了一个关于全局eval的简单表达式,可以用一行式子表示: var geval = this.execScript || eval; 尽管看起来很简短,但是跨浏览器的兼 ...

  5. STL模板中的map的使用与例题

    最近的计分赛,记得自己的都只是过了两题.遇到了两次map,自己在寒假看了一点的map,只知道在字符串匹配的时候可以用的到.但是自己对map的使用还是不够熟练使用,这回在第一次和第二次的计分赛中都遇到可 ...

  6. CloudNotes云端个人笔记系统系列文章汇总

    [CloudNotes版本更新信息与下载地址:http://cloudnotes.cloudapp.net/webapi/Home/Release] [CloudNotes RESTful API帮助 ...

  7. JavaScript中的数据类型转换

    本文中提到的“原始值”指的是undefined,null,Boolean,string和number. 本文中的对象是native对象,宿主对象(浏览器定义的对象)按照各自的算法转换. JavaScr ...

  8. 一步一步开发Game服务器(三)加载脚本和服务器热更新(二)完整版

    上一篇文章我介绍了如果动态加载dll文件来更新程序 一步一步开发Game服务器(三)加载脚本和服务器热更新 可是在使用过程中,也许有很多会发现,动态加载dll其实不方便,应为需要预先编译代码为dll文 ...

  9. CSS-清除浮动

    什么是CSS清除浮动? 在非IE浏览器(如Firefox)下,当容器的高度为auto,且容器的内容中有浮动(float为left或right)的元素,在这种情况下,容器的高度不能自动伸长以适应内容的高 ...

  10. StackExchange.Redis加载Lua脚本进行模糊查询的批量删除和修改

    前言 使用StackExchange.Redis没有直接相关的方法进行模糊查询的批量删除和修改操作,虽然可以通过Scan相关的方法进行模糊查询,例如:HashScan("hashkey&qu ...