BOS物流管理系统-第一天
Posted beyondcj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BOS物流管理系统-第一天相关的知识,希望对你有一定的参考价值。
BOS物流管理系统-第一天-系统分析、环境搭建、前端框架
BoBo老师
整体项目内容目标:
-
对项目概述的一些理解
-
亮点技术的学习
-
注意学习方式:优先完成当天代码。
-
其他内容。
最终:
学到新的技术,会应用新的技术;对项目有个整体感觉;
课程安排:12天左右
主要内容:
-
项目整体概述和一般流程(项目概念、一般项目流程等)
-
BOS项目的概述(项目背景、需求、技术架构、学习目标)
-
开发环境搭建
-
项目导入和运行(传统项目结构)(Struts2的通配符映射)
-
项目导入和运行(Maven项目结构)(STS开发工具)
-
-
jQuery EasyUI框架(常用布局组件、Ztree菜单技术、数据表格组件等)
学习目标:
-
项目的一般流程、了解
-
STS工具的使用、会
-
maven的环境搭建、掌握
-
前端开发框架EasyUI、掌握
-
项目的整体概念和一般流程
-
什么是项目
-
我们要做项目,首先得简单了解一下什么是项目。通俗一点的解释是用有限的资源、时间为特定的客户完成特定目标的一次性工作。资源比如人财物等,时间是指有明确的开始和结束时间,不能无限期。
其实各行各业都是有项目的概念的,为了完成一个目标,都会去启动一个项目。制造汽车的有制造工程师,建设桥梁的有桥梁工程师,盖楼的有什么?民工?是建筑工程师!我们是软件工程师!
我们身处IT行业中的软件行业中,作为软件工程师,是为了做什么事情?构建信息系统。比如传统的软件行业中最常见的OA(什么是OA?办公自动化),以及现在比较流行的电商系统(都有什么?淘宝,京东)。
信息系统项目是什么?是根据用户的需求,优选各种技术和产品,进行设计开发,形成一个完整的整体,并能彼此协调工作。信息系统的目标是满足用户需求,提高用户的管理经营效率,帮助用户获取更大利润。
看出来了吧,我们做项目的最基本要求就是什么?满足用户需求。
P.S.:传统项目分类:OA自动化办公系统、CRM客户关系管理系统、 ERP综合管理平台.
OA---》MIS---》ERP(企业管理的全流程软件:进销存、人力、办公、客户管理。。)
-
项目的一般流程(软件项目的生命周期)
大家看看下面这个图:
软件项目的一般流程:
其中软件这块的流程(也叫生命周期):
这个就是一个基本的项目流程(瀑布模型),也是常见的一种项目方式。其中,计划主要是可行性分析,软件设计又包括概要设计和详细设计,编码中还包含单元测试。
-
计划阶段:做这个东西行不行(可行性)
-
需求分析:分析要做什么
-
设计阶段:具体怎么做?
-
编码阶段:具体开始做
-
测试:看看做的怎么样,有没有问题
-
运维:软件跑起来,用起来。
-
项目中软件工程师所具备的基本能力
我们所处的位置在哪?刚开始一般是在编码阶段。后续一般逐步会涉及需求的分析和设计,当然也有公司会一开始就把需求分析设计编码都扔给你。这些都称之为开发阶段,不要以为开发就是纯编码。
需求分析和设计也是是程序员的一种能力,我会在后面的项目中逐步给大家讲解。
-
职业规划
三条线:
1.技术—》技术组长》架构师---》技术总监-->CTO 技术大牛
2.管理---》项目组长---》项目助理---》项目经理---》部门经理—》项目副总
3.业务---》需求-|产品(这几年越来月流行-张小龙)|跑业务
证书相关:
软考/pmp:
-
BOS项目概述相关
-
BOS项目背景
BOS(Business Operation System),是软件系统中最核心业务系统简称。
BOSS(Business Operation Support System业务操作支援系统-中国移动的核心系统)
本次项目的BOS是用友软件公司为宅急送公司开发ERP系统。BOS一期工程 C/S结构,二期工程B/S 结构。
项目规模:
完整项目开发周期:约1年多。(包括需求分析、系统设计、 编码、测试、 bug修复等)(现在的项目都是模块化,周期不会太长,----敏捷开发(大模块分解为小模块-快速迭代—小的里程碑)—快速开发)
参与的项目人员:40人左右(项目经理、开发人员、需求人员、产品人员、运维人员、计划人员、相关责任人-敏捷管理-SCRUM)
参与的开发人员:二三十人团队(开发时间约3、4个月—工作量80人月=20人*4月左右)。
(补充:真正完整规范的项目:需求分析设计+编码开发单元测试+集成测试运维,每一个都要占用1/3)
猪和鸡的故事。
项目中相关人:主要人员(猪,全投入,如开发人员)+参与人员(鸡,部分投,如产品人员,公司副总)
人月、人天—计量单位—》来自于《人月神话》
-
软件需求规格说明书
软件需求说明书也称之为软件需求规格说明书,英文SRS(Software Requirements Specification), /frs(Funtion Requirements Specification)
软件需求说明书的编制是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解, 使之成为整个开发工作的基础。包含硬件、功能、性能、输入输出、接口需求、警示信息、保密安全、数据与数据库、文档和法规的要求。
BOS项目的需求规格说明书:
项目开发任务
-
需求分析(开发任务-要做什么)
项目完整开发流程:
需求分析(需求分析文档)à系统设计(页面原型设计- Axure ,jquery easyui数据库设计 PowerDesigner ) ------ 编码 ----- 测试 ----- 集成部署和运维
BOS系统非常庞大,十几天学习哪些功能
涉及三大核心业务模块 : 基础设置模块、 取派模块、中转模块
-
基础设置模块: 管理物流信息基础元素信息-元数据 (取件人-快递员信息、客户所属区域、配送区域、配送时间、排班 、车辆、线路信息等…)
-
取派模块:客户要进行快递,系统进行业务受理、系统分单到快递员、快递员到客户家取件、称重、打包、计费、派件等…
-
中转模块: 管理货物在配送路程中间数据、出入库等…
-
路由模块: 管理车辆和线路
-
财务模块: 计费
-
PDA模块: 管理快递员无线电通信
-
报表模块: 生成统计数据
用户权限管理: 通用权限管理系统 Apache Shiro
-
项目开发平台和技术
开发环境:
开发环境 |
产品环境 |
|
操作系统 |
Windows |
Linux rhel-server-6.3 |
开发工具 |
Eclipse(Spring Tool Suite)、JDK7 |
JDK7 |
数据库 |
Oracle10g XE |
Oracle11g |
Web容器 |
Tomcat7 |
JBoss Application Server 7 |
浏览器 |
FireFox(FireBug)或Chrome(开发者工具) |
开发技术:
编号 |
工具 |
版本 |
说明 |
Struts2 |
2.3.15.3 |
表现层MVC框架 |
|
Spring |
3.2.12 |
业务管理IoC和AOP框架 |
|
Spring Data JPA |
1.4.1 |
数据层持久层框架 |
|
Hibernate |
3.6.10 |
数据层持久化框架 |
|
Junit |
4.11 |
单元测试框架 |
|
jQuery |
1.8.3 |
JS框架 |
|
jQuery Easy UI |
1.3.2 |
JS前端UI框架 |
|
Ztree |
3.5 |
JS树形菜单插件 |
|
Apache POI |
3.9 |
Office文档读写框架 |
|
Apache CXF(Hessian) |
3.1.5 |
接口远程调用 |
|
HibernateSearch(Lucene) |
3.4.2 |
全文索引库技术 |
|
Apache Shiro |
1.2.4 |
权限管理框架 |
|
Activiti |
5.19.0.2 |
工作流框架 |
|
HighChart |
4.0.4 |
JS报表框架 |
|
EhCache |
2.6.10 |
缓存技术 |
|
Oracle |
10.2.0.4.0 |
数据库 |
|
slf4j |
1.7.5 |
日志技术 |
|
业务功能:上传下载、Excel解析、远程系统调用、全文检索、权限控制、工作流、报表
-
项目学习目标
1、学习可以直接在企业应用开发技术(远程系统调用集成 WebService、全文检索 Lucene 【Hibernate Search】、 权限控制 Apache Shiro 、工作流 Activiti 、 报表 HighCharts)。
2、体验项目技术变化性(数据库层Spring Data 调用 JPA、新技术)---- 运用技术解决问题。(不会的技术也能用在业务上)
3、增强动手能力(每个同学,主动动手开发)
4、团队工作氛围(有问题找组长,组长要负责全组的开发情况和问题收集,每天要提交工作日报)(我项目经理—班长项目经理助理—组长项目组长---组员)
日报:组员写好,发给组长,组长进行汇总,再出一份日报
时间上:当天
晚上9之前(下晚自习(8。30---9点之前)—组长(9点一刻)---汇总—发给班长—最迟10点30点发送)
-
开发环境搭建相关
-
开发工具-STS的下载安装和基本设置使用
-
STS的下载:
STS(Spring Tool Suite):是Spring官方提供eclipse+插件的免费的Java开发工具。
STS的推荐优化:
-
更改工作空间编码:UTF-8—必须
-
更改JSP编码:UTF-8—必须
-
更改字体大小:12号
-
更改换Java代码行字符数量(java-codestyle-formatter)
-
更改换javascript代码行字符数量(javascript-codestyle-formatter)
-
关闭自动更新(automatic updates)
代码模版:(java-codestyle-code template)
-
原型的制作
参考: 下发C/S 结构原型,制作网页原型
-
项目原型的导入(Eclipse结构)
导入项目原型,不建议import,可以新建一个项目,将文件复制对应目录
新建Web工程:
配置Runtime:
填写工程名称等:
导入项目:
启动tomcat运行项目:
选择服务器和刚配置的运行时:
了解:默认情况下,项目会发布到eclipse-workspace内置的一个tomcat环境。
查看项目基本情况。
-
项目目录结构分析
问题:使用struts2如何限制和访问页面?
解决方案(技巧):
-
业务相关页面都放在WEB-INF下,可以限制浏览器的直接访问。(Struts2推荐的项目页面存放位置,客户端无法直接访问)
-
使用Struts2的通配符(二级通配符映射)+Action默认的Class+我们的约定(目录和页面命名规范),来间接访问页面。
这个Action,没有class ------ 执行默认Class (struts-default.xml ),执行ActionSupport类 的 execute方法 ,返回SUCCESS。<result> 默认name就是success ,匹配结果集,将一个Action访问路径, 映射为 WEB-INF下jsp页面。
例如: 访问WEB-INF/pages/admin/function_add.jsp
只需要在浏览器输入 page_admin_function_add.action 就可以
这样做的好处: 可以使用Interceptor(拦截器)对所有jsp进行权限控制 !
-
项目原型导入(Maven结构-项目结构重构)
-
maven环境配置(回顾)
-
下载 maven 的 zip 包
-
-
解压到硬盘
2、 配置解压/conf/settings.xml 本地仓库路径
3、配置环境变量 JAVA_HOME、M2_HOME、MAVEN_HOME, 将bin加入path
4、将之前下发 本地仓库,覆盖到仓库目录
Eclipse中配置maven:
1、 window-preferences –搜索maven ,勾选源码和doc自动下载
2、 配置外部maven路径
3、 配置settings.xml 的位置
4、重建索引
-
构建maven工程,移植BOS工程
新建maven project ,跳过骨架选择:
配置pom.xml 通过坐标导入jar包:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.itcast.projects</groupId> <artifactId>mavenbos</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name>mavenbos</name> <description>物流maven</description>
<properties> <spring.version>3.2.12.RELEASE</spring.version> <spring.datajpa.version>1.4.1.RELEASE</spring.datajpa.version> <hibernate.version>3.6.10.Final</hibernate.version> <slf4j.version>1.7.5</slf4j.version> <c3p0.version>0.9.1.2</c3p0.version> <oracle.version>10.2.0.4.0</oracle.version> <struts2.version>2.3.15.3</struts2.version> <servlet.version>2.5</servlet.version> <jsp.version>2.0</jsp.version> <junit.version>4.11</junit.version> </properties>
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-jpa</artifactId> <version>${spring.datajpa.version}</ 以上是关于BOS物流管理系统-第一天的主要内容,如果未能解决你的问题,请参考以下文章 BOS项目 第11天(activiti工作流第三天,流程实例管理项目中的用户和角色同步到activiti的用户和组表设计物流配送流程启动物流配送流程组任务操作(查询拾取)个人任务操作(查询 |