这篇文章,更严格讲应该是一个提纲,是我在对企业技术人员进行培训时的讲座提纲。主要是我在过去四年里在基于互联网的软件开发、网站建设以及相关的项目管理方面的一些经验基础上不断发展起来的。包括了在国外和国内很多具体项目的经历。仍然有很多需要完善和改进的地方。
1.为什么互联网软件与通常软件的应用不同
(1)应用组成部分的不同
应用中软件的不同部分可能跨平台
应用中所需要的数据库可能不在本地
界面媒介与传统软件的不同
软件需要不同的界面
(2)应用开发和运行环境的不同
开发所需要的环境比较复杂
开发不同部分需要不同的项目组
很难构造与运行环境一样的环境
运行环境需要考虑到开放性
性能方面的设计考虑目前没有很好的方法来保证
(3)质量保证问题的不同
不仅仅是软件本身的问题
界面的质量保证是一个很重要的方面
界面与功能连接的质量保证很难控制
性能要求的测试很难系统化
测试本身需要考虑运行环境的开放性
安全测试不仅仅是应用系统的问题
实例之一:企业内外网站系统
--内部网建立在互联网体系结构上
--B/S结构提供了各个部门协调工作更好的空间和方式
--内部网站是其管理和商务的中心
--内部网站的管理维护更新分散化
--外部网站是内部网站的一部分
--关键性数据资源单独保存
--只需要维护一个数据中心
--内部网站分级和管理
--外部访问分级进行审核
实例之二:企业商务办公系统
--内、外网采取统一结构
--内部网办公系统基于B/S结构
--外部网首先服务客户,今后开展进一步的电子商务,同时作为 不同分公司之间业务联系的接口
--生产管理等系统处于内部网环境之下
2.需求分析
需求分析目前的主要问题是客户经常并不清晰应用的模式 ,而目前仍然没有很确定和公认的应用系统模式 ,目前可以借鉴一些厂商所提供的解决方案中的部分,核心的问题是应用模式和怎样更好的利用互联网特点
应用模式需求分析中,更多的是商务方面的内容,例如对象和服务等。
在应用模式确定下,更多的是确定如下几个方面的具体需求
公众界面和流程
管理界面和流程
系统功能需求
系统维护管理需求
3.公众和管理界面设计
(1)典型的公众界面是我们通常通过浏览器所看到的网站部分,包括
结构(动态和静态)
导航系统
形象系统
内容设计
功能
(2)管理界面通常也是通过浏览器进行,但需要有保护的进行访问,包括
针对公众界面结构所建立的管理维护机制
对内容的管理
对功能设置的管理
对数据资源的管理
对访问者的数据采集和分析
经常需要分布式、分级进行管理
4.界面设计和制作项目管理
--界面设计和制作首先应该从公众界面开始
--公众界面(网站)从根本上讲是动态的,但随应用复杂程度有部分可以静态实现
--公众界面设计和制作更多的是考虑到应用逻辑和流程
--管理界面设计和制作应对应于公众界面结构,但更多的强调的是管理流程
--后台功能应围绕公众界面和应用逻辑(流程)进行
--界面设计和制作项目所涉及人员和类型复杂众多
--界面设计和制作中主要涉及人员为:应用分析师(内容编辑)、形象设计师、制作人员、应用支持工程师、质量保证和项目管理人员
--应用支持工程师是与后台软件开发工程师(组)联系的桥梁
--后台软件系统是整体工程项目的一个部分,界面设计与制作项目管理中包含软件,但具体开发管理和质量保证在软件开发部门内部进 行。界面设计和制作项目管理对软件的管理相当于用户
--界面设计和制作项目管理是通过“项目站点”来进行的
5. 项目站点(Project Site)
--项目安排 项目安排(说明项目人员)
--项目周期
--项目站点新更新
--需求分析文档
--设计文档,包括内容设计、结构设计、形象系统、导航系统、功能
项目站点的主要组成部分
--问题讨论区
--项目进度安排
--客户浏览区
--内部测试版要求
--测试报告
--改进安排
--客户测试版要求
--客户测试版
--客户意见
--改进安排
--终确认版
6.后台软件设计和实现管理
(1)后台软件系统本身并不能总是组成完成的系统,必须与前台(界面)结合。界面设计中对功能的设计是后台软件系统的需求说明。后台需要在开发中与界面设计保持一致 。保证整体系统应用逻辑和维护逻辑 。只能进行单元和部分系统的综合测试 。
(2)后台软件在开发中需要建立开发所需要的平台
管理方面根据所采用的软件开发方法来确定
内部需要进行软件基本的测试
需要特殊考虑的有:session管理、数据库存取、界面生成等
好能够与具体数据库分离,可支持多种数据库
好能将数据及其处理从界面表达中分离出来
一般要支持两个流程:工作流程和管理维护流程
(3)软件完成单元测试和部分集成测试后,其主要的集成测试将与界面结合起来进行
集成测试进行之前,界面的单元测试也应该进行完毕
集成测试需要按照黑箱方法进行,需要重点测试:不同单元协同工作、典型流程、界面和软件交接
很重要的一点是还需要进行试运行,进行其它非功能测试