系统开发流程中的概要设计与详细设计

概要设计和详细设计

在软件设计中,大家经常问到的一个问题是:概要设计应该怎样一个概要法,详细设计应该怎样一个详细法? 

一般公司的研发流程是瀑布型的,这个模型中的分析、设计阶段是基于经典的结构化方法。 结构化设计方法的基本思路是:按照问题域,将软件逐级细化,分解为不必再分解的的模块,每个模块完成一定的功能,为一个或多个父模块服务(即接受调用),也接受一个或多个子模块的服务(即调用子模块)。模块的概念,和编程语言中的子程序或函数是对应的。 

这样一来,设计可以明显地划分成两个阶段: 

  • 概要(结构)设计阶段:把软件按照一定的原则分解为模块层次,赋予每个模块一定的任务,并确定模块间调用关系和接口。 
  • 详细设计阶段:依据概要设计阶段的分解,设计每个模块内的算法、流程等。
概要设计阶段

在 这个阶段,设计者会大致考虑并照顾模块的内部实现,但不过多纠缠于此。主要集中于划分模块、分配任务、定义调用关系。模块间的接口与传参在这个阶段要定得 十分细致明确,应编写严谨的数据字典,避免后续设计产生不解或误解。概要设计一般不是一次就能做到位,而是反复地进行结构调整。典型的调整是合并功能重复的模块,或者进一步分解出可以复用的模块。在概要设计阶段,应最大限度地提取可以重用的模块,建立合理的结构体系,节省后续环节的工作量。 

概要设计文档最重要的部分是分层数据流图、结构图、数据字典以及相应的文字说明等。以概要设计文档为依据,各个模块的详细设计就可以并行展开了。

详细设计阶段 

在这个阶段,各个模块可以分给不同的人去并行设计。在详细设计阶段,设计者的工作对象是一个模块,根据概要设计赋予的局部任务和对外接口,设计并表达出模块的算法、流程、状态转换等内容。这里要注意,如果发现有结构调整(如分解出子模块等)的必要,必须返回到概要设计阶段,将调整反应到概要设计文档中,而不能就地解决,不打招呼。 

详细设计文档最重要的部分是模块的流程图、状态图、局部变量及相应的文字说明等。一个模块一篇详细设计文档。

概要设计文档相当于机械设计中的装配图,而详细设计文档相当于机械设计中的零件图。文档的编排、装订方式也可以参考机械图纸的方法。 

概要设计中较顶层的部分便是所谓的方案。方案文档的作用是在宏观的角度上保持设计的合理性。 有的项目采用面向对象的分析、设计方法。可能在概要设计、详细设计的分工上疑问更多。其实,面向对象的分析、设计方法并没有强调结构化方法那样的阶段性,因此一般不引入概要、详细设计的概念。如果按照公司的文档体系,非要有这种分工的话,可以将包的划分、类及对象间的关系、类的对外属性、方法及协作设计看做 概要设计;类属性、方法的内部实现看做详细设计。

  1. 需求分析--产生软件功能规格说明书,需要确定用户对软件的需求,要作到明确、无歧义。不涉及具体实现方法。用户能看得明白,开发人员也可据此进行下面的工作(概要设计)。 
  2. 概要设计--产生软件概要设计说明书,说明系统模块划分、选择的技术路线等,整体说明软件的实现思路。并且需要指出关键技术难点等。   
  3. 详细设计--产生软件详细设计说明书,对概要设计的进一步细化,一般由各部分的担当人员依据概要设计分别完成,然后在集成,是具体的实现细节。理论上要求可以照此编码。
概要设计和详细设计的区别与联系

概要设计就是设计软件的结构,包括组成模块,模块的层次结构,模块的调用关系,每个模块的功能等等。同时,还要设计该项目的应用系统的总体数据结构和数据库结构,即应用系统要存储什么数据,这些数据是什么样的结构,它们之间有什么关系。 详细设计阶段就是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。

概要设计阶段通常得到软件结构图,详细设计阶段常用的描述方式有:流程图、N-S图、PAD图、伪代码等。

软件设计采用自顶向下、逐次功能展开的设计方法,首先完成总体设计,然后完成各有机组成部分的设计。根据工作性质和内容的不同,软件设计分为概要设计和详细设计。概要设计实现软件的总体设计、模块划分、用户界面设计、数据库设计等等;详细设计则根据概要设计所做的模块划分,实现各模块的算法设计,实现用户界面设计、数据结构设计的细化,等等。

概要设计是详细设计的基础,必须在详细设计之前完成,概要设计经复查确认后才可以开始详细设计。概要设计,必须完成概要设计文档,包括系统的总体设计文档、以及各个模块的概要设计文档。每个模块的设计文档都应该独立成册。

详细设计必须遵循概要设计来进行。详细设计方案的更改,不得影响到概要设计方案;如果需要更改概要设计,必须经过项目经理的同意。详细设计,应该完成详细设计文档,主要是模块的详细设计方案说明。和概要设计一样,每个模块的详细设计文档都应该独立成册。

