发新话题
打印

全新的软件设计思路(已实现模型)

全新的软件设计思路(已实现模型)

本人构造出一种全新的模式,但这种模式的推广为何如此之难(已实现b/s模型),模型如下:
1.目地
       •将程序开发和项目开发分开
       如果工具已开发完全,那以后做任何系统就不会再需要编程人员
       在项目开发过程中,让开发人员不需要了解数据结构编程语言等逻辑性很高知识,将数据结构,算法,编程语言将一个特定的团队来完成
       在系统中最重要的权限中.此工具给出一个模型,它可以处理一般的权限可以变成处理类似审批的复杂权限或更复杂的权限,而完成这些需要数据库的触发器来完成,权限这块是一点也不需要去编写程序语言的


2.结构
       •一个基本库,一个核心库以及若干个应用库完成
•     在工具开发过程中,只需要少数人了解核心库,而其它开发人员做应用库,而所有的开发人员之间是相互独立。
•     应用库分数据库类型,字段定义,以及界面功能定义三大类,这些都要求从基本库派生
•     核心库一当完成就基本不需要在修改

3.和传统模式下的分别
      1)   传统项目开发过程中每个项目都需要程序员,
            而新的模式下,项目开发团队中不需要程序员,而程序员被集中于一个工具开发团队中
      2) 传统开发过程中应和项目联系度很高,需要每个开发人员都需要有一定的程序语言能力和较高的逻辑能力
          新的模式下开发过程中和程序和项目联系度很低,基本上不需要使用程序语言,所有开发人员都可以不需要懂程序语言,而逻辑能力只需要项目经理有就可以

      3)传统需要在开发过程中不断需要程序员进行开发过程中测试,要常和用户交流,而交流和写代码是必须分开的。所以需要时间很长
         新模式下应在程序是已完成的,在用户要求修改时能很快在系统中反应出来,可以说是一边用户交流一边马上做出来。所以需要时间很短
4.已实现模型  
      1)如何扩展应用
         因工具未开发完全,所以会有一些需要扩展,但应是基于算法,所以扩展上会要求少部,如已做好一个输入应用,那不管是用户信息或输审批信息等都不需要再扩展,只是需要一般的表达一下,所有的html,javascript,后台处理去会自动完成
        (1)数据库扩展
            因有不同的数据库如sqlserver,mysql等,所以要给每个的数据库建一个扩展,在应用时只要通知工具是那个数据库就可以
        (2)字段扩展            
        从字段定义类派生出来,定义系统还没有定义类型,每扩展一个需要在描述文件中通知工具,让工具能识别新的字段类型,同时在管理数据库中加上,让在管理时可以通过界面就可以使用

        (3)界面和功能扩展
           从界面功能定义派生,增加界面管理和功能实现过程,不需要对所有的界面进行派生,所有的界面都是算法而出,界面的结果已由描述自动生成.如输入界面,系统已做好,就不需要再制作.
下面已开发好的b/s结构为例说明这种思想
  
•1.已实现的应用
    1)字段类型
字符串,下拉型,单选型,多选型,小数型,整数型,日期型,树型(类型省-市-县等),输入查找型(根据输入自动下拉到相近),类word型,多行多列型,文件型,编码型,密码型,验证码型等,还包含上面一些类型的分支
    2)界面和功能性
    列表,查询,输入,导入,类似监控过程,类型售票,类型发票(列表输入型),分页,类似TabCtrl型,图表型,树型,菜单型等

2.如何制未实现的应用
   1)字段类型定义,如年月型,从字段定义类再派生一下,重载里面的函数,然后做成dll再到描述加上你的dll和派生的就可以在以后的开发中使用
   2)界面和功能型定义,如上没有地图功能,你可以从界面和功能类派生出一个有关地图的操作生成规则(最好用算法产生,这样就不会应需求变化才出现要修改代码),做成dll再描述到工具中,那以后要用时,只要拿来就可以用(根据写的功能强度决定,如是用算法产生的,那会是在以前项目开发过程中只需要描述一下,而不会有数据结构等逻辑的)
•3.以输入生成和保存为例
URL:
http://127.0.0.1/ACTIVE.FG?FUN=4&TNI=5
这里的FUN=4表示第4个功能,如在描述地里会指定4所代表的文件是input.txt
那Input.txt的内容是
  
•<html ><head></head><BODY>
•<form action="ACTIVE.FG?FUN=7" method="post"  name=form1 id=form1 enctype="multipart/form-data" >
•<table><tr><td>
•102::2
•103::3
•105::TNI
•</td></tr><tr><td>
•101::10,1
•102::5
•103::3
•105::TNI
•</td></tr></table></form><iframe src="Form1.html" frameborder="0px" width="0%" height="0%" id="codeForm" name='codeForm'></iframe>
•</BODY></html>
  
•102::2
•103::3
•105::TNI
•上面中URL中TNI=5,表示生成5号表的输入界面(105::TNI这时等效于104::5)
•101::10,1
•102::5
•103::3
•105::TNI
•上面中URL中TNI=5就是创建一组表号为5的输入页面上的按钮(105::TNI这时等效于104::5)
•现假设需要一个界面上有输入项:姓名,性别,所在省,所在市,年龄,这时在描述时可以使用姓名的类型为字符串型,性别用下拉或单选性,所在省和所在市都树型,年龄用整型,当然在设定时有的要设下最大值,排列规则等其它参数
如果要生成6号表的界面,可以直接用URL中的TNI=6就可以,6号表的字段如成考试分数,考试课目,打分人,这时描述6号表为考试分数用小数型,考试课目可以用可变下拉或固定下拉,打分人可以使用变动下拉或字型串更可以用登陆人型
下面保存过程管理,也可以用一个统一过程
  
•根据form action=指定位置也可以描述后台要返回的文件,假设文件是save.txt.
那save.txt的内容
•101::0,*\ErrorNoRID.txt
•101::1,*\ErrorKeyNoValue.txt
•101::2,*\ErrorNoKey.txt
•101::3,*\ErrorNoModi.txt
•101::4,*\ErrorData.txt
•101::5,*\ErrorNoInsert.txt
•102::2
•103::0
•115::TNI
•上面的115:TNI和前面一样,101::0,…到101::5,表示各种出错因调用的文件描述
•后面可以加上保存成功后的所有代码,用HTML,javascript或再用描述都可以.
•如:你想关闭本窗口可以用javascrpt的window.close();
•如您想转到另一个页面可以用javascrpt脚本或用
•102::11
•103::0
•114::ACTIVE.FG?FUN=代号…
上面过程没有出现有关ado和数据结构操作,但工具会自动生成输入界面脚本,和后台处理过程(是在程序里面不可修改的)

TOP

发新话题