看看你对软件架构有多熟,测测你的能力


软件背景:
  商业连锁店管理

要求:
1、要求系统是多层
2、要求方便以后升级
3、团队开发,开发组员每个人只能有自己所负责的哪部分代码(防止软件盗版)
4、能适应对种数据库(ACCESS,SQLSERVER,ORLACE)

我先说说我的设想:
1、所有与数据库交互的部分写成存储过程,前端程序调用
2、采用抽象工厂模式,将与数据库部分写成通用数据库操作类
3、防止软件盗版,基于组件形式(各个小组成员创建自己的工程,最后生成类库DLL),最后由一个人来完成“装配”工作

疑问:
1、以上我的想法如何?
2、通过什么方法能让软件升级,后期维护方便? 
3、我看了一些软件他们就是由多个DLL和一个EXE组成的,请问他们基于什么方式开发的?
4、软件界面如何布局比较好?
5、还有我没想到的,请开发过大型软件的朋友,赤教!!!先谢谢了 

25 个解决方案

#1


问号可真多~

#2


是啊

#3


对了,在补充一下:
如果多个组员一起开发软件,是按模块分工(一个人负责写一个模块,包括bll,dal,ui)好还是按层分工(一个人写BLL,一个人写DAL,一个人写UI)好?

#4


按层分工

#5


3、团队开发,开发组员每个人只能有自己所负责的哪部分代码(防止软件盗版)

每天都要build

所以要考虑动态联编的问题,生成build脚本

我不做DLL,但是没有公共部分的代码吗?如何处理?

另外架构开发方面需要进行pilot
之后还要准备好测试环境,模拟多人开发的场景等测试场景

一般都是在一些比较成熟架构的基础上进行二次开发

不过看lz的意思是自己想从头开发,祝你成功吧~~

#6


TO cmm2cmmi:
1、 不明白你说的“考虑动态联编的问题,生成build脚本” ?
2、我所说的做DLL是指各成员都需要用到的部分,比如数据库操作类
3、模拟多人开发的场景等测试场景 ,怎么模拟?
4、一般都是在一些比较成熟架构的基础上进行二次开发,都有那些成熟的架构,你能不能详细点?
其实我想问的问题是:
1、团队开发,开发组员每个人只能有自己所负责的哪部分代码(防止软件盗版)
2、团队成之间如何分工,如果多个组员一起开发软件,是按模块分工(一个人负责写一个模块,包括    bll,dal,ui)好还是按层分工(一个人写BLL,一个人写DAL,一个人写UI)好? 
3、我看了一些软件他们就是由多个DLL和一个EXE组成的,请问他们基于什么方式开发的?是不是这样比只有一个exe文件更好,好在哪里? 


 

#7


朋友们顶起啊

#8


最好 开发成WEB版的 要不 客户端 很难维护

#9


不,我们要搞成winform

#10


真的不熟悉你的开发技术

只能从一般的架构开发角度说一下

但是提到的问题最好注意一下,因为在之前的架构开发在这些方面有些教训

我们用的是WEB方面的架构,Struts之类的,Apach的开源架构

一家之言仅供参考

祝你成功~~

[/Quote]

#11


看什么样的商业连锁店了,能不能保证网络稳定畅通

如果不行就得分布式

#12


这题LZ得再加点分

#13


to kelph:
平时各分店是不需要连接到总部的,只是传数据的时候才连接总部,不存在你说的这个问题

#14


哈哈,加点分没问题,可是我现在还没找到与我要求吻合的答案

#15


引用 1 楼 homesos 的回复:
问号可真多~

没分没动力,你的问题太多了~

#16


 加分了

#17


倒~

#18


to homesos:
朋友,你别总是分不够或是倒嘛,

#19


我看了一些软件他们就是由多个DLL和一个EXE组成的,请问他们基于什么方式开发的? 
----------------------------------------------------------------------
这种东西你都不知道,要跟你讲清楚整个系统结构、实现方式、开发安排,恐怕很难啊~
所以分少~

