2-3.软件结构化分析笔记

结构化方法学的软件过程

三个大阶段:软件定义、软件开发、软件维护
进一步分割成八个小阶段:
软件定义/系统分析(问题定义、可行性研究、需求分析)、系统设计(概要设计、详细设计)、实现(编码、测试)、维护

可行性研究

实质上是一次高度压缩的系统分析与设计过程。
从以下三个方面研究系统的可行性:技术可行性、经济可行性、操作可行性。
可行性研究过程:

  1. 复查系统规模和目标
  2. 研究当前在使用的系统
  3. 导出新系统高层逻辑模型
  4. 进一步评价问题
  5. 导出和评价供选择的解法
  6. 推荐行动方针
  7. 草拟开发计划
  8. 书写文档提交审查

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

系统流程图(概括描绘物理系统的传统工具)–用来了解和分析现有的系统。其实质是物理数据流图,用来描绘信息在系统主要物理元素之间流动和处理的情况。
数据流图(描述数据流动和被处理的逻辑过程)–用来概括现有系统或者新系统的高层逻辑模型,也是功能模型。
数据字典:关于数据的信息的集合,也就是对数据流图中所有元素的定义的集合。内容包括四类元素:数据流、数据流分量、数据存储、处理

成本估计、成本/效益分析

成本估计:代码行技术、任务分解技术、自动估计成本技术。
成本/效益分析:以货币的时间价值为前提,通过计算投资回收期、纯收入、投资回收率的方式完成。

需求分析

需求分析任务流程:

  1. 确定对系统的综合需求(功能需求、性能需求、可靠性/可用性需求、出错处理需求、接口需求、约束、逆向需求、将来可能提出的要求–共八类)
  2. 分析系统的数据要求–通常采用建立数据模型的方法。用数据流图描绘数据元素之间的逻辑关系、数据字典准确定义数据,再用层次方框图或者Warnier图辅助描绘数据结构。
  3. 导出系统的逻辑模型–详细逻辑模型通常包括:数据流图、实体联系图、状态转换图、数据字典和主要的处理算法。
  4. 修正系统开发计划
    导出的材料包括:需求规格说明书、用户使用手册和确认测试计划。

需求分析过程中与用户沟通的方法

  1. 访谈
  2. 面向数据流自顶向下求精
  3. 简易的应用规格说明技术
  4. 快速建立软件原型

分析建模:分析阶段需要建立的模型

  1. 数据模型–描述问题的信息域,实体联系图。
  2. 功能模型–定义软件应该完成的功能,以数据流图为基础。
  3. 行为模型–外部事件结果的软件行为,以状态图为基础。
  4. 对描述目标系统信息、功能和行为的模型进行分解,用层次的方式展示细节。

数据规范化:分析建模建立数据模型时,其数据一般要满足数据规范化的要求。
第一范式 每个属性都必须是原子值,而不能包含内部结构
第二范式 满足第一范式条件,而且每个非关键字都由整个主键而不是主键的一部分决定。
第三范式 符合第二范式的条件,每个非关键字都仅由关键字决定,而且一个非关键字属性不能仅仅是另一个非关键字属性的进一步描述(即非关键字属性之间不能相互依赖)

软件需求规格说明:需求规格说明书是需求分析阶段得出的主要文档。自然语言或形式化方法描述用户需求。
形式化说明技术:有穷状态机图、Petri网、Z语言

验证软件需求

一致性(需求不能和其他需求互相矛盾)
完整性(需求必须完整, 包含每一个用户需要的功能或性能)
现实性(需求应该使用现有的硬件技术和软件技术能够做到的)
有效性(需求正确有效,能够解决用户面对的问题)

分析方法总结:
系统流程图:用来描述物理系统。
实体-联系图(E-R图):用来建立数据模型。
数据流图:建立功能模型的基础。
数据字典:提供关于数据的描述信息。
状态转换图(状态图):建立行为模型的基础。
除此之外,还有层次方框图(用多层次的矩形框描绘数据结构)
Warnier图(树形结构描绘模块之间关系。)
和IPO图(输入-处理-输出图,用来描述一个具体的数据处理)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值