制作应用程序的开发生命周期?

时间:2010-04-26 21:22:54

标签: desktop-application application-lifecycle

我有一个想法,我想进入一个应用程序(我有一个C / C ++,C#和Java编程背景,所以我将在QT Creator中开发以进行交叉编译)。所以现在我问你高级开发人员,接下来我该怎么办?我知道所有好的节目都来自一个想法。那我该怎么办? UI原型?然后开发代码?是否有一个应用程序开发的圈子?
我不认为这个问题是主观的或具有争议的

3 个答案:

答案 0 :(得分:1)

好的,从经验丰富的开发人员的角度来看,我工作过的大多数公司都遵循至少一种过程驱动的方法。我见过的开源项目可以有很大的不同,从ad-hoc到极端流程驱动。总的来说,至少在企业界,即使是在小型项目上,类似以下方法的东西对我和我合作过的团队也很有效。当然,使用不同的范例有很多变化,但总的来说,这些是我在大多数范例中看到的步骤类型(我确信我已经离开了一些实质性的步骤):

  • 首先,要好好处理您的要求。如果你的用户不确定自己到底想要什么,那么@Michael Herold开始使用UI原型的方法肯定是一个很好的建议。您可能还想使用某种类型的迭代方法,例如Agile/Scrum
  • 接下来,定义某种类型的高级架构,该架构应足够灵活以实现您的目标。您的应用程序是客户端服务器吗?它需要一个数据库吗?多线程?多个过程?如果其中任何一个是“是”,那么这些线程/进程将如何通信。在回答上述问题后绘制一个方框图。
  • 如果您的项目是中等大小或更大,您可能还想绘制一些类或UML类型的图表。想想你需要什么样的课程以及他们的关系。
  • 如果您想尝试Test Driven Development方法,现在可能是将需求转变为单元测试的好时机。
  • 一旦你对想要解决的问题有了一个很好的了解,以及你将如何解决它,你终于可以开始编写解决方案。

有些方法是迭代的,例如Incremental DevelopmentAgile/Scrum。在Agile / Scrum中,您的迭代将非常快速,就像每隔几周经历一个完整的循环一样。在增量开发中,周期通常更长:数月甚至数年。在Scrum和增量开发中,要记住的主要事情是,在每次迭代结束时,您希望拥有一个可用的软件(即使它没有做太多)。这有助于保持真实或潜在客户,甚至开发人员的兴趣。

无论您的方法是什么,通过查看UI原型或通过Usability Testing,您可以更早地和更频繁地让您的用户(或潜在用户)参与进来。

答案 1 :(得分:0)

我想说这取决于应用程序的主要部分。大多数工作是否来自设计用户界面(即“令人惊叹的因素”来自哪里?)或者主要是数据操作还是其他一些“繁重的”(即这些是我的结果)简单的用户界面)?

如果该应用程序旨在让人们“惊叹”,那么对用户界面进行原型设计并获得对它的看法就会有很长的路要走。这可以在开始代码之前完成,然后可以在收到反馈时应用增量更新。当您要求反馈时,您可以开始编写应用程序的其余部分,因此每个部分都在移动而无需等待其中一个。

好消息是,如果做得正确,这两件事应完全(或几乎完全)解耦并相互独立。

最后一点:通过原型设计您的用户界面,它可能有助于巩固您的想法,这将简化设计用户界面背后的代码。不同的方法适用于不同的人,但根据我的经验,对界面进行原型设计非常有用。

答案 2 :(得分:0)

坚持下去。只是陷入困境。

尝试设计灵活的东西,这样当你意识到自己走错了路时,就可以轻松地重构事物。保持UI,业务逻辑和数据层分离,以便在您准确了解其必须执行的操作后,可以轻松地重新编写UI等。

总是很难知道从哪里开始,所以我能给出的最好的建议是只考虑一下,选择一下,然后开始工作。期望你必须重构甚至重写一些 - 不要害怕这一点,这是正常的。但你可以坐在那里永远循环,试图决定先做哪个位,从来没有开始。只要你有一个整体计划,以便你实现的所有位都在最后连贯地融合在一起,那么你首先要做的是什么并不重要。

(我并不是建议你在没有首先设计任何东西的情况下制造大量混乱。只是开发一个新应用程序最困难的部分之一是决定从哪里开始。在某些时候,你只是必须冒险并开始游泳)