2. 软件工程概论——结构化分析

软工导论(二)结构化分析

传统的软件工程方法学采用结构化分析技术完成系统分析(问题定义、可行性研究、需求分析)的任务。

结构化分析方法实质上是面向数据流自顶向下逐步求精进行需求分析的方法

结构化分析技术的三个要点:

  • 采用自顶向下功能分解的方法
  • 强调逻辑功能而不是实现功能的具体方法
  • 使用图形(最主要的是数据流图)进行系统分析

可行性研究

目的:用最小的代价在尽可能短的时间内确定问题是否能被解决

对每种可能的解决方案都应该仔细研究可行性:

技术可行性:现有技术能否实现系统
经济可行性:经济效益&成本
操作可行性:系统操作方式能否在该客户组织内行得通

过程:进行一次大大简化了的系统分析和设计过程

7个步骤:

复查系统规模&目标
研究目前正在使用的系统
导出新系统的高层逻辑模型(高层数据流图)
进一步定义问题
导出和评价供选择的解法
推荐行动方针
草拟开发计划
书写文档提交审查

分析旧系统和设想新系统的工具

系统流程图

用来了解和分析现有的系统

概括描绘物理系统的传统工具

表达数据在系统部件之间流动的情况,而不是对数据进行加工处理的控制过程

数据字典&高层数据流图——逻辑模型

数据字典和数据流图共同构成系统的逻辑模型
用途:作为分析阶段的工具

成本/效益分析——可行性研究的重要内容

最简单的成本估计技术是代码行技术和任务分解技术

代码行技术

每行代码的平均成本主要取决于软件的复杂程度和工资水平

任务分解技术

将开发工程分解为若干相对独立的任务,分别估计每个任务的成本,累加。
该项任务的成本=完成该项任务的工作量×平均工资

成本/效益分析方法

货币的时间价值

投资回收期

纯收入

需求分析

需求分析的四个任务

确定对系统的综合要求

功能需求(必须提供)、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、逆向需求(即不应该做什么)、将来可能提出的要求

分析系统的数据要求

导出系统的逻辑模型

通常用数据流图、ER图、状态转换图、数据字典和主要的处理算法描述这个详细的逻辑模型

修正系统开发计划

导出的材料包括:需求规格说明书、用户使用手册和确认测试计划

与用户沟通的方法

访谈

两种基本形式:正式的和非正式的访谈。
访问用户的过程中可以使用情景分析技术——对用户将来使用目标系统解决具体问题的方法和结果进行分析。

面向数据流自顶向下求精

通过可行性研究得出的高层数据流图,把数据流和数据存储定义到元素级,通常从数据流图的输出端着手分析

简易的应用规格说明技术

面向团队,提倡用户与开发者密切合作

快速建立软件原型——“修改-试用-反馈”

快速建立软件原型是最准确、最有效、最强大的需求分析技术

软件原型的两个特性:“快速”、“易于修改”

方法工具:

第四代技术:数据库查询和 表语言等高级的非过程语言
可重用的软件构件
形式化规格说明和原型环境

创建分析建模

理解并描述问题的信息域,建立数据模型——实体-联系图(ER图)
定义软件应该完成的功能,建立功能模型——数据流图(DFD图)
描述作为外部事件结果的软件行为,建立行为模型——状态转换图
对描述目标系统信息、功能、行为的模型进行分解,用层次的方式展示细节

实体-联系图(ER图)—— 数据模型

面向问题,描述从用户角度看到的数据
基本成分:实体(数据对象)、联系、属性(矩形-实体,菱形-关系,椭圆-属性)

数据流图(DFD图)——功能模型

描绘数据在软件系统内从输入移动到输出过程中所经受的变换,“做什么”
描述系统的逻辑功能,没有任何物理部件
*描绘所有可能的数据流向,而不应该描绘出现某个数据流的条件
通常忽略出错处理
数据存储&数据流:都是数据,前者处于静态,后者处于动态

绘画方法:从基本系统模型出发,自顶向下从抽象到具体分层次画

基本符 :

正方形(立方体)-数据的源点或终点;
圆角矩形(圆形)-变换数据的处理;
开口矩形(两条平行线)-数据存储;
箭头-数据流,特定数据的流动方向。

软件需求规格说明

需求分析阶段得出的最主要文档——软件需求规格说明书

验证软件需求(四个方面)

一致性:所有需求必须是一致的,不能相互矛盾
完整性:需求必须完整,包含每一项要求
现实性:现有的硬件技术和软件技术可以实现
有效性:需求正确&有效,能解决用户面临的问题

图形工具总结

系统流程图

分析现有的系统
描绘物理系统的传统工具
表达数据在系统各部件之间流动的情况(而不是控制过程)
是物理数据流图而不是程序流程图

ER图

数据流图

数据字典:关于数据的信息的集合

状态转换图

层次方框图

用树形结构多层次的矩形框描绘数据的层次结构

Warnier图

也用树形结构描绘信息,但是提供的手段比层次方框图更丰富
可以清楚描绘信息的逻辑结构

IPO图(输入-处理-输出图)

方便地描绘输入数据、输出数据、数据处理之间的关系
描绘程序模块功能&算法的有效工具

形式化说明技术

有穷状态机
Petri
Z语言

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年11月1日
下一篇 2021年11月1日

相关推荐