软件开发概要

根据功能不同分为:ERP软件开发、APP软件开发、软硬结合开发(例如物联网、智慧城市、车联网等,涉及到软硬件结合)、互联网项目开发

ERP软件:企业管理软件,例如政府公务系统、企业的内部系统;

现代企业管理的理想工具,可确保流程顺利进行。您能借助ERP解决方案的强大功能,轻松分析销售、市场营销、客户服务、订单处理、制造、库存管理等信息。

一般为定制化开发,根据企业的实际业务,合理规划业务流程,实现企业业务信息化管理的功能。

ERP软件是一个在全公司范围内应用的、高度集成的系统。数据在各业务系统之间高度共享,所有源数据只需在某一个系统中输入一次,保证了数据的一致性。

对公司内部业务流程和管理过程进行了优化,主要的业务流程实现了自动化。

Erp项目一般项目比较大,定制化开发完成后,后期主要是运维工作,整体流程固化,一般不会有大的变动。

系统要求:安全要求一般(内网系统,一般不进行外网共享),对性能要求不高。

APP软件:针对手机端的项目,包含ios端和Android端。ios和androis开发使用的技术是不一样的。

ios端:指针对苹果手机的app软件开发,

android端:值针对安卓端的app软件开发。

软硬件结合:一般为嵌入式开发,在学习了软件技术后,还需要学习相关硬件的知识。但是硬件的标准又不统一,开发难度很大。比如:大疆的内置系统、智慧城市、城市天眼等。

互联网项目:可以通过互联网访问的项目,一般要求美观、功能、速度、稳定性。

特点:用户多,流量大、并发高,海量数据,易受攻击、功能繁琐、变更快。

项目性能指标:

响应时间:执行一个请求从开始到最后收到响应数据所花费的总体时间,要求时间尽可能短。

并发量:系统能高并发。

TPS:每秒处理事务的数量要高。

高性能:提供快速的访问体验

高可用:网站服务一直可以正常访问

可伸缩:可以通过硬件增减,调整处理能力

高可扩展:系统间松耦合,方便的通过新增或移除,新增或减少新的功能或模块

安全性:提供网站安全访问、数据加密、安全存储等

敏捷性:随需应变,快速响应。

新技术使用比较多。

根据架构分为:B/S项目和C/S项目

B/S 项目:通过浏览器进行访问的项目,为架构发展趋势。

C/S项目:通过客户端进行访问的项目,例如游戏客户端、影视客户端等

编程语言:目前常用到的编程语言为java、php、VB、C、C++、C#

java:面向对象的一种基础语言,使用最多的开源语言(免费)。

C语言:使用比较窄,主要使用在银行系统、操作系统内存(linux、Windows),安全性比较高

C++:在C语言的基础上,进行优化后的一种语言,网络游戏和部分网站使用,可视化开发,可以直接拖拽控件进行开发,控件全部封装好了。

php:是一种通用的开源脚本语言,语法类似C语言,PHP语言具有较高的数据传送处理水平和输出水平,可以广泛应用在Windows系统及各类Web服务器中。如果数据量较大,PHP语言还可以拓宽链接面,与各种数据库相连,缓解数据存储、检索及维护压力。随着技术的发展,PHP 语言搜索引擎还可以量体裁衣,实行个性化服务,如根据客户的喜好进行分类收集储存,极大提高了数据运行效率

VB是Microsoft公司开bai发的一种通用的基于对象du的程序设计语言,为结构化的、zhi模块化的、面向dao对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。是一种可用于微软自家产品开发的语言

应用软件的层级划分:表现层、ESB层、业务层、持久层

表现层:用户直接操作的层级,包含web端、APP、微信公众号、小程序等。

表现层与业务层完全分离,通过跨域实现前后端数据通信。

主要使用的技术:HTML、JSP、JS、CS、JQuery等

ESB:企业服务总线,是网络中的连接中枢,一种松耦合的服务和应用之间的标准集成方式。

面向服务架构-分布式的应用由可重用的服务组成

面向消息架构-应用之间通过ESB发送和接收消息

