结构化设计方法

结构化设计方法
结构化设计方法

结构化设计方法

刘凤祥

目录

第一模块软件工程和软件过程 (3)

瀑布模型 (4)

快速原型模型 (5)

增量模型(渐增模型) (6)

螺旋模型 (7)

喷泉模型 (8)

第二模块结构化分析 (9)

概述 (9)

与用户通信的技术 (9)

分析建模与规格说明 (10)

实体——关系图 (11)

数据流图 (12)

状体转换图 (13)

数据字典 (14)

练习 (15)

第三模块结构化设计 (15)

第四模块结构化实现 (32)

第五模块软件项目管理 (33)

第六模块案例分析 (33)

第一模块 软件工程和软件过程

一、 概述

1. 谁有软件开发的经验?软件开发的大概过程是什么?曾遇到过什么问题?

2. 计算机系统的发展所经历的四个阶段

3. 软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题

4. 产生软件危机的原因

5. 消除或减少软件危机的途径 二、 软件工程

①把系统化的、规范化的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;②研究①中提到的途径。 三、 软件工程的基本原理

1. 用分阶段的生命周期计划严格管理

2. 坚持进行阶段评审

3. 实行严格的产品控制

4. 采用现代程序设计技术

5. 结果应能清楚地审查

6. 开发小组的人员应该少而精

7. 承认不断改进软件工程实践的必要性 1)60年代中期以前 无软件设计的文档资料

2)出现了软件作坊,“软件危机”出现,1968年提出“软件工程”的概念 3)20世纪70年代中期开始,10年。主要特点是出现了微处理器 4)软硬件的综合效果

五、生命周期模型

瀑布模型

图1.2传统的瀑布模型

1. 阶段间具有顺序性和依赖性

2. 推迟实现的观点(尽量晚的开始程序的编写)

3. 质量保证的观点

优点:可强迫可发人员采用规范化的方法;严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。

缺点:软件产品交付用户前,用户仅仅通过写在纸上的静态的规格说明,很难全面正确地认识动态的软件产品

图1.3实际的瀑布模型

快速原型模型

(实线箭头表示开发过程,虚线箭头表示维护过程)

图1.4快速原型模型

优点:不带反馈环,软件产品的开发基本上是线性顺序进行的,有助于保证用户的真实需要

得到满足

增量模型(渐增模型)

图1.5增量模型

优点:1. 能在较短时间内向用户提交可完成

图1.6风险更大的增量模型

螺旋模型

图1.7简化的螺旋模型

图1.8完整的螺旋模型

喷泉模型

图1.9喷泉模型

六、练习

1.软件就是程序。(错)

2.软件工程方法学包含三个要素:方法、工具和过程。(对)

3.目前使用最广泛的软件工程方法学分别是:传统方法学和面向对象方法学。

4.软件是程序、数据以及相关文档的完整集合。

5.论述软件生命周期的不同阶段,以及各阶段的基本任务<*在上*>

6.采用增量模型开发软件时,目标是一次就把一个满足所有需求的产品提交给用户。(错)

7.需求分析和规格说明是比较简单的过程,应快速完成。(错)

8.螺旋模型是在每个阶段之前都增加了风险分析过程的快速模型模型。

9.快速原型模型是文档驱动的。()

10.瀑布模型的成功很大程度上是由于它基本上是一种____驱动的模型。

11.螺旋模型的成功很大程度上是由于它基本上是一种____驱动的模型。

12.快速原型应该具备的第一个特征是___ ___。

13.软件测试计划开始于需求分析阶段,完成于( D )阶段

A需求分析 B软件设计 C软件实现 D软件测试

14.只有质量差的软件产品才需要维护。()

15.什么是需求分析?需求分析阶段的基本任务是什么?

答:需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。需求分析阶段的基本任务是:要准确的定义新系统的目标,为了满足用户需要,回答系统必须“做什么”的问题。

17. 为什么软件需要维护?简述软件维护的过程。

答:1.软件维护就是要针对用户使用软件产品过程提出的问题而对软件产品进行相应的修改或演化,从而修正错误,改善性能或其它特征,以及使软件适应变化的环境。

2.软件维护的过程:提出维护要求,分析维护要求,提出维护方案,审批维护方案,确定维护计划,修改软件设计,修改程序,测试程序,复查验收。

18.什么是软件工程

软件工程是:①把系统化的、规范化的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;②研究①中提到的途径。

19.简述软件工程的七条基本原理

软件工程的基本原理

1. 用分阶段的生命周期计划严格管理

2. 坚持进行阶段评审

3. 实行严格的产品控制

4. 采用现代程序设计技术

5. 结果应能清楚地审查

6. 开发小组的人员应该少而精

7. 承认不断改进软件工程实践的必要性

第二模块结构化分析

概述

1.需求分析是发现、求精、建模、规格说明和复审的过程

2.结构化分析:是一种建立模型的活动,通常建立数据模型、功能模型和行为模型三种。

3.结构化分析方法应该遵守的准则

①数据模型(E_R图)

②功能模型(数据流图)

③行为模型(状态转换图)

④对三种模型进行分解,用层次的方式展示细节

⑤分析过程应该从要素信息移向实现细节

与用户通信的技术

1.访谈

形式:正式

非正式:开放式问题,鼓励被访问者表达自己的想法

具体技术:调查表

情景分析技术

目的:了解用户的真正需求。

2.简易的应用规格说明技术

面向团队的需求收集法

初步访谈

开发者和用户都写出“产品需求”

选定会议地址、日期和时间,并选举一个协调人

邀请开发者和用户双方组织的代表出席会议,在会议日期前把写好的产品需求分发给每位

与会者

每位与会者在开会前几天认真复审产品需求

会议开始,第一个议题:是否需要这个新产品

讨论,删除或增添表项或组合不同列表。这个阶段严格禁止批评与争论

创建新组合列表,得出一致意见

分小组为列表中的一个或多个项目制订出小型规格说明

细化、求精

每位与会者制订出产品的一整套确认标准,并提交会议讨论

由一名或多名与会者根据会议成果起草完整的规格说明优点:开发者和用户部分彼此,集思广益密切合作

即时讨论和求精

有能导出规格说明的具体步骤

3.软件原型

特征:快速、容易修改

快速构建和修改原型的三种方法和工具:第四代技术(4GT)、可重用的软件结构、形式化规格说明和原型环境

分析建模与规格说明

软件需求规格说明框架

Ⅰ.引言

A .系统参考文献

B .整体描述

C .软件项目约束

