2009-08-18 82 views
2

我刚刚偶然发现为我公司的一个客户(SMB)分析项目的工作。我是一名.Net开发人员(5年),在分析软件(从学校UML)方面经验不多。学习如何分析项目

我们刚刚完成了与用户交谈的两周时间,并且获得了一个很好的需求清单。显然,我们已经过滤掉了最重要的要求,并且必须将一堆标记为“超出范围”。

我刚开始做一些usecases,只是觉得我没有必要的专门知识,使这整个项目好下场。我想知道是否有人从开发人员跳到分析师身上,以及与之相关的事情。分析一个项目的一些好资源也很好。

谢谢。

+0

工具不是问题。如果我是你,我会修改出了问题的一部分。有很多的问题在这里对UML工具,这样你就有可能得到关闭的欺骗。 – 2009-08-18 10:48:37

+0

@尼尔:谢谢你指出,我把它编辑出来 – Peter 2009-08-18 10:50:25

回答

3

没有人似乎正在采取这种做法,所以我会。

我得先给你一些不受欢迎的消息 - 是一个很好的分析师就像是一个很好的开发者 - 不是每个人都可以做到这一点。我知道很多人都擅长编写复杂的Windows应用程序代码,这些代码无法发现用户想要的内容,缩小这些要求并设计出一个设计。所以,如果你觉得这很难,你不要觉得不舒服。

这使我想到了第二点 - 您不能将分析和 设计分开,特别是对于现代OO系统,这两者是连续性的一部分。所以你必须为此做好准备。

我的第三点是不要太拘泥于UML。这是向别人解释你的想法的一个好工具(假如他们也知道UML),但是对于做实际设计来说是一个相当烂的工具。例如,用例可以很容易地保存在文本文件中,而不像UML使用的那些棒子图。我使用简单的程序框图来显示对象,组件和关系,而不是使用UML,通常在纸上和白板上绘制草图。

我的最后一点是,& d不是一个人的活动。让别人 参与,你可以反弹的想法。如果你能让一位经验丰富的分析师/设计师帮你一天左右,那就更好。

希望是有用的,而不是太消极!

+0

可能更有用,但不是负面的。 :) – 2009-08-18 12:10:48

+0

感谢您的描述性答案。我知道我还没有准备好改变这个职业,因为我仍然很喜欢编程方式!当我遇到困难时,我确实让其他人参与反弹,所以我最终可能会到达那里。无论如何,这对我来说将是一次很好的学习经历,所以你有一些我可以阅读的资源/书籍来获取最重要的东西吗? – Peter 2009-08-25 13:57:44

2

为了减轻尼尔的坏消息,我会说,你问自己这些问题在所有的事实可能是一个好兆头。

这可能是值得考虑的敏捷方法的一些变种,如果你有你的客户(和你的管理)的良好关系。这可能有助于缓解试图看到未来太远的一些风险。

记住,“客户不仅实现他想要什么,当你给他什么,他提出要” :)

当分析 应变,避免思维像一个开发者,当你分析客户的要求,以及当你想出新系统对他的看法时。技术上的“考虑”(“这将更容易编码”,“我可以使用这种新技术X”)真正能够设计出有用和可用的东西。

当编码不要惊慌。将工作分成可管理的块。不是每个人都会同意这一点,但如果你有一个无法控制块,你不能让你的头轮发现自己,just start coding - 即使你打通了一半,不得不重新开始,你会进步比你更只是坐在那里等待发生的事情。

要小心,不要忽视这样一个“目标” - 经常检查你是不是在不知不觉中改写的规格,当您去。

+0

感谢您对敏捷开发的关注。在项目的时间轴中会有某种时间框架,因为它由处理范围不同方面的几个工具组成。问题是我可能既是项目管理者又是开发人员。 :|我很乐意做一些正确的软件分析...... – Peter 2009-08-25 14:03:20

+0

那么项目经理和开发人员之间不应该有太多的分歧 - 尽管项目经理可能仍然对开发人员无法保持估计感到失望: ) – Benjol 2009-08-26 05:40:17

+0

这些是你已经添加到答案中的一些非常好的提示。在分析时我确实感到自己像开发人员一样思考:)。事实上,我认为在分析完这件事后,一半的代码已经写在我的脑海里了。 – Peter 2009-08-28 06:40:36

1

UML是一种通信工具,所以你应该用它来引起与用户的需求。

你不应该用微小的细节,没有人会理解你的过载图。至于我,我避免使用像Rational Rose等人那样的怪胎丑陋图表,我用图形工具自己绘制它们,否则你可以使用像yUML.me(一种免费的在线UML工具)那样的乐趣,你的用户应该喜欢它。

我甚至developped对yUML DSL的顶部业务分析师用户友好的语言,使用户可以用简单的英语直接表达,并把它转化为UML像

Blogger is a User 
    Admin is a Blogger 
    Author is a Blogger 
    Subscriber is a User 

    Admin Manage Site 
    Manage Site Include Manage Users 
    Manage Site Include Manage Themes 
    Manage Site Include Manage Plugins 

源代码可以在这里找到: http://reboltutorial.com/blog/easy-yuml-dialect-for-mere-mortals/

的关键是让事情变得简单。许多人过分强调图表,这就是为什么UML有一些不好的声誉。

+0

说实话,除了cartoony box之外,我没有真正看到yUML图和使用任何体面的UML建模工具(例如Visual Paradigm)创建的图之间的区别。我没有真正想过向用户解释如何使用图表工作......文本文档中的纯英文应该就足够了。 – Peter 2009-08-28 06:35:11

+0

在我看来,UML就像你说的一个沟通工具,但沟通主要在分析师和开发者之间。请纠正你的想法。 – Peter 2009-08-28 06:36:22

+1

@Peter,我会去模拟(如http://www.balsamiq.com/products/mockups)与客户沟通。你用屏幕截图坐下来,选择他们的一个故事,看看他们是否可以制定出如何去做。 – Benjol 2009-08-28 08:46:50

1

我发表的几个职位与得到新鲜的设计师有了一个良好的开端的意图。所有帖子都可以在这里找到:http://aviadezra.blogspot.com/search/label/UML

在大多数情况下,您从使用部署图对系统的物理体系结构进行建模开始,“建模系统物理体系结构”首先显示简单使用部署图,其中我们只展示节点及其相互关系,并通过包含在节点中运行的组件和应用程序来完成该图片。

在下一阶段我们将描述使用组件图的系统的逻辑架构,“建模系统逻辑架构”这篇文章首先展示了逻辑组件的简单布线,并通过包含由组件并说明它们连接在一起的方式。

如果您在设计并行应用程序时,首先使用活动图显示并行工作流,然后使用顺序图和类图完成图片,但“建模并行应用程序”将引导您完成整个过程。

当进入详细设计阶段时,您使用类图以不同方式相互关联的对象(类)的类型来描述问题域,帖子'关联,聚合和合成'解释了3个变体类图中使用的关联连接器。

接下来,使用序列图来显示不同的对象如何互相影响;与序列图的一个常见问题是如何显示的条件和迭代,这篇文章的互动片段“介绍了如何相互作用片段运营商(Alt键,选项,PAR,循环和区域)可用于对这一问题。