事件驱动架构-应用之间异步的产生和接收消息

ESB可以消除不同服务之间的技术差异,实现了不同服务之间的通信和整合。

ESB通过接口进行数据交换:

接口协议包含:socket通信、webservice协议、http和https协议、ftp和sftp传输

socket通信:比较复杂的一种通信协议,遵循tcp/ip进行传输,目前很少使用。

webservice协议:在socket之后使用比较普遍的传输方式。

httphttps协议:目前最流行的传输方式,大部分公司都在用。

ftpsftp传输:需要开通端口号22或21,是要用于文件上传和下载。ftp传输为Windows下的,sftp是linux下的。

数据传输的格式:逗号分隔法、xml、json

逗号分隔法:最早的数据方式是一串字符串,用各种特殊符号隔开,然后通过截取符号的前面,后面或之间,来获取数据。(贼累,眼睛要看花的)

xml:可扩展标记语言,公司双方定义xml的根元素和子元素,双方开发人员都按照根元素和子元素,在里面赋值,取值,现在很多开源框架都还用xml作为存储和配置文件

jsonJS 对象简谱。目前流行的数据传输格式,简洁,方便,易懂基本全占。目前公司都建议用json结构传输

业务层:负责所有业务的处理和数据的传递。复杂的逻辑判断和涉及到数据库的数据校验都需要在此做处理。

javaWeb架构演变