Ⅱ.信息描述

A .信息内容

B .信息流

1 .数据流

2 .控制流

Ⅲ.功能描述

A .功能分解

B .功能描述

1 .处理说明

2 .限制

3 .性能需求

4 .设计约束

5 .支撑图

C .控制描述

1 .控制规格说明

2 .设计约束〖ZK)〗

Ⅳ.行为描述

A .系统状态

B .事件和动作

Ⅴ.确认标准

A .性能范围

B .测试种类

C .预期的软件响应

D .特殊考虑

Ⅵ.参考书目

Ⅶ.附录

结构化分析实质上是一种创建模型的活动,分析模型的核心是“数据字典”,围绕这个核心有以下三种不同的图

实体——关系图

关系、属性、联系(3种联系)

数据流图

数据流图有四种成分:源点或终点、处理、数据存储和数据流。

假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据;零件编号、零件名称、定货数量、目前价格、主要供应者和次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。

表3.1组成数据流图的元素可以从描述问题的信息中提取

一旦把数据流图的四种成分都分离出来以后,就可以着手画数据流图了

状体转换图

在需求分析过程中应该建立起目标系统的行为模型。状态转换图(简称状态图)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。

状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。状态规定了系统对事件的响应方式。系统对事件的响应,既可以是做一个(或一系列)动作,也可以是仅仅改变系统本身的状态,还可以是既改变状态又做动作。事件就是引起系统状态转换的控制信息

符号

图3.3状态图中使用的主要符号

例子

图3.4电话系统的状态图

数据字典

数据字典:描述数据的信息的集合,是对系统中使用的所有数据元素的定义的集合。

维护数据字典几乎是不可能的,因此,应该使用CASE工具来创建和维护数据字典。

练习

1.E_R图用来描述数据模型。()

2.DFD用来描述数据模型。()

3.数据流图中的箭头表示____。

4.____是引起系统状态转换的控制信息。

5.E_R图中矩形框代表,菱形框代表实体集间的联系,椭圆框代表实体集的属性

6.银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员输入系

统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。用数据流图描绘本系统的功能,并用实体联系图描绘系统中的数据对象。

7.复印机的工作过程大致如下:未接到复印命令时处于闲置状态,一旦接到复印命令则进入

复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告,等待维修人员来排除故障,故障排除后回到闲置状态。试用状态转换图描绘复印机的行为。8.目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病

人的病情变化,还可能会延误抢救时机。某医院打算开发一个以计算机为中心的患者监护系统,医院对患者监护系统的基本要求是随时接收每个病人的生理信号(脉搏、体温、血压、心电图等),定时记录病人情况以形成患者日志,当某个病人的生理信号超出医生规定的安全范围时向值班护士发出警告信息,此外,护士在需要时还可以要求系统印出某个指定病人的病情报告。试写出问题定义,并且分析开发这个系统的可行性。分别用E_R 图、数据流图和状态图描绘患者监护系统的数据、功能和行为模型。

9.分析模型的核心是数据字典_。

10.访谈有两种基本形式,分别是的和非正式的访谈。

11.画数据流图要注意哪些事项?

答:1.设计数据流图时只需考虑系统必须完成的基本逻辑功能,不需要考虑怎样具体的实现这些功能。2.从顶层数据流开始。3.并不是所有数据存储和数据流都能直接从问题描述中提取出来;4.当进一步分解将涉及如何具体地实现一个功能时,就不应该在分解了;5.数据流图中个成分的命名要仔细推敲,看是否恰当。

12.什么是单元测试和集成测试?他们各有什么特点?

答:单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。

集成测试也叫组装测试、联合测试、子系统测试或部件测试。集成测试是在单元测试的基础上,将所有模块按照概要设计要求组装成为子系统或系统。

特点:1.单元测试大量使用白盒测试技术,检查模块控制结构中的特定路径,以确保做到完全覆盖并发现最大数量的错误。2. 集成测试是测试和组装软件的系统化技术,是把模块按照设计要求组装起来的同时进行测试,要目标是发现与接口有关的问题。

第三模块结构化设计

软件设计在软件工程中处于技术核心地位

软件设计任务时应该遵循的基本原理

模块化:可分解、可组装、可理解、连续性、保护性

抽象

逐步求精

信息隐藏

模块独立高内聚:一个模块内部各个元素彼此结合的紧密程度低耦合(数据耦合、控制耦合、内容耦合)

启发规则

1. 改进软件结构提高模块独立性

2. 模块规模应该适中

3. 深度、宽度、扇出和扇入都应适当

4. 模块的作用域应该在控制域之内

图5.2模块的作用域和控制域

5. 力争降低模块接口的复杂程度

6. 设计单入口单出口的模块

7. 模块功能应该可以预测

层次图和HIPO图

图5.3正文加工系统的层次图

图5.4带编号的层次图(H图)

结构图

图5.5结构图的例子——产生最佳解的一般结构

图5.6判定为真时调用A,为假时调用B

图5.7模块M循环调用模块A、B、C 面向数据流的设计方法

概念

1. 变换流

2. 事务流

图5.8变换流

图5.9事务流

3. 设计过程

图5.10面向数据流方法的设计过程变换分析

1. 例子

2. 设计步骤

图5.11数字仪表板系统的数据流图

第4章 结构化设计方法

第4章结构化设计方法 4.1 当你“编写”程序时你设计软件吗?软件设计和编码有什么不同吗? 在“编写”程序时并没有设计软件。软件设计包括概要设计和详细设计,编码是将详细设计中的过程描述转换成用程序设计语言来描述。 4.2 举出3个数据抽象的例子和可以用来操作这些数据抽象的过程抽象的一个例子。 抽象是忽略事物的细节,获取其本质特征的过程。抽象是一种重要的机制,使人们能够对复杂系统能够很好地理解、交流和推理。在软件领域,可以将抽象分为两类,即数据抽象和过程抽象。 在传统的结构化程序设计语言中,就提供了这两种抽象机制。 (1) 数据抽象:在所有的结构化程序设计语言中,用户都可以自定义抽象数据类型。如定义抽象数据类型Student(学生)、Course(课程)、ClassScoreList(班级成绩单)。 (2) 过程抽象:过程抽象也称为是基于方法的抽象。过程抽象使我们关心处理过程的名字和它能做什么,而无需知道如何完成所有实现细节。如求班级总平均分average(ClassScoreList)就是一个过程抽象。 在面向对象的程序设计语言中,抽象与封装的概念密切相关,数据抽象和相关的过程抽象被封装在类中,不同类中相似的过程抽象(方法)又可以进一步抽象,放在接口中。封装是保证事物有明确内外界限的机制。内部是受保护的,与外部事物相隔离。 4.3 应在什么时候把模块设计实现为单块集成软件?如何实现?性能是实现单块集成软件的唯一理由吗? 由于模块之间的调用降低了系统的运行速度,可能会导致满足不了用户的性能要求,这时就需要将软件设计为单块集成软件。但是在设计时,最好按照模块化的原则进行设计,只是没有显式的模块定义而已。这样的程序也具有模块化的优点。性能是实现单块集成软件的唯一理由。 4.4 是否存在一种情况:复杂问题需要较少的工作去解决?这样的情况对模块化观点有什么影响? 通过对复杂的问题进行合理分解,分解为若干个相对简单及独立的子问题,就可以用较少的工作去解决。这种情况能够较好地支持模块化的观点,每个子问题用单独的模块去解决,模块之间应该是高内聚、低耦合的,这样才能减少工作量,否则,虽然每个模块的工作简单了,但模块之间的联系很复杂,也增加了问题解决的难度和工作量。

