软件方法学:主要涉及指导软件设计的原理和原则,以及基于这些原理,原则的方法和技术。目的是使得软件开发过程"纪律化",即要求寻找一些规范的"求解过程",把软件开发活动置于坚实的理论基础上.
语言=语法 + 语义
语法:是一套表达式 规则
语义:是将一套语法的表达式赋予某种意义的规则
图形: 节点 和 边
匹配:字符串匹配 或者 抽象语法数
笛卡尔集合
///
软件方法学:
结构化方法
E-R图
状态
规则
形式化方法
.................
结构化方法:比较适合描述数据图,但是不太适合描述组织,结构 数据的加工
E-R图 比较适合描述静态图: 实体与实体之间存在的关系 静态 结构
状态图:表示一种状态到另一种状态之间的装换,比较适合有事件驱动模型。 并发,行为,状态图
规则:基于规则的设计方法
1.人机博弈的方式
2.人机大战,象棋,五子棋,等等。往往是采用基于规则的。
比如:makefile ,决策 等等 ,算法的统一 , 博弈树算法,回溯算法,等等算法
形式逻辑
将代码(程序) -----装换---------》数学
数学理论是可以证明的,可以被证明有没有问题
不适合大的问题的解决 -----------适用于局部问题的解决
数据 过程 规则 状态
面向对象:
1.便于维护 和 封装 ,复用
2.基于构件的软件开发
.许多的对象形成一个构件,构件 就是一组业务功能的规格,面向构件针对的是业务规格
主要是构建的开发,主要是通过构建的组合,来进行执行程序不在编写代码
3.面向方面
以前的程序员写代码会考虑一下内容:
业务逻辑
安全处理
数据管理
日志的管理
------缺点:开发人员会分散注意力,不能把注意力放在业务逻辑上。
面向方面: 适合方面的耦合性比较小
--------面向方面的问题
AOP概念
方面: