一、论软件系统方法建模及其应用
软件系统模型(Software System Modeling)是软件开发重要环节,通过构件软件系统模型可以帮助开发人员理解系统、抽取业务过程和管理系统的复杂性,也方便各人员交流。软件系统建模是软件系统分析和系统实现的一座桥梁,系统开发人员按照系统模型开发出符合设计目标的软件系统,并基于该模型维护和改进。
请围绕“论软件系统建模实现及其应用”论题,依次从三个方面进行论述。
1、概述你参与软件系统开发项目以及你所担任的主要工作。
2、说明软件系统开发常用建模方法有哪几类?阐述每个方法特点及其范围。
3、详细说明你所参与系统开发中,采用哪些软件方法建模,具体实施效果如何。
问题1
则是描述自己的项目和自己担任的工作。
问题2
功能分解法、数据流法/结构化分析建模法、信息工程建模法和面相对象建模法。
(1)功能分解法
功能分析法以系统需要提供的功能为中心来组织系统。总的思想就是分而治之,根据功能需求定义结构,首先定义各种大的功能,再把大的功能分解为小的子功能,按功能来定义接口,稍微大一点的子功能还可以继续选择拆分。
(2)数据流法/结构化分析建模法
基本方法是跟踪系统数据流,研究问题域中数据流是如何流动以及在各个环节如何处理的,从而发现数据流和加工。把问题域映射为数据流、加工以及数据存储等元素组成数据流图,用加工和数据字典对数据流处理过程及其描述。
(3)信息工程建模法
在实体关系图发展而来,核心是识别实体及其关系。实体用于描述问题域的一个事物,它包含一些数据事物的属性,关系则是各个事物之间的一些联系。发展之后的方法把实体叫做对象,具有面向对象的一些特性。
(4)面向对象建模法
从面向对象领域设计而来,它通过对象对问题域进行完整映射,包含了对象的属性和一些行为。用连接和结构把对象之间联系起来,比如分类组装。利用封装、继承和消息机制来解决面向对象建模的复杂度。
二、论软件架构风格
软件体系结构风格描述某一特定应用领域中系统组织方式的惯用模式。体系结构风格定义了一个系统家族,即一个体系结构定义一个词汇表和一组约束。词汇表包含一些构建和连接件类型,而这组约束指出是如何将这些构件和连接件结合起来。体系结构风格反映了领域中众多系统所共有的结构和语言特征,并指导如何将各个模块和子系统有效组织成一个完整系统。
请围绕“论软件架构风格”论题,从三个方面论述。
1、概要叙述你参与分析和设计的软件系统开发项目以及你所担任的主要工作。
2、软件系统开发常用的软件架构风格由哪些?阐述每种风格的具体含义。
3、详细说明你所参与分析和设计的软件系统采用什么软件架构风格的,并分析采用该架构风格的原因。
问题2
管道/过滤器、数据抽象和面向对象、基于事件的隐式调用、分层系统、仓库系统及知识库、C2风格、客户/服务器风格、三层C/S结构风格和浏览器/服务器风格。
1、管道/过滤器:构件就是过滤器,连接件就是管道,一个构件的输出是下一个构件的输入,经过内部处理,产生数据流。
2、数据抽象和面向对象:这种是基于数据抽象和面向对象基础上,数据的属性和方法操作都封装在一个抽象数据或者对象里。
3、基于事件的隐式调用:这种是触发或者广播一个或多个事件,构件在多个事件里注册,当事件触发或者广播的时候,系统会自动调用这个注册的构件所有过程,一个事件的触发导致另一个模块的过程调用。基于事件的隐式调用风格特点是不知道哪些构件会被影响。
4、分层系统:层析系统分为多个层次,每一层为上层服务。
5、仓库系统及知识库:仓库有两种不同的风格,中央数据结构说明当前状态,独立构件在中央数据存储上执行,若数据在构件共享,则就是普通数据库,若不是共享,通过触发来改变的,则是黑板系统。
6、C2风格:通过连接件和构建组合按照一组规则运行的风格。构件之间不可以相互连接,连接件可以连接多个构件,构件的底部或者顶部,必需和连接件连接。当两个连接件相连,必需一个是顶部,一个是底部。
7、客户/服务器风格:C/S体系结构主要三个组成,数据库服务器、客户应用程序和网络。
8、三层C/S结构风格:两层C/S主要单一服务且局域网为中心,扩展性和灵活性都差,升级受到制约,系统性能差,数据安全性低。三层C/S架构分为表示层、数据层和功能层。
9、浏览器/服务器风格:基于三层C/S架构发展而来,具体为浏览器/web服务器/数据层。