从零做软件开发项目系列之一——综论软件开发项目

软件开发,项目,系列,之一,综论 · 浏览次数 : 20

小编点评

**软件项目的分类与阶段** **软件项目分类** 根据不同的技术角度,软件项目可以分类如下: * **基础软件项目**:微信项目、APP项目、互联网项目、应用系统、数据库建设等等。 * **大型软件项目**:几百万至几千万的大项目,可能包括一些子项目,也有几十万的较一般规模的项目,也有几万或者几千的小项目。 * **小型软件项目**:几百个或几千个项目。 **软件项目的阶段** 软件项目从申请到开发实施到结项的全过程可以分为以下几个阶段: 1. **需求调研**:向客户了解具体的需求,需要提前准备调研方案,有针对性地收集客户需求。 2. **系统设计**:系统设计,可以分为概要设计和详细设计两个阶段的说明书。 3. **系统开发**:根据设计说明书,进行代码编写调试工作,由高级工程师或架构师搭建开发框架,分配任务,分模块进行开发。 4. **软件测试**:进行单元测试、集成测试、系统测试、验收测试等测试环节,类型上分别进行功能性测试、性能测试、安全测试等。 5. **项目收尾**:用户开始使用,就进入了项目收尾阶段,有用户培训,系统试运行,初步验收,评审结项,项目运维等过程。 6. **维护**:软件在用户需求频繁的时候,可能需要进行保障工作。

正文

1 引言

有一个三个泥瓦匠的故事。

三个泥瓦匠在砌墙,一个人走过来,问他们在干什么。

  第一个泥瓦匠没好气地说,你没看见吗?我在辛苦地砌墙呢。

  第二个回答,我们正在建一座高楼。

  第三个则洋溢着喜悦说,我们正在创造美好生活。

10年过去了,第一个人仍然在做泥瓦匠,第二个人成为了一名工程师,而第三个人则成为建筑公司的老板。

这个故事告诉我们,在工作的时候,既要明确自己的职责,也要知道自己在整个项目中的作用,也就是既要低头拉车,也要抬头看路。

 

 

我们平时的工作,都是一项大的工作项目的组成部分,不同的行业,项目的形式有所不同。在IT行业,除了做网络和硬件设备的,大部分做的都是软件开发的项目。一个软件开发项目,从开始到结束都经历哪些过程,在这里,我结合自己的经验和实践来做一个描述,期望对做软件项目开发的朋友有些启发。一名软件开发人员,最好能够明确的知道自己所处的位置,在一个项目中的作用,以及这个项目处于一个什么样的阶段,这样开发人员对自己的职责和目标就能会更清晰,也有利于工作能动性的发挥。

首先说一下软件项目的分类,按照不同的分类规则,可以有不同的具体分类。比如从技术的角度进行分类,可以分为微信项目,APP项目,互联网项目,应用系统,数据库建设等等。从项目大小进行分类,有几百万至几千万的大项目,可能包括一些子项目,也有几十万的较一般规模的项目,也有几万或者几千的小项目。还有从项目的主体上分类,自己开发本公司的项目,为其他公司开发的项目,这时候就会分出甲方和乙方,乙方是项目的开发实施者,为甲方服务。项目类型的不同,对于项目开发过程可能存在或多或少的差异,但总体来说,项目开发的一般都会有项目的确定,项目的开发,项目的收尾等几个阶段。

 

 

2 项目的确定

项目的确定阶段,这里就是要说一说一个项目是怎么来的。可能是领导有一个想法,提出一个大概的目标或者思路,然后就会让下属或者相关的公司给出可行性的分析,给出一个项目方案,之后就是对这个方案进行审核,也可能会组织一些专家进行评审,方案如果审批通过,则继续进行下一步,一般是组织招标,如果项目比较小,或者比较特殊,比如只有某家公司能做,有排他性,这时候就不用招标。组织方给出招标书,委托招标公司或通过政府采购平台等进行招标,相关企业根据招标要求,写投标书进行应答,招标结束后,中标企业和组织方签订项目合同,从而确定了项目。当然也有一些项目,没有经过这么多过程,如果是自己公司开发软件系统,没有合同,直接进行开发阶段。也有客户出于对公司的信任,直接签订开发合同的。

 

 

