承德石油高等专科学校计算机与信息工程系 李磊
在我国软件开发技术领域,软件开发企业大部分规模不大,标准化程度不高,属于中小企业。中小软件企业与大型软件开发企业相比较,在风险管理、人员组织管理、软件项目管理等方面显得资源缺乏,管理不规范,好多软件项目都是就事论事,可重用性不高,同时软件容易形成漏洞遭受攻击,质量不高。在资源稀缺的情况下,很容易形成小部分人或几个人组成的开发团队掌握整个企业重要信息的现象,项目开发的任务就落在这几个人组成的开发团队身上,加重了核心开发人员的负担,同时由于是一些企业重要信息不方便向全部项目组成员公开,造成了团队成员之间信息交流不通畅,所有的不利因素使得软件企业时刻都处在风险值较高的范围内。在这种情境下,中小型软件企业软件开发的效率和质量必然受限制。它们迫切需要寻找一种能提高软件开发效率的方法,用来改良现有的开发流程管理体系,或者尽快找到新的解决方法来指导开发,对产品或项目质量进行跟踪管控。
随着软件技术的不断发展,各种人性化设计、大众化的操作系统和开发工具等在带来便捷的同时,也使得软件开发日益复杂化,在进行软件开发时需要各个软件、组件协同工作。开发人员配备安排不协调不得当会导致潜在问题的产生,甚至影响整个系统。比如由于团队成员间沟通不畅通而间接造成代码冗余高、开发周期长,产品可靠性可重用性低下、质量低劣,维护困难,用户抱怨使用不便,项目风险增加等。事实表明,软件开发行业需要高效率的开发以规避软件企业的风险。
再者,传统Web 开发方式需要处理的业务逻辑和处理方式都有类似之处,但编写代码的过程大都显得重复和乏味。有些时候模块间的耦合度在没有降低处理的情况下,就直接把页面表现与逻辑实现混杂在一起,造成代码编写效率不高。对开发者而言,选择一个功能完备并且操作简洁的开发框架辅助完成复杂流程的开发工作,会对开发效率的提升起到很大的帮助作用。
种种现象表明在软件开发行业建立起敏捷的、工厂式模块化的软件生产模式已成为软件行业发展的迫切需要,而且这种工厂式模块化开发模式逐渐发展成为中小企业进行软件开发首选的实践模式。
在Web 软件开发过程中,MVC 设计模式已是一种被众多软件项目开发实践应用并被广泛推崇的标准设计模式,MVC 是模型(Model)、视图(View)、控制器(Controller)的缩写。模型层的操作对象是数据库和数据表,负责完成数据的增删改查的交互操作。控制层主要任务是业务逻辑处理,具体任务是接收视图层发送的请求,并按照业务逻辑和模型层进行交互,最后把处理的结果返还给视图层。视图层负责把控制层处理的结果数据进行封装以网页形式展现给用户。MVC 模型如图1 所示,MVC 模式的软件设计理念提供了良好的软件制作途径。实践证明,在中等开发规模以上的软件企业中,应用MVC 模式开发软件获得的高效便捷的好处要远远大于它所带来的额外工作和复杂性。基于MVC 的开发框架并不少见,但由于Django 是一个高效的、减少重复代码、具备新颖简洁开发模式和巨大的发展潜力的Web框架,在软件生产过程中Django 成为Web 开发的首选框架。
图1 Web 开发中的MVC
敏捷式开发是一种与传统开发模式完全不同的开发模式:传统开发模式大多采用瀑布模型作为系统开发的蓝图,每个开发步骤必须严格遵守开发计划,且必须有对应的开发文档,注重开发进程和开发工具的使用,把签订合同作为工作目标。而敏捷式开发过程对于采用什么样的开发模型、开发文档并不关心,更侧重于注重开发团队成员之间的关系、所开发的软件产品的质量,注重开发过程中与客户经常沟通常调整开发计划、协同工作,实现开发过程的“敏捷”。
软件工厂是指为了降低软件开发成本、提高开发效率,把以前使用过的可重复利用的组件配置到特定应用程序而搭建的开发环境,是开发模式、开发模型和开发工具的综合运用。目前,软件开发一般都是由程序员按照软件需求,依照瀑布模型人工手动的方式编写代码,这种方式的缺陷是编写代码的速度缓慢、经济成本高、容易出错,软件代码的可重用性、安全性、算法的性能以及其他软件质量方面出现产品缺陷,造成严重的问题。同时软件开发人员为了工作必须面对不断更新发展变化的软件技术开发平台,必须适应不断变化的用户需求,不断学习新开发技术,尝试使用更新的开发工具,这就需要一种既能为软件开发者提供简洁明了的开发便利,又能在短时间内给用户带来效益的方法。软件工厂的优势恰好符合这个需求,可以解决上述问题,它使得软件生产条理化、系统化。工厂式的软件开发管理模式能确保制作软件的过程如同现实工厂生产零部件一样,实现软件产品加工过程的规范、标准,软件项目实施人员对软件零件进行随意组合;软件工厂还能随着用户需求变化而变化,解决了用户需求不确定性问题;软件工厂把已经开发的组件收集起来形成自己的资源,并尽可能组织利用这些资源,使软件组件的可重用性大大提高,开发人员的工作量明显减少,开发成本降低;软件工厂采用并行流水式作业,使多个项目并行开发,可以实现批量生产。零件式、模块化的组装方式提升了软件系统的拓展空间;利用软件工厂进行软件开发,用户可以控制项目进度、周期、资金成本、项目质量,开发速度得到提高,项目效益和成功性得到保障;软件工厂使维护工作只需针对需要维护的对象展开,工作量大大减少。软件工厂件能够大幅度提高效率,实现大规模的定制,这将会促进应用软件产业根本性的变革。
基于MVC 的软件开发模式已经在软件开发行业形成一种规范,通过这种设计思想开发的软件实现了软件开发的模块化,开发效率和传统的瀑布式开发模式相比大大提升,在MVC 的基础上又注入敏捷式、工厂化的软件开发思想,使得开发并行流水化,降低了开发成本,缩短了开发周期,提高了软件开发的速度和效率。