软件概要设计的过程与任务

article/2025/9/14 4:10:09

在完成对软件系统的需求分析之后,接下来需要进行的是软件系统的概要设计。一般说来,对于较大规模的软件项目,软件设计往往被分成两个阶段进行。首先是前期概要设计,用于确定软件系统的基本框架;然后是在概要设计基础上的后期详细设计,用于确定软件系统的内部实现细节。

概要设计也称总体设计,其基本目标是能够针对软件需求分析中提出的一系列软件问题,概要地回答如何解决。例如,软件系统将采用什么样的体系构架、需要创建哪些功能模块、模块之间的关系如何、数据结构如何?软件系统需要什么样的网络环境提供支持、需要采用什么类型的后台数据库等。

应该说,软件概要设计是软件开发过程中一个非常重要的阶段。如果软件系统没有经过认真细致的概要设计,就直接考虑它的算法或直接编写源程序,这个系统的质量就很难保证。许多软件就是因为结构上的问题,使得它经常发生故障,而且很难维护。

设计过程

概要设计基本过程如下图所示,它主要包括三个方面的设计。首先是系统构架设计,用于定义组成系统的子系统,以及对子系统的控制、子系统之间的通信和数据环境等;然后是软件结构和数据结构的设计,用于定义构造子系统的功能模块、模块接口、模块之间的调用与返回关系,以及数据结构、数据库结构等。

概要设计要求建立在需求分析基础之上,软件需求文档是软件概要设计的前提条件。只有这样,才能使得开发出来的软件系统最大限度地满足用户的应用需要。

实际上,概要设计的过程也就是将需求分析之中产生的功能模型、数据模型和行为模型等分析结论进行转换,由此产生设计结论的过程。在从分析向设计的转换过程中,概要设计能够产生出有关软件的系统构架、软件结构和数据结构等设计模型来。这些结论将被写进概要设计文档中,作为后期详细设计的基本依据,能够为后面的详细设计、程序编码提供技术定位。

需要注意的是,概要设计所能够获得的还只是有关软件系统的抽象表达式,需要专心考虑的是软件系统的基本结构,至于软件系统的内部实现细节如何,则被放到以后详细设计中去解决。例如模块,概要设计中的模块只是一个外壳,虽然它有确定的功能边界,并提供了通信的接口定义,但模块内部还基本上是空的,诸多具体的功能加工细节则必须等到详细设计完成以后才能确定下来。因此,在有关软件设计的全部工作中,概要设计所提供的并不是最终设计蓝图,而只是一份具有设计价值的具体实施方案与策略,用于把握系统的整体布局。尽管概要设计并不涉及系统内部实现细节,但它所产生的实施方案与策略将会最终影响软件实现的成功与否,并影响到今后软件系统维护的难易程度。

设计任务

概要设计阶段的任务主要有以下几个方面:

1.制定规范

具有一定规模的软件项目总是需要通过团队形式实施开发,为了适应团队式开发的需要,在进入软件开发阶段之后,首先应该为软件开发团队制定在设计时应该共同遵守的规范,以便协调与规范团队内各成员的工作。

概要设计时需要制定的规范主要有:

(1)设计文档的编制标准,包括文档体系、文档格式、图表样式等。

(2)信息编码形式,硬件、操作系统的接口规约,命名规则等。

(3)设计目标、设计原则。

2.系统构架设计

系统构架设计就是根据系统的需求框架,确定系统的基本结构,以获得有关系统创建的总体方案。其主要设计内容包括:

(1)根据系统业务需求,将系统分解成诸多具有独立任务的子系统。

(2)分析子系统之间的通信,确定子系统的外部接口。

(3)分析系统的应用特点、技术特点以及项目资金情况,确定系统的硬件环境、软件环境、网络环境和数据环境等。

(4)根据系统整体逻辑构造与应用需要,对系统进行整体物理部署与优化。

很显然,当系统构架被设计完成之后,软件项目就可按每个具有独立工作特征的子系统为单位进行任务分解了,由此可以将一个大的软件项目分解成许多小的软件子项目。

3.软件结构设计

软件结构设计是在系统构架确定以后,对组成系统的各个子系统的结构设计。例如,将子系统进一步分解为诸多功能模块,并考虑如何通过这些模块来构造软件。

软件结构设计主要内容包括:

(1)确定构造子系统的模块元素。

(2)根据软件需求定义每个模块的功能。

