我是计算机科学专业的最后一年,作为我学士学位的一部分,我正在进行微阵列DNA表达数据的数据挖掘项目。我将不得不开发一些算法,如贝叶斯网络,在我的数据集上运行,以找出每个变量(基因)如何相互影响。
作为我的项目提案的一部分,我必须讨论我将用于开发软件的方法。根据我在学校和额外阅读中学到的内容,我发现增量开发模型似乎是一个好主意。我会运行2到3次计划,设计,实施,直到我获得软件的全部功能。能有比我更多知识的人请告诉我这听起来是个好主意。
我之所以不能100%确定我会使用哪种方法,是因为我没有一个团队来处理这个软件,我没有一个有要求的客户,我在这方面非常有限我有3个其他模块在项目上工作的时间。我读过的所有方法似乎都适用于开发人员团队的大型软件项目。如果你只是一个人并主要关注3-4个算法的工作而不是专注于获得广泛的功能,你会怎么做。
我还在考虑使用UML来更好地了解我希望软件做什么,并使用像面向对象方法论的精简版。
我的猜测是,我必须在一个非常基础的水平上使用超过1种方法的部分,但我不能选择。
我很困惑并迷失在这个主题上,所以非常感谢任何帮助。
谢谢,
答案 0 :(得分:2)
对于这些类型的工作,我建议不要过多关注方法,因为毕竟重要的是算法。但是,为了对你的困境做出回应,我建议使用XP(极限编程)。为什么呢?
只需快速搜索Google for XP方法,您就会得到一堆有用的结果。 ARUP(敏捷RUP)也值得一看。
我希望我能帮助你。
答案 1 :(得分:2)
答案 2 :(得分:1)
在单独工作时遵循一种方法需要很多的纪律,确保你选择一个不是劳动密集型的,或者你永远不会辜负它。
如果我现在回到学校,我现在知道的话,我可能会选择测试驱动开发。单元测试非常适合测试算法,并且会为您提供一系列测试,您可以使用这些测试来证明您确实遵循了方法。
答案 3 :(得分:0)
您在计划,设计,代码和测试的多次迭代中完成项目的想法很好,但是对于小型项目,有时很难抵制一次性完成所有操作的冲动。
如果你被带走并在一两次迭代中完成项目,请记下你做事的顺序(理想情况下使用版本控制系统),这样你至少可以捏造你的文档使它看起来像你使用了几次迭代。当然,并不是说我赞同这样的方法; - )