软件分析和设计包括所有有助于将需求规格说明转换为实现的活动。需求规格说明指定了软件的所有功能和非功能的期望。这些需求规范以人类可读和可理解的文档形式出现,计算机与之无关。
软件分析和设计中间阶段,帮助将人类可读的需求转化为实际代码。
让我们来看看设计师使用的几个分析和设计工具:
数据流图是在信息系统中数据流的图形表示。它是能够描述输入数据流,输出数据流和存储数据。DFD中没有提到有关数据如何流经系统的任何内容。
DFD 和流程图之间有着一个显著的差异。流程图描述了在流动的程序模块的控制流程。 DFD的描述了系统中各个级别的数据流。 DFD 不含有任何控制或分支元素。
数据流图是逻辑或物理.
DFD 可以使用以下组件集表示数据的来源、目的地、存储和流:
结构图是衍生自数据流图的图表。它比 DFD 更详细地表示系统。它将整个系统分解为最低的功能模块,比 DFD 更详细地描述系统每个模块的功能和子功能。
结构图表示模块的层次结构。在每一层执行某一特定任务.
以下是在建结构图中使用的符号:
HIPO(HIerarchical Input Process Output,分层输入过程输出)图是结合两种有组织的方法来分析系统并提供文档的手段。HIPO 模型由 IBM 于 1970 年开发。
HIPO 图表示软件系统模块的层次结构。分析师使用 HIPO 图,以获得对系统功能的高级视图。它以分层方式将功能分解为子功能。它描述了系统执行的功能。
HIPO 图适用于文档目的。它们的图形表示使设计人员和管理人员更容易获得系统结构的图形概念。
与描述模块中控制和数据流的 IPO(Input Process Output,输入过程输出)图相比,HIPO 不提供任何有关数据流或控制流的信息。
HIPO图、层级表示的 IPO 图这两个部分都用于软件程序的结构设计及其文档。
大多数程序员不了解软件的大局,所以他们只依赖于他们的经理告诉他们做什么。为程序员提供准确的信息以开发准确而快速的代码是高级软件管理人员的责任。
因此,该软件的分析师和设计师提出了诸如结构化英语之类的工具。它只不过是对编码所需的内容以及如何编码的描述。结构化英语帮助程序员编写无错误的代码。
使用图形或图表的其他形式的方法有时可能会被不同的人以不同的方法理解。在这里,结构化英语和伪代码试图缩小这种理解差距。
结构化英语是它在结构化编程范式中使用简单的英语单词。但这不是最终的代码,而是一种描述需要编码什么以及如何编码。以下是结构化编程的一些标记。
IF-THEN-ELSE,
DO-WHILE-UNTIL
分析师使用相同的变量和数据的名称,它存储在数据字典,这使得编写和理解代码变的更加简单。
我们以在线购物环境中的客户身份验证为例。此验证客户的程序可以用结构化英语编写为:
Enter Customer_Name
SEEK Customer_Name in Customer_Name_DB file
IF Customer_Name found THEN
Call procedure USER_PASSWORD_AUTHENTICATE()
ELSE
PRINT error message
Call procedure NEW_CUSTOMER_REQUEST()
ENDIF
用结构化英语编写的代码更像是日常口语。它不能直接作为软件代码来实现。结构化英语独立于编程语言。
伪代码的编写更接近于编程语言。它可以被认为是增强的编程语言,充满了注释和描述。
伪代码避免了变量声明,但它们使用一些实际的编程语言结构编写的,如 C,Fortran 和 Pascal 等。
伪代码包含比结构化英语更多的编程细节。它提供了一种执行任务的方法,就好像计算机正在执行代码一样。
打印最多 n 个数字的斐波那契数列的程序。
void function Fibonacci
Get value of n;
Set value of a to 1;
Set value of b to 1;
Initialize I to 0
for (i=0; i< n; i++)
{
if a greater than b
{
Increase b by a;
Print b;
}
else if b greater than a
{
increase a by b;
print a;
}
}
决策表以结构化的表格格式表示条件以及为解决这些条件而要采取的相应措施。
它是调试和防止错误的强大工具。它有助于将相似的信息分组到一个表中,然后通过组合表来提供简单方便的决策。
要建立决策表,开发人员必须遵循四个基本步骤:
让我们举一个简单的例子来说明我们的互联网连接的日常问题。我们首先确定启动互联网时可能出现的所有问题及其各自可能的解决方案。
我们列出了列条件下所有可能的问题以及列操作下的预期操作。
- | Conditions/Actions | Rules | |||||||
---|---|---|---|---|---|---|---|---|---|
Conditions | Shows Connected | N | N | N | N | Y | Y | Y | Y |
- | Ping is Working | N | N | Y | Y | N | N | Y | Y |
- | Opens Website | Y | N | Y | N | Y | N | Y | N |
Actions | Check network cable | X | |||||||
- | heck internet router | X | X | X | X | ||||
- | tart Web Browser | X | |||||||
- | ontact Service provider | X | X | X | X | X | X | ||
- | Do no action |
表 : 决策表 – 在内部网络故障排除
实体关系模型是一种基于现实世界实体和它们之间的关系概念的数据库模型。我们可以将现实世界的场景映射到 ER 数据库模型上。ER 模型创建一组实体及其属性、一组约束和它们之间的关系。
ER 模型最适用于数据库的概念设计。 ER 模型可以如下表示:
数据字典是关于数据信息的集中收集。它存储数据的含义和来源、它与其他数据的关系、使用的数据格式等。数据字典对所有名称都有严格的定义,以方便用户和软件设计人员。
数据字典通常被称为元数据(关于数据的数据)存储库。它是与软件程序的 DFD(数据流图)模型一起创建的,并且预计会在 DFD 更改或更新时进行更新。
在设计和实现软件时通过数据字典引用数据。数据字典消除了任何歧义的可能性。它有助于保持程序员和设计人员的工作同步,同时在程序中的任何地方使用相同的对象引用。
数据字典为整个数据库系统提供了一种在一个地方记录的方式。DFD 的验证是使用数据字典进行的。
数据字典中应包含以下内容的信息
数据流是通过前面研究过的 DFD 来描述的,并以所描述的代数形式表示。
= | Composed of |
---|---|
{} | Repetition |
() | Optional |
+ | And |
[ / ] | Or |
Address = House No + (Street / Area) + City + State
Course ID = Course Number + Course Name + Course Level + Course Grades
数据元素由数据和控制项的名称和描述、内部或外部数据存储等组成,具有以下详细信息:
它存储数据从何处进入系统和存在于系统外的信息。数据存储可能包括:
有两种类型的数据处理: