软件开发流程

简介: 开发流程 需求分析 1.相关系统分析员向用户初步了解需求,然后用word列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面。 2.系统分析员深入了解和分析需求,根据自己的经验和需求用WORD或相关的工具再做出一份文档系统的功能需求文档。这次的文档会清楚列出系统大致的大功能模块,大功能模块有哪些
开发流程

需求分析

1.相关 系统分析员向用户初步了解需求,然后用word列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面。
2. 系统分析员深入了解和分析需求,根据自己的经验和需求用WORD或相关的工具再做出一份文档系统的功能需求文档。这次的文档会清楚列出系统大致的大功能模块,大功能模块有哪些小功能模块,并且还列出相关的界面和界面功能。
3. 系统分析员向用户再次确认需求。

概要设计

首先,开发者需要对 软件系统进行 概要设计,即 系统设计概要设计需要对 软件系统的设计进行考虑,包括系统的 基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、 数据结构设计和出错处理设计等,为软件的 详细设计提供基础。 [1]

详细设计

概要设计的基础上,开发者需要进行 软件系统的详细设计 [2] 。在 详细设计中,描述实 现具体模块所涉及到的主要算法、 数据结构、类的 层次结构及调用关系,需要说明 软件系统各个层次中的每一个程序(每个模块或 子程序)的设计考虑,以便进行编码和测试。应当保证软件的需求完全分配给整个软件。 详细设计应当足够详细,能够根据详细设计报告进行编码。

编码

软件编码阶段 [2] ,开发者根据《软件系统详细设计报告》中对 数据结构算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。在规范化的研发流程中,编码工作在整个项目流程里最多不会超过1/2,通常在1/3的时间,所谓磨刀不误砍柴功,设计过程完成的好,编码效率就会极大提高,编码时不同模块之间的进度协调和协作是最需要小心的,也许一个小模块的问题就可能影响了整体进度,让很多程序员因此被迫停下工作等待,这种问题在很多研发过程中都出现过。编码时的相互沟通和应急的解决手段都是相当重要的,对于程序员而言,bug永远存在,你必须永远面对这个问题,大名鼎鼎的微软,可曾有连续三个月不发补丁的时候吗?从来没有!

测试

测试编写好的系统。交给用户使用,用户使用后一个一个的确认每个功能 [2] 。软件测试有很多种:按照测试执行方,可以分为内部测试和外部测试;按照测试范围,可以分为模块测试和整体联调;按照测试条件,可以分为正常操作情况测试和异常情况测试;按照测试的输入范围,可以分为全覆盖测试和抽样测试。以上都很好理解,不再解释。总之,测试同样是项目研发中一个相当重要的步骤,对于一个大型软件,3个月到1年的外部测试都是正常的,因为永远都会又不可预料的问题存在。完成测试后,完成验收并完成最后的一些帮助文档,整体项目才算告一段落,当然日后少不了升级,修补等等工作,只要不是想通过一锤子买卖骗钱,就要不停的跟踪软件的运营状况并持续修补升级,直到这个软件被彻底淘汰为止。

软件交付

在软件测试证明软件达到要求后,软件开发者应向用户提交开发的目标安装程序、数据库的 数据字典、《用户安装手册》、《用户使用指南》、需求报告、设计报告、 测试报告等双方合同约定的产物。
《用户安装手册》应详细介绍安装软件对运行环境的要求、安装软件的定义和内容、在 客户端、服务器端及 中间件的具体安装步骤、安装后的 系统配置
《用户使用指南》应包括软件各项功能的使用流程、操作步骤、相应业务介绍、特殊提示和注意事项等方面的内容,在需要时还应举例说明。

验收

用户验收。

软件维护

1、软件 数据库管理 2、用户跟踪培训
3、故障分析解决

软件升级

需求调整分析
软件功能拓展
优化系统

报废处理

软件不能适应业务发展
新软件项目立项
企业数据信息备份

举例解析

