软考总结---(六)结构化开发方法

(一)系统分析与设计概述

1、系统设计的基本原理

(1)抽象
重点说明一个实体的本质方面,忽略或掩盖不太重要或非本质的方面。
抽象的最底层就是实现该软件的源程序代码。
较低抽象层次的模块是较高抽象层次模块对问题解法描述的细化。

(2)模块化
在程序中是数据说明、可执行语句等程序对象的集合,或者是单独命名和编制的元素,模块是可以组合分解和更换的单元。
【目的】使程序的结构清晰、容易阅读、理解、测试和修改

(3)信息隐蔽
开发整体程序结构时使用的法则,即将每个程序的成分隐蔽或封装在一个单一的设计模块中,在定义每一个模块时,尽可能少地显露其内部的处理。
【目的】提供软件的可修改性、可测试性、可移植性。

(4)模块独立
每个模块完成一个相对独立的特定子功能,并且与其他模块联系简单。
【衡量标准】:耦合性和内聚性。

2.【耦合】

(1)无直接耦合:两个模块之间【没有】直接关系,【不传递】任何信息。耦合性【最弱】,独立性最高。
(2)数据耦合:两个模块间【有调用】关系,传递的是【简单的数据值】。
(3)标记耦合:两个模块之间传递的是【数据结构】。
(4)控制耦合:一个模块【调用】另一个模块时,传递的是【控制变量】,被调用模块通过控制变量的【值】有选择地执行模块内的某一功能。
(5)外部耦合:通过【软件之外】的环境联结(如I/O将模块耦合到特定的设备、格式、通信协议上)。
(6)公共耦合:通过一个【公共数据】环境相互作用的那些模块的耦合
(7)内容耦合:一个模块调用另一个模块的【内部数据】,或通过非正常入口转入另一个模块内部。

3.【内聚】

(1)偶然内聚:一个模块内各处理元素【没有任何关系】
(2)逻辑内聚:执行若干【逻辑上相似的功能】,通过【参数】确定该模块完成哪一功能。
(3)时间内聚:需要【同时执行】的动作【组合】在一起的模块
(4)过程内聚:一个模块完成【多个任务】,这些任务必须按照指定的过程执行
(5)通信内聚:所有处理元素都在【同一数据结构】上操作,或各处理使用相同的【输入数据】或产生相同的【输出数据】
(6)功能内聚:【最强】的内聚,所有元素共同完成同一功能,缺一不可。

4.【系统结构设计原则】

(1)分解-协调原则
(2)自顶向下的原则
(3)信息隐蔽、抽象的原则
(4)一致性原则
(5)明确原则
(6)模块之间的耦合尽可能小,模块的内聚度尽可能高。
(7)模块的扇入系数和扇出系数要合理。(评价扇入(一个模块调用其他模块的个数)、扇出系数通常是【3或4】,一般【不超过7】)
(8)模块的适当规模

5.子系统划分原则

(1)子系统要具有【相对独立性】
(2)子系统之间的【数据依赖尽量小】
(3)划分的结果应使【数据冗余小】
(4)设置应考虑【今后管理发展的需要】
(5)便于【系统分析阶段实现】
(6)考虑到【各类资源的充分利用】

6.【模块的4个要素】

(1)输入和输出:输入和输出都是【同一个调用者】,即一个模块从调用者那里取得输入,进行加工后再返回给调用者。
(2)处理功能:【输入】转换成【输出】所在的工作。
(3)内部数据:仅供该模块【本身】应用的数据
(4)程序代码:【实现】模块【功能】的程序。

7.模块结构图

(1)所有模块其内部的凝聚行要强,模块之间的联系要少,即模块间有较强【独立性】。
(2)所有模块之间的联系可能存在【上下级】之间的调用,不能有同级之间的横向联系。
(3)整个系统呈【树状结构】,不允许有网状结构或交叉。
(4)所有模块必须严格【分类编码】并建立【归档文件】

8.文档

