软件
概括的说,软件工程是指导计算机软件开发和维护的一门工程学科。采用工程化的方式来开发和维护软件,把结果时间考验而证明正确的工程管理技术和当前能够得到的最好的技术方式结合起来,以经验的开发出高质量的软件并有效的维护他,这就是软件工程
l 方法:完成软件开发的各项任务的技术方法,为软件开发提供 “如何做”的技术
l 工具:为运用方法二提供的自动或半自动的软件工程的支撑环境
l 过程:为了获得高质量的软件所需要完成的一系列任务的框架、它规定了完成各项任务的工作步骤,如何将软件工程方法与软件工具相结合,合理,及时的进行开发
l 可行性分析阶段:可行性分析报告
l 需求分析阶段:软件需求规格说明书
l 项目:有明确需求提供人员 软件:没有明确需求提供人员
l 系统设计:概要设计说明,详细设计说明书,数据库设计说明书
l 测试阶段,维护阶段
统一建模语言
是专门用来进行软件系统设计和架构建模的一门可视化建模语言,他通过各种图示展示了软件系统的方方面面,IBM的统一建模语言YML成为业界认同的统一建模语言
设计时遵循一定的设计原则
l 开闭原则:软件实体对扩展是开发的,但对修改是关闭的,即在不修改一个软件实体的基础上去扩展其功能
l 单一职责:所有的对象都应该有单一的职责,他提供的所有的服务也都仅围绕着这个职责,不是某个具体职责,而是工作环境
l 里氏替换原则:在一个软件系统中,子类应该能够完全替换任何父类能够出现的地方,并且经过替换后,不会让调用父类客户程序从行为上有任何改变
l 依赖倒转原则:将两个模块之间的依赖关系倒置为依赖抽象类或接口,高模块不要依赖于低模块的实现,而是依赖于接口,要针对接口编程,不要依赖于实现类编程
l 组合/聚合复用原则:是指要尽量使用组合/聚合而非继承来达到复用目的。
l 接口隔离原则:最小接口原则
l 迪米特法则:一个软件实体应当尽可能少的与其他实体发生互相作用
模式(套路)
具有代表性的重复性问题及其解答方案
架构模式(宏观)
设计模式(微观)
创建模式:单列模式(Singleton),工厂模式,原型模式,建造者模式
结构模式:Façade外观模式,代理模式,适配器模式,装饰模式
行为模式:观察者模式,命令模式,模板模式
l 单列模式:设计一个能且只能产生一个对象的类
n 懒汉模式:.
u 它是一种预加载的实现,不管代码中有没有用到getInstance,都会被产生
u 线程绝对安全
n 饿汉模式:
u 延迟加载实现,只有在真正需要singlenton对象的时候才产生
u 不加同步线程不安全,加同步效率低
n 双锁模式
u 既支持线程安全,又支持延迟加载的高并发
l 工程模式
客户类个工厂类分开,消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品
l 原型模式
用原型实例指定创建对象的种类,并且通过拷贝,object的clone的方法为浅克,因为clone方法是值传递,深克隆实现:对象序列化,对象反序列化
l 桥梁模式
在软件系统,具有两个或多个维度的变化
l 代理模式
有些对象有时候由于跨越网络或者其他的障碍,而不能够或者不想直接访问另一个对象,可以在客户程序和目标对象之间增加一层中间层