很久以来都在思考着这个问题,软件设计不是设计在前,而是“需求”在前;信息系统开发不是开发在先而是需求在前;UML中也专门有一重要的图use
case,来进行需求分析;DP中的开放-封闭原则也正是根据各自的需求各司其职。
很小很小的就听过,改造我们的学习,教育改革从“要我学”——到“我要学”
的转变。需求:我想就是我们“需要什么?”,弄明白了自己要什么,从思想的源头弄明白自己需要什么在脚踏实地的去实践,这是不是正如很多人说的:“选择重于努力!”,我想应该就是这个道理吧。知道了自己需要什么,有欲望,才能不断的有源动力,有学习的干劲,才能更好的坚持。
需求实例:
1、软件开发中,我们首先要考虑的就是需求分析,开发人员和客户交流,了解客气的需求:
2、UML图:建模语言中的用例图,用例图(use
case) 主要用来描述“用户、需求、系统功能单元”之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。
【用途】:帮助开发团队以一种可视化的方式理解系统的功能需求。比如机房收费系统,先分析有哪些用户,各用户有有哪些权限和使用权。
3、设计模式(DP)——一切从需求分析开始
DP中亦是,一切从需求分析开始,从客户需求分析,实际上就是分析需求是否可以实现、需要修改哪些地方。理想情况下,开发的产品应该是对已有部分不做任何修改,而只是对新的需求做一些扩展,这就要求我们在设计时遵循开闭原则。事实上,需求分析贯穿于整个编码活动中,因为当代码之间相互协作时,一部分代码就是另一部分的客户。
开放-封闭原则分为两部分,即对修改关闭,对扩展开放。在OO语言下,
1)、对修改关闭,一般可以应用继承,使各需求共享相同实现。在设计继承结构时,应该满足两个OO设计原则:
A. 里氏替换原则——继承必须确保超类所拥有的性质在子类中仍然成立。这个原则保证我们类之间继承关系的健康性
B. 依赖倒置原则——要依赖于抽象,不要依赖于具体。这个原则保证我们的设计有更大是适用性,可以最大可能地满足对修改关闭。
2)、对扩展开放,一般可以应用多态或者组合。无论你是覆写已有方法还是委托给已有类,为了保证修改尽可能小,在设计时应该满足两个OO设计原则:
A. 单一职责原则——一个类,只有一个引起它变化的原因
B. 接口分离原则——接口的设计应该遵循最小接口原则
我们的人生:记得心理学家马斯洛说过,我们人类的需求总是按照一定的层次来发展的:生存-安全-交流-尊重-自我实现。就像吃饭和睡觉就基于生存需要,对自由的渴望和对灾害的预防是出于对安全的需求。
其中自我实现的需求是最高层次的需要,是指实现个人理想、抱负,发挥个人的能力到最大程度,达到自我实现境界的人,接受自己也接受他人,解决问题能力增强,自觉性提高,善于独立处事,要求不受打扰地独处,完成与自己的能力相称的一切事情的需要。也就是说,人必须干称职的工作,这样才会使我们感到最大的快乐。马斯洛还说过,为满足自我实现需要所采取的途径是因人而异的。自我实现的需要是在努力实现自己的潜力,使自己越来越成为自己所期望的人。
See a need
,fill a need. (寻找需求,激发创新)——这正是“苹果公司”(Apple
Inc. )立于世界创新领头队伍之中的原因呀。近日身边太多的同学着凉感冒了,这时有什么需求呢?看医生,认识到锻炼身体的重要性,有了这些需求我们才会更有方向的去实施;要做一个很有说服力的人,做三好学生,做个有志气的人,英语能同声传译等等,或许都是我们需要的,我们需求的,有了需求,才能真正调动自己,激励自己,不断的给自己补充燃料。
再想起米老师的高明,“授之于鱼,不如授之以渔;授之于渔,不如授之以欲。” 让学生有了学习的欲望,明白自己需要什么,那真的是一种教育的境界,待我们有了一定的积累之后,米老师还希望我们能达到更高的境界:学而愉之。感兴趣的学习,把学习当作一件快乐的事情。这一切都需要我们从自我规划,分析好自我、人生需求开始。