结构化分析设计与面向对象分析设计比较研究

结构化分析设计与面向对象分析设计比较研究 重庆工商大学计算机科学与技术08软件龚霞 指导老师康世瀛 中文摘要:解析了结构化方法和面向对象方法这两种软件开发方法具有的分析设计过程,讨论了各自在不同软件开发中的应用及局限性,提出了在选用面向对象开发大型软件系统的同时可结合结构化方法。 关键词:软件开发;结构化方法;面向对象方法 Abstract:This paper anatomizes the analysis and design process of Structural method and objected-oriented method,discusses their applications and disadvantages and proposes that structural method can also be used while developing the large-scale software systems in selecting the objected-oriented method. Key words:software-development;objected-oriented method;structural method 一、引言 结构化方法由E.Yourdon和L.L.Constantine在1978年提出,结构化方法又可称为面向功能的软件开发方法或面向数据流的软件开发方法。结构化方法是建立在软件生存周期的模型基础上的一种软件开发方法,相对于早期的个体化开发方法无疑是前进了一大步。 由于传统的生命周期开发学存在下面的问题:生产率提高的幅度远不能满足需求,软件的重用度很低,软件难以维护,软件往往不能满足用户的需求。所以出现了面向对象软件开发方法。这是一种自底向上和自顶向下相结合的方法,而且它以对象建模为基础,从而不仅考虑了输入、输出数据结构,实际上也包含了所有对象的数据结构,所以面向对象的软件开发方法彻底实现了PAM没有完全实现的目标。不仅如此,面向对象技术在需求分析、可维护性和可靠性这三个软件开发的关键环节和质量指标上有了

结构化程序设计方法

结构化程序设计方法 设计方法的产生 结构化程序设计由迪克斯特拉(E.W.dijkstra)在1969年提出,是以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,这样使完成每一个模块的工作变单纯而明确,为设计一些较大的软件打下了良好的基础。 基本要点 1.采用自顶向下,逐步求精的程序设计方法 在需求分析,概要设计中,都采用了自顶向下,逐层细化的方法。 2.使用三种基本控制结构构造程序 任何程序都可由顺序、选择、重复三种基本控制结构构造。 (1)用顺序方式对过程分解,确定各部分的执行顺序。 (2)用选择方式对过程分解,确定某个部分的执行条件。 (3)用循环方式对过程分解,确定某个部分进行重复的开始和结束的条件。

(4)对处理过程仍然模糊的部分反复使用以上分解方法,最终可将所有细节确定下来。 3. 主程序员组的组织形式指开发程序的人员组织方式应采用由一个主程序员(负责全部技术活动)、一个后备程序员(协调、支持主程序员)和一个程序管理员(负责事务性工作,如收集、记录数据,文档资料管理等)三个为核心,再加上一些专家(如通信专家、数据库专家)、其他技术人员组成小组。 设计语言 C,FORTRAN,PASCAL,Ada,BASIC 设计方法的原则 自顶向下

程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。 逐步细化 对复杂问题,应设计一些子目标作为过渡,逐步细化。 模块化设计 一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解为子目标,再进一步分解为具体的小目标,把每一个小目标称为一个模块。 限制使用goto语句 结构化程序设计方法的起源来自对GOTO语句的认识和争论。肯定的结论是,在块和进程的非正常出口处往往需要用GOTO语句,使用GOTO语句会使程序执行效率较高;在合成程序目标时,GOTO语句往往是有用的,如返回语句用GOTO。否定的结论是,GOTO语句是有害的,是造成程序混乱的祸根,程序的质量与GOTO语句的数量呈反比,应该在所有高级程序设计语言中取消GOTO语句。取消GOTO语句后,程序易于理解、易于排错、容易维护,容易进行正确性证明。

结构化分析方法

结构化分析方法 ? 1.“所有蔬菜都特价;土豆是种蔬菜;所以土豆也特价。”这段话运用的分析方法是()。(单选题6分)得分:6分 o A.演绎 o B.归纳 o C.对比 o D.举例 ? 2.()是总结现有情况,形成一般化结论。(单选题6分)得分:6分 o A.演绎 o B.归纳 o C.对比 o D.举例 ? 3.“虚心使人进步,骄傲使人落后。”是运用了()的分析方法。(单选题6分)得分:6分 o A.演绎 o B.归纳 o C.对比 o D.举例 ? 4.()是最为常见的演绎形式。(单选题6分)得分:6分 o A.选言推理 o B.假言推理

o C.三段论演绎 o D.关系推理 ? 5.()就是从普遍性的理论知识出发,去认识个别的、特殊的现象的一种逻辑推理方法。(单选题6分)得分:6分 o A.演绎 o B.归纳 o C.对比 o D.举例 ? 6.演绎包括的具体形式有()。(多选题8分)得分:0分 o A.三段论演绎 o B.选言推理 o C.假言推理 o D.关系推理 ?7.对比包括()。(多选题8分)得分:0分 o A.正面对比 o B.反面对比 o C.正物对比 o D.反物对比 ?8.归纳可分为()。(多选题8分)得分:8分 o A.完全归纳 o B.分层归纳 o C.整体归纳

