一个软件项目开始应该怎么入手分析,搭建

对于一个的软工,做一个项目对项目的分析是很重要的一个步骤。项目分析清楚了才知道自己在做什么。写代码的时候自己心中也有轮廓。
这篇博客是分析一个医药管理平台系统。让我们跟着博客一步一步的分析这个系统吧。

1 项目背景
首先了解项目背景,项目的作用? 解决了什么问题?

医疗行业的问题:药价贵

这里写图片描述

10年前,由国家卫生部统一指导,以省为单位创建一个平台:

这里写图片描述

10年后,以省医药采购平台作为指导,作为基础,对乡、镇以下的医药单位(最小医疗单位)上网采购。

这里写图片描述

2 项目概述
药品集中采购系统是利用计算机信息网络技术为医药卫生行业服务的电子交易系统,实现医疗机构上网采购、药品经营企业上网销售、监督单位网上监管,实现药品交易过程的数字化、网络化、透明化。
本系统依托与省级医药招标采购平台,在省级医药集中采购思想的指导下建立的市级医药采购平台,由市卫生监督单位将省级药品目录应用在市平台上,在市卫生局及下属单位监督下,乡、镇以下的卫生室在市平台药品目录范围内进行集中药品采购。

3 用户角色

 监管单位:
市卫生局(药政科):负责通过采购平台进行监管,主要监管医院和供货商之间的业务交易情况。
卫生院:乡镇一级医疗单位,由市卫生局直管。负责审核医药下的采购单。

 医院
卫生室:最小的医疗单位,村卫生室(卫生所)。由由市卫生局直管。
通过平台上网进行药品采购。

 供货商

药品生产企业、企业销售代理(一级代理,二级代理),称为:药品供货商

接收卫生室药品采购,按时进行药品配送。
通过平台上网进行药品销售(供应药品)。

 系统管理员
系统维护、配置、系统备份等。

4 业务流程

不同用户共同完成一个业务流程。

这里写图片描述

5 业务功能模块

将相似或一致的功能组成一个模块,如下:

这里写图片描述

完整的系统功能如下:

这里写图片描述

 药品目录模块:
药品目录维护:由卫生局统一管理,记录平台使用药品的中标目录,卫生局在省级目录 的基础上进行添加、删除,来组成市级的药品目录。
企业供货目录 :供货商将自己供应的药品添加企业供货目录,表示供货商要供应这些药品。

 采购单管理
创建采购单:医院使用
采购单审核:卫生院使用。

 统计分析
主要给卫生局使用,卫生局通过统计分析功能进行监管。

也给医院、供货商使用,医院、供货商统计自己相关的数据。

 系统管理
给系统管理员使用。

外部接口:
省级药品目录 接口:将省级药品目录 导入到本系统。

系统管理接口:通过单点登陆系统进行用户认证,将第三方系统中区域管理、系统参数配置等功能接入本系统。

6 需求分析

用户需求的分析:
进行需求调研,一份用户需求调研报告.doc及用户需求文档,用于和用户交流使用。

系统的需求分析:
依据用户需求文档(原始用户需求),进行系统需求分析,成果:“系统需求规格说明书”。
系统需求规格说明书:
描述:
需求用例:功能描述、功能接口、前置条件(功能的约束条件)、后置条件(功能影响,主要是数据库操作)。事件流(功能操作流程)

程序员根据需求规格说明书进行开发。

7 项目配置情况
7.1 人员配置
这里写图片描述

7.2 开发周期
增量模型:(企业最常用)
企业中常用的模型的增量模型,当系统很大需要几次开发完成,每次开发给做一个版本,正常进行系统安装升级等工作。
这里写图片描述
原型模型:
当需求不明确,使用原型模型降低风险。

本系统采用瀑布模型
需求明确,项目周期不长。

7.3 系统正式运行的环境。

网络环境: 互联网
硬件平台: 两台服务器:
一台安装数据库(实际上线用的是oracle集群)
一台安装web服务
操作系统平台: Centos 6.5
数据库平台: Oracle10G
Java环境: Jdk1.6
Web服务: Tomcat 7