概要设计里面的数据库设计应该重点在描述数据关系上,说明数据的来龙去脉,在这里应该结合我们的一下结果数据,说明这些结果数据的源点,我们这样设计的目的和原因。详细设计里的数据库设计就应该是一份完善的数据结构文档,就是一个包括类型、命名、精度、字段说明、表说明等内容的数据字典。

概要设计里的功能应该是重点在功能描述,对需求的解释和整合,整体划分功能模块,并对各功能模块进行详细的图文描述,应该让读者大致了解系统作完后大体的结构和操作模式。详细设计则是重点在描述系统的实现方式,各模块详细说明实现功能所需的类及具体的方法函数,包括涉及到的sql语句等。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
概要设计说明书 1. 总体设计 1.1 需求规定 教务管理系统可分为学生信息管理系统和教师管理信息系统系统开发的整体任务是 实现学校教师和学生信息管理的系统化、规范化、自动化和智能化,从而达到提高学校 管理效率的目的。 本阶段目的在于明确系统的数据结构和软件结构,此外总体设计还将给出内部软件和 外部系统部件之间的接口定义,各个软件模块的功能说明,数据结构的细节以及具体的 装配要求。 1.2 运行环境 软件基本运行环境为Windows XP环境。 1.3 基本设计概念和处理流程 概要说明书的目的在于明确系统的数据结构和软件结构,设计外部软件和内部软件的 接口,说明各个软件模块的功能说明,数据结构的细节等。系统的总体处理流程如图1- 1所示: 图1-1 系统的总体处理流程 1.4 系统体系结构 用一览表及框图的形式说明本系统系统元素(各层模块、子程序、公用程序等)的 划分,扼要说明每个系统元素的标识符和功能,分层次地给出各元素之间的控制与被控 制关系。 本系统的体系架构如图1-2所示: 图1-2 系统体系架构 本系统体系结构大致可以定义为:客户机层上的表示层主要是通过Struts框架实现的 ,由显示视图产生一个请求。 请求被ActionServlet(控制器)接收,它在struts- config.xml文件寻找请求的URI,找到对应的Action类后,Action类执行相应的业务逻 辑。Action类执行建立在模型组件基础上的业务逻辑,模型组件是和应用程序关联的。 一旦Action类处理完业务逻辑,它把控制权返回给ActionServlet,Action类提供一个键 值作为返回的一部分,它指明了处理的结果。ActionServlet使用这个键值来决定在什么 视图显示Action的类处理结果。当ActionServlet把Action类的处理结果传送到指定的 视图,请求的过程也就完成了。间业务层是通过Spring框架实现的,首先建立一个 BaseAction,它继承了Action类,而其他定义的Action都要继承这个BaseAction。这个B aseAction需要导入AppContext工具类,这个AppContext需要导入Spring ;这样一个继承BaseAction的Action,就可以getXXXService()的方法得到某一个servi ce的实例----- 服务定位器的设计模式。持久(PO)层是由hibernate架构实现的,它包括关于整体数据 库的,通过Spring集成模板HibernateTemplate提供DAO 来使用PO。在Spring 的配置文件(applicationContext. xml)配置sessionFactory的bean 来管理hibernate。 本系统组件图如图1-3所示 2. 接口设计 2.1 用户接口 "用户接口 "语法结构 "软件回答信息 " "教务系统管理员登录 "以英文和汉字开头,不超过6个字 "进入主界面 " " "符 " " "信息管理相关操作 " "进行相应的操作" 3. 运行设计 3.1 运行模块组合 具体软件的运行模块组合为程序多窗口的运行环境,各个模块在软件运行过程能较 好的交换信息,处理数据。 3.2 运行控制 软件运行时有较友好的界面,基本能够实现用户的数据处理要求。 3.3 运行时间 系统的运行时间基本可以达到要求。 4. 系统数据结构 4.1 逻辑设计 教务管理系统E-R图 4.2 逻辑结构设计 表 1、表名称:bkb 表类型:约束表 含义:班级报考表 "字段名称 "字段类型 "Null "含义 "示例数据 " "id "整形 "否,自增 "主键列 "1 " "name "字符 " "值 "八班 " 2、表名称:cjb 表类型:约束表 含义:班级成绩表(打印表) "字段名称 "字段类型 "Null "含义 "示例数据 " "id "整形 "否,自增 "主键列 "1 " "cjb_id "整形 "否 "外键列 "1 " "name "字符 " "值 "八班 " 3、表名称:jhcjb 表类型:约束表 含义:班级计划成绩表(显示和打印) "字段名称 "字段类型 "Null "含义 "示例数据 " "id "整形 "否,自 "主键列 "1 " " " "增 " " " "name "字符 " "值 "八班 " 4、表名称:hks 表类型:约束表 含义:班计划学期考试课程表 "字段名称 "字段类型"Null "含义 "示例数据 " "id "整形 "否,自 "主键列 "1 " " " "增 " " " "fangguansuo"整形 "否 "外键列 "1 " "_id " " " " " "name "字符 " "值 "长三 " 5、表名

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值