阶段一:servlet阶段(MVC

1.在该阶段架构模式中,Servlet/Filter扮演Controller角色,JSP扮演View角色,JavaBean扮演Model角色

2.该阶段的数据库访问技术为具体DB的jdbc 

        该模式虽然实现了所谓的MVC模式,但却存在诸多问题:

      (1)前后端分离不彻底。由于JSP技术前后端分离不彻底,开发人员往往会在JSP页面中嵌套Java代码,从而需要前端开发人员懂java技术

      (2)JSP页面可读性差,编写效率低,尽管引入EL,JSTL等技术

      (3)Sevlet/Filter作为控制器,面临的稳定性,安全性考验(Servlet是线程不安全的)等

      (4)数据库访问技术采用传统的jdbc,造成过多的冗余代码

阶段二:SSHSpring+Struts+Hibernate

1.在该架构模式中,Controller采用Spring框架技术,View采用Structs框架技术,DB访问技术采用Hibernate框架技术

2.从SSH中,很容易看出前后端出现了专业化,精细化分工,且朝框架演变,如前端框架采用Structs,后端框架采用Spring等

阶段三:SSMSpring+SpringMVC+MyBatis

该模式中,Spring扮演Controller角色,SpringMVC扮演View角色(当然,小型系统,可直接采用SpringMVC即可),Mybatis扮演DB访问技术

      SSM架构模式,在当前的JavaEE中,算是比较流行的开发模式了,也是大都数企业的技术选型之一

阶段四:微服务思想(SpringBoot+CloudDubbo等技术)

业务层代码块:controller/struts2/servlet、service、dao、model

view:视图。这个很容易理解,其实view层就是用户用户可以看到的东西。后台怎么处理不关心,只关心怎么样想用户展示信息,现在大部分系统进行了全后端分离,指表现层。

前端开发技术:基础js+css+html。

中间演化出:aps、jsp、php、jQuery、Angular、Ajax

报表插件:FusionCharts Suite XT、HighCharts、Google Chart Tools、Sencha ExtJS Charts、Chart.js、Flot、jqPlot等

controller:主要负责具体业务模块流程的控制,会调用Service层的接口来控制业务逻辑。Controler负责请求转发,接受页面过来的参数,传给Service处理,接到返回值,再传给页面

Service:业务逻辑层。接着controller层中,可以想到,service层是业务逻(

商务逻辑)的具体实现。它向上层的controller层提供接口,并且使用dao层提供的接口。

dao:数据访问对象。他只负责对数据进行访问,而不管其他的什么业务逻辑,其实就是只干活,而不管为什么干。在dao层里面要完成的是数据访问逻辑以及对数据的访问。数据访问,大部分情况下就是对数据进行操作。dao层为上层的service层提供接口。dao层在操作完成后,如果是查询,则返回对象,如果是增删改,则仅仅需要返回一个boolean值表示成功失败即可。

model:业务对象模型和一些公用方法、常量。被dao层、Service层、Controller层同时使用。

业务层向表现层和ESB层提供接口服务:webservice请求或http请求

http请求方式:post,get,一般使用post请求。

1、java web项目,未前后端分离,服务需要通过servlet或Struts2进行接收和响应数据。Struts2由于安全原因目前很少使用了。

2、前端后端分离后,http请求存在跨域问题,可以通过添加请求头进行解决

业务层在dao层,使用mybatis、hibernate与持久层进行数据交互。

持久化层:数据的存储。

目前常用的物理数据库,存储在磁盘空间中。

大型数据库:Oracle、Sybase

中型数据库:mysql、sql server

小型数据库:access

内存数据库:以内存为主要介质的数据库,它将数据存放在内存中直接操作,能提高应用的性能,主要使用于电商网站。

Mongo DB、Redis、Memcached

项目搭建:项目开发完成后,需要搭建在服务器上,在搭建过程的工作

1、服务器环境:linux、Windows

2、中间件:项目不能直接部署在服务器上,需要部署在中间件上,中间件部署在服务器上。常见的中间件:Tomcat、jboss、weblogic。

3、部署方式:分布式部署、集群部署。

项目相关工作:

一、需求分析:

1、相关系统分析员向用户初步了解需求,然后用相关的工具软件列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面。

2.系统分析员深入了解和分析需求,根据自己的经验和需求用WORD或相关的工具再做出一份文档系统的功能需求文档。这次的文档会清楚列出系统大致的大功能模块,大功能模块有哪些小功能模块,并且还列出相关的界面和界面功能

3.系统分析员向用户再次确认需求。

工具:

业务流程图:Visio绘图

原型设计:Axure、摹客原型等,种类很多

文档:word、Excel、ppt等

二、概要设计

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

三、详细设计

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

工具:

数据库设计:sysbase powerdesigner

页面原型设计:Axure、摹客原型等,种类很多

文件编辑器:notepad++、UE等等

四、开发

UI开发:UI用户界面开发。

UI设计工具:Photoshop、Sketch、Axure等

UI开发工具:Dreamweaver、WebStorm、Sencha Touch、Sublime Text等

后端开发工具:

java集成开发工具:Eclipse、MyEclipse、NetBeans、idea等

文件编辑器:notepad++、UE等等

java反编译:jd-gui

版本管理工具:svn、gitlab、git

自动化构建工具:Ant、Maven、Gradle等

java单元测试:Junit等

接口测试工具:Postman等

规则引擎:drools、IBM ODM等

C#相关工具:待补充

五、测试

测试编写好的系统。交给用户使用,用户使用后一个一个的确认每个功能。测试同样是项目研发中一个相当重要的步骤,对于一个大型软件,3个月到1年的外部测试都是正常的,因为永远都会有不可预料的问题存在。完成测试后,完成验收并完成最后的一些帮助文档,整体项目才算告一段落,当然日后少不了升级,修补等等工作,只要不是想通过一锤子买卖骗钱,就要不停的跟踪软件的运营状况并持续修补升级,直到这个软件被彻底淘汰为止。

测试工具:jmeter、LoadRunner

六、运维

FTP工具:FlashFXP、

代码对比器:Beyond Compare 等

Windows下登录UNIX或Linux服务器主机的软件:secureCRT等

oracle可视化工具:pl/sql

mysql可视化工具:mysql workbench、MyDB Studio等

系统监控软件:CactiEZ等

内网穿透工具:花生壳、nginx等

负载均衡工具:nginx等

项目计划管理工具:Project等

Weblogic10.3.6最高兼容jdk1.6,1.7需要修改配置,1.8及以上不兼容。

来源:zhukun207

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年1月9日
下一篇 2022年1月9日

相关推荐