7.4 开发环境
网络环境: 局域网
硬件平台: 每人一台台式机或笔记本电脑
两台服务器:(作为系统集成使用,和生产环境一样)
一台安装数据库(oracle)
一台安装web服务
操作系统平台: Windows,linux Centos 6.5(集成环境)
数据库平台: Oracle10G
(企业中是将一台oracle服务器作为开发服务器)
Java环境: Jdk1.6
Web服务: Tomcat 7
项目构建: Maven3.2
应用软件: Eclipse4.3(安装maven插件)
Plsqldev(oracle客户端连接工具)
Ssh client(linux远程连接客户端)

7.4.1 数据库环境

这里写图片描述

8 系统设计
包括:
系统概要设计(必须要做)
设计内容:主要系统框架、系统内外部接口
内部接口:本平台各各子系统之间的接口,模块之间接口。
外部接口:和其它系统的接口。
网络部署。
成果:“系统概要设计文档”

系统详细设计(不是必须要做)
成果:“系统详细设计文档”
设计内容:类、接口、及方法描述
程序员参考此文档进行编码。

8.1 系统模块划分
就是系统概要设计中一部分。

这里划分是系统技术架构的模块。依据业务模块进行划分。

8.1.1 以技术架构的纵向拆分方法

依据javaEE分层进行模块划分:

这里写图片描述

优点:分层清晰,方便程序员开发。

企业中常见将系统功能进行抽取组成一个子系统,比如系统管理功能,将系统管理的功能抽取出来组成一个子系统,让其它系统公用该子系统。

这里写图片描述

缺点:进行系统抽取时需要从各各层拷贝代码,如果有其它功能依赖该抽取功能代码,系统报错
模块重用困难,要想在另外一个系统重用模块必需将每个层的代码拷贝出去,模块之间耦合度高。

8.1.2 以业务模块的横向拆分方法

这里写图片描述

优点:按模块分包更加清晰,方便开发维护,对中大型项目可以采用。
缺点:虽然按模块将包创建,但模块和模块共存与一个工程,每个模块运行都必需将其它模块同时编译、部署,开发效率不高。

最大的问题:模块之间的依赖没有规范的管理。

8.1.3 以maven作为架构进行模块划分

Maven是一个优秀的项目管理工具,提高项目管理效率。

使用maven将模块工程化开发,将每个模块创建为一个maven工程。

这里写图片描述

Maven提供规范的依赖管理,依赖方将被依赖方的GAV三坐标。(依赖于某个系统的jar包)

将模块的jar发布到仓库之前 ,maven会执行编译、测试 ,通过后将jar发布到仓库,解决了一些编译的错误。
如果将测试做的完善,运行阶段错误基本也可以避免。

优点:每个模块单独创建不同的工程,单个模块运行无需编译其它代码,开发效率提高。模块之间采用maven依赖管理,只要配置好模块之间的依赖由maven进行管理。
按照maven规范运行整个系统达到一步构建,方便系统部署、测试、运行。

缺点:由于将模块分开多个工程,对于小公司由于人力不够,如果采用此模式开发反而会降低开发效率,一个人同时维护多个工程肯定比维护一个工程耗费经历。所以对于小项目不建议采用此模式开发。

8.2 系统架构
本系统采用maven进行模块划分。

本系统技术架构:springmvc3.1.4+mybatis3.2.3+oracle

8.2.1 技术架构模块
包括:springmvc3.1.4+mybatis3.2.3的jar包
不需要开发。

8.2.2 系统主工程模块

Base系统基础模块

包括:系统管理功能,其它业务功能依赖于该base模块
base模块依赖技术架构模块

business系统业务模块

business业务模块依赖于base模块。

8.2.3 常用工具类模块

将常用的工具抽取出来组成一个单独的maven工程。
Base模块依赖工具模块。

8.2.4 架构图:

这里写图片描述

系统架构及开发规范参考:

为了方便学习,将base和business合并为一个工程。

这里写图片描述

最终要构建三个maven工程:

系统主工程模块:yycgproject

系统工具类模块:yycgutil

技术架构模块:springmybatis

©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页