简单计算器的需求分析(共8页).doc
精选优质文档-倾情为你奉上简单计算器的需求分析一 确定系统的要求1系统功能要求在程序设计过程中,该程序是要实现简单的加减乘除 运算等功能。还要实现数据的输入,输出,计算,显示及程 序退出等功能。2系统性能要求用户提交查询时,得到返回结果的延时不得超过 5秒 提交数据录入是,得到结果的延时不得超过 5秒。系统的性能包括内容较多, 在本系统中主要约定了作业 的响应时间要求。 作业可以定义为 “一个交易是当一个单一 角色跨越系统边界触发一个事件并执行一定数量的处理和 数据库访问,它将影响架构中的所有服务器层” 。作业响应 时间指完成目标系统中的交互或批量处理所需的响应时间。 3系统运行要求(1 用 户界面系统的用户界面应作到可靠性、简单性、易学习 和使用。(2 硬 件接口在输入方面,对于键盘、鼠标的输入,可用 C+的标准输入 /输出,对输入进行处理。在输出方面, 打印机的连接及使用, 也可用 C+的标准 输入 /输出对其进行处理。在网络传输部分,在网络硬件部分, 为了实现高速传输,将使用高速 A TM 。二 分析系统的数据要求任何一个软件系统本质上都是系统信息处理系统, 系统必 须处理的信息和系统应该产生的信息在很大程度上决定系统的 面貌,对软件的设计有深远的影响。计算器上数字 0 9为一个控件数组,加、减、乘、除为一 个控件数组,其余为单一的控件。给对话框添加菜单。制定高级按钮控件,该按钮具有不规则的形状,可以根据 用户鼠标的位置和单击状态的不同,显示不同的颜色。制定高级编辑控件,该编辑控件可以指定文本文字的字体和颜 色。输入的原始数据、运算中间数据和结果都显示在窗口顶部 的同一个标签中。概要设计与详细设计的区别概要设计就是设计软件的结构, 包括组成模块, 模块的层次结构, 模块的调 用关系, 每个模块的功能等等。 同时, 还要设计该项目的应用系统的总体数据结 构和数据库结构, 即应用系统要存储什么数据, 这些数据是什么样的结构, 它们 之间有什么关系。详细设计阶段就是为每个模块完成的功能进行具体的描述, 要把功能描述转 变为精确的、结构化的过程描述。概要设计阶段通常得到软件结构图详细设计阶段常用的描述方式有:流程图、 N-S 图、 PAD 图、伪代码等概要设计和详细设计在软件设计中, 大家经常问到的一个问题是:概要设计应该怎样一个概要法,详细设计应该怎样一个详细法?这个问题在公司内部经常有人问。现在陈述一下。我们公司的研发流程是瀑布型的, 这个模型中的分析、 设计阶段是基于经典 的结构化方法。结构化设计方法的基本思路是:按照问题域, 将软件逐级细化, 分解为不必 再分解的的模块, 每个模块完成一定的功能, 为一个或多个父模块服务 (即接受 调用 , 也接受一个或多个子模块的服务 (即调用子模块 。 模块的概念, 和编程 语言中的子程序或函数是对应的。这样一来,设计可以明显地划分成两个阶段:概要 (结构 设计阶段:把软件按照一定的原则分解为模块层次, 赋予每个 模块一定的任务,并确定模块间调用关系和接口。详细设计阶段:依据概要设计阶段的分解, 设计每个模块内的算法、 流程等。 概要设计阶段:在这个阶段, 设计者会大致考虑并照顾模块的内部实现, 但不过多纠缠于此。 主要集中于划分模块、 分配任务、 定义调用关系。 模块间的接口与传参在这个阶 段要定得十分细致明确, 应编写严谨的数据字典, 避免后续设计产生不解或误解。 概要设计一般不是一次就能做到位, 而是反复地进行结构调整。 典型的调整是合 并功能重复的模块, 或者进一步分解出可以复用的模块。 在概要设计阶段, 应最 大限度地提取可以重用的模块,建立合理的结构体系,节省后续环节的工作量。概要设计文档最重要的部分是分层数据流图、 结构图、 数据字典以及相应的 文字说明等。以概要设计文档为依据,各个模块的详细设计就可以并行展开了。 详细设计阶段 :在这个阶段, 各个模块可以分给不同的人去并行设计。 在详细设计阶段, 设 计者的工作对象是一个模块, 根据概要设计赋予的局部任务和对外接口, 设计并 表达出模块的算法、 流程、 状态转换等内容。 这里要注意, 如果发现有结构调整 (如分解出子模块等 的必要, 必须返回到概要设计阶段, 将调整反应到概要设 计文档中, 而不能就地解决, 不打招呼。 详细设计文档最重要的部分是模块的流 程图、状态图、局部变量及相应的文字说明等。一个模块一篇详细设计文档。 概要设计文档相当于机械设计中的装配图, 而详细设计文档相当于机械设计 中的零件图。文档的编排、装订方式也可以参考机械图纸的方法。我们公司对模块的认识和传统定义有所不同, 认为是较大的软件功能单元才 可以称作模块。这种认识使大家对概要设计和详细设计的分工产生了混乱的理 解,降低了文档的可用性,应该予以纠正。概要设计中较顶层的部分便是所谓的方案。 方案文档的作用是在宏观的角度 上保持设计的合理性。有的项目采用面向对象的分析、 设计方法。 可能在概要设计、 详细设计的分 工上疑问更多。 其实, 面向对象的分析、 设计方法并没有强调结构化方法那样的阶段性, 因此一般不引入概要、 详细设计的概念。 如果按照公司的文档体系, 非 要有这种分工的话, 可以将包的划分、 类及对象间的关系、 类的对外属性、 方法 及协作设计看做概要设计;类属性、方法的内部实现看做详细设计。1.需求分析 -产生软件功能规格说明书 , 需要确定用户对软件的需求 , 要作到 明确、 无歧义。 不涉及具体实现方法。 用户能看得明白, 开发人员也可据此进行 下面的工作(概要设计 。2.概要设计 -产生软件概要设计说明书,说明系统模块划分、选择的技术路 线等,整体说明软件的实现思路。并且需要指出关键技术难点等。3.详细设计 -产生软件详细设计说明书,对概要设计的进一步细化,一般由 各部分的担当人员依据概要设计分别完成, 然后在集成, 是具体的实现细节。 理 论上要求可以照此编码。概要设计和详细设计的区别与联系软件设计采用自顶向下、 逐次功能展开的设计方法, 首先完成总体设计, 然 后完成各有机组成部分的设计。根据工作性质和内容的不同, 软件设计分为概要设计和详细设计。 概要设计 实现软件的总体设计、 模块划分、 用户界面设计、 数据库设计等等; 详细设计则 根据概要设计所做的模块划分, 实现各模块的算法设计, 实现用户界面设计、 数 据结构设计的细化,等等。概要设计是详细设计的基础, 必须在详细设计之前完成, 概要设计经复查确 认后才可以开始详细设计。 概要设计, 必须完成概要设计文档, 包括系统的总体 设计文档、 以及各个模块的概要设计文档。 每个模块的设计文档都应该独立成册。 详细设计必须遵循概要设计来进行。 详细设计方案的更改, 不得影响到概要 设计方案; 如果需要更改概要设计, 必须经过项目经理的同意。 详细设计, 应该 完成详细设计文档, 主要是模块的详细设计方案说明。 和概要设计一样, 每个模 块的详细设计文档都应该独立成册。概要设计里面的数据库设计应该重点在描述数据关系上,说明数据的来龙去 脉, 在这里应该结合我们的一下结果数据, 说明这些结果数据的源点, 我们这样 设计的目的和原因。详细设计里的数据库设计就应该是一份完善的数据结构文 档,就是一个包括类型、命名、精度、字段说明、表说明等内容的数据字典。 概要设计里的功能应该是重点在功能描述,对需求的解释和整合,整体划分 功能模块, 并对各功能模块进行详细的图文描述, 应该让读者大致了解系统作完 后大体的结构和操作模式。 详细设计则是重点在描述系统的实现方式, 各模块详 细说明实现功能所需的类及具体的方法函数,包括涉及到的 sql 语句等。概要设计,详细设计之间的关系是什么?Q:我的看法:概要设计只说明系统有多少个模块, 各模块之间的接口和个模块本身的功能 详细设计说明某个具体模块如何实现,粒度应该比程序略高一些但是问题来了, 各个模块之间是有层次关系的, 也有先后逻辑关系。 这就说 明, 在概要设计中, 还必须考虑模块的实现细节, 否则, 你怎么知道这个模块下 面要划分子模块?你怎么知道各子模块的调用顺序?这就说明, 概要设计和详细设计是重叠进行的, 而软件工程书上说的确是顺 序进行的,不知道是不是我的理解有问题。举个例子,例如排序程序,如果设计 2个模块:一个主模块用于排序子模块用于交换 2个变量,主模块调用子模块,但是子模块 是怎么设计出来的呢?肯定是你先想到了用冒泡等排序方式的时候需要交换数 据, 这已经考虑了主模块足够多的细节, 似乎属于 " 详细设计 " 了, 但是目前进行 的是概要设计,这就产生了我所说的重叠的情况。A:看看上面的帖子,有意思的居多。上面也有朋友说到用建筑的例子来比喻。软件的概要设计,主要是建立软件系统的整体架构,也就是我们在盖房子时候, 需要先将房子的整个架子构建起来。软件的详细设计, 主要是将软件系统的各个部分的具体设计方法、 逻辑、 功能采 用文字方式进行表述。这样在实现过程中, Coding 人员原则上严格按此进行代 码实现即可。这样的一个最为简单的例证:我们可以将代码交付第三方来做。 验证与跟踪采取 设计来。我看上面还有一个朋友说:快速做代码。 这个本身没有值得批评之处。 但只要想 一下, 你写的代码没有任何设计思想、 文档留下的情况, 一旦你离开, 如何维护? 重新设计吗?还是花费几倍人力去研究你写的几千 /万,甚至几十万行代码?如 果是这样的,你没错,关键是你们老板太对了,钱算什么。另外的一个问题是:中国人如此聪明, 但中国为什么没有出现巨型软件产品呢? 个人英雄主义依然很严重,老板的短视利益行为大行其道。软件工程 系列文档 (项目管理、需求分析、概要设计、详细设计、测试、维护、用户手 册等 按照传统软件工程的过程需求分析、概要设计、详细设计的区别如下 :1. 需求分析 -产生 软件功能规格说明书需要确定用户对软件的需求要作到明确、无歧义。 不涉及具体实现方法。用户能看得明白,开发人员也可据此进行下面的工作(概要设计 2. 概要设计 -产生 软件概要设计说明书,说明 系统 模块划分、选择的技术路线等,整体说 明软件的实现思路。并且需要指出关键技术难点等。3. 详细设计 -产生软件详细设计说明书, 对概要设计的进一步细化, 一般由各部分的担当人员依据概要设计分别完成,然后在集成,是具体的实现细节。理论上要求可以照此编码。 一般说来,需求分析属于软件定义方面;而概要设计、详细设计属于软件开发的阶段。 概要设计就是设计软件的结构,包括组成模块,模块的层次结构,模块的调用关系,每个模 块的功能等等。同时,还要设计该项目的应用系统的总体数据结构和数据库结构,即应用系 统要存储什么数据,这些数据是什么样的结构,它们之间有什么关系。 详细设计阶段就是为每个模块完成的功能进行具体的描述, 要把功能描述转变为精确的、 结 构化的过程描述。 概要设计阶段通常得到软件结构图 详细设计阶段常用的描述方式有:流程图、N-S 图、PAD 图、伪代码等 专心-专注-专业