软件工程是通过信息技术来解决用户现实世界的问题,而系统分解能够将复杂的问题简单化,是解决问题的有效方法;结构化则是通过对信息数据的结构化表达,使得解决问题的方法能够更好地融入信息世界。
所以,系统分解和结构化是软件工程的核心内容。
系统分解
系统分解的思想能够把复杂的问题简单化,实际上,它也是我们进行科研活动的不二法门。
我们进行一个系统的研制,通常会把一个系统划分成子系统,子系统划分成组件,组件再划分软件和硬件,这本身就是系统分解的思想。
对于软件研制,我们也在使用类似的系统分解的思想。
GJB2786A规定的软件开发过程要求先进行系统需求分析,在进行软件需求分析,也是有这方面的考虑。
软件的需求分析通常从系统需求分析开始,明确系统需求后,再通过系统设计将系统需求划分到软件和硬件;软件需求的分析通常会遵循模块化的思想,将功能、性能以及质量特性需求划分到功能模块上,这样的划分可能会分几个层次进行。
一种树型的软件工程方法进行软件需求分析的时候,就依次把一个复杂的软件需求划分成系统、事件、任务、作业。其实我们可以把它们理解为大小不同的过程模块,作业是最小的过程模块,系统是最大的过程模块,把系统逐个层次划分到作业,就是系统分解的过程,以便我们能够更好地实现软件。
结构化
因为结构化的信息更便于计算机理解,所以,我们需要把系统分解的结果结构化。
结构化的程序框图(称之为“作业树”)能有被自动编程。而要满足这一条件,需要完成以下步骤:
解除条件语句之间的公用程序框;
解除逻辑表达式的公用,使得循环出口直接触底;
使得“结束处理部分”位于程序入口的右侧,其余部分位于程序入口的左侧。
这正是:
系统分解解问题,结构方法化信息
二者若能皆用好,软件工程不神奇
参考书目:树型软件工程方法,作者:万南洋,出版社:清华大学出版社
联系客服