这个阶段,可能涉及到的岗位,一般有公司领导,售前工程师,标书专员。该阶段售前工程师的作用很关键,对岗位的要求也比较高,要对行业有比较深刻的了解,能够把握潜在客户的需求,同时,对自己公司的产品或技术也要非常熟悉,能够把公司的产品或技术,与潜在客户的实际需求结合起来,提供解决方案。具有将潜在客户转化为实际客户的能力。很多时候,公司的领导充当了这个角色,在与潜在客户交往中,会及时掌握客户的需求,也会调整公司的产品或技术,以适应客户需求。如果公司规模足够大,产品比较成熟,或者市场大,也会招募大量的一般销售人员。

3 项目开发

项目确认,签订合同之后,就进入了软件开发阶段。这个阶段可以分为需求调研、系统设计、软件开发、软件测试、用户培训等过程。

 

 

需求调研,主要是向客户了解具体的需求,需要提前准备调研方案,有针对性地收集客户需求。主要收集客户的工作内容,涉及到的人员岗位职责,以及用到的各种表单、报表、规章制度等资料。

需求分析,该过程主要对需求调研结果进行分析,将用户的需求转换为软件需求,同时也需要对市场上类似或相关的软件进行竞品分析,综合考虑各种产品的优缺点,以及针对的客户群体,对自己的软件有一个合理的定位,并明确自己软件的功能范围。

系统设计,需求分析完成后,会形成需求规格说明书,明确软件系统的功能范围,根据需求规格说明书,进行系统设计,对软件功能、性能等进行规划设计。明确软件的主要模块,模块之间的关系,使用的主要技术,并逐步细化,可以明确设计接口,规定接口规则,进行数据库设计。形成系统设计说明书,具体还可分为概要设计和详细设计两个阶段的说明书。

系统开发,根据设计说明书,进行代码编写调试工作,由高级工程师或架构师搭建开发框架,分配任务,分模块进行开发。每个模块先由UI画出原型页面,并进行切图,由前端工程师进行页面开发,同时后端进行功能实现,前后端通过约定好的json数据进行调试,开发完成后进行联调。

软件测试,软件开发完成后,要经过单元测试、集成测试、系统测试、验收测试等测试环节,类型上分别进行功能性测试、性能测试、安全测试等,每种类型的测试都会提供测试报告,一般测试出的bug由开发人员进行修复,修复完成后进行回归测试,直到bug归零或可控。

在项目开发过程中,会有大量的人员参与,特别是技术开发人员,涉及到需求分析师、架构师、UI设计师、前端工程师、后端工程师、测试工程师等,还会有细分的算法工程师、不同语言的工程师等等。还会有项目经理、技术领导等。

4 项目收尾

软件开发完成后,需要让用户开始使用,也就进入了项目收尾阶段。这个阶段有用户培训,系统试运行,初步验收,评审结项,项目运维等过程。

 

 

试运行,软件在内部开发测试后,让真正的用户开始使用,也就是系统试运行,这个过程需要将系统部署到模拟的生产环境,让用户根据真是业务,在系统上面进行操作,使用中收集用户反馈,包括使用习惯,系统功能,故障情况等,根据具体情况,开发方对问题做出相应的解决,排除故障,完善系统。

用户培训,对用户进行培训,需要提前做好准备,一般都是根据用户角色分别进行培训,客户领导、管理人员、业务人员等不同角色,使用系统的功能和侧重点有所差异,要根据具体情况来准备培训内容,结合不同角色的实际工作,有针对性的进行培训。当然也需要用户配合,安排好培训时间,搭建好培训环境,这样才能获得较好的培训效果。

初步验收,软件开发测试完成,在试运行前后,也可能会有初步验收。开发方需要进行系统的自检,根据合同功能对照系统的实际功能,看是否完成了合同约定内容,确认后,一般和用户方、监理方一起进行功能检查,如果都没有问题,则通过,有问题的话,做下记录,进行相应的补充修改,完成初验。

评审结项,试运行以及整改结束,软件获得了用户的认可,则进行最终的验收,同时召开项目结项评审会,一般会邀请3-7名专家,开发方汇报展示项目完成情况,监理会对整个过程进行说明,用户方给出使用情况的汇报,最后专家给出结项意见,最后签字,则完成结项工作。

