软件设计的原则.docx
软件产品可以被看作是由一系列具有特定功能的组件组成,作为一个完整的系统也可以被分 解成一系列功能模块,这些模块之间的相互作用就形成了系统的全部功能。所谓模块是指可组成系统的、具有某种确定独立功能的半自律性的子系统,可以通过标准的 界面和其他同样的子系统依据肯定的规章相互联系而构成的更加简单的系统。每个模块的研 发和改进都独立于其他模块的研发和改进,每个模块所特有的信息处理过程都被包含在模块 的内部,犹如一个“黑箱”,但是有一个或数个通用的标准界面与系统或其他模块相互连接。在软件的模块化开发过程中,把一个源代码的结构分割成一个元系统和一系列的模块。元系统指的是一个能够保持系统运转的最小的系统。模块是一个较大系统的独特的部件,它能够由设计者独立设计出来,同时又可以作为一个整 体在系统中运转。把一个大系统切割成相互独立的不同的小系统,可以使一些并不是常常见面的开发者削减必 要的沟通次数。此外,一个旧版本的模块可以被新版的模块所替换,同时却又不影响整个系统的运转。这样,在新模块中所增加的功能就可以准时在现存的系统中表达出来,同时也不需要更改系 统中的其他模块。高度模块化的源代码结构给软件开发者和使用者均带来了极大的好处。开发者可以对具有某种特定功能的模块进行独立开发而不需要花时间去协调与其他模块之 间的关系。并且模块化开发不仅允许模块之间的水平开发,而且可以通过对类似模块之间的创新和竞争 (开发新的模块或者对原有的模块进行改进)充分改善系统的功能。此外,作为最终的用户来说,在安装系统的时候可以就个人的需求与偏好选择适合自己的模 块。模块化是简单系统的一个共同特征,模块化的代码结构是由松散的组件构成的,是对一个系 统完全意义上的分割,而不像完全集成的代码,各个组件之间存在很强的依靠关系,并不是 完全通过界面来交换信息。总结:第一, 把一个系统分解成各个不同的子模块,不同的开发者专注于对其中某 一模块的开发,一方面实现了劳动的分工,另一方面也提高了自由软件开发的效率。基于模 块化的性质,每个模块在开发出来以后都可以通过一个被称作是内核的原系统进行信息沟 通,发挥整个模块的功能,同时也并不会影响其他模块功能的发挥。而且在各个不同的模块 整合在一起后,由于外部性的存在,会使整个系统增加的功能要超过该模块本身的功能。在 此过程中实现了价值的分割与整合。其次,对于开发者而言,基于模块化的自由软件开发具有更大的吸引力,其在参加开发过程中可以得到更高的期望收益。第三, 在非模块化的软件开发过程中,存在着严峻的“搭便车”现象,当一个 开发者选择参加开发,其余的开发者就会选择“搭便车”,最终会导致软件的供应缺乏;在基 于模块化的开发过程中,全部的开发者都更倾向于参加开发不同的模块,从而实现整个系统 的开发。MIS软件开发中的组件模式开发比拟简单,主要的阻力不在代码的实现过程中,由于这个工 作通常只应占据软件开发工作量的30%,而对业务需求的深度剖析、业务子系统的划分和 业务组件的规划会占据约4050%的工作量。这些工作表达在设计阶段主要是对业务的广度、深度分析,把业务领域的对象元素进行细化, 将业务操作划分为原子性功能,以此为基础构成业务组件,进而形成模块和子系统,同时业 务操作之间的约束那么需要规律化(代码系统可识别的规律);在此过程中,原系统也就形成 了,它便是在业务领域中必需的组件、模块和子系统的集合;外延的组件在原系统上通过组 合或热差拔即能够满意不同规模、深度、特性的业务模式运转。提高代码重复采用率便于调试排错 易于扩展 软件开发流程(软件开发流程(Software development process)即软件设计思路和方法括设计软件的功能和实现的算法和 括设计软件的功能和实现的算法和 程序联调和测试以及编写、提交程 1相关系统分析员和用户初步了解 要开发的系统的大功能模块,每个的一般过程,包)即软件设计思路和方法的一般过程, 方法、软件的总体结构设计和模块设计、编程和调试、 方法、软件的总体结构设计和模块设计、编程和调试、 序。程序联调和测试以及编写、提交程序。第一步: 需求,然后用WORD列出第一步:需求调研分析 大功能模块有哪些小功能模块,对于有些需求比拟明确相 关的界面时,在这一步里面可以 初步定义好少量的界面。2系统分析员深化了解和分 析需求,依据自己的阅历和需求用 WORD或相关的工具再做出一份文档系统的功能需求文档。这次的文档会清晰例用系统 大致的大功能模块,大功能模块有哪些小功能模块,并且还例出相关的界面和界面功能。3 系统分析员和用户再次确认需求。其次步:概要设计其次步:首先,开发者需要对软件系统进行概要设计,即系统设计。概要设 基本处理流程、系统的组织结构、模块划 设计和出错处理设计等,为软件的具体设 进行软件系统的具体设计。在第三步:系统进行概要设计,即系统设计。概要设 基本处理流程、系统的组织结构、模块划 设计和出错处理设计等,为软件的具体设 进行软件系统的具体设计。在第三步:计需要对软件系统的设计 进行考虑,包括系统的 分、功能安排、接口设计、运行设计、数据结构 计供应基础。在概要设计的基础上,开发者需要 具体设计具体设计中,描述实现具体模块所涉 及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的 每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。应保证软件的需求完 全安排给整个软件。具体设计应足够具体,能够依据具体设计报告进行编码。在软件编码 阶段,开发者依据软件系统具体设计报告中对数据结第四步:编码构、算法分析和 模块实现等方面的设计要求,开头具体的编写程序工作,分别实现各模块的功能,从而实 现对目标系统的功能、性能、接口、界面等方面的要求。第五步:测试编写好的系统。交 给用户使用,用户使用后一个一个确实认每个功第五步:测试 能。在软件测试证明软件 到达要求后,软件开发者应向用户提交第六步:软件交付预备开发的目标安装程序、数 据库的数据字典、用户安装手册用户使用指南、需求报告、设计报告、测试 报告等双方合同商定的产物。用户安装手册应具体介绍安装软件 对运行环境的要求、 安装软件的定义和内容、在客户端、服务器端及中间件的具体安装步骤、安装后的系统配 置。用户使用指南应包括软件各项功能的使用流程、操作步 骤、相应业务介绍、特别 提示和留意事项等方面的内容,在需要时还应举例说明。第七步:验收第七步:用户 验收。