在设计此类图时需要一些外部建议!

问题描述

|   摘要 我必须对用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类中包括一个死亡率类实例。最初的人口年份和接下来的96年预测中存在死亡率。此外,每年的人口必须有其死亡率,而对于我来说,今年的死亡率没有必要存在。 假设我有2009年的初始人口,直到2105年为止我还没有预测2010年,2011年,2012年等的人口。但是,我有所有这些年的死亡率预测,并且人口增长是基于根据这些死亡率确定哪些人口还活着,以及我们有多少人死亡等。 尽管我认为StatistiqueAnnuelle更适合该工作,但我想让PopulationAnnuelle类作为我模型的基类,然后使PopulationAnnuelle从中继承。   问题 您对我的担忧有何看法? 我希望完成的最佳设计是什么? 我是否应该使用StatistiqueAnnuelle作为基类/接口,并让TauxMortalite,PopporationAnnuelle等其他类从其派生,有点像现在设计的那样? 任何可以接受的想法都将由我本人来反对。最准确,最有帮助的答案将被接受为我的问题的答案。 感谢您的帮助和支持! =)   您能够为我们确定常见的重要用例/场景吗? (阿德里安·K) 一个常见的可能的用例/方案是根据人口增长来计划养老金计划的需求。在“预测”人数之后,您可以计算将向养老金计划供款的人数和将要退休的人数,然后估算供款人需要支付的资金需求,以便养老金计划基金将有足够的钱来支付他们退休时的养老金,以此类推。 另一个可能的常见情况是保险公司。根据人口增长情况,有关保险使用情况的统计信息将使公司能够预测其资金来源的需求,并根据事故退款与每个年龄段输入的每月付款(例如汽车)确定给定保险金额的每月付款例如保险。 此练习称为估值。     

解决方法

一些初步的想法: 您会随着时间处理数据-使用类的目的和名称与一年的概念联系在一起,我感到不安,尤其是当它是您拥有的唯一基于时间的度量单位时。 根据需要处理的数据量,您可能希望利用报告包或利用所选的数据库平台,因为这将更有效地处理数据。 请记住,数据将经历生命周期:是否已清除数据?您需要估算任何数据吗?等等   我的想法是关于   不包括死亡率等级   人口环内的实例   类。 在我看来,死亡率是更广泛概念的一个子类(比率?)-数据的修改者或影响者;因此,我可能不会明确将其包含在“人口环”中。另一种观点是将人口数据传递到“比率”修饰符中,而不是将其嵌入人口中。 是的-仔细考虑-我想您希望将您的关注点尽可能清晰地分开。这就是为什么我问到您需要满足的重要情况的原因-例如,我可以看到您想要在不需要或什至不需要死亡率的“人口人口”中做很多事情。 更新资料   如果我理解正确,   人口和   MortaliteAnnuelle衍生自   比方说StatistiqueAnnuelle类 嗯-为什么?有两件事要考虑...首先,您是否100%确定在应用程序的生命周期中,您只需要以年为单位进行处理?在代码中大量构建一年的概念并不是您想轻易做到的。 其次,我完全理解逻辑,即年度统计数据包括死亡人数和总人口-但是我不确定您是否会通过继承(?)在类结构中反映出来(不是说您不能-您\比我花了更长的时间思考这个问题)。除了反映特定的思维方式,继承实际上给您带来什么(与继承对您有什么作用)?   我将它们分组的想法是   向PopulationAnnuelle课询问   明年人口增长   它本来会把它还给我的   PopulationAnnuelle的新实例 这听起来令人怀疑:一个类被要求产生一个新的自身实例。我可能有一个类/组件\“ TrendPredictor \”(?),该类/组件已传递所需的所有数据(或对数据集的引用)并返回了一些对象。如果您随后想要对此进行更多的趋势预测,那么我想传入和传出相同类型是有意义的,因此可以很容易地以任意组合将操作串在一起。 我要做的其他事情就是,我会看到那些输入和输出相当愚蠢(因此不需要太多(如果有的话)继承)-与提供丰富功能的类相比,它们听起来更像是数据结构。