当我们获得需求的时候,需要对需求进行拆分。
那么,怎么评价拆分的好不好? 完备不完备?
不同的功能抽象将导致不同的结果!但应该是等价的
比如北大软件工程课程,第10.4讲了一个图书馆的案例。需要建设的图书馆系统,有以下功能
老师首先对功能进行抽象。
可以抽象成1个类,也可以抽象成2大类,也可以抽象成3大类。
课上将其抽象成两个“大块”
我觉得这个抽象过程是非常重要的,是将纯粹的需求,进行一部抽象化。
这个案例中,分两大块的角度是,从图书的管理角度(借还书),从图书的查询角度(查询)
顶层数据流:
将顶层的数据流中的某个复杂部分,进一步进行分解
其中:保持输入与输出的一致;
引入三个文件,对顶层的DFD进行细化(存在数据库设计的问题)
不要过于复杂,过于细小, 7+2
一般建议最多3层
查询要求=[读者情况| 图书情况| 图书痛惜表]
读者情况= +++
。。
图书管理要求 = 【入库单 | 借书单| 还书单】
查询结果=读者情况 | 图书情况
数据存储条目:
借书文件={借书单}
目录文件={}
XXX系统需求规规格说明书
结构化方法
2, 概述
5, 灵活性
6, 属性