技术架构开发初步设想(开发过程)
“欢迎大家指出过程中的错误和不足,给予宝贵的意见和参考”, 是我放在首页的目的。第一次总是伴随着不成熟,平时知道的也许不一定会。都知道软件开发过程,可其中具体做什么,怎么做,怎么安排,如何控制进程,这些工作,不是每个人都很清楚的。我就是不是很清楚中的一个人,现在我需要去知道。
在项目结束后,下一阶段的工作就是负责新技术框架的一个探讨和研发。今天大概写了一下开发思路,待补充完成后提交给公司。
第一次负责项目开发的计划和实施过程,为了能做到最好,将《技术架构开发初步设想》放在博客网上,列出了大概的开发过程,写的比较简陋,欢迎大家指出过程中的错误和不足,给予宝贵的意见和参考。
大家都知道,每一个软件的开发,都需要经历可行性分析、需求分析、概要设计、详细设计等阶段,框架本身也是软件,所以也理所当然的经历这些阶段。根据现阶段的情况,主要将技术框架的开发分为这么五个阶段:公司系统调研阶段、框架需求调研和分析阶段、框架设计阶段、框架调试阶段和培训阶段。
一、公司系统调研阶段
阶段任务
这阶段主要是收集和整理公司现有系统的相关信息,如系统的适用范围和领域、主要功能、开发环境、系统体系结构等。之所以收集这些信息,有这样几个目的:
Ø 因为现在公司有很多已实施的系统,但是却没办法了解公司这些系统基本信息的文档,很多干脆就没有文档。通过这次整理,我们能从整体上了解和把握公司现有的这些系统,让公司项目部门的相关人员都能从系统调研表中了解项目的相关信息,不论是对于业务人员、销售人员还是开发人员,都是有益的。
Ø 新的框架不仅能够适应以后新系统的开发的要求,而且也要兼容现有系统的开发,做好系统移植的准备。公司有很多的系统,有的系统历史还比较悠久,而且是建立在不同的开发平台和开发工具上的,如PB、VB等。一方面,公司统一开发平台和开发工具,就会将重心偏向所定的开发平台,那么,以前基于不同平台和开发工具的系统将造成维护的复杂度;另一方面,作为一套软件,它应该有它的发展和创新,而且随着用户需求不断的增加,现有的系统也许无法再通过轻松的修改来满足用户这些需求,那时候我们就会考虑重新开发这套系统。这样,我们就会使用现在的技术架构进行开发。所以,技术架构也考虑现有这些系统的开发。
阶段工作
在系统调研阶段,我们将定制系统调研表格,分发到相关部门,然后,统一收集。
阶段文档
系统调研表。
二、框架需求调研和分析阶段
阶段任务
需求分析要做的就是准确的定义新系统的目标,也就是将要实现的系统是个什么样的系统,达到什么样的要求。其实最终的目标就是为了用户的需要,回答这个系统要“做什么”的问题。
1) 问题识别
Ø 功能需求
Ø 性能需求
Ø 环境需求
Ø 用户界面需求
另外对软件各个部分和性能指标也要有一个明确的需求定义,如安全性、可靠性、可维护性、可移植性等等都要通过双方的共同讨论、研究,力求达到一个双方都可理解接受的指标。
2) 分析与综合
对于需求分析实际调研中所得到的信息,综合分析和理解,在此基础上通过规范的需求分析工具生成开发人员能够理解的软件逻辑模型。
3) 文档编写
Ø 编写需求说明书,把双方共同理解和分析得到的结果以规范的方式描述出来,作为今后工作的基础。
Ø 初步编写用户使用手册
Ø 编写测试计划,作为软件验收时的依据。
阶段工作
这阶段主要是收集新框架的需求,比如功能需求、性能需求、安全需求等。一方面,我们需要收集在原有框架开发过程中存在的不足,这是项目最直接的需求;另一方面,我们通过各种方式,增加技术框架新的功能,尽可能的减少开发工作量,提高开发效率。
我们将采用口头交流和需求调研表方式收集技术框架的需求。一方面,我们保持口头交流的灵活性,随时记录新的需求;另一方面,我们将定制框架需求调研表格,分发到相关部门,比如开发部、市场部、咨询策划部等,然后统一收集。
最后,对收集的信息进行整理分析。
阶段文档
技术框架需求说明书
三、框架设计阶段
阶段任务
在完成需求调研和需求分析后,这阶段主要完成技术框架的设计和开发。
阶段工作
Ø 选取新框架的体系结构,确定基于新框架二次开发平台的开发方式和部署方式。
Ø 明确开发环境
确定采用何种操作系统(Linux、Windows),基于何种开发平台和开发工具(J2EE、.Net),使用何种项目管理软件、版本控制软件、辅助设计软件等。
Ø 解决方案
选择当前流行并且具有代表性的框架,进行研究,研究它的解决方案和所实现的技术。企业级应用的开发首选是J2EE,针对J2EE的表示层、逻辑层和数据持久层都有很多免费并且应用成熟的框架,而现在基于.Net的还没有这样具有影响力、成熟的框架。我们应该有意识的去了解它们,了解它们的工作原理,了解它们的解决方案,了解它们的设计思想,了解它们的应用范围,了解它们的优缺点等,然后指导我们新框架的开发。
Ø 技术选择
根据需求,我们需要比对技术的优缺点来明确所采用的技术,比如J2EE平台的EJB、JSP技术,.Net平台的ASP.Net、ADO.Net。如果采用.Net平台,那么实现分布式通信是采用.Net Remoting ,还是WebService,还是最新.Net框架所发布的WCF等等问题。
Ø 技术培训
对所采用的技术进行培训
Ø 概要设计
概要设计的基本任务:
1) 框架逻辑结构的设计
1.1) 将复杂的系统按功能分成若干模块。
1.2) 定义模块功能。
1.3) 确定模块间的调用关系
1.4) 确定模块接口
1.5) 对模块的设计进行评估
2) 数据库设计
3) 文档编写
概要设计和数据库设计说明书,修改需求分析阶段的用户手册和测试计划,以更合理的对应所设计的软件系统。
4) 评审
这主要是对这阶段工作的一次回顾,看看有什么遗漏或错误的地方没有。
Ø 详细设计
详细设计的任务就是为每个模块所要完成的功能进行具体而精确的描述,要根据功能描述再转化成精确的、结构化的软件过程描述,软件过程描述一般可直接对应到相应的代码,也就是以后开发会根据这些过程描述来编写程序代码。具体如下:
1) 设计模块算法
2) 编写详细设计说明书
3) 评审
Ø 功能实现
阶段文档
数据库设计说明书、概要设计说明书、详细设计说明书、用户使用手册、测试计划和架构代码。
四、框架调试阶段
阶段任务
这一阶段是进行基于新框架开发的测试。
阶段工作
1、 技术框架的功能测试
主要测试技术框架所提供功能的正确性
方法:
Ø 白盒测试
Ø 黑盒测试
2、 基于技术框架开发的项目测试
使用这套技术框架,做一个小型的测试项目,以发现存在的问题。
阶段文档
测试报告、测试项目代码
五、培训阶段
阶段任务
对相关人员进行基于新框架的二次开发的培训,使其能够使用框架进行系统的开发。
阶段工作
组织开发和实施人员进行,进行集中或者分批培训。
具体如下:
Ø 技术架构使用培训,前部分主要以讲解框架的的功能和如何使用为主;后部分则以开发模拟项目为主,完整的演示如何利用技术框架进行开发。
Ø 考核技术框架的掌握,采用独立使用技术架构开发检验项目的方式。
阶段文档
培训计划书
在此,感谢zack[匿名] 、Anders Cui 和各位朋友。
20061230 参照了一些资料,做了一些修改
20061231 根据各位朋友提出的建议做了一些修改