架构一般可分为物理架构、运行架构、逻辑架构、开发架构、数据架构。所有的架构其实都是非常抽象的东西,每个项目各不相同,但目的都是通过软件架构的设计和应用使软件质量达到最优。
物理架构:关注服务器、网络等基础设施的部署方式。
运行架构:关注运行期间可能出现的问题,如资源调度、死锁、并发等。IOS中的runtime就是典型的例子。
逻辑架构:关注系统“分层”,如典型的数据层-业务逻辑层-表示层三层架构。
开发架构:关注程序包,包括使用哪些框架、如何组织代码,每个项目都不相同,具体可根据项目的需求而定。
数据架构:关注数据持久化、数据存储方面。
软件框架和软件架构不是同一物种。软件框架可以说是设计模式的具体实现,软件架构更加抽象,软件框架却看得见摸的着。
如PHP的YII框架是对MVC的实现,IOS中的Aspects是对AOP的实现,JAVA中的Hibernate是对ORM的实现...