o D.不完全归纳 ?9.归纳是指从许多个别的事物中概括出一般性()的思维方法。(多选题8分)得分:8分 o A.概念 o B.原则 o C.结论 o D.内容 ?10.对比是把两个()的事物放在一起,用比较的方法加以描述或说明。(多选题8分)得分:8分 o A.相反 o B.一致 o C.相对 o D.相符 ?11.演绎是从一般原则到具体事实的过程。(判断题6分)得分:6分 o正确 o错误 ?12.归纳就是从普遍性的理论知识出发,去认识个别的、特殊的现象的一种逻辑推理方法。(判断题6分)得分:6分 o正确 o错误

结构化分析和设计方法

3.1.2结构化方法的基本思想 结构化方法是“结构化分析”(Structured Analysis,SA)和“结构化设计”(Structured Design,SD)的总称,结构化方法是目前最成熟、应用最广泛的信息系统开发方法之一,他的优点是有一套严格的开发程序,各开发阶段都要求有完整的文档纪录,国内外已有许多成功开发的例子。 3.1.2.1结构化分析 1.结构化系统分析思想 结构化分析方法是由美国Yourdon公司在20世纪70年代提出的,其基本思想是将系统开发看成工程项目,有计划、有步骤地进行,是一种应用很广的开发方法,适用于分析大型信息系统。 结构化分析方法采用“自顶向下,逐层分解”的开发策略。按照这种策略,再复杂的系统也可以有条不紊的进行,只要将复杂的系统适当分层,每层的复杂程度即可降低,这就是结构化分析的特点。 2.结构化分析方法的内容 结构化分析之后获得的文档是系统分析报告,系统分析报告是由下面几个部分组成的:组织结构及其分析,现行业务流程及其分析,现有数据和数据流程及其分析,新系统地初步方案和补充材料,如开发计划等。 3.结构划分此方法的特点 结构化分析方法有以下特点 结构化分析方法简单,易于掌握和使用。 结构化分析方法将分析的结果用图形表示,如业务流程图,数据流程图等,这些图形都有一套标准图符组成,从而将分析结果简明易懂的展示在用户面前。 结构化分析的实施步骤实现分析实现环境中已存在的系统,在此基础上再构思即将开发的目标系统,从而大大降低了问题的复杂程度,符合人们认识世界、改造世界的一般规律。 4.结构化分析方法的局限 结构化分析方法是一种行之有效的方法,但也有一定的局限性。局限性可以概括成以下几个方面: 结构化分析方法要求对系统有完整确切的需求定义,而实际上这是非常困难的。

(1)下列选项中不属于结构化程序设计方法的是

(1)下列选项中不属于结构化程序设计方法的是 A)自顶向下B)逐步求精C)模块化D)可复用 (2)下列选项中不符合良好程序设计风格的是() A) 源程序文档化B) 数据说明的次序要规范化 C) 避免滥用GOTO语句D)模块设计要高藕合、低内聚 (3)下面描述中,符合结构化程序设计风格的是______ A. 使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑 B. 模块只有一个入口,可以有多个出口 C. 注重提高程序的执行效率 D. 不使用goto语句 (4)下面概念中,不属于面向对象方法的是 ( ) A. 对象 B. 继承 C. 类 D. 过程调用 (5)结构化程序设计主要强调的是 ( ) A. 程序的规模 B. 程序的易读性 C. 程序的执行效率 D. 程序的可移植性 (6)对建立良好的程序设计风格,下面描述正确的是( ) A.程序应简单、清晰、可读性好 B. 符号名的命名要符合语法 C. 充分考虑程序的执行效率 D. 程序的注释可有可无 (7)下面对对象概念描述错误的是( ) A.任何对象都必须有继承性 B.对象是属性和方法的封装体 C.对象间的通讯靠消息传递 D.操作是对象的动态性属性 (8)算法一般都可以用哪几种控制结构组合而成( ) A.循环、分支、递归 B.顺序、循环、嵌套 C.循环、递归、选择 D.顺序、选择、循环 (9)在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送( ) A. 调用语句 B.命令 C.口令 D.消息 (10) 面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是( ) A. 模拟现实世界中不同事物之间的联系 B. 强调模拟现实世界中的算法而不强调概念 C. 使用现实世界的概念抽象地思考问题从而自然地解决问题 D. 鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考

结构化分析方法

结构化分析方法 一、需求分析与需求分析方法 需求阶段是软件开发的关键阶段。 需求分析的任务:准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么;用《需求规格说明书》规范的形式准确地表达用户的需求。 需求分析阶段的工作(四方面): ◆需求获取:确定系统各方面需求;全面地提炼出系统的功能性与非功能性需求。 ◆需求分析:对获取的需求分析和综合,给出系统解决方案和逻辑模型。 ◆编写需求规格说明书:为用户、设计人员的交流提供方便,还可作为控制软件开发进程的依据。 ◆需求审评:复审需求分析阶段的工作,验证需求文档的一致性、可行性等。 1、需求获取的目的 清楚地理解所要解决的问题、完整地获取用户需求。 2、需求获取的内容 用户需求分类: (1)功能性需求 定义了系统做什么(描述系统必须支持的功能和过程)。 (2)非功能性需求(技术需求) 定义了系统工作时的特性(描述操作环境和性能目标)。 3、需求分析的步骤 需求分析的步骤 当前系统目标系统 物理 模型 逻辑 模型 逻辑 模型 物理 模型 模型化抽象化 具体化实例化 怎 么 做 做 什 么 当前 目标 系统 需 求 定 义 4、需求分析过程示意

(1)通过对现实环境的调查,获得当前系统的物理模型。 (2)去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型。 (3)分析当前系统与目标系统的差别,建立目标系统的逻辑模型。 5、需求分析的方法 结构化分析(传统建模方法)、面向对象分析。 计算机世界 现实世界 结构化开发方法 结构化 分析结构化设计结构化编程 OOA OOD OOP 面向 对象开发 方法 二、结构化分析方法 1、结构化分析方法(Structure Analysis---SA ) (1) 定义 是面向数据流进行需求分析的方法,采用自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。 (2)结构化分析的主要步骤 通过对用户的调查,以软件的需求为线索,获取当前系统的具体模型;去掉具体模型中非本质因素,抽象出当前系统的逻辑模型;根据计算机的特点分析当前系统与目标系统的差别,建立目标系统的逻辑模型;完善目标系统并补充细节,写出目标系统的软件需求规格说明。 2、结构化分析方法使用的常用工具 (1)数据流图(DFD —Data Flow Diagram ) ① 作用 从数据传递和加工的角度,在需求分析阶段以图形的方式描述数据流从输入到输出的移动变换过程,为系统建立逻辑模型。 ◆ 注意:数据流图中的箭头表示的是数据流。程序流程图中的箭头表示的是控制流。 ② 数据流图中的基本图形符号意义

