📅  最后修改于: 2021-01-07 06:24:51             🧑  作者: Mango
软件分析和设计包括所有活动,这些活动有助于将需求规范转换为实施。需求规范指定了软件的所有功能和非功能期望。这些需求规范以人类可读和可理解的文档形式出现,而计算机则与之无关。
软件分析和设计是中间阶段,可帮助将人类可读的需求转换为实际代码。
让我们看看软件设计师使用的一些分析和设计工具:
数据流程图是信息系统中数据流的图形表示。它能够描述输入数据流,输出数据流和存储的数据。 DFD没有提及有关数据如何流经系统的任何内容。
DFD和流程图之间存在显着差异。该流程图描述了程序模块中的控制流程。 DFD描述了系统中各个级别的数据流。 DFD不包含任何控件或分支元素。
数据流程图是逻辑的或物理的。
DFD可以使用以下一组组件来表示数据的源,目标,存储和流-
级别2-在此级别上,DFD显示数据如何在级别1中提到的模块内部流动。
除非达到所需的规范水平,否则可以将具有更高理解水平的更高级别的DFD转换为更具体的更低级别的DFD。
结构图是从数据流图派生的图。它比DFD更详细地表示系统。它把整个系统分解为功能最底层的模块,比DFD更详细地描述了系统每个模块的功能和子功能。
结构图表示模块的层次结构。在每一层执行特定任务。
以下是用于构造结构图的符号-
HIPO(分层输入过程输出)图是两种有组织的方法的组合,用于分析系统并提供文档编制手段。 HIPO模型由IBM在1970年开发。
HIPO图表示软件系统中模块的层次结构。分析师使用HIPO图以获取系统功能的高级视图。它以分层的方式将功能分解为子功能。它描述了系统执行的功能。
HIPO图表适合用于文档目的。它们的图形表示使设计人员和管理人员更容易获得系统结构的图形化概念。
与IPO(输入过程输出)图(描述模块中的控制流和数据流)相反,HIPO不提供有关数据流或控制流的任何信息。
HIPO图,层次结构表示和IPO图表的两个部分都用于软件程序的结构设计以及该文件的文档。
大多数程序员并不了解软件的整体情况,因此他们仅依赖于经理告诉他们的操作。高级软件管理人员的责任是向程序员提供准确的信息,以开发准确而又快速的代码。
使用图形或图表的其他形式的方法有时可能会由不同的人以不同的方式解释。
因此,软件的分析人员和设计人员提出了诸如结构化英语之类的工具。只是什么需要编码以及如何编码的描述。结构化英语可帮助程序员编写无错误的代码。
使用图形或图表的其他形式的方法有时可能由不同的人以不同的方式解释。在这里,结构化英语和伪代码都试图缓解这种理解差距。
结构化英语是“结构化英语”。结构化编程范例中使用简单的英语单词。它不是最终的代码,而是一种描述什么是编码以及如何编码的描述。以下是结构化编程的一些标记。
IF-THEN-ELSE,
DO-WHILE-UNTIL
Analyst使用相同的变量和数据名称,这些变量和数据名称存储在Data Dictionary中,从而使编写和理解代码更加容易。
我们以在线购物环境中的“客户身份验证”为例。验证客户身份的过程可以用结构化英语编写为:
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;
}
}
决策表以结构化的表格格式表示条件和要采取的应对措施。
它是调试和防止错误的强大工具。它有助于将相似的信息分组到一个表中,然后通过组合表,可以轻松便捷地进行决策。
要创建决策表,开发人员必须遵循以下四个基本步骤:
决策表应由最终用户验证,并且最近可以通过消除重复的规则和动作来简化。
让我们举一个简单的例子说明我们的Internet连接日常问题。我们首先确定启动互联网时可能出现的所有问题及其相应的解决方案。
我们在列条件下列出了所有可能的问题,并在“操作”列下列出了预期的操作。
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 | |||||||
Check internet router | X | X | X | X | |||||
Restart Web Browser | X | ||||||||
Contact Service provider | X | X | X | X | X | X | |||
Do no action |
实体关系模型是一种基于现实世界实体及其之间的关系的数据库模型。我们可以将真实情况映射到ER数据库模型上。 ER模型创建一组具有其属性的实体,一组约束以及它们之间的关系。
ER模型最适合用于数据库的概念设计。 ER模型可以表示为:
实体-ER模型中的实体是现实世界,具有一些称为属性的属性。每个属性都由其对应的一组值(称为domain)定义。
例如,考虑学校数据库。在这里,学生是一个实体。学生具有各种属性,例如姓名,身份证,年龄和班级等。
关系-实体之间的逻辑关联称为关系。关系以各种方式映射到实体。映射基数定义两个实体之间的关联数。
映射基数:
数据字典是有关数据信息的集中收集。它存储数据的含义和来源,与其他数据的关系,使用的数据格式等。数据字典对所有名称进行了严格的定义,以方便用户和软件设计人员。
数据字典通常被称为元数据(有关数据的数据)存储库。它是与软件程序的DFD(数据流程图)模型一起创建的,并且每当更改或更新DFD时,预计将对其进行更新。
在设计和实现软件时,通过数据字典引用数据。数据字典消除了任何歧义。它有助于在程序中各处使用相同的对象引用时,使程序员和设计人员的工作保持同步。
数据字典可在一处为整个数据库系统提供一种文档编制方法。使用数据字典对DFD进行验证。
数据字典应包含有关以下内容的信息
如前所述,数据流是通过DFD描述的,并以所述的代数形式表示。
= | Composed of |
---|---|
{} | Repetition |
() | Optional |
+ | And |
[ / ] | Or |
地址=房屋编号+(街道/区域)+城市+州
课程编号=课程编号+课程名称+课程级别+课程成绩
数据元素由数据和控制项,内部或外部数据存储等的名称和描述组成,并具有以下详细信息:
它存储数据从那里进入系统并存在于系统之外的信息。数据存储区可能包括-
有两种类型的数据处理: