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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a954553391/article/details/83821035

前言:下面和大家分享一下第六章的知识点,希望对大家有帮助。

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

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.用户界面设计问题

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

总结:软考的学习也是一个不断重复不断总结的过程,越重复越总结越清晰。在总结中不断地完善和提高。

猜你喜欢

转载自blog.csdn.net/a954553391/article/details/83821035