我发现我的一个弱点就是在实际项目中应用我所知道的理论。其中一个理论是应用程序设计。在开始编写代码之前,我从未正式设计过应用程序。我正在为客户开发一个简单的小额贷款申请,而我曾经想要正确地做事。因此,我试图在编码之前设计系统。我正在学习的众多网站之一表明,其中一个问题是以下3个问题,并从那里开始工作;
- 系统的输入是什么?
- 系统的流程是什么?
- 系统的输出是什么?
醇>
第一和第三个问题对我来说相当容易回答。问题是第二个问题。并不是说我不知道该系统应该做什么,但我认为我并没有充分说明它们应该如此。以下是我所说的流程,看看是否合适,。
- 注册组和个人
- 仅向个人或个人分组的贷款
- 创建贷款还款计划
- 计算贷款分配点的每日还款
- 跟踪贷款人员的每日收款
- 根据已完成付款的群组和新群组每周提供贷款支付预测
醇>
在说明系统的高级进程时,您会使用这样的措辞吗?我知道我必须多次通过以打破个别过程。
答案 0 :(得分:1)
看起来你有一个良好的开端。您想要列出应用程序需要执行的所有操作。然后你可能想要将那些从必须品到好吃的那种,那么随着截止日期的临近,你可以放弃那些不值得做的功能。
答案 1 :(得分:1)
要非常小心做某事只是因为如果你不知道为什么这是“良好的做法”(而且我个人经常需要在做某事之前“做”某事(并且失败)。
系统的流程是什么?
我们为什么要问这个?这样做的目的是开始识别系统中的角色和职责 - 这是开始面向对象设计的第一个高级别的传递。
您正在寻找的是: - 可能的(高级)包 - 这些包中可能的类
尝试使用白板上的伪代码将其映射出来。例如,注册用户显然将在一个单独的包中预测贷款分散。
这个想法是,当一个新的要求出现时(比如业务需要在某个地方添加一套新的规则),应该相当清楚这个责任在哪里,因此在哪里放置它,它会对它产生影响。你的系统等。
与流程相辅相成的另一部分是数据和结构。制定业务领域的Domain Model - 这基本上就是您在商业逻辑中实施的内容。
域建模:
答案 2 :(得分:0)
如果您不特别局限于面向对象的设计方法,那么我建议您研究数据流图。
首先,您可以通过详细的图示表示来替换重要的措辞。其次,只需要学习一些符号。第三,该方案允许您“划分”到细节,以提供该过程的详细设计。第四,图表的设计使得(几乎)任何人都能理解他们的表现形式(至少达到2级)。
以下是一些起点。
http://en.wikipedia.org/wiki/Data_flow_diagram
http://www.smartdraw.com/resources/tutorials/data-flow-diagrams/