结构化程序设计习题答案

第三章结构化程序设计部分习题 一、选择题 1、设有程序段 int k=10; while(k=0) k=k-1; 则下面叙述中正确的是( ) (A) while循环执行10次 (B) 循环是无限循环 (C) 循环体语句一次也不执行 (D) 循环体语句执行一次 2、设有以下程序段 int x=0,s=0; while(!x!=0) s+=++x; cout<

while(n++<=2); cout< void main() { int a,b,t; cin>>a>>b; while( ①) { if(a>b) {t=a; a=b; b=t } cout<>a>>b; } } (A) !a=b (B) a!=b (C) a==b (D) a=b 9、下面程序的运行结果是( ) #include void main() { int i,j,x=0; for(i=0;i<2;i++)

结构化设计方法

结构化设计方法 刘凤祥

目录 第一模块软件工程和软件过程 (3) 瀑布模型 (4) 快速原型模型 (5) 增量模型(渐增模型) (6) 螺旋模型 (7) 喷泉模型 (8) 第二模块结构化分析 (9) 概述 (9) 与用户通信的技术 (9) 分析建模与规格说明 (10) 实体——关系图 (11) 数据流图 (11) 状体转换图 (12) 数据字典 (13) 练习 (14) 第三模块结构化设计 (14) 第四模块结构化实现 (31) 第五模块软件项目管理 (31) 第六模块案例分析 (32)

第一模块 软件工程和软件过程 一、 概述 1. 谁有软件开发的经验?软件开发的大概过程是什么?曾遇到过什么问题? 2. 计算机系统的发展所经历的四个阶段 3. 软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题 4. 产生软件危机的原因 5. 消除或减少软件危机的途径 二、 软件工程 ①把系统化的、规范化的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;②研究①中提到的途径。 三、 软件工程的基本原理 1. 用分阶段的生命周期计划严格管理 2. 坚持进行阶段评审 3. 实行严格的产品控制 4. 采用现代程序设计技术 5. 结果应能清楚地审查 6. 开发小组的人员应该少而精 7. 承认不断改进软件工程实践的必要性 1)60年代中期以前 无软件设计的文档资料 2)出现了软件作坊,“软件危机”出现,1968年提出“软件工程”的概念 3)20世纪70年代中期开始,10年。主要特点是出现了微处理器 4)软硬件的综合效果

五、生命周期模型 瀑布模型 图1.2传统的瀑布模型 1. 阶段间具有顺序性和依赖性 2. 推迟实现的观点(尽量晚的开始程序的编写) 3. 质量保证的观点 优点:可强迫可发人员采用规范化的方法;严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。 缺点:软件产品交付用户前,用户仅仅通过写在纸上的静态的规格说明,很难全面正确地认识动态的软件产品

结构化需求分析方法

结构化分析(SA)方法 结构化开发方法(Structured Developing Method)是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD 法)及结构化程序设计方法(SP 法)构成的。 结构化分析(Structured Analysis,简称SA 法)方法是面向数据流的需求分析方法,是70 年代末由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。它适合于分析大型的数据处理系统,特别是企事业管理系统。 SA 法也是一种建模的活动,主要是根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。 1 SA 法概述 1.SA 法的基本思想 结构化分析(Structured Analysis,简称SA 法)是面向数据流的需求分析方法,是70年代由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。 结构化分析方法的基本思想是“分解”和“抽象”。

分解:是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决。 图4 是自顶向下逐层分解的示意图。顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层是从抽象到具体的逐层过渡。 抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个自系统的方法就是“抽象”。 2.SA 法的步骤 ⑴建立当前系统的“具体模型”; 系统的“具体模型”就是现实环境的忠实写照,即将当前系统用DFD 图描述出来。这样的表达与当前系统完全对应,因此用户容易理解。 ⑵抽象出当前系统的逻辑模型;

需求分析(传统结构化方法)

2.2需求分析 需求分析是通过开发人员的分析概括,抽象为完整的需求定义,再形成一系列文档的过程。 2.2.1需求分析的目的与意义 需求分析是一个非常重要的过程,它完成的好坏直接影响后续软件开发的质量。有效的需求分析通常都具有一定的难度。需求分析不仅仅是属于软件开发生命周期早期的一项工作,而且还应该贯穿于整个生命周期中,它应该随着项目的深入而不断地变化。此外,为了方便后续的评审和测试等工作,需求的描述应该尽量做到:具体、详细、可以测量和可以实现,并且基于时间。 2.2.2需求分析的步骤 2-3所示。 需求涉及的方面: 在功能方面,需求包括系统要做什么,相对于原系统目标系统需要进行哪些修改,目标用户有哪些,以及不同用户需要通过系统完成何种操作等。 在性能方面,需求包括用户对于系统执行速度、响应时间、吞吐量和并发度等指标的要求。在运行环境方面,需求包括目标系统对于网络设置、硬件设备、温度和湿度等周围环境的要求,以及对操作系统、数据库和浏览器等软件配置的要求。 在界面方面,需求涉及数据的输入/输出格式的限制及方式、数据的存储介质和显示器的分辨率要求等问题。 1. 获取需求,识别问题 开发人员从功能、性能、界面和运行环境等多个方面识别目标系统要解决哪些问题,要满足哪些限制条件,这个过程就是对需求的获取。开发人员通过调查研究,要理解当前系统的工作模型和用户对新系统的设想与要求。 遗漏需求是最难修订的需求错误。 获取需求是需求分析的基础。为了能有效地获取需求,开发人员应该采取科学的需求获取方法。在实践中,获取需求的方法有很多种,比如,问卷调查、访谈、实地操作、建立原型和研究资料等。 问卷调查法是采用调查问卷的形式来进行需求分析的一种方法。通过对用户填写的调查问卷进行汇总、统计和分析,开发人员便可以得到一些有用的信息。采用这种方法时,调查问卷

Java结构化程序设计

