软体设计师中有一些技术水平较高、经验较为丰富的人,他们需要承担软件系统的架构设计,也就是需要设计系统的元件如何划分、元件之间如何发生相互作用,以及系统中逻辑的、物理的、系统的重要决定的作出。在很多公司中,架构师不是一个专门的和正式的职务。通常在一个开发小组中,最有经验的程序员会负责一些架构方面的工作。在一个部门中,最有经验的项目经理会负责一些架构方面的工作。但是,越来越多的公司体认到架构工作的重要性。
同时,一个好的软件,文档很重要,在软件的总体设计中,需要对软件的总体结构进行设置,下面接受三个软件结构设计的图形工具.
一.软件结构图
软件结构图是软件系统的模块层次结构,是进行软件结构设计的有力工具,用来表达表达软件的组成模块及其调用关系.
结构图的主要内容有三个:
1)模块.用方框表示,方框中写上模块的名字,模块名最好能反映模块功能
2)模块的调用关系.两个模块之间用单向箭头或直接连接起来表示它们的调用关系,一般总是位于上方的模块调用位于下
方的模块,所以不用箭头也不会产生二义性.
3)辅助符号.弧形箭头表示循环调用.菱形表示选择或者条件调用.
二.层次图
层次图是进行软件结构设计的另一种图形工具.层次图和结构图类似,也是用来描绘软件的层次结构的.层次图中的每一
个矩形框代表一个模型,矩形框之间的关系表示调用关系.层次方框图中的方框表示一个数据,方框之间的连线表示组成关系.
三.HIPO(HierarchyPlusInput-Process-Output)图
HPO(HierarachyPlusInput-Process-Output)图是层次图加上输入---处理---输出图的英语缩写.为了使HIPO图具有可追踪性,
在H图(层次图)中除了最顶层的方框之外,每个方框都加了编号.
完整的HIPO图由层次图(H图),概要IPO图,详细IPO图三部分组成.H图给出了模块的分解,用分层的方框表示,和H图中每个
方框相对应的一张IPO图用来描绘这个方框代表的模块内的输入,输出和要完成的功能.每张IPO图要编号且与HIPO图中
的编号要一一对应,以便了解该模块在软件中的位置.
但是,当你创建架构设计时考虑下面几个问题:
①功能模块中哪些是风险级别最高的?
②哪些部分是最可能发生变化的?
③你的关键假设是什么,而且你将如何测试他们?
④什么情况可能要求你重构你的设计?
不要尝试过度设计,而且不要创造你无法验证的假设。相反,保持你的选择可以兼容可能发生的更改。
关键的架构原则
①面向变更设计架构而不是仅面向当前:考虑应用程序在将来可能发生的新的需求变更,然后构建灵活的支持。
②进行模型分析并且降低风险:使用设计工具,为系统建模,如UML,从而辅助概括用户需求。
③使用模型和图形作为沟通和协作的工具:有效的沟通是好的设计的关键。使用模型、视图或其他架构图形向所有利益相关者表达和分享你的设计。而且还要能够快速的沟通和反应设计的变化。
小编结语:
设计模式之于面向对象系统的设计和开发的作用就有如数据结构之于面向过程开发的作用一般,其重要性和必要性自然不需要小编多说!以上就是关于软件结构设计的相关内容,有兴趣的人可以到编程学习网教育咨询哟!