设计面向对象的系统/ GUI

时间:2011-11-03 00:56:48

标签: java oop architecture

我面前有一个非常大的项目,我打算用Java开发。我不是Java的专业人士,但我之前使用过它,并期待更多地了解它。

我已经开始研究这个项目,但是在我继续工作的过程中,我意识到我总是忽略了整个项目的不同要求,或者通过更好的对象设计可以更有效地实现这些要求。

对于那些经常构建面向对象系统的人来说,您发现了哪些方法可以使您的最终结果更有效地工作?即:是否有一个分步过程用于确定系统的体系结构,如

  1. 提出要求
  2. 按类似兴趣分组的要求
  3. 映射依赖关系
  4. 等等
  5. 您可以提供有关构建面向对象系统的有效方法的所有指针,我们将不胜感激。

    注意 - 这是一个基于gui的应用程序。因此我计划采用MVC方法(模型是MySQL数据库,控制器是GUI类的代码隐藏类,视图是GUI类)。如果有针对GUI构建面向对象系统的特定技术,请将它们留在这里。

    提前谢谢。

1 个答案:

答案 0 :(得分:4)

在我自己的个人大小的项目中写下我的所作所为(非常快)。 (这可能不是你所追求的,但它可能会有所帮助。某些部分可能不相关):

  1. 想想我是什么,我正在努力实现软件项目和我的动力来做到这一点。是学习语言,技术还是概念?我是否可以建立一个非常完美的程序?是给别人留下深刻印象吗?是因为我必须或它的手段结束?是为了建立我的技能吗?这纯粹是为了好玩吗?
  2. 确保我已经清楚地知道它应该具有的主要功能("对于这个版本"这是我一直在给自己的伟大路线)
  3. 尽可能多地写出 要求,直到他们不那么容易(我在家里经营的wiki上这样做)。它不一定要成为一大堆。我希望我能感受到80%的真正重要的事情。
  4. 如果我不知道在这个阶段,解决某种关于流程和工具(方法)的想法我会去使用。什么语言,什么框架等可能是相关的。如果我不知道,我会发现。
  5. 迭代上述,直到我对我想要构建的内容有充分的了解,我将如何去实现它并使用它。
  6. Visual Paradigm 中为UML创建项目。
  7. 问题域分析UML模型中开始捣乱开发用例
  8. 创建一些静态问题域图。我只是在这里使用UML的基本类图,但它与软件无关。
  9. 创建一些动态问题域图。只是基本的序列图。我在这里使用UML,但它与软件无关。
  10. 问题域进行迭代。我经常发现开发问题领域模型在它非常稳定之前不会花很长时间。显然,这将随着范围和复杂性的增加而改变。
  11. 创建解决方案域分析/架构模型,为解决方案开发用例
  12. 如果有任何 UI设计要完成,我会在这里与用例一起开始考虑它和线框图
  13. 创建一些静态解决方案域分析图,其中我尝试将一些静态分析模型转换为更像软件结构的内容,而不考虑它是如何实现的可能会实施。我从高处开始工作,试图充实建筑。在这一点上,我将开始寻找可能应用模式的明显结构和位置。
  14. 创建一些动态解决方案域分析图,我尝试通过查看在实际尝试和演练时是否遗漏任何内容来充实静态分析模型系统。仍然留意这里的模式。
  15. 创建一些静态解决方案域设计图,我尝试将解决方案分析模型转换为我想要实现的实际类和组件。我从高处开始工作。模式和架构必须在这里开始结晶。
  16. 创建一些动态解决方案域图,我试图通过查看我是否缺少任何类或功能来充实静态模型。我发现现阶段有很多重要的问题得到解答。
  17. 迭代上一个迭代点的所有步骤并优化模型,直到我得到了一些我很乐意开始实施的内容。
  18. 设置构建环境(如有必要)
  19. 在IDE中创建项目我将使用设置版本控制
  20. 建立构建系统
  21. 根据解决方案设计实施
  22. 更新各种 UML模型和图表,因为我遇到了实现设计的无法预料的问题。
  23. 执行我需要的任何手动验证(通常只是临时系统测试,以说服自己,看看我是否满足了我的要求)。
  24. 迭代最后三个步骤,直到系统有效,并且我很乐意在结果上加上我的首字母。
  25. 从第7步开始,想一想下一个功能添加迭代
  26. 我想总结一下,我非常依赖多层次的UML建模。对于我可以快速拖动和连接的实体进行布局和跟踪交互,没有任何替代品。我发现问题和解决方案领域的分离,以及分析和设计模型通常非常有用和解放。

    我希望有人对此感兴趣。