1.提出问题
Q1.程序=数据结构+算法
软件=程序+软件工程
程序(算法、数据结构)是基本功,但是在算法和数据结构之上,软件工程决定了软件的质量。
——第1章 概论
软件作为程序的大类,程序是组成软件必不可少的部分,在之前的学习中我们已经了程序组成的必要两部分,数据结构和算法,但在软件的创建方面,在这几次课的学习中,还是对软件没有灵感,也不知道软件是如何运用和生成的,所以 我的问题是在学习了软件工程的构建之法之后,如何正确的对待软件和怎么如何这三门学科的联系。
Q2对开放-封闭的原则的理解
作者在书38页,提到了开放-封闭的原则,对其解释是“软件实体应该是可以扩展的,同时是不可修改的”。应该就是扩展是开放的,修改是封闭的。
百度的解释为:开放封闭原则(OCP,Open Closed Principle)是所有面向对象原则的核心。软件设计本身所追求的目标就是封装变化、降低耦合,而开放封闭原则正是对这一目标的最直接体现。其他的设计原则,很多时候是为实现这一目标服务的,例如以Liskov替换原则实现最佳的、正确的继承层次,就能保证不会违反开放封闭原则。
但是在现实中,开放和封闭本身就是一个对立面,在开放中包容,在封闭中开放。如何正确的理解这一理念是我无法理解的知识点定义。