项目运维,项目结项评审完成后,就进入了维护阶段,如果后续软件使用比较频繁,由于对软件熟悉度还需要一个过程,刚开始使用中可能会有比较多的问题,一般开发方会派人驻场进行保障,主要帮助用户解决使用过程中的问题,保障过程中,会对保障情况做出记录,定期(比如一周或者一个月)提交一份运维报告,保证软件能够正常使用。

5 结语

本文介绍了软件项目从申请到开发实施到结项的整个过程,在这个过程中,根据项目或公司的大小,会有不同的职位参与,如果是小的公司,可能一人兼任了很多职位,很多过程也会简化或省略。一般大一些公司,人员多,职位会设置的比较全,流程也会多一些。通过介绍,大家能够根据自己的职位职责情况,明确在整个项目中的阶段和作用,希望通过介绍,大家对软件项目有一个大概的了解。

与从零做软件开发项目系列之一——综论软件开发项目相似的内容:

从零做软件开发项目系列之一——综论软件开发项目

介绍了软件项目从申请到开发实施到结项的整个过程,在这个过程中,根据项目或公司的大小,会有不同的职位参与,如果是小的公司,可能一人兼任了很多职位,很多过程也会简化或省略。一般大一些公司,人员多,职位会设置的比较全,流程也会多一些。

从零做软件开发项目系列之二——需求调研

在接到软件开发任务之后,第一件要做的事情就是进行需求调研工作,基于前期的沟通以及合同向用户了解具体需求,从而有针对性地开展后续工作。整个调研过程分为调研准备,调研实施,需求分析。

从零做软件开发项目系列之三——系统设计

前言 在与客户充分接触后取得需求调研结果,然后分析调研内容,撰写完成项目的需求规格说明书。这是一个正式的文件,需要供需双方签字确认。说明书中会明确需求方的要求和开发方实现的内容,依据需求规格说明书,开发方就要开展系统设计工作。 进行系统设计工作,粗略的可以分成两个阶段,概要设计(总体设计)阶段和详细

从零做软件开发项目系列之四——数据库设计

前言 在对软件进行设计的过程中,数据库的设计是一项重要的内容,软件中主要的处理对象就是各类业务数据,通过对业务数据的处理,实现各种功能。我们经常说的,写程序,说到底就是增删改查,而增删改查的对象就是各种数据。数据都存储在数据库中,其重要性不言而喻,对于数据库的设计也是软件设计的一个重要基础。 1 数

从零做软件开发项目系列之五——系统开发过程

在软件项目的设计开发过程中,除了前期的用户需求调研确认,系统设计、数据库设计等工作之外,还有一些重要的工作需要考虑,比如软件开发模式,如何制定开发计划,如何协调开发人员开展开发工作等。

从零做软件开发项目系列之六——软件测试

软件测试是指在软件开发过程中对软件系统进行验证和验证的过程。它的目的是确保软件能够按照设计要求正常运行,同时检测和纠正可能存在的缺陷和问题。软件测试有助于提高软件质量、可靠性和用户满意度。

从零做软件开发项目系列之七——用户培训

开展用户培训工作是确保软件项目成功的重要一环。通过有计划和系统性的用户培训,您可以确保用户能够有效地使用新系统,提高工作效率,减少问题和困惑,从而实现项目的成功交付。

从零做软件开发项目系列之八——系统部署调试

软件项目的部署和调试工作是项目开发生命周期中的重要阶段,它涉及将开发完成的软件应用程序部署到目标环境并进行测试和调试,以确保系统能够正常运行并满足用户需求。

从零做软件开发项目系列之九——项目结项

项目的验收阶段,也就是项目生命周期的最后一个阶段,即项目结项,它涉及到项目的总结、验收、交付以及后续工作的安排。

从零做软件开发项目系列之十——项目运维

项目结项后的运维阶段是确保软件持续稳定运行、修复问题、满足用户需求的关键时期。在这个阶段,需要建立有效的维护制度,关注各种问题,并采取相应措施来保障系统的可靠性和可持续性。