(3)定义模块接口与设计模块接口数据结构。

(4)确定模块之间的调用与返回关系。

(5)评估软件结构质量,进行结构优化。

4.公共数据结构设计

概要设计中还需要确定那些将被许多模块共同使用的公共数据的构造。例如,公共变量、

数据文件以及数据库中数据等,可以将这些数据看作为系统的公共数据环境。

对公共数据的设计包括:

(1)公共数据变量的数据结构与作用范围。

(2)输入、输出文件的结构。

(3)数据库中的表结构、视图结构以及数据完整性等。

5.安全性设计

系统安全性设计包括:操作权限管理设计、操作日志管理设计、文件与数据加密设计以及特定功能的操作校验设计等。概要设计需要对以上方面的问题作出专门的说明,并制定出相应的处理规则。

例如操作权限,假如应用系统需要具有权限分级管理的功能,则概要设计就必须对权限分级管理中所涉及的分级层数、权限范围、授权步骤以及用户账号存储方式等,从技术角度作出专门的安排。

6.故障处理设计

软件系统工作过程中难免出现故障,概要设计时需要对各种可能出现的来自于软件、硬件以及网络通信方面的故障作出专门考虑。例如,提供备用设备、设置出错处理模块、设置数据备份模块等。

7.可维护性设计

软件系统在投入使用以后必将面临维护,如改正软件错误、扩充软件功能等。对此,概要设计需要作出专门安排,以方便日后的维护。例如,在软件中设置用于系统检测维护的专用模块;预计今后需要进行功能扩充的模块,并对这些接口进行专门定义。

8.编写文档

概要设计阶段需要编写的文档包括:概要设计说明书、数据库设计说明书、用户操作手册。此外,还应该制定出有关测试的初步计划。

上述文档中,概要设计说明书是概要设计阶段必须产生的基本文档,涉及系统目标、系统构架、软件结构、数据结构、运行控制、出错处理、安全机制等诸多方面的设计说明。

9.概要设计评审

在诸多概要设计任务完成之后,应当组织对概要设计的评审。

概要设计评审内容主要包括:

(1)需求确认:确认所设计的软件是否已覆盖了所有已确定的软件需求。

(2)接口确认:确认该软件的内部接口与外部接口是否已经明确定义。

(3)模块确认:确认所设计的模块是否满足高内聚、低耦合的要求,模块的作用范围是否在其控制范围之内。

(4)风险性:该设计在现有技术条件下和预算范围内是否能按时实现。

(5)实用性:该设计对于需求的解决是否实用。

(6)可维护性:该设计是否考虑了今后的维护。

(7)质量:该设计是否表现出了良好的质量特征。


http://chatgpt.dhexx.cn/article/M5d59Bsq.shtml

相关文章

软件工程技术--第四章 概要设计

第四章 概要设计 4.1 软件设计概述 4.1.1 软件设计的概念与重要性 ​ 软件设计是软件工程的重要阶段,是一个将软件需求转换为软件表示的过程。软件设计的基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务,即确定系统的物理模型&#xff0…

ios 新建项目关于Main.storyboard的处理

使用xcode新建新建项目时,都会带一个main.storyboard的主界面。如果你不进行代码控制,默认APP启动会加载main.storyboard这个界面。怎么使用这个界面来加载这里就不在介绍了,这里只说用代码加载主页,不使用main.storyboard时&…

storyboard 使用

Storyboard是一项令人兴奋的功能,在iOS5中首次推出,在开发app的界面时可以极大地节省时间。 如下图所示,这就是一个完整的应用的storyboard,接下来我们要学习如何通过这种方式创建应用。 现在你可能还不是很精确地知道我们的应用可…

ios storyboard简单用法

使用xcode5中的storyboard,做个简单的界面,第一次用简直一头雾水,摸索下来感觉也蛮方便的。 从左到右,从上到下,控件依次是:UITextFiled,UIButton, UILabel, UIPickerVi…

iOS开发18:Storyboard的简单使用

之前做的例子,我们经常会用到.xib文件,在其中我们可以进行界面的设计。不过如果想切换视图,我们就得自己写很多代码。自从苹果推出了Storyboard,我们可以在一个编辑区域设计多个视图,并通过可视化的方法进行各个视图之…

如何在xcode中使用storyboard

StoryBoard是iOS 5的新特征,目的是代替历史悠久的NIB/XIB,对于已经习惯了xib文件的孩子们来说,StoryBoard还不是那么熟悉。经过两天的研究,有了一些心得,在此分享。 一、如何使用storyboard简单实现Push页面&#xff…

