.net 需要一些外部建议来设计这个类图!

.net 需要一些外部建议来设计这个类图!,.net,architecture,domain-driven-design,class-design,.net,Architecture,Domain Driven Design,Class Design,摘要 我必须使用FORTRAN编写的应用程序现代化,简言之,它负责多年的人口预测。因此,我有一个初始总体作为输入。这一初始人口按年龄进行分类,也就是说,每年年龄的所有数字之和代表了今年的总人口 让我们看几秒钟数据 Year: 2009 Age 0: 43786.0000 Age 1: 42997.0000 Age 2: 42656.0000 ... Age 99: 2439.0000 然后,我们必须根据与上述初始人口相同的方式设定的特定死亡率来预测2010年,只是其中包括死亡率,而不是每一岁的

摘要

我必须使用FORTRAN编写的应用程序现代化,简言之,它负责多年的人口预测。因此,我有一个初始总体作为输入。这一初始人口按年龄进行分类,也就是说,每年年龄的所有数字之和代表了今年的总人口

让我们看几秒钟数据

Year: 2009
Age 0: 43786.0000
Age 1: 42997.0000
Age 2: 42656.0000
...
Age 99: 2439.0000
然后,我们必须根据与上述初始人口相同的方式设定的特定死亡率来预测2010年,只是其中包括死亡率,而不是每一岁的总死亡率

Year: 2009
Age 0: 0.000213345
Age 1: 0.000212543
Age 2: 0.000201938
...
Age 99: 0.04824421
Age 106: 0.50000000
其思想是将这些实体分组到类下。我已经设计了一个,我想知道它是否可以在某些方面得到改进

目标

简化设计并在对象类中嵌入统计计算,以便在需要时更易于测试和模拟

实际类图

我觉得可以改进。为了便于阅读,以下是图表中使用的法语术语索引:

TauxFeconditeAnnuel -> Annual Fecondity Rate
TauxMortaliteAnnuelle -> Annual Death Rate
PopulationAnnuelle -> Annual Population
SoldeMigratoireAnnuel -> Annual Net Migration
StatistiqueAnnuelle -> Annual Statistic
StatistiqueAnnuelleParSexe -> Annuel Statistic per Sex
我的思考是关于是否在PopulationAnnuelle类中包含Death Rate类实例。存在预测的最初人口年和未来96年的死亡率。此外,一个年度人口必须有其死亡率,而一个年度人口并不一定要存在,我才有今年的死亡率

假设我有2009年的初始人口,我还没有预测2010年、2011年、2012年等的人口,直到2105年。然而,我有这些年的死亡率预测,人口增长是基于这些死亡率来确定哪些人口仍然活着,以及我们有多少人死亡,等等

我想把PopulationAnnuelle类作为我的模型的基类,尽管我觉得StatistiqueAnnuelle更适合这个工作,然后让PopulationAnnuelle继承它

问题

  • 你对我关心的问题有什么看法
  • 基于我希望实现的目标,最好的设计是什么
  • 我是否应该使用StatistiqueAnnuelle作为基类/接口,并使其他如TauxMortalite、PopulationAnnuelle等从中派生,有点像现在设计的那样
  • 任何可以接受的想法都将由我亲自投票决定。最准确、最有帮助的答案将被接受为我问题的答案

    感谢您的帮助和支持!=)

    您是否能够为我们确定常见的重要用例/场景?(阿德里安·K)

    一个常见的可能用例/场景是根据人口增长规划养老金计划的需求。在“预测”人数后,您可以计算将为养老金计划供款的人数和将退休的人数,然后估计供款人需要支付的资金需求,以便养老金计划基金有足够的资金在他们退休后为他们支付养老金等等

    另一种可能的常见情况是保险公司。基于人口增长,有关保险使用情况的统计数据将允许该公司预测其资金来源的需求,并根据事故退款与每个年龄的输入月度付款(例如汽车保险)确定给定保险金额的月度付款

    这个练习叫做估价。

    一些初步想法:

    • 随着时间的推移,你会处理数据——我不太喜欢使用那些目的和名称与一年的概念有关的类,特别是如果它是你仅有的基于时间的度量单位的话
    • 根据需要处理的数据量,您可能希望利用一个报告包或利用您选择的数据库平台,因为这将更有效地处理数据
    • 请记住,数据将经历一个生命周期:是否已清理?你需要估算数据吗?等等
    我的思考是关于 不包括死亡率类别 PopulationAnnuelle中的实例 班级

    在我看来,死亡率似乎是一个更广泛概念(率?)的一个子类——对数据的修正或影响;出于这个原因,我可能不会明确地将其包括在《人口年鉴》中。另一种观点是将总体数据传递到“速率”修饰符中,而不是将其嵌入总体中

    是的-只是想清楚了-我想你应该尽可能地把你的顾虑清楚地分开。这就是为什么我问你需要考虑的重要场景——例如,我可以看到你想对人口做很多事情,死亡率是不需要的,甚至是不可取的

    更新

    如果我理解正确,两个 人口年鉴和 凡人年金起源于 让我们假设一个StatistiqueAnnuelle类

    嗯-为什么?有两件事要考虑…首先,您是否100%确定在应用程序的生命周期中,您只需要以年为单位进行处理?在代码中大量构建一年的概念并不是一件容易的事情

    其次,我完全理解这样一个逻辑观点,即每年的统计数据包括死亡人数和总人口数,但我不确定你是否会通过继承在班级结构中反映出这一点(?)(不是说你不能——你思考这个问题的时间比我长得多)。除了反映一种特定的心态外,遗产实际上给了你什么(相对于它会给你带来什么)


    我把它们分组的想法很简单 向PopulationAnnuelle班询问 明年的人口增长,以及 它会把它作为一个礼物还给我 新实例