2.1 软件设计目标和原则 软件设计的目的:代码重用性(相同功能的代码,不用复写);可读性(规范编程,让自己和他人轻松阅读);可拓展性(便于增加新功能);可靠性(新增功能后,不影响原有的功能);高内聚,低耦合。 针对本设计,即车牌识别系统,需满足对目标车辆的车牌进行识别,包括中文、字母以及阿拉伯数字的识别,并考虑到车牌识别对于生活交通领域甚至是安全领域起着不可小觑的作用,要求识别率高达80%及以上。 软件设计的原则:本设计遵循软件设计的七大原则,即开闭原则(Open-Closed Principle,OCP),开闭原则是指对扩展开放,对修改开闭,提高软件系统的可复用性及可维护性;里氏代换原则(Liskov Substitution Principle),子类型必须能够替换它们的基类型。反过来的代换不成立;依赖倒置原则(Dependence Inversion Principle),具体要依赖于抽象,抽象不要依赖于具体;接口隔离原则(Interface Segregation Principle),使用多个专门的接口比使用单一的总接口总要好;合成/聚合复用原则(Composite/Aggregate Reuse Principle或CARP),尽量使用合成/聚合,尽量不要使用继承;迪米特法则(Law of Demeter或简写LoD)又叫最少知识原则(Least Knowledge Principle或简写为LKP),一个对象应当对其它对象有尽可能少的了解,不要和陌生人说话;单一职责原则(Simple Responsibility Principle,SRP),单一职责原则是指一个类有且仅有一个引起这个类变化的原因。 2.2 软件设计的约束和限制 - 运行环境要求:正常运行 - 开发语言:Java - 标准规范:输入图片具有一定的辨识度 - 开发工具:eclipse - 容量和性能要求:一次识别一张车牌,响应时间不得超过20s - 灵活性和配置要求:当车牌不处于正中央或者外框不为矩形时也能进行识别