软件设计与分析方法Machainn

写软件就是要解决用户的需求,我们需要表达和传递下面这些信息:

在“需求分析”阶段,我们要搞清楚

在问题领域中的现实世界里,都有哪些实体,如何抽象出我们真正关心的属性,实体之间的关系是什么,在这个基础上,用户的需求是什么,软件如何解决用户的需求。

在“设计与实现阶段”,我们要搞清楚

软件是怎么解决这些需求的?

在“测试”和“发布”阶段,我们要搞清楚

软件真的解决了这些需求了么

我们先看看两个初中水平的题目:

这两个问题看似不容易,并且毫不相干,但是本书的读者应该都能毫不费力地用类似的方法来解答。我想最常见的思路是:

这个问题实质上是二元一次方程求解:

鸡兔同笼:

x+y=35;4*x+2*y=94.

果冻搬砖:

x+y=1000;4*x–15*y=3525

我们还可以用二维坐标系图示的方法来得出直观的解法:

鸡兔同笼的图示解法

看典型解题者的解题过程,有下面的步骤:

1)理解,抽象:理解问题,过滤掉非核心信息,抽象出关键信息和它们之间的关系。(雉就是野鸡,我没看见过活的野鸡,在这个问题中它等同于家鸡,鸡长啥样?一只鸡有几个头,几只脚,兔子长啥样...鸡头、兔头、鸡脚、兔脚要满足一些关系)

2)找到合适的数学模型:啊,这就是二元一次方程求解。

3)根据模型和解法,按部就班地解决问题:这要依赖于对数学原理(交换律,等价性…)和基本操作的掌握。

分析和设计有许多方法:

11.2图形建模和分析方法

我们要给事物建造出一个“模型”,描述事物、事物的属性、事物之间的关系(静态的)以及各个事物之间的信息传递(动态的)。

下面简要介绍各种方法,详细的介绍和具体的应用可以参照专门的教科书和文献。

11.2.1表达实体和实体之间的关系(EntityRelationshipDiagram,EntityRelationshipModel,MindMap)

思维导图(MindMap)

“一图胜千言”,人们经常用图形来帮助他们了解概念,强化记忆。思维导图是其中的一个例子。思维导图没有严格的语法定义,一般来说是从图形的正中开始写下一个概念,然后按照绘图者所关心的属性扩展,几乎每个人都能马上开始画图。这个看似简单的工具其实很适合团队一起讨论和理解核心概念–例如,我们的主要用户有什么特点、什么需求。

图xxxx思维导图的例子

思维导图形式灵活,适用于很多鼓励探索、发散思维的场合(如头脑风暴会议),但是它的图形元素缺乏严格的语法和语义。

实体关系图(EntityRelationshipDiagram)

如果我们着重于表达现实世界中的实体和它们之间的关系,那么实体关系图ERD是最自然的表达方式。下面是实体关系图的一个例子,表达了大多数读者都比较熟悉的“图书馆借书”的场景:

在我们分析实体之间的关系时,这就是一个理解和抽象的过程,例如,我们可以通过自然语言的帮助把各种元素归类到它们在ERD里适当的类型中。这样的做法也用在了10.3节“功能驱动的设计”中。请看下表:

表:xxxx英语语言中不同的词性和ERD的元素的分类

英语语言中的不同词性

ERD中的类型

普通名词

(表示一类事物,如银行、客户、书籍等)

实体类型

专有名词

(表示一个特定的人或事物)

实体

及物动词(客户取出存款)

关系的类型

不及物动词(利息可以升高或降低)

属性的类型

形容词(这种活期账户是无利息的)

实体的属性

当我们要表示实体之间的静态关系时,ERD是一个合适的工具。

用例图(UseCaseDiagram,UCD)

上一章提到的用例(UseCase)也有图形化的表示。用例图主要有下列的元素:

11.2.2表达数据的流动(DataFlowDiagram)

从下图来看,流过的数据还真不少。我们简要地列出几个例子:

读者可以查询、预定、借出书籍。

新书入库的时候,书的各种属性会被录入到系统内的“图书数据库”,同时内部管理系统能触发流程,让预定某书的读者知道,他关心的书已经到货。

11.2.3表达控制流(FlowChart,FiniteStateMachine)

我们在计算机理论基础课上都学过有限状态自动机(FiniteStateMachine,FSM),在程序设计语言基础课上都学过基本的流程图,这里不再赘述。

11.2.4统一的表达方式(UnifiedModelingLanguage,UML)

这些图形建模方法各有特点,它们使用了不同的几何图形、标注规则、专有词汇和颜色。人们自然会想,能否有一个统一的表达方式?UML就是这样的回答。UML在20世纪90年代伴随面向对象的方法发展,在工业界的应用和反馈中成熟起来,2004年发布的UML2.0是一个相对稳定的版本。

表xxxx各种图示建模方法的大致特点

各种分析建模方法

从结构化数据的角度看

从面向对象的角度看

从控制的角度看

强调静态

ERD

ClassDiagram

强调动态,交互

DFD,UCD,ActivityDiagram

SequenceDiagram

FSM,FlowChart,UMLStateMachine

对于这些图形化的辅助工具的价值,不同的人有不同的看法。

在《CodersatWork》这本书里面,Java架构师,畅销书《EffectiveJava》的作者JoshuaBloch对于“你用过UML设计工具么”的回答是:

“没有。能把设计画成图,让别人理解当然很好。但是说实话我真的记不起来哪些模块应该是圆形,哪些是方形。”

谷歌研究院的院长PeterNorvig被问及同样问题的时候说:

“我从来不喜欢UML类型的工具,如果你不能通过计算机语言表达(UML要表达的东西),那就是这种语言的弱点。“