1 例如某家公司想找人订做一套 人事管理软件,从某种渠道上得知某家软件开发公司提供这种服务,所以进行联系。
2 软件开发公司会派专门的 软件工程师到他们那里去了解我们要设计一个什么的东西给用户用,然后回来做个方案给他们,其中方案的内容包括:开发出来的软件大概的界面是怎样?方便什么人使用?什么人可以使用什么功能?方便到什么程度?大概的硬件要求是怎样等?
3 用户看了方案后,确定他们就是要做一套这样的软件,开发方就开始开发这套软件。
4 开发方把开发出来的软件交给用户使用,其中在使用的过程中哪里使用不方便或哪里达不到要求,开发方会第一时间修改这些功能,直到用户要求的所有功能都能很完美的解决掉。
5 用户如果因为公司发展壮大的需要,需要将软件升级开发方会做功能拓展。
目录
相关文章
|
缓存 数据安全/隐私保护 iOS开发
2023最新mac开启ntfs读写功能 ntfs硬盘如何在mac上读写教程
在日常的工作中,总是避免不了跨平台的传输文件、文件共享等,例如一些用户使用Mac电脑修图或者剪辑视频之后需要拷贝到Windows电脑上查看。对于需要同时使用Mac和Windows的用户来说,系统之间不兼容是很大的阻碍,尤其是使用NTFS移动硬盘,用户会遇到Mac电脑无法写入NTFS硬盘的情况,本文就来教大家ntfs硬盘如何在mac上读写以及mac如何移动硬盘的文件。
4680 0
2023最新mac开启ntfs读写功能 ntfs硬盘如何在mac上读写教程
|
测试技术 程序员 数据库
软件开发文档介绍
软件开发文档是软件开发使用和维护过程中的必备资料。它能提高软件开发的效率,保证软件的质量,而且在软件的使用过程中有指导、帮助、解惑的作用,尤其在维护工作中,文档是不可或缺的资料。 软件开发文档可以分为开发文档和产品文档两大类。
5855 0
|
存储 安全 测试技术
|
存储 缓存 NoSQL
Redis与数据库同步指南:订阅Binlog实现数据一致性
本文由开发者小米分享,探讨分布式系统中的一致性问题,尤其是数据库和Redis一致性。文章介绍了全量缓存策略的优势,如高效读取和稳定性,但也指出其一致性挑战。为解决此问题,提出了通过订阅数据库的Binlog实现数据同步的方法,详细解释了工作原理和步骤,并分析了优缺点。此外,还提到了异步校准方案作为补充,以进一步保证数据一致性。最后,提醒在实际线上环境中需注意日志记录、逐步优化和监控报警。
1390 3
|
Java 关系型数据库 测试技术
SV学习笔记(四)
SV学习笔记(四)
872 0
|
存储 JSON Java
Nacos心跳机制解读(含简单源码分析)
Nacos心跳机制解读(含简单源码分析)
|
NoSQL Redis 索引
Redis(十二)-Redis的数据结构之跳表
跳表是一种有序的数据结构,它通过在每个节点中维持多个指向其他的节点指针,从而达到快速访问队尾的目的。
697 0
Redis(十二)-Redis的数据结构之跳表
|
Java 数据库连接 数据库
解析Java中的MyBatis Plus注解 @EnumValue:优雅处理枚举值映射
在数据库操作中,枚举类型的值往往需要与数据库表中的某个字段进行映射,以便在操作中能够进行相应的转换。MyBatis Plus作为一款强大的ORM框架,提供了注解 `@EnumValue`,使开发者能够更加灵活地处理枚举值与数据库字段的映射关系,从而减少了繁琐的转换逻辑。本文将详细介绍 `@EnumValue` 注解的用法及其在持久层开发中的应用。
5957 0
|
SQL 关系型数据库 MySQL
你知道MySQL是如何解决幻读的吗?
你知道MySQL是如何解决幻读的吗?
656 0
你知道MySQL是如何解决幻读的吗?