【问题标题】:Techniques For Identifying Classes And Their Responsibilites [closed]识别类及其职责的技术[关闭]
【发布时间】:2013-03-11 04:51:26
【问题描述】:

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

我想提高我在为软件项目制定课程列表方面的技能。 阅读规范和需求文档后,是否有技巧可以帮助我了解类列表?

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

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

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

感谢您的帮助。

加法::

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

【问题讨论】:

  • 你必须首先祈祷他们有一个适当的命名约定,程序员为每个人找到了完美的名字。
  • 谢谢你们的回答和cmets

标签: oop architecture software-design


【解决方案1】:

有没有什么技巧可以帮助我在阅读规范和需求文档后了解类列表?

没有。太天真了。

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

对您而言,诀窍(也称为技术)是专注于您的业务需求并塑造将这些需求表达为属性和方法的类。远离电脑的东西。如果您需要“保存人员数据”,那很好。但是不要担心如何你会这样做。设计以商业术语和概念表达您的“商业模式”。

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

通过设计这些类如何交互的场景来优化您的设计,即:“Person 转到BankWithdraws Money”。通过这种方式,您可以看到类如何交互,并且会发现设计和需求中的缺陷和不足。根据需要经常重复该过程,直到满足所有业务需求。

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

【讨论】:

    【解决方案2】:

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

    .ie 汽车启动引擎

    类别:汽车 方法:startEngine()

    【讨论】:

    • 其实我认为你的意思是动词应该是方法
    猜你喜欢
    • 1970-01-01
    • 2019-04-17
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-30
    相关资源
    最近更新 更多