概述
根据功能不同分为: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之后使用比较普遍的传输方式。
http和https协议:目前最流行的传输方式,大部分公司都在用。
ftp和sftp传输:需要开通端口号22或21,是要用于文件上传和下载。ftp传输为Windows下的,sftp是linux下的。
数据传输的格式:逗号分隔法、xml、json
逗号分隔法:最早的数据方式是一串字符串,用各种特殊符号隔开,然后通过截取符号的前面,后面或之间,来获取数据。(贼累,眼睛要看花的)
xml:可扩展标记语言,公司双方定义xml的根元素和子元素,双方开发人员都按照根元素和子元素,在里面赋值,取值,现在很多开源框架都还用xml作为存储和配置文件
json:JS 对象简谱。目前流行的数据传输格式,简洁,方便,易懂基本全占。目前公司都建议用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,造成过多的冗余代码
阶段二:SSH(Spring+Struts+Hibernate)
1.在该架构模式中,Controller采用Spring框架技术,View采用Structs框架技术,DB访问技术采用Hibernate框架技术
2.从SSH中,很容易看出前后端出现了专业化,精细化分工,且朝框架演变,如前端框架采用Structs,后端框架采用Spring等
阶段三:SSM(Spring+SpringMVC+MyBatis)
该模式中,Spring扮演Controller角色,SpringMVC扮演View角色(当然,小型系统,可直接采用SpringMVC即可),Mybatis扮演DB访问技术
SSM架构模式,在当前的JavaEE中,算是比较流行的开发模式了,也是大都数企业的技术选型之一
阶段四:微服务思想(SpringBoot+Cloud、Dubbo等技术)
业务层代码块: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及以上不兼容。
最后
以上就是风中乐曲为你收集整理的软件开发概要的全部内容,希望文章能够帮你解决软件开发概要所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复