论文:论行业应用软件系统的开发规划
摘要
本人在一所高校信息技术中心工作,2023年应多个学校和校领导的要求,对以前开发的较独立的十多个学校信息化软件系统进行升级改造,使得各系统之间能够相互进行数据共享,配合工作。所进行的软件项目,与高等院校的学生招生、收费、教学、管理和服务密切相关,具有很强的行业特征,需要使用系统的师生员工(用户单位)、高校管理专家和项目开发人员间良好的分工协作;与常规的通用应用软件开发过程相比,具有明显的差异,主要表现在系统的分析、设计、实现、测试和维护均带有明显的行业特点,行业应用软件的成功开发必须遵循行业规范,正确使用专业术语,及时与专家和用户进行交流。
本人在项目中主要负责需求分析和软件系统设计,本文主要从资源互补、角色定位、相互协作的角度讨论行业软件系统的开发规划工作,我在实践中发现,行业应用软件系统的成功开发是从其规划到诞生起就应从行业中汲取各种营养,具有行业特征、行业味道,才能满足行业应用的需求。
正文
作为一所高校信息技术中心的技术骨干和技术负责人,高校内部信息化建设受到我们时常的关注。十多年来,我们与兄弟院校、知名软件企业合作进行了多项与高校信息化建设相关的软件系统开发工作,有学生收费管理系统、学生学籍管理系统、学生成绩管理系统、学生选课系统、学校图书借阅系统、学生奖惩管理系统、学生应聘就业管理系统、学校后勤服务系统、教材管理系统、教师业绩考核系统、学校办公自动化系统等十多个软件项目,覆盖了学校招生、入学收费、教学管理、学生管理、后勤服务和学生毕业的整个过程,这些项目,是我们与不同兄弟院校技术部门、不同企业合作的结果,被省内30余家高校使用,它有力地促进了我们与兄弟院校的信息化建设,提高办学的效益和办事效率。但随着系统的增多,也暴露出了一些矛盾问题,制约了相关学校的发展和信息化进程:
- 1、这些软件项目是我们与不同兄弟院校、不同企业合作开发的,也有些是独立开发的,信息难于相互共享。
- 2、这些软件项目开发于不同时期,期间技术中心人员变更较大,不同阶段、不同时期采用的技术不同,各个系统形式多样,有单机的、c/s网络结构的、B/S网络结构的和混合结构的。使用极不方便。
- 3、经过近年来的高校大发展进程,各校在管理上有了较大变化,原来的一些软件已经不适应学校的发展。
因此,在2022年我校领导参加省教育厅关于学校信息化建设工作会时,省内20余家高校提出让我们牵头进行系统的升级改造工作,并承诺在资金和人力方面给予支持,引起了省教育厅领导高度重视。我校领导将这一艰巨任务以政治任务的形式布置到我们信息技术中心,限时完成。
项目于2022年5月启动,成立了由七个人组成的项目组,作为信息技术中心的技术骨干和技术负责人,我参与了该项目的总体架构组,主要负责需求分析和软件系统设计,并完全负责该项目的管理。
虽然我们团队的大部分人长期工作在高校技术部门,但对于高校教学、管理和服务中的专业知识掌握并不多,高等教育行业的专业性特强,由开发人员现学领域知识是不现实的,这就需要用户和行业专家的协助。从相关部门聘请行业专家是明智之举。
作为行业性很强的应用软件,它和通用应用软件系统开发有很多不同,我觉得主要有以下几个方面:
- 一是需求分析阶段专业业务难把握、难摸透,管理目标和专业目标难一致。
- 二是设计阶段,设计规范难统一,难细化。
- 三是开发阶段,开发阶段的测试往往由于专业背景各系统联系紧密,难确认测试。
- 四是实施阶段,实施阶段的业务人员对系统认同差,沟通复杂。
- 五是整个过程涉及到过多的行业习惯,许多方面不和其他开发雷同。
聘请行业专家做项目组的顾问是应用软件开发过程中较好的策略。行业专家主要是作为领域知识源,提供技术文件和已有应用。在高校信息化改造建设这个项目中,我们从有关部门和其他高校聘请了各分系统的资深专家作为项目的顾问,获取到《高等学校数据规范标准》等技术文件和部分以前编写的源代码,该源代码是多个独立运行的、凌乱的、较小的系统,经过整理后可以用到新系统中,这为领域模型和设计模型的建立打下了良好的基础。
用户是应用软件目前和未来的需求提供者,其对项目成败的重要性是显而易见的。00A过程是从对系统将被使用的方式的理解开始的,在需求诱导时需要从用户的观点对系统建模,需要项目组和用户共同确定使用场景和定义系统的功能和运行需求;需要用户提供清楚而无二义性的终端用户和系统如何相互交互的描述;需要用户提供确认测试的基础。在这外项目中,我们与用户充分合作,请用户给我们讲解高等学校有关教学、管理和服务的常识、过程、功能等,将用户作为项目组成员,作为每个阶段的技术评审的主要成员。
开发者是应用软件系统的建设者,需要从用户方进行需求诱导,建立领域分析模型;需要将分析模型变换为设计模型,建立软件的构造蓝图,需要完成编码和测试。由于应用软件具有行业背景,在建立分析模型是需要从各种渠道了解行业知识;在建立设计模型是需要使用逆向工程技术从现有的系统中得到关键的算法。在进行测试时需要使用用户提供的具有行业特点的真实的测试数据。开发人员需要随时在涉及到行业知识时向用户或行业专家请教,必须克服在开发一般应用软件时的问题讨论在相对封闭的范围内进行的特点。与常规的通用应用软件开发进行比较,专业背景的应用软件开发过程及各个环节的主要差异有:
- (1)在计划阶段,具有行业背景的应用软件系统与普遍应用软件的目标与动机一般是不同的,普遍应用软件以给本公司或部门带来经济上的收益为目的,而行业应用软件以更好的完成某项职能为目的。高等教育行业的应用系统开发目的是为了对高校内教育教学、管理和后勤服务进行有效管理,使师生方便、快捷、充分地享受高校资源,提高办学水平和能力。这就要求系统方案的制定必须符合行业的特征。基于高等教育行业的信息化建设改造项目,因其牵扯高校内部教务、人事、财务、学生管理、招生、就业、团委、后勤等众多部门,针对不同院校,所管理学生的学历层次、学习类型、办学形式等五花八门,管理方式也有差别,这就增加了应用软件开发的复杂性。
- (2)在需求分析阶段,行业背景的应用软件与普通应用软件相比一般需求比较明确、相对固定和有章可寻。必须获得行业的各种技术规范、数据共享资料及现行系统的运行数据。在此基础上划出应用软件的作用范围和与周围环境进行数据交换的接口,在类的划分协作者模型和对象-关系模型。
- (3)在设计阶段,行业背景的应用软件系统与普通应用软件相比,从用户界面设计、数据管理、任务管理到控制机制均要表现出行业特征。我们在该项目开发时,邀请有专业知识的用户参加到项目组实施的关键环节中,将设计模型在该行业专家作用户中进行解释。确保设计模型与领域模型保持一致。数据和任务管理的设计策略需要参考与《高等学校数据规范标准》相类似的行业标准;通过创建每个操作的过程表示类属性的数据结构而完成对象设计,数据结构和算法必须符合行业需要,使用对象间的协作和对象关系完成消息设计。在评审设计模型时需要行业专家和用户的参与,从行业的角度提出修改意见。
- (4)在集成测试阶段,行业背景的应用软件系统与应用软件相比,一般更强调进行β测试和进行新旧系统对比,需要使用行业的数据作为测试数据,测试案例需要由用户和专家参与制订,行业数据需要由用户和专家提供,测试结果需要由用户和专家确认和解释。由于针对高校信息化系统建设牵扯到众多的部门、管理方式和类别多、数据共享关系复杂、数据量非常大,因此系统测试需要在真实的数据环境中进行。我们在测试高校信息化系统建设(改造)应用软件时使用的是真实的数据,从数据的采集、传输、储存、处理和显示等的各个环节均使用的是高校各子系统的真实数据,根据测试结果和用户意见进行修改。
从上面的几个主要差别可以看出,具有行业背景的应用软件的开发需要行业中的各类标准、专业知识、现有相关系统合人员参与到开发过程中,要使行业特点与信息技术有机结合,在项目管理上还需要包含行业内的相关的人和物。
总结
在该项目的开发过程中,人员、设备、资料等的方方面面的资源均是由项目组与高校信息化系统共享的,在知识和思想上充分融合,经过双方的共同努力不仅开发出了满足高等教育行业需要的应用软件,还丰富了双方的知识面,拓展了眼界。
在实践中我发现,行业应用软件的开发必须遵循行业规范,正确使用专业术语,及时与专家和用户进行交流,要从其规划到诞生起就从行业中汲取各种营养,使其具有行业特征、行业味道。只有这样,行业应用软件的开发才能取得成功,才能被该行业人员认可、应用,才能满足行业应用的需求。
更多内容请见: 备考系统架构设计师-核心总结索引