Storyboard Reference

在某些情况下,你开发的应用可能包含有各种各样的复杂界面,如果你使用Storyboard来管理这些界面,通常你会将这些界面按照相应的逻辑分成许多子模块,放在不同的storyboard里,比如注册相关的放到Register.Storyboard&…

storyboard使用教程

Storyboard是最先在iOS 5引入的一项振奋人心的特性,大幅缩减构建App用户界面所需的时间。 要介绍Storyboard是什么,我打算从这张图讲起。下面是您将会在本教程中构建的Storyboard: image 或许你现在并不清楚这个App是用来做什么的&#xff0c…

关于storyboard的使用入门

 在iOS5以前,一直使用纯代码进行处理界面,尽管能够严格数据信息,但是操作上相比storyboards操作效率低,现就这个时尚的storyboards进行简要学习总结。 一 创建storyboards。 创建storyboards的方式有多种…

Storyboard入门

Storyboard 是iOS 5 中令人兴奋的一个新特性,他将为你在创建用户界面上节省很多时间。 那么究竟什么是Storyboard呢?我将用一幅图片来向你展示: 下面这个就是本教程中即将用到的Storyboard。 你或许不能精确的知道这个应用是做什么的,但是你可…

IOS开发入门之五——storyboard的使用(上)

需要iOS开发视频资料可以加我微信: 1914532832 验证信息请注明:IOS开发 上节介绍了纯代码开发,就是所有页面全部用代码来写,纯代码开发缺点就是比较慢的,而且很不直观,需要在App运行后才能看到页面效果。这节介绍重点…

IOS开发之——更换Storyboard

一 概述 新建项目的默认面板为Main.storyboard,用于向界面中添加控件并显示向项目中添加新的storyboard,并替换Main.storyboard 二 添加新的Storyboard 在Main.storyboard上右键,选择New File 在User Interface 分类下,选择Stor…

使用storyboard

story board是xcode4.2新增的一个特性,它将原有工程中的所有xib文件集成在一起,用拖拽的方式建立2个viewController之间的跳转关系,使得整个程序的UI跳转逻辑清楚明了。使用storyboard后,界面相关的代码编写将更少。 简单说…

Storyboard使用心得

最近接触IOS7新特性,之前项目都是使用xib,没有使用过storyboard,今天就研究下。首先,说下storyboard优缺点,优点:a). 流程结构清晰b). 有内置的segue支持c). 方便的实例化ViewController缺点:a). 所有的Vie…

Storyboard 自适应布局

原文链接:http://justsee.iteye.com/blog/2148987 通用的Storyboard 通用的stroyboard文件是通向自适应布局光明大道的第一步。在一个storyboard文件中适配iPad和iPhone的布局在iOS8中已不再是梦想。我们不必再为不同尺寸的Apple移动设备创建不同的storyboard文件&a…

IOS开发之Storyboard应用

(Storyboard)是一个能够节省你很多设计手机App界面时间的新特性,下面,为了简明的说明Storyboard的效果,我贴上本教程所完成的Storyboard的截图: 现在,你就可以清楚的看到这个应用究竟是干些什么…

Storyboard的使用

创建一个Storyboard工程 storyboard是在ios5中引入的新控件,能够更加清晰、简单的整合多个ViewController的关系,下面主要介绍一下怎么初建一个storyboard的工程。有关storyboard的介绍在后面的文章中提到。 首先利用xcode4.2创建一个新项目,…

Storyboard全解析

原文地址:Storyboard全解析 作者:Capacity 故事版(Storyboard)是一个能够节省你很多设计手机App界面时间的新特性,下面,为了简明的说明Storyboard的效果,我贴上本教程所完成的Storyboard的截图&…

Storyboard 解析

故事版(Storyboard)是一个能够节省你很多设计手机App界面时间的新特性,下面,为了简明的说明Storyboard的效果,我贴上本教程所完成的Storyboard的截图: 现在,你就可以清楚的看到这个应用究竟是干…

故事板(Storyboard)

1 使用Storyboard完成各项常见功能 1.1 问题 故事板Storyboard是IOS5开始引入的一个新的系统,将多个视图文件(类似xib文件)集中到一个单独的可视化工作区间,负责创建和管理所有的界面及界面间的跳转,每一个Storyboard中…