在结构化设计之后就应该着手于具体的结构化实现了,这个阶段是为了把前一阶段设计的物理模型加以成型,形成一个符合结构化分析和设计要求的实际可运行的软件系统。
这里我将分为三部分来讨论如何实现软件系统的结构化。
第一,编码。一般采用自顶向下的设计方法和单一出入口的控制技术,在选定了合适的编码语言之后按照具体要求的编码风格对系统的实现加以编码。为了提高程序的可读性,改善代码质量,我们必须严格按照既定的编码风格来编码,包括源程序文档化、数据说明、语句结构和输入输出。整个编码过程中,我们要时刻注意编码的效率,包括对算法的分析和对存储效率的分析,对影响输入输出的因素的分析和尽量保证输入输出的请求应该最小化。
第二,测试。软件的形成必然会面临各种错综复杂的问题,个人的主观意识不可能全面覆盖客观现实,而且开发人员之间的思想交流也不可能十分完善,为了尽量减少开发周期中各阶段的差错,必须在每个阶段对软件进行测试。首先自然是从设计测试用例开始,利用用例来执行程序找出软件潜在的缺陷。关于测试,我个人比较熟悉白盒测试和黑盒测试。白盒测试比较常见的有语句覆盖,判定覆盖,条件覆盖等,不同的逻辑覆盖测试方法都是从各自不同的方面出发,为设计测试用例提供依据的。而黑盒测试,则是把测试对象看作是一个黑盒,完全不用考虑程序内容的逻辑结构与内部特性,只根据需求规格说明书来测试程序的功能或程序的外部特性,常用的包括等价划分法,边界值分析法,错误推测法和因果图法。需要说明的是,这些方法没有一种能够提供一组完整的测试用例来检查程序的所有功能,因为常常需要结合起来使用。
第三,软件调试。这一阶段用于在测试发现错误之后诊断并排除错误的过程。调试一般包括查错和排错两个原则,调试的过程则试图找出并改正软件的错误。我们通常通过强行排错、回溯法、归纳法等策略进行软件调试阶段的任务。
这三个阶段对软件系统的结构化实现来说,缺一不可。良好的把握这些阶段的具体任务和方法能够让我们更高效地开发优质的软件。
参考资料:殷锋《软件工程》