'未来某个时候有软件产品的计划,我想知道设计软件产品的最佳方法。架构(即组件之间的组件和关系)首先是GUI?
感谢。
答案 0 :(得分:11)
有一段时间我认为正确的答案是 architecture 。
真实故事:大约四年前,我向执行团队介绍了软件项目的架构,作为我们季度预算审核流程的一部分。该项目没有得到资助。后来,我问为什么;其中一位高管告诉我,没有人知道我在说什么,也不清楚他们做了多少工作,也没有留下多少工作 - 太不确定他们总结道。
大约一年后,我在季度预算审核中提供了另一套项目摘要。学到了宝贵的一课,这一次,对于我小组最重要的早期项目,我展示了一个GUI - 仅仅是主仪表板的线框,其中只有少数几个按钮实际上是可点击的,而那些只是造成的要加载的其他线框。我们为每个主要子目录执行了此操作。两天(和晚上)工作,我们的工作做得很好 - 显然我能够向管理团队展示应用程序的确切功能。
结果:没有资助。我问其中一位高管为什么 - 他的回答:
你的演示中的- 顺便说一句,我们认为你完成了它
当然这里有一个教训;我只是不知道它是什么。
答案 1 :(得分:3)
我说没有区别。如果您的团队中有熟练的架构师 - 同时开发两者都不会有任何问题。如果您的建筑师缺乏经验 - 无论哪种方式都会有很多麻烦。
添加了: 鉴于您的评论,以下是您的选择:
1)如果你的项目是高度面向功能的(例如一些自助服务系统,可能是一些bugtracker引擎等, - 任何具有复杂功能的东西) - 你应该首先使用架构。否则,您会发现您的复杂架构不适合您所制作的GUI,导致GUI和架构更改以及将来出现的许多问题。
2)如果您的项目旨在高度用户友好,可以说像facebook,last.fm甚至stackoverflow.com这样的东西 - 您应该首先使用GUI,然后再使用架构。通过这种方式,您将确保所有用户友好性保持不变,因为建筑物的额外麻烦(建筑师需要根据GUI设计架构)的成本设计。
答案 2 :(得分:2)
对GUI进行草图绘制或原型设计并与您的团队(或客户项目的客户)进行讨论可以澄清背后的域模型,并揭示许多本来会被忽略的业务规则和要求。
以后是否进行最终的GUI设计仍然是开放的,但在设计架构之前根本没有考虑接口,恕我直言有些冒险。
答案 3 :(得分:2)
我认为这取决于您的软件类型。通常我想首先确认最困难的部分。如果您的软件GUI(和交互?)将是复杂和重要的,我建议首先设计GUI(和交互)。 (例如,您正在设计绘画工具或文本编辑工具)
答案 4 :(得分:0)
GUI可以帮助架构师捕获并理解业务需求,尤其是那些可能未被用户明确捕获的需求文档的一部分。
举一个例子:在我们的一个应用程序要求中,用户提到将数据输入字段集合在一起 - 基于某些业务逻辑。 因为在进行GUI时,决定不应该同时显示组,并且选项卡页面类型的结构是首选显示,可用性问题,例如应用程序在跨选项卡移动时保留的数据,技术问题如如果所有选项卡一次加载或按需加载等对于架构师来说是显而易见的。 澄清这些问题的用户界面导致架构必须适应各种方法来满足这些要求。
我确实认为,如果可以选择,首先设计用户界面并将其作为参考来进行体系结构是一个更好的选择。