2011-11-03 84 views
2

我在我的面前,我打算使用Java来开发一个相当大的项目。我不是Java专业人士,但我已经使用它,并期待更多地了解它。设计面向对象系统/ GUI的

我已经在这个项目开始的工作,但我继续工作我意识到,我一直在看的项目的不同要求,作为一个整体,或者我可以更好的目标设计更有效地实现不同的事情。

对于那些你是建筑师对象常常面向系统,你都发现了什么方法,让您的最终结果(S)工作,更有效地?即:有一个循序渐进的过程,您可以通过相似的兴趣用它来确定像

  1. 抽出要求你的系统的体系结构
  2. 集团要求
  3. 地图的依赖
  4. 等等等等

,你都可以提供,以有效的方式来架构的面向对象系统的任何指针将不胜感激。

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

预先感谢您。

+0

使用测试驱动开发 - http://en.wikipedia.org/wiki/Test-driven_development –

+0

测试驱动开发的集中似乎是为了快速开发周期。虽然我认为这会有所帮助,但从架构的角度来看,这似乎没有太多关于OO架构的说法。 – MoarCodePlz

+0

考虑Griffon。 Swing已经是MVC,你想要在其他方面做些什么,或者?没有一步一步的过程 - 这是一个迭代过程,高度依赖于需求。 –

回答

4

这里是在写下来,我做什么(在某种程度上)对我个人的大型项目非常快刺。 (这可能不完全是你以后什么,但它可能会帮助某些部分可能不相关):

  1. 认为这是关于我想要实现与软件项目和我的动力这样做。仅仅是为了学习语言,技术或概念?是否要尽可能建立一个非常精美的计划?这是否让人印象深刻?是因为我必须还是其手段才能结束?这是为了培养我的技能吗?纯粹是为了好玩吗?
  2. 确保我已经得到的主要特点一个明确的想法,应该有(“此版本的”是我一直给自己很大的线)
  3. 写出许多要求我可以直到他们不那么容易(我在家里运行的wiki上这样做)。它不一定是一大堆。我期待着我有80%的真正重要的感觉。
  4. 如果我不知道这个阶段,工作某种想法什么过程和工具(方法论)我打算使用。什么语言,什么框架等可能是相关的。如果我不知道,我会发现。
  5. 重复上述,直到我有足够的想法来构建我想要构建的东西,我将如何去解决它并使用它。
  6. 创建项目在Visual Paradigm UML。
  7. 开始摆弄周围开发用例问题域分析UML模型
  8. 创建一些静态的问题域图。只是基本的类图我在这里使用UML,但它与软件无关。
  9. 创建一些动态问题域图。只是基本的顺序图。我在这里使用UML,但它与软件无关。
  10. 通过问题域重复。我通常发现开发问题域模型在稳定之前不需要很长时间。显然这将随着范围和复杂性的增加而改变。
  11. 创建解决方案域分析/体系结构模型和开发解决方案的用例
  12. 如果有任何UI设计要完成,我会开始考虑它并wireframing这里旁边的用例。
  13. 创建一些静态解域分析图,我尝试了一些静态分析模型转换成的东西,看起来更像是软件,而不考虑它如何可能实现的结构。我从高处开始工作,试图充实建筑。在这一点上,我将开始寻找明显的结构和地点来潜在地应用模式。
  14. 创建一些动态解决方案域分析图其中我尝试通过查看当我实际尝试并浏览系统时是否缺少任何内容来充实静态分析模型。在这里仍然留意模式。
  15. 创建一些静态解决方案域设计图其中我尝试将解决方案分析模型转换为我想要实现的实际类和组件。我从高处开始工作。模式和架构必须开始在这里结晶。
  16. 创建一些动态解决方案域图我尝试通过查看是否缺少任何类或功能来充实静态模型。我发现现阶段很多重要的问题都得到了解答。
  17. 迭代所有步骤对上一次迭代点和细化模型,直到我已经得到的东西,我很高兴开始实施。
  18. 设置的构建environemnt(如有必要)
  19. 在IDE我将使用和设置版本控制创建一个项目。
  20. 树立构建系统
  21. 根据解决方案设计实施
  22. 更新各种UML模型和图表,因为我遇到无法预料的问题实施设计。
  23. 执行无论手册验证我需要(通常只是临时系统测试说服自己看看我是否满足我的要求)。
  24. 迭代最后三个步骤,直到系统是有效的,我很乐意将我的姓名首字母缩写成结果。
  25. 想想下一个功能要添加和迭代大约从步骤7!

我想总结一下,我很大程度上依赖于多层次的UML建模。没有替代布局类和追踪与实体的交互,我可以快速拖动和连接。我发现问题和解决方案领域的分离,分析和设计模型通常非常有用和解放。

我希望这是有人感兴趣的。