你如何处理与分析和设计阶段,当您计划使用函数式编程语言如Haskell中开发一个系统?
我的背景是势在必行/面向对象的编程语言,因此,我习惯用案例分析和使用UML来记录程序的设计。 但问题是,UML是本来就与做软件的面向对象的方式。
我很好奇什么是开发文档和定义软件设计为将要使用函数式编程开发系统的最好方式。
- 你仍然可以使用用例分析或者是结构化分析和设计的呢?
- 如何软件架构师定义系统的高层次的设计,使开发人员理解吗?
- 你怎么证明你的客户或新的开发时,你应该提出的解决方案的设计?
- 你怎么文档的整个事情的图片,而无需先写这一切?
- 有什么比得上UML在功能的世界?
我不是专业的,但我会尽我的手在回答一些问题。
你仍然可以使用用例分析[?]
我不明白为什么不能。 收集使用情况,并设计出你想公开满足用例的模块API。 确定用例是否要求一个类型类,或者只是简单的功能。
或者是结构化分析和设计的呢?
我不熟悉这种方法,但是从我从wiki文章收集,它看起来像它会工作得很好。
如何软件架构师定义系统的高层次的设计,使开发人员理解吗?
我会认为他们指定模块和模块的每个部分应该有类型。 再次,我不是专业的,所以我真的不知道什么是在实践中完成。
你怎么证明你的客户或新的开发时,你应该提出的解决方案的设计?
你告诉客户端东西,这将使他们有意义。 如果你的客户是足够精明,只显示他们的类型签名,并解释了重要的功能。 如果他们不那么精明,然后绘制漂亮的图片,或任何你必须做的。 OOP使得比较与现实对象,而FP使得与......好功能比较。 说明一个函数新手的典型方法是将它描绘为你把某些事情的,然后其他的东西出来的机器。
你怎么文档的整个事情的图片,而无需先写这一切?
照片”? 刚刚定义的重要功能类型签名,然后离开执行情况undefined
。 有一个包就在某个地方,让你更好的存根会提醒你在编译的时候这部分你仍然需要执行。
有什么可比的功能性世界UML?
嗯......不是吗?
让我们来看看这种说法:
UML是本来就与做软件的面向对象的方式。
首先,这是不是真的。 您仍然可以模型交互,用例,状态和数据模型,UML无论何种实施是要。
所有第二,Haskell的类型类是面向对象的方式:他们提供的参数的类型(允许使用中存在的该类型的数据不同的功能实现)态分派。
所以,是的,如果你真的想使用UML继续,继续。