. 昆明理工大学信息工程与自动化学院学生实验报告 ( 2012—2013学年 第 一 学期 ) 课程名称:Java 程序设计 开课实验室:442 2012年 11月 7 日 一、实验目的及内容 目的:掌握和巩固Java 结构化程序设计的概念、方法。 内容: 1. (使用&&、||、^运算符)编写一个程序,该程序让用户输入一个整数,然后判断该整数是否能 同时被5和6整除;是否能被5或6整除;是否能被5或6整除,但不能同时被5和6整除。 例如:在命令行模式下该程序运行可呈现如下结果(注,也可以图形界面方式实现) Enter an integer: 10 Is 10 divisible by 5 and 6? false Is 10 divisible by 5 or 6? true Is 10 divisible by 5 or 6, but not both? true 2. 编写一个程序(利用循环)计算下面式子: 3. 写一个函数,该函数返回一个数组中值最小的元素的索引值,若该数组中值最小的元素多于一 个,则返回索引最小的那个,该函数的声明如下所示,在main 函数中调用并测该函数。 public static int indexOfSmallestElement(int[] list) 二、要求 1. 给出上述程序的流程图、代码和测试结果。 100 999998...433221+++++

内容一: 流程图: .

实验代码 import java.util.Scanner; public class Class1 { public static void main(String[] args) { Scanner input=new Scanner(System.in); System.out.print("Enter an integer:"); int numble=input.nextInt(); boolean numble1=(numble%5==0)&&(numble%6==0); boolean numble2=(numble%5==0)||(numble%6==0); boolean numble3=(numble%5==0)^(numble%6==0); System.out.println("is "+numble+" divisible by 5 and 6?"+numble1); System.out.println("is "+numble+" divisible by 5 or 6?"+numble2); System.out.println("is "+numble+" divisible by 5 or 6,but not both?"+numble3); } } 运行结果: .

结构化分析方法答案

结构化分析方法答案 (单选题6分)得分: 1?“虚心使人进步,骄傲使人落后。”是运用了()的分析方法。 r o A.演绎 r o B.归纳 o C.对比 r o D.举例?2?“所有蔬菜都特价;土豆是种蔬菜;所以土豆也特价。”这段话运用的分析方法是()。 (单选题6分)得分:6分 o " A.演绎 o "B.归纳 o 广 C.对比 D.举例 ?3.()是最为常见的演绎形式。(单选题6分)得分:6分 r o A.选言推理 r o B.假言推理 o C.三段论演绎 r o D.关系推理 * 4.()是总结现有情况,形成一般化结论。(单选题6分)◎得分:6分r o A.演绎 o B.归纳 r o C.对比

r o D.举例 ?5.()就是从普遍性的理论知识出发,去认识个别的、特殊的现象的一种逻辑推理方法。(单选题6分)O得分:6分 o苗A.演绎 r o B.归纳 r “ o C.对比 r o D.举例 * 6.演绎包括的具体形式有()。(多选题8分)◎得分:8分 |7 o _ A.三段论演绎 o B.选言推理 17 o C.假言推理 |7 o D.关系推理 * 7.对比包括()。(多选题8分)◎得分:8分 o A.正面对比 17 o B.反面对比 o 厂C.正物对比 p o D.反物对比 * 8.归纳是指从许多个别的事物中概括出一般性()的思维方法。(多选题8分)得分:8分 o A.概念 17 o 一B.原则

o C.结论 o厂D.内容 * 9.对比是把两个()的事物放在一起,用比较的方法加以描述或说明。(多选题8分)得分:8分 |7 o —A.相反 o 厂B. 一致 |7 o C.相对 o厂D.相符 ? 10.归纳可分为()。(多选题8分)得分:8分 |7 o A.完全归纳 o 厂B.分层归纳 o 厂C.整体归纳 o D.不完全归纳 * 11.演绎是从一般原则到具体事实的过程。(判断题6分)◎得分:6分 o 正确 r o 错误 * 12.结构化分析方法一一三段论演绎中,做总体概念陈述的是第一段内容。(判断题6分)O得分:6分 o 正确 r o 错误 * 13.归纳就是从普遍性的理论知识出发,去认识个别的、特殊的现象的一种逻辑推理方法。 (判断题6分)◎得分:6分

结构化分析方法2018答案

结构化分析方法(100分) 1.()是最为常见的演绎形式。(6.0分) A.选言推理 B.假言推理 C.三段论演绎 D.关系推理 我的答案:C答对 2.“所有蔬菜都特价;土豆是种蔬菜;所以土豆也特价。”这段话运用的分析方法是()。(6.0分) A.演绎 B.归纳 C.对比 D.举例 我的答案:A答对 3.()是总结现有情况,形成一般化结论。(6.0分) A.演绎 B.归纳 C.对比 D.举例 我的答案:B答对

4.“虚心使人进步,骄傲使人落后。”是运用了()的分析方法。(6.0分) A.演绎 B.归纳 C.对比 D.举例 我的答案:C答对 5.()就是从普遍性的理论知识出发,去认识个别的、特殊的现象的一种逻辑推理方法。( 6.0分) A.演绎 B.归纳 C.对比 D.举例 我的答案:A答对 1.演绎包括的具体形式有()。(8.0分)) A.三段论演绎 B.选言推理 C.假言推理 D.关系推理 我的答案:ABCD答对 2.对比是把两个()的事物放在一起,用比较的方法加以描述或说明。(8.0分))

B.一致 C.相对 D.相符 我的答案:AC答对 3.归纳可分为()。(8.0分)) A.完全归纳 B.分层归纳 C.整体归纳 D.不完全归纳 我的答案:AD答对 4.对比包括()。(8.0分)) A.正面对比 B.反面对比 C.正物对比 D.反物对比 我的答案:BD答对 5.归纳是指从许多个别的事物中概括出一般性()的思维方法。(8.0分)) A.概念 B.原则

D.内容 我的答案:ABC答对 1.三段论演绎的第三段是一个简单结论,说明两种表述同时存在时的隐含意义,它是引申含义之下的意思表示。(6.0分) 我的答案:正确答对 2.结构化分析方法——三段论演绎中,做总体概念陈述的是第一段内容。(6.0分) 我的答案:正确答对 3.演绎是从一般原则到具体事实的过程。(6.0分) 我的答案:正确答对 4.归纳就是从普遍性的理论知识出发,去认识个别的、特殊的现象的一种逻辑推理方法。(6.0分) 我的答案:错误答对 5.三段论演绎是指由两个简单判断作前提和一个简单判断作结论组成的演绎推理,一般分为三段。其中第二段是一个大前提,对某种已经存在的情况做出表述。( 6.0分) 我的答案:错误答对

结构化分析和设计方法

