实战 - 需求分析

经过前面这么久的 Java 学习,相信大家也积累了不少知识,我们已经对 Java 语言有了系统的了解,接下来最后的这几节内容,我们将一起实现一个实战项目 —— 商品管理系统。本小节我们就来对这个商品管理系统进行需求分析,你将了解到什么是需求分析需求分析的重要性等。分析好需求之后,你将知道想要实现这个程序,需要什么前置知识

1. 需求分析碎碎念

需求分析也称为软件需求分析、系统需求分析或需求分析工程等,是开发人员经过深入细致的调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而确定系统必须做什么的过程。

第一次听到需求分析这个词,还是在我上大学的时候,当时在某公司的信息部门做实习生,自己什么也不懂,只是一心想要从事软件行业,对于如何编程,开发一个软件的流程完全没有概念。正巧有一个内部项目需要迭代,我们的项目经理和我说,你去做下需求分析吧,既然想要从事软件行业,软件研发的第一步也是最重要的一个环节就要学会做需求分析。项目经理的话我一直记忆犹新。

试想开发一个软件,我们没有做需求分析,就不知道从何下手;如果没有做好需求分析,开发出来的软件和用户的预期不符,就不得不返工重做。

下面我们就进入正题,做这个商品管理系统的需求分析。

2. 商品管理系统模块拆分

假设有一个小卖铺的老板找到你,提出了如下需求:

  • 自己平时用手工记录商品基本信息、库存等信息,太麻烦了,希望通过软件实现信息化管理;
  • 能够查看商品详情;
  • 能够对商品进行归类。

根据用户提出的需求,可知客户对系统要求不高,需求也比较明了,一般实际更复杂的项目,需要我们反复和客户进行沟通以核对需求,接下来我们开始根据功能拆分模块。

2.1 鉴权模块

该系统是商店的内部系统,因此不能每个人都能使用该系统,需要提供用户鉴权功能,我们使用最简单的用户名和密码进行权限鉴定。权限鉴定通过后,方可使用其他功能。

2.2 商品模块

商品模块是该系统的最核心模块,该模块主要对商品进行管理,包括添加商品、编辑商品、查看商品详情、删除商品、搜索商品、更新库存信息等操作,主要为商品的 CRUD(增删改查) 操作。

2.3 分类模块

分类模块主要对商品分类进行管理,同样包含了对商品分类的CRUD操作,关于实现细节此处我们不过多考虑。

该系统功能模块的思维导图如下:

3. 技术选型及所需基础

刚刚我们已经针对客户提出的需求,做了功能模块的拆分,对于该系统也有了一个初步的轮廓。我们就可以决定技术选型了,开发语言我们当然使用的是 Java 语言;数据库采用业界最常用的 MySQL 数据库。因此,想要独立完成此系统的开发,需要你有以下前置基础:

  • Java 语言基础:我们使用 Java 语言开发此系统,因此需要你有扎实的语法基础;
  • 熟悉文本扫描器类的使用:该系统使用终端界面来实现人机交互,因此需要你了解如何使用Scanner 类,如果不够熟悉,可前往Java Scanner 类小节去回顾;
  • 熟悉 JDBC 的使用:关于JDBC,我们已经在数据库编程这一小节详细介绍;
  • Maven 基础:该实战项目使用 Maven 构建工具进行构建,如果不够熟悉,推荐先去学习下另外一个慕课网的 wiki 教程 —— Maven 入门教程
  • MySQL基础:数据库使用 MySQL,因此需要你了解如何安装配置MySQL数据库,也要掌握基本的SQL语句,如果你还不够熟悉,推荐先去学习下另外两个慕课网的wiki教程:

4. 小结

本小节,我们阐述了需求分析的重要性,也对我们将要着手开发的系统进行了需求分析,根据需求将系统拆分成了几大功能模块,最后,我们也说明了该项目的所需基础,如果你还未满足,我也给出了一些学习链接,可以去到对应的超链接查漏补缺。另外,对于基础基本满足的同学,我也推荐大家先去自己实现下这个系统,过程中遇到问题自己去查找资料解决,这样你的编码能力、问题解决能力才能真正得到锻炼。