聊着聊着,大家又谈到了软件开发的流程。
黄华山首先发表自己的看法。“软件开发是一项系统工作,对开发流程有很多不同的认识,我看是不是能够分为七个阶段:
一是可研与计划阶段。主要确定软件的开发目标和总的要求,进行可行性分析、投资——收益分析、制订开发计划,并完成应编制的文件。
二是需求分析和用户辨识阶段。对待开发的软件进行市场需求和潜在用户群体分析,并形成相应的分析报告。
三是框架设计和技术说明阶段。主要是商讨决定需要开发的软件整个程序系统的基本处理流程、程序系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,建立软件总体结构和模块间的关系,确定各模块功能,定义各功能模块的接口,设计全局数据库和数据结构,并对一些特殊的实现手段或技术处理进行说明。
四是代码编写和模块测试阶段。编写出各功能模块的代码和整个软件系统的代码,并对各功能模块进行测试、修改、完善。
五是整体测试和修改完善阶段。将完成代码编写的程序进行仿真测试、缺漏查找,并根据测试结果进行修改完善。
六是项目验收和编写用户手册阶段。对完成测试并修改完善的软件进行检查、审查和评审,确定软件是否达到软件任务书的要求。同时组织编写用户手册,向操作人员提供该软件每一个运行的具体过程和有关知识,包括操作方法、问题处理等细节。
七是实际应用与售后维护阶段。验收通过的软件可以向软件交办单位交付使用,并做好售后的用户培训、系统维护、版本升级等工作。”
“软件开发有不同的类型,有针对某一职业、某一功能、某一机构的定向开发,有面向行业、面向社会、面向市场的开发。虽然任何软件开发的基本流程都是相同的,但不同类型的开发,其具体的操作流程也不完全相同。”贺俊明提出了自己的见解。
章岩笑着说:“我觉得从开发者的角度来说,软件开发的流程,可以分为三个阶段、八项工作、五大步骤。
三个阶段是指计划阶段、开发阶段、维护阶段。
八项工作是问题定义、可行性研究、需求分析、总体设计、详细设计、代码编写、测试修改、运行维护。
五大步骤是需求分析、方案设计、代码实现、测试完善、发布维护。
它们之间彼此对应、互相渗透,构成了软件开发的总体流程。
其实,对于面向市场的开发,软件的市场拓展、推广营销也应该属于开发工作的范畴。”
黄华山、李庆丰、贺俊明都觉得有道理,分别点头同意这个意见。
几个人还谈到了面向对象编程存在的主要弊端,如继承的香蕉猴子丛林问题、菱形继承问题、脆弱的基类问题、层次结构问题,以及封装的引用问题等等,探讨了这些存在问题的解决办法。
“任何一种编程语言都会有它的优缺点,人们很难创设出一种既简单实用,又强大完美的编程语言。我们要做的,只能是学好它,用好它,精心设计,扬长避短,解决问题。”眼看午饭时间就要到了,章岩最后总结道。
“是啊,人无完人,金无足金,编程语言也不例外。”黄华山感叹说。
本章未完,点击下一页继续阅读。