学习是一种信仰。
分类: 架构设计与优化
2013-09-17 10:23:41
1、软件发展过程的总结
? 1950‐1960年代:
软件=程序(Program)
面向过程的软件=算法(Algorithm)+数据结构(Data Structure)
? 1970 年代:
软件=程序(Program)+文档(Document)
软件=程序(Program)+文档(Document)+数据(Data)
? 1980‐1990年代:
面向对象的软件=对象(Object)+消息(Message)
? 1990年代‐至今:
面向构件的软件=构件(Component)+框架(Framework)
面向服务的软件=服务(Service)+消息(Message)+总线(Bus)
2、典型的软件过程模型
? 瀑布模型(Waterfall model)
? 增量过程模型(Incremental process model)
– 增量模型(Incremental model)
– 快速应用程序开发(Rapid Application Development, RAD)
? 演化过程模型(Evolutionary model)
– 螺旋模型(Spiral model )
– 原型模型(Iterative model)
? 喷泉模型 (Fountain model)
? 开源过程模型(Open source)
? 统一过程模型(Rational Unified Process, RUP)
? 敏捷过程模型(Agile Process)
? 其他过程模型(Other models)
– 形式化过程(Formal method model)
– 软件复用过程(Component‐based reuse)
3、软件系统建模
建模(Modeling):建立模型的过程,识别概念、识别概念之间的关系,利用概念、关系等基本模型元素描述系统的结构、行为等,并以规
范化的、形象化的方式将其表达出来。
建模的核心原则—抽象:把握系统的本质内容,而忽略与系统当前目标无关的内容,它是一种基本的认知过程和思维方式。
? 抽象的过程:理解?区分?命名?表达?分析?优化
? 模型的内容:
– 识别概念
– 识别概念间的关系…
– 表达
– ……
方法:一些规则和指导方针的集合。
基于系统成分的建模
– 以活动为中心的建模
– 以产品为中心的建模
– 以角色为中心的建模
– 基于过程模板的建模方法
? 以功能为目标的建模
– 面向目标的建模
– 面向活动与目标相结合的建模
形式化方法的建模
– Petri网的建模
– 基于规则的建模
– 基于知识的建模
基于系统特征的建模
– 基于状态仿真的建模
– 基于控制的建模
其他的建模方法
– 基于多范例推理的软件过程建模
– 基于统一建模语言的软件过程建模
– 基于Agent的软件过程建模
– 基于模型融合的建模方法
– 基于对象网的多视角软件过程建模
– 基于片段驱动的软件过程建模
– 基于特征模型的软件过程建模
– 基于复用的软件过程建模
– 面向服务的软件过程建模
– 面向方面的软件过程建模
软件建模语言:
基于规则的过程建模语言,如MSL语言
? 基于程序的过程建模语言,如APPL/A语言
? 基于图/网的过程建模语言,如SLANG语言
? 面向对象的过程建模语言,如UML语言
? 基于Agent的过程建模语言,如PEACE/PML语言
? 多范型的过程建模语言,如SPELL语言
? 基于形式化的过程建模语言,如Z、B语言
软件系统建模过程:
(1)问题域建模
(2)建立软件模型
(3)软件系统的实现
(4)软件系统的测试、部署与运行