(1)【用户】与系统【分析人员】:(规划、分析阶段):可行性报告、总体规划报告、系统开发合同和系统方案说明书。
(2)系统【开发人员】与项目【管理人员】:(项目期内):系统开发计划、系统开发月报告、系统开发总结报告
(3)系统【测试人员】与系统【开发人员】:系统方案说明书、系统开发合同、系统设计说明书、测试计划
(4)系统【开发人员】与【用户】:用户手册、操作指南
(5)系统【开发人员】与系统【维护人员】:系统设计说明书、系统开发总结报告(研制报告、技术报告、技术手册
(6)【用户】与【维修人员】:(运行维护期间):技术手册

(二)结构化分析方法

1.【处理】任何【复杂问题】的两个基本手段

(1)抽象
(2)结构化方法:自顶向下逐层【分解】,自底向上【抽象】。
组成:一套分层的【数据流图】、一本【数据字典】、一组【小说明】(加工逻辑说明)、补充材料

2.【数据流图(DFD)组成】

数据流:(数据的流向)
加工:【输入】数据流到【输出】数据流的变换
数据存储:存储数据(介质有:磁盘、磁带、其他存储介质)
外部实体:系统所需数据的【源】(发源地)、【宿】(数据的归宿地)
(*“与”、+“或”、异或“互斥”)

3.分层数据流图的【审查】

(1)父图与子图【平衡】。输入/输出数据流保持一致。
(2)数据【守恒】。输出数据流数据从输入数据流中获得,或通过该加工的处理而产生。
加工未使用其输入数据流中的某些数据项。
(3)【局部】数据存储。
(4)一个加工输出数据流【不能】与该加工输入数据流【同名】。

4.数据字典(DD)

内容:数据流、数据项、数据存储、基本加工。

5.加工逻辑说明

(1)结构化语言(外层:顺序、选择、循环;内层)
(2)判定表
(3)判定树

(三)结构化设计(SD)方法

1.步骤

(1)建立一个满足软件需求的初始【结构图】(自顶向下、逐步求精、信息隐蔽、高内聚低耦合)
(2)对结构图【改进】
(3)书写设计文档
(4)设计评审

2.DFD信息流分类

(1)变换流:外部形式转换为内部表示
(2)信息流:信息沿着输入通路到达另一个事务中心,选择一个来执行。呈辐射状。

3.变换分析

(1)确定输入流和输出流,分离出变换中心。
(2)第一级分解(顶层和第一层)
(3)第二季分解(中、下层)
(4)事物分析

(四)WebApp分析与设计

1.WebApp特性

(1)网络密集型
(2)并发性
(3)无法预知的负载量
(4)性能
(5)可用性
(6)数据驱动

2.WebApp需求模型

(1)内容模型(文字、图像、音频、视频):描述内容对象的构件能力
(2)交互模型:用例、顺序图、状态图、用户界面原型
(3)功能模型
(4)导航模型
(5)配置模型:环境和基础设施

3.WebApp设计

【通用特性】:可用性、功能性、可靠性、效率、可维护性、安全性、可扩展性、及时性
设计【目标】:简单性、一致性、符合性、健壮性、导航性、视觉吸引与兼容性
设计【动作】:架构设计、构件设计(内容、功能)、内容设计(线性、网络、层次、网格结构)、导航设计、美学设计、界面设计

(五)用户界面设计

1.【3条黄金原则】

用户操纵控制、减少用户的记忆负担、保持界面一致

2.用户操纵控制

(1)【不强迫】用户进入不必要的或【不希望的动作】的方式来定义【交互模式】
(2)提供【灵活的】交互
(3)允许【中断和撤销】用户交互
(4)当技能级别增长时,可以交互流线化并允许定制交互
(5)使用户与【内部技术】细节【隔离开】
(6)允许用户与【出现在屏幕上】的对象【直接】交互

3.减少用户的记忆负担

(1)减少对短期记忆的要求
(2)建立有【意义的默认】
(3)定义【直观】的【快捷方式】
(4)界面的【视觉布局】应【基于真实世界的象征】
(5)【不断改进】的方式揭示信息

4.保持界面一致

(1)允许用户将当前任务放入有意义的环境中
(2)在应用系统家族内保持一致性
(3)如果过去的交互模型已经建立了用户的期望,除非有不得已的理由,否则不要改变它

5.用户界面分析和设计模型

【软件工程师】所创建的设计模型
【人机界面】设计工程师所创建的设计模型
【最终用户】在脑海里对世界产生的映像
【系统实现者】创建的系统映像

6.用户界面分析设计4个框架

界面分析建模、界面设计、界面构造、界面确认

7.用户界面设计问题

系统响应时间、帮助设施、错误信息处理、菜单和命令标记

  • 11
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值