软件工程的题不会写😭😭

软件工程关于构建设计基本原则的题目,写不出来,希望有人可以帮帮忙

img

1)以下设计违反了构建设计的关注点分离(SoC)原则,该原则是基本的构件级设计原则。"PrintJob"组件包含与作业相关的多个属性,如页面数量、纸张类型、装订选项等,以及一个"initiateJob"接口,用于启动作业并将其传递到生产。这违反了SoC原则,SoC原则认为组件或模块应该有清晰且单一的职责,不应混合关注点。

2)关注点分离(SoC)原则是一种基本的构件级设计原则,它认为一个组件或模块应该有一个单一的职责,不应混合关注点。这意味着一个组件应该专注于一个单一的关注点,不应负责无关的功能。通过分离关注点并创建更小、更专注的组件,代码变得更加模块化、可维护和可测试。

3)以下是一种可能的正确设计,遵循关注点分离(SoC)原则,用于第1)小题中的构件级设计:

<> initiateJob
buildWorkOrder()
checkPriority()
passJobToProduction()

<> computeJobCost
computePageCost()
computePaperCost()
computeProdCost()
computeTotalJobCost()

<> printJobDetails
printJobDetails()

<> Job
+numberOfPages
+numberOfSides
+paperType
+paperWeight
+paperSize
+paperColor
+magnification
+colorRequirements
+productionFeatures
+collationOptions
+bindingOptions
+coverStock
+bleed
+priority
+totalJobCost

"PrintJob"组件现在被替换为三个单独的接口"initiateJob"、"computeJobCost"和"printJobDetails",每个接口都具有单一的职责。作业相关的属性被移动到一个单独的"Job"类中,该类负责保存作业相关的信息。这个设计遵循SoC原则,使代码更加模块化、可维护和可测试。