结构化分析和设计方法 3.1.2结构化方法的基本思想 结构化方法是“结构化分析”(Structured Analysis,SA)和“结构化设计”(Structured Design,SD)的总称,结构化方法是目前最成熟、应用最广泛的信息系统开 发方法之一,他的优点是有一套严格的开发程序,各开发阶段都要求有完整的文档纪录, 国内外已有许多成功开发的例子。 3.1.2.1结构化分析 1.结构化系统分析思想 结构化分析方法是由美国Yourdon公司在20世纪70年代提出的,其基本思想是将系 统开发看成工程项目,有计划、有步骤地进行,是一种应用很广的开发方法,适用于分析 大型信息系统。 结构化分析方法采用“自顶向下,逐层分解”的开发策略。按照这种策略,再复杂的 系统也可以有条不紊的进行,只要将复杂的系统适当分层,每层的复杂程度即可降低,这 就是结构化分析的特点。 2.结构化分析方法的内容 结构化分析之后获得的文档是系统分析报告,系统分析报告是由下面几个部分组成的:组织结构及其分析,现行业务流程及其分析,现有数据和数据流程及其分析,新系统地初 步方案和补充材料,如开发计划等。 3.结构划分此方法的特点 结构化分析方法有以下特点 结构化分析方法简单,易于掌握和使用。 结构化分析方法将分析的结果用图形表示,如业务流程图,数据流程图等,这些图形 都有一套标准图符组成,从而将分析结果简明易懂的展示在用户面前。 结构化分析的实施步骤实现分析实现环境中已存在的系统,在此基础上再构思即将开 发的目标系统,从而大大降低了问题的复杂程度,符合人们认识世界、改造世界的一般规律。 4.结构化分析方法的局限 结构化分析方法是一种行之有效的方法,但也有一定的局限性。局限性可以概括成以 下几个方面:

从结构化到面向对象程序设计的模型转换

从结构化到面向对象程序设计的模型转换? 袁胜忠 山东大学威海分校现代教育技术部 威海264209 摘 要:随着软件系统内在复杂性的不断提高,面向对象技术已经取代结构化设计技术成为产业化软件开发的主流技术。本文剖析对象模型与结构化设计瀑布模型队程序设计风格的影响,探讨导致面向对象软件工程失败的主要原因,论证了成功实施面向对象软件工程的关键技术,帮助软件工程师完成从结构化设计实践向面向对象分析和设计实践的进化。关键词:对象模型 瀑布模型 迭代和增量式开发 面向对象软件工程 Model Changing From Structured Design Style to Object-Oriented Programming YUAN Shengzhong Department of Modern Education Technology of Shandong University at Weihai, Weihai, 264209 Abstract: In the past several years, with enhance of inherent complex of various systems, the object-oriented technology have actually become the main stream of industrial software development. Compared with traditional structured design style and the waterfall model, in this paper, we strength the correct understand to object model and discuss the main reasons for the failure of object-oriented development in order to promote the software engineers evolution from structured design to object-oriented analysis and design. Keywords: object model; waterfall model; iterative and incremental development; object-oriented software engineering 1 引 言 面向对象的技术可以分为:面向对象的程序设计语言,面向对象的数据库技术,面向对象的分析和设计方法。 对应用软件开发组而言,面向对象的分析和设计方法是一种新的方法,它比面向对象的程序设计语言和面向对象的数据库技术更加难以掌握。因为它与开发组熟悉的结构化设计方法是两种完全不同的设计风格,在建立系统时,结构化设计方法利用算法作为基本构件,而面向对象方法利用类和对象作为基本构件。二者要求开发组用不同的思考方法对待问题的分解,而且面向对象设计方法创造出来的软件体系结构大大超出了 ?作者简介:袁胜忠:男,1965年出生,软件工程师,主要研究方向为应用软件开发,网络管理与优化。

结构化分析方法(满分)

结构化分析方法 考试时长:90分钟总分:100 及格线:60 100分 ? 1.()是总结现有情况,形成一般化结论。(单选题6分)得分:6分 o A.演绎 o B.归纳 o C.对比 o D.举例 ? 2.()就是从普遍性的理论知识出发,去认识个别的、特殊的现象的一种逻辑推理方法。(单选题6分)得分:6分 o A.演绎 o B.归纳 o C.对比 o D.举例 ? 3.()是最为常见的演绎形式。(单选题6分)得分:6分 o A.选言推理 o B.假言推理 o C.三段论演绎 o D.关系推理 ? 4.“所有蔬菜都特价;土豆是种蔬菜;所以土豆也特价。”这段话运用的分析方法是()。 (单选题6分)得分:6分 o A.演绎

o B.归纳 o C.对比 o D.举例 ? 5.“虚心使人进步,骄傲使人落后。”是运用了()的分析方法。(单选题6分)得分:6分 o A.演绎 o B.归纳 o C.对比 o D.举例 ? 6.归纳可分为()。(多选题8分)得分:8分 o A.完全归纳 o B.分层归纳 o C.整体归纳 o D.不完全归纳 ?7.演绎包括的具体形式有()。(多选题8分)得分:8分 o A.三段论演绎 o B.选言推理 o C.假言推理 o D.关系推理 ?8.对比包括()。(多选题8分)得分:8分 o A.正面对比 o B.反面对比

o C.正物对比 o D.反物对比 ?9.对比是把两个()的事物放在一起,用比较的方法加以描述或说明。(多选题8分)得分:8分 o A.相反 o B.一致 o C.相对 o D.相符 ?10.归纳是指从许多个别的事物中概括出一般性()的思维方法。(多选题8分)得分:8分 o A.概念 o B.原则 o C.结论 o D.内容 ?11.三段论演绎是指由两个简单判断作前提和一个简单判断作结论组成的演绎推理,一般分为三段。其中第二段是一个大前提,对某种已经存在的情况做出表述。(判断题6分)得分:6分 o正确 o错误 ?12.演绎是从一般原则到具体事实的过程。(判断题6分)得分:6分 o正确 o错误

结构化分析方法

结构化分析方法 1.()就是从普遍性的理论知识出发,去认识个别的、特殊的现象的一种逻辑推理方法。(6.0分) A.演绎 B.归纳 C.对比 D.举例 我的答案:A答对 2.()是最为常见的演绎形式。(6.0分) A.选言推理 B.假言推理 C.三段论演绎 D.关系推理 我的答案:C答对 3.“所有蔬菜都特价;土豆是种蔬菜;所以土豆也特价。”这段话运用的分析方法是()。(6.0分) A.演绎 B.归纳 C.对比

我的答案:A答对 4.“虚心使人进步,骄傲使人落后。”是运用了()的分析方法。(6.0分) A.演绎 B.归纳 C.对比 D.举例 我的答案:C答对 5.()是总结现有情况,形成一般化结论。( 6.0分) A.演绎 B.归纳 C.对比 D.举例 我的答案:B答对 1.归纳是指从许多个别的事物中概括出一般性()的思维方法。(8.0分)) A.概念 B.原则 C.结论

