识别课程的技巧及其责任

时间:2013-03-21 15:24:06

标签: oop architecture software-design

我正在寻找可以帮助我识别软件系统(项目)中的类(可能还有他们的职责)的方法(技术)。我知道有很多软件设计书籍,但我正在寻找如何知道这应该是系统中的一个类,这是它的职责。

我希望提高我在如何为软件项目列出课程方面的技能。 在阅读规范和要求文档后,是否有技术可以帮助我了解课程列表?

请不要寻找设计模式书。我正在寻找可以用来为软件项目提供课程的技术。

我欢迎您的所有贡献,书籍建议,文章指南,教程等。

我用谷歌搜索但找不到任何有意义的东西。

感谢您的帮助。

加成::

另一个同样重要的领域是如何确定类之间的协作。如何确定哪一个班级需要另一个班级。

2 个答案:

答案 0 :(得分:4)

通常名词最好转移到需要的类中,动词是方法,形容词是注释。

.ie汽车启动发动机

分类:汽车 方法:startEngine()

答案 1 :(得分:1)

  

在阅读规范和要求文件后,是否有技术可以帮助我了解课程列表

没有。这非常天真。

每个软件解决方案都是具有两个目的的类混合:满足“问题域”要求并满足“派生”要求。从松散的角度来说,派生的需求是您需要执行的所有技术操作的结果,例如保存到数据库。这两者必须满足/相互作用是我们设计模式的一个重要原因。

技巧(又称技术)适用于您的业务需求,并将表达这些需求的类作为属性和方法。远离计算机的东西。如果您需要“保存个人数据”,那很好。但不要担心如何你会这样做。设计以商业术语和概念表达您的“商业模式”。

一个好的起点是@FridayChlis说,名词==类,动作动词==方法。我会添加形容词(通常)==属性。

通过设计这些类如何交互的场景来优化您的设计:“Person转到BankWithdraws Money”。通过这种方式,您可以看到您的课程如何相互作用,您将发现设计和要求中的缺陷和缺点。根据需要经常重复此过程,直到满足所有业务要求为止。

研究UML diagramming。这是一套用于软件系统设计(和文档!)的标准化图表。警告。不要试图使用所有,甚至大多数可用的图表。