这周学习了软件结构图,是软件系统的模块层次结构,反映了整个系统的功能实现。
•软件结构以层次表示程序的系统结构,即一种控制的层次体系,并不表示软件的具体过程。
•软件结构一般用树状或网状结构的图形来表示。
•软件结构图的主要元素有:
–模块:模块用带有名字的方框表示,名称应体现模块的功能。
–控制关系:控制关系用单向箭头或直线表示模块间的调用关系。
–信息传递:用带注释的短箭头表示模块调用过程中传递的信息。
–循环调用和选择调用:在上部模块底部加一个菱形符号表示选择调用,在上部模块的下方家一个弧形箭头,表示循环调用。
•画结构图应注意的事项:
–模块不能重名。
–调用关系只能从上到下。
软件系统结构模型
•软件体系结构是一种表达,使软件工程师能够分析设计是否满足需求、选择合理的方案和降低风险。
•大型软件系统总是被分解成一系列子系统,由子系统提供一些相关的服务。
•软件体系结构设计过程就是识别出这些子系统,并建立子系统控制和通信的框架,最后给出软件体系结构的一个描述。
•两类结构模型:
–系统构成模型
–系统控制模型
数据流类型
•根据基本系统模型,数据信息必须以“外部”信息形式进入软件系统,经过内部处理以后再以“外部”的形式离开系统。
•有三种数据流类型:
–变换型数据流
–事务型数据流
–混合型数据流
作业如下:
这周阅读了《代码大全》第三章 三思而后行:前期准备
这章讲的就是做项目之前要做足准备。做任何事情都需要前期准备,在软件开发中也是如此,
其关键如下:
(1)发生存动的准备工作的大约目标在于减退危险。要确认你的准备行动是在减退危险,而非添置危险。
(2)万一你想开发高功德的软件,软件开发过程定然由始至终关怀功德。在项目前期关怀功德,对产功德量的正面波及比在项目末期关怀功德的波及要大。
(3)过程员的一局部工作是教导老板和配合者,告诉他们软件开发工程,包括在开始编程之前举行富余准备的重要性。
(4)你所从事的软件项目标种类对发生存动的前期准备取重大波及——众多项目该当是高度迭代的,某些该当是序列式的。
(5)万一未曾确定的问题定义,那么你可能会在发生其间处理讹谬的问题。
(6)万一未曾做完良好的需求分析工作,你可能没能考察待处理的问题的重要细节。万一需求改变发生在发生尔后的阶段,其代价是“在项现在期改动需求”的20倍至100倍。因而在开始编程之前,你要确认“需求”曾经到位了。
(7)万一未曾做完良好的架构设计,你可能会在发生其间用讹谬的措施处理准确的问题。架构改变的代价随着“为讹谬的架构编写的代码数量”添置而添置,因而,也要确认“架构”曾经到位了。
前期准备的工作时间不容易把握,但是前期准备是一定要做的,前期准备的目的是降低风险,提高项目质量。