软件基础第二次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zjlg/rjjc20
这个作业的目标 <通读构建之法,提出三个问题>
姓名-学号 <刘成基>-<2018330301055>

第一个问题

原文:“另一个重要的软件设计原则是开放-封闭原则(Open-Close Principle,OCP):

软件实体应该是可以扩展的,同时是不可以修改的。——摘自《构建之法》p.38 第2章个人技术和流程

我的疑问:为什么要用到开放封闭原则,如何做到对扩展开放,对修改封闭?

通过查阅资料,我了解到了:

用到OCP原则的原因:软件需求总是变化的,世界上没有一个软件的是不变的,因此对软件设计人员来说,必须在不需要对原有系统进行修改的情况下,实现灵活的系统扩展。

如何做到对扩展开放,对修改封闭:实现开放封闭的核心思想就是对抽象编程,而不对具体编程,因为抽象相对稳定。让类依赖于固定的抽象,所以对修改就是封闭的;而通过面向对象的继承和多态机制,可以实现对抽象体的继承,通过覆写其方法来改变固有行为,实现新的扩展方法,所以对于扩展就是开放的。


第二个问题

原文:”软件工程师的思维误区:不分主次,想解决所有依赖问题。另一种极端是过于积极,想马上动手修复所有主要和次要的依赖问题,然后就可以“完美的”达成最初设定的目标。——摘自《构建之法》p.48 第3章软件工程师的成长。
我的疑问:想要解决所有问题为什么会是软件工程师的思维误区?

我的想法:软件工程师的终极目标应该是设计出一种“足够好的软件”,为了这个目的应该找到设计过程中的所有问题并将其解决,这样才算得上是对自己的作品负责。“想要解决所有问题”的这种想法在我看来也是开发者应有的精神,并且在解决这些问题的过程中,对开发者而言也是一种锻炼的好机会。所以我认为想解决所有依赖问题未必是思维误区。


第三个问题

原文:“软件工程的目标:创建一个足够好的软件”——摘自《构建之法》p.15 第1章概论。
我的疑问:什么样的软件称得上是一种足够好的软件?有没有衡量标准?

在原文中,作者并未提到衡量一个软件好与否的具体标准,而是说bug的多少直接衡量了软件的开发效率、用户满意度等。我在想,bug的存在就一定会影响软件的好坏程度吗?比如我本人很喜欢玩游戏,有很多游戏他们的一些很经典的设定其实都是bug,但是这些bug比较有趣或者说没有被发现,结果就保留在了游戏里面,被玩家发现之后成为了津津乐道的事情。这样的bug称得上会影响用户的满意度吗?我觉得bug的多少一定程度上会影响到软件本身,但是也要看这个bug是否举足轻重。既然这样,bug的存在并不是软件好坏的衡量唯一标准,那么还有哪些具体的标准呢?

posted @ 2020-11-01 10:45  鸡哥rushB  阅读(116)  评论(0编辑  收藏  举报