我的答案:ABC答对 2.演绎包括的具体形式有()。(8.0分)) A.三段论演绎 B.选言推理 C.假言推理 D.关系推理 我的答案:ABCD答对 3.对比包括()。(8.0分)) A.正面对比 B.反面对比 C.正物对比 D.反物对比 我的答案:BD答对 4.对比是把两个()的事物放在一起,用比较的方法加以描述或说明。(8.0分)) A.相反 B.一致 C.相对 D.相符

我的答案:AC答对 1.三段论演绎的第三段是一个简单结论,说明两种表述同时存在时的隐含意义,它是引申含义之下的意思表示。(6.0分) 我的答案:正确答对 2.结构化分析方法——三段论演绎中,做总体概念陈述的是第一段内容。(6.0分) 我的答案:正确答对 3.三段论演绎是指由两个简单判断作前提和一个简单判断作结论组成的演绎推理,一般分为三段。其中第二段是一个大前提,对某种已经存在的情况做出表述。(6.0分) 我的答案:错误答对 4.归纳就是从普遍性的理论知识出发,去认识个别的、特殊的现象的一种逻辑推理方法。(6.0分) 我的答案:错误答对 5.演绎是从一般原则到具体事实的过程。( 6.0分) 我的答案:正确答对

结构化和面向对象的系统分析设计方法的对比

结构化方法和面向对象方法的对比 1 结构化和面向对象的方法 1.1 结构化方法 结构化方法基于功能分解设计系统结构,通过不断把复杂的处理逐层分解来简化问题,它从内部功能上模拟客观世界。用结构化开发能提高软件的运行效率,且能够增加软件系统的可靠性。结构是指系统内各个组成要素之间的相互联系、相互作用的框架。 结构化的系统分析设计方法是一种传统的系统开发方法。针对软件生存周期各个不同的阶段,有结构化分析(SA)、结构化设计(SD)和结构化程序设计(SP)等方法。它的基本思想:把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内。 1.1.1 结构化分析 结构化分析是面向数据流进行需求分析的方法,主要采用数据流图DFD (Data Flow Diagram)来描述边界和数据处理过程的关系。 结构化分析的主要工作是使用数据流程图、数据字典、结构化语言、判定表和判定树等工具,来建立一种新的、称为结构化说明书的目标文档-需求规格说明书。 1.1.2 结构化设计 结构化设计是将数据流图表示的信息转换成程序结构的设计描述,和功能的实现方法,并且采用系统结构图表示系统所具有的功能和功能之间的关系。 结构化设计过程分两步完成,第一步以需求分析的结果作为出发点,构造出一个具体的系统设计方案,决定系统的模块结构(包括决定模块的划分、模块间的数据传递及调用关系)。第二步详细设计,即过程设计。在总体设计的基础上,确定每个模块的内部结构和算法,最终产生每个模块的程序流程图 1.2 面向对象方法 面向对象方法是从内部结构上模拟客观世界,其基本思想为:对象是对现实世界客观实体的描述,均由其属性和相关操作组成,是系统描述的基本单位。面向对象方法更强调运用人类在日常的逻辑思维中经常采用的思想方法和原则,例如抽象、分类、继承、聚合、封装等,这使得软件开发者能更有效地思考问题,

结构化方法与面向对象方法的比较分析

结构化方法与面向对象方法的比较分析 吴松娇 (凯里学院信息工程学院,09本(1)班,2009406012) 摘要:剖析了结构化方法和面向对象方法这两种软件开发方法具体的分析设计过程,讨论 了各自在不同软件开发中的应用及局限性,提出了在选用面向对象方法开发大型软件系统的同时可结合结构化方法.通过对具体实例的剖析,揭示DFD 与UML 之间的对应关系,从而提 出结构化软件分析方法与面向对象软件分析方法存在的对应关系,在软件需求分析方法上实现了二者的相互转换,这种对应与转换关系对现有结构化软件的维护及再工程具有指导意义。 关键词:软件开发; 结构化方法; 面向对象方法; 问题域 20 世纪60 年代以来,软件的发展一直受到开发综合症“软件危机”的影响. 为了提高软件质量,软件开发方法不断推陈出新,其中结构化方法[1 ,2 ]经过30 多年的研究及应用,最为成熟且影响最大,直到现在仍有许多系统是用它开发的. 而面向对象方法[1 ,3 ]是在结构化方法、信息建模方法等基础上发展起来的,近10 年来发展较快,现已呈现出取代结构化方法的趋势. 本文具体分析两者在软件开发中的差别以及面向对象方法的优越性. 1 结构化方法 结构化方法基于功能分解设计系统结构,通过不断把复杂的处理逐层分解来简化问题,它 从内部功能上模拟客观世界. 用结构化开发的软件运行效率较高, 且能够增加软件系统的 可 靠性. 1. 1 结构化分析 它是面向数据流进行需求分析的方法,在该阶段力求寻找功能及功能之间的说明. 它主要 采用的工具是数据流图DFD(Data Flow Diagram) ,利用DFD 描述边界和数据处理过程的关系. 1. 2 结构化设计 结构化设计是将数据流图表示的信息转换成程序结构的设计描述,在该阶段力求寻找功 能的实现方法,采用系统结构图表示系统所具有的功能和功能之间的关系. 设计过程分两步完成,第一步以需求分析的结果作为出发点,构造出一个具体的系统设计方案,决定系统的模块结构(包括决定模块的划分、模块间的数据传递及调用关系) . 第二步详细设计即过程设计,在总体设计的基础上,确定每个模块的内部结构和算法,最终产生每个模块的程序流程图. 因此,结构化方法比较适合于像操作系统、实时处理系统等这样的以功能为主的系统. 1. 3 结构化方法的局限 (1) 结构化方法在需求分析中对问题域的认识和描述不是以问题域中固有的事物作为基本 单位,而是打破了各项事物之间的界限,在全局范围内以数据流为中心进行分析,所以分析 结果不能直接反映问题域. 同时,当系统较复杂时,很难检验分析的正确性. 因此,结构化分析 方法容易隐蔽一些对问题域的理解偏差,与后续开发阶段的衔接也比较困难; (2) 结构化方法 中设计文档很难与分析文档对应,因为二者的表示体系不一致. 结构化方法的结果2数据流 图

相关文档
最新文档