#20


引用 5 楼 cmm2cmmi 的回复:
3、团队开发,开发组员每个人只能有自己所负责的哪部分代码(防止软件盗版)

每天都要build

所以要考虑动态联编的问题,生成build脚本

我不做DLL,但是没有公共部分的代码吗?如何处理?

另外架构开发方面需要进行pilot
之后还要准备好测试环境,模拟多人开发的场景等测试场景

一般都是在一些比较成熟架构的基础上进行二次开发

不过看lz的意思是自己想从头开发,祝你成功吧~~


扯~

#21


要求: 
1、要求系统是多层 
模糊,随便搞搞就是多层
2、要求方便以后升级 
升级注意向前兼容就行了,简单的可以直接搞个在线升级,直接升级系统就行了;复杂一点的就太复杂了,涉及到软件系统架构等,不是一句两句能说清楚的,就不说了~
3、团队开发,开发组员每个人只能有自己所负责的哪部分代码(防止软件盗版) 
一般都是将功能分给不同的人做,当然要看系统规模了,系统划分的粒度自己确定;不过对于防止软件盗版,一点用都没有,你所说的功能基本上行内人可以比较容易的复杂出来,要是真的有必要,还地考虑一下软件加密吧,比如加壳、序列号、许可文件、USB加密狗、在线验证等
4、能适应对种数据库(ACCESS,SQLSERVER,ORLACE) 
一般程序都可以由EXE+DLL的方式实现,数据库模块独立成DLL,EXE+DLL间最好使用COM,程序拥有处理各种数据库的DLL,在需要时使用相应的DLL中的功能就行了~

我先说说我的设想: 
1、所有与数据库交互的部分写成存储过程,前端程序调用 
处理的大概层次:前台程序->数据库管理(可用多种数据库)->数据库模块(具体的数据库,如SQLSERVER)->数据库
2、采用抽象工厂模式,将与数据库部分写成通用数据库操作类 
……
3、防止软件盗版,基于组件形式(各个小组成员创建自己的工程,最后生成类库DLL),最后由一个人来完成“装配”工作 
组件形式并不能防止软件盗版
疑问: 
1、以上我的想法如何? 
2、通过什么方法能让软件升级,后期维护方便?  
在线自动\手动升级
3、我看了一些软件他们就是由多个DLL和一个EXE组成的,请问他们基于什么方式开发的? 
DLL是动态链接库的意思,它的实现有的是遵循COM,有的不是,主要是看系统架构的设计。一般都是一个主工程(EXE),其它都是次工程(DLL),某个功能做成独立的DLL工程,在主工程中加载(直接加载或根据配置文件加载)调用。
4、软件界面如何布局比较好? 
UCD并参考业内已有软件
5、还有我没想到的,请开发过大型软件的朋友,赤教!!!先谢谢了
需求、建模、设计……

#22


1、要求系统是多层:
如果你的软件需要实时连接到总部则可以考虑使用WebService或基于TCP/IP协议的Remoting技术,前者在大数据量传递时效率较差,但可用压缩组件压缩后传送;而后者需要考虑网络安全性。
2、如果要用Winform而要实现自动升级功能,可考虑使用SmartClient技术,当你的DLL版本更改时客户端会自动升级
3、人员分工:
系统架构开发:由1到2个精通技术的核心人员开发,包括公共组件、通讯、组件嵌入功能处理等。
业务系统开发UI:由熟悉业务和懂技术的人员开发,包括设计、界面控制、存储过程调用代码等
业务系统开发数据库:包括存储过程、触发器开发

#23


2、通过什么方法能让软件升级,后期维护方便?  


升级维护方便的话就用COM技术!!

#24


有人说采用插件式框架可以解决,麻烦哪个高人讲一下,插件式框架设计,我看了很多这方面的资料,可是不明白如何搞

#25


COM QueryInterface()

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com