像任何新技术一样,以UML为代表的图形化分析方法的确解决了不少实际问题,但是也引发了一些误解、误用、狂热和“银弹”的信仰。UML的设计者和推动者之一GradyBooch说到:

11.3其他设计方法

形式化的方法(FormalMethod)

很多软件需求(例如计算机语言的编译器)可以抽象为对符号的运算和变换,很多软件的某些核心功能需要严密地验证,保证没有问题。一些科学家一直在努力,希望用无歧义的、形式化的语言描述我们要解决的问题,然后用严密的数学推理和变换一步一步把软件实现出来,或者证明我们的实现的确完整和正确地解决了问题。在这个领域一个比较成熟和经过实践考验的方法是ViennaDevelopmentMethod(VDM)。

THE END
1.九牛问津:申请流程详解,材料准备与在线提交全步骤材料申请表申请未通过的原因可能包括材料不全、信息错误、与申请要求不匹配等。建议在申请结束后,主动询问审核方反馈,以帮助改善下一次申请。 通过以上内容的介绍,相信您对申请流程的材料准备与在线提交有了更为清晰的了解。谨慎准备,耐心填写,积极沟通,您一定能够提高您的申请成功率,顺利实现目标。https://m.163.com/dy/article/JJ1U4LL205561UPA.html
2.C语言开发的图书管理系统详解4.1 增添新书功能设计原理 4.1.1 新书信息录入流程图解析 新书信息录入是图书管理系统中非常关键的一个环节。它涉及到从图书入库到图书信息在系统内可被检索的整个过程。通过流程图,我们可以清晰地看到增添新书信息的步骤,具体包括图书信息的输入、校验、存储等步骤。 https://blog.csdn.net/weixin_36173034/article/details/143035964
3.图书信息统计分析(精选6篇)外部实体处理数据流数据存储 p1管理员新旧书书单书书单采编入库注销书籍p2注销出库p3读者归、籍书籍阅书借还新用户名单注销用户名单借阅归还借归阅清还单清、单新书清单清单D1书籍基本信息管理员p4编码入库p5注销出库新用本信户基息用户销注信息基本D2读者基本信息(1层数据流程图) 管理员不合格书单新书书单P1.2审核合https://www.360wenmi.com/f/file3xp3m1we.html
4.图书管理系统需求分析报告范文(精选10篇)经过以上详细的用户调查,在现行业务流程和数据分析的基础上,基本可以确定系统设计必须达到的目标。 以下是图书管理系统必须具备的功能: 1.新进图书的登记功能:对于购进的新书,系统必须具备图书信息资料的录入功能。 2.图书的查询修改功能:当图书资料发生变化,如图书丢失或有错误信息输入时,则应能够及时对数据进行修改和https://www.ruiwen.com/baogao/6437442.html
5.图书信息管理系统用例图借书顺序图还书顺序图流程图模板图书信息管理系统用例图展示了系统的主要功能,包括添加图书、删除图书、修改图书信息、查询图书等。借书顺序图描述了用户在图书馆借阅图书的流程,包括选择图书、输入个人信息、确认借阅等步骤。还书顺序图则展示了用户归还图书的流程,包括选择归还图书、输入相关信息、确认归还等步骤。这些图表为开发人员提供了清晰的指导,https://www.processon.com/view/557a4a03e4b0b9f0bdb814fe
6.物业管理系统分析报告8篇(全文)(2)基本数据流程图 4.3工作负荷: 帮助小区的管理人员对于小区的各种信息可以方便的查询、输入,及有条件的查找。 4.4人员:物业管理人员、住户 4.5 设备: 建议使用Windows XP以上的pc机,内存需在2G以上。 4.6局限性:需掌握一些相关操作,对操作手册有点了解,系统更新期短。 5.技术可行性分析 小组成员都有一定的软件https://www.99xueshu.com/w/file6dt48vsi.html
7.图书管理系统流程图20220521232745.pdf图书管理系统流程图.pdf 关闭预览 想预览更多内容,点击免费在线预览全文 免费在线预览全文 图书管理系统 功能需求 经过以上详细的用户调查,在现行业务流程和数据分析的基础上,基本可以 确定系统设计必须达到的目标。 以下是图书管理系统必须具备的功能: 1.新进图书的登记功能:对于购进的新书,系统必须具备图书信息资料的https://max.book118.com/html/2022/0521/8007104122004102.shtm
8.任务书范文10篇4、统一管理,资源共享落实全市信息化建设的统一管理,整合流程、法人等基础数据,逐步建设综合信息查询系统,实现数据共享。 5、提高各单位网上形象,整合改版中国·新密门户网站,集中建设各单位政务外网子网站,实现数据统一管理。 6、推动各单位的内部局域网建设,实现办公自动化的普及工作。 https://www.wendangwuyou.com/fw/131398.html
9.数据库大作业图书管理系统设计1.2 业务需求及处理流程 根据实际情况可以将图书馆管理系统分为四大流程:图书上架流程图、读 者借书流程图、读者还书流程图和读者网上流程图。 ((1)图书上架流程如图)图书上架流程如图 1-1 开始 给图书分类,编号 给图书贴上条形码和带编号的标签 按图书编号规则上架到指定位置 结束 把信息录入数据库 图 1-1 图https://www.mayiwenku.com/p-19279831.html
10.中国图书馆图书出入库流程8篇图书入库是图书馆接收新书并将其纳入馆藏系统的过程。这一流程通常包含以下步骤: 首先,采购与验收。图书馆根据读者需求、学某发某展及馆藏规划,通过正规渠道采购图书。收到图书后,需进行严格的质量检查,确认无误后某方某进入下一步。 随后,编目与分类。专业人员依据《中国图书馆分类法》对图书进行分类,并录入详细https://hsy.chanjet.com/wenku/wkcbdacf2dc1e0.html