软件分析和设计包括所有的活动把它有助于要求规范转化为执行。需求规范指定从该软件的所有功能性和非功能性要求。这些要求来规范人类阅读和理解文档的形状,到计算机无关.
软件分析和设计是中间阶段把它有助于人类可读的要求转化为实际的代码.
让我们来看看使用的软件设计师很少的分析和设计工具::
数据流图是在信息系统中流动的数据的图形表示。它是能够描述输入数据流,输出的数据流和存储的数据。DFD中没有提到这么数据流动在系统里面.
有DFD和流程之间的显着差异。流程图描述了在流动的程序模块的控制。 DFD的描述中,系统流数据的各个层次。 DFD不含有任何控制或分支元件。
数据流图是逻辑或物理.
逻辑DFD - 这种类型的DFD的集中在系统进程和流数据的系统中。例如,在银行软件系统,数据是如何的不同实体之间移动.
物理DFD - 这种类型的DFD的显示了如何在数据流系统中的实际实现。它是更具体的并且接近实现。.
DFD可以代表来源,目的地,存储和流部件采用了以下一组数据 -
实体 - 实体是源和信息数据的目的地。实体是由矩形与各自的名称所表示.
过程 - 活动和行动上的数据所用圆或圆边矩形表示.
数据存储 - 数据存储有两个变体两个变体 - 它可以被表示为与不存在两个小侧壁的矩形或作为开放双面矩形,只有一个侧面丢失。.
数据流 - 数据移动显示用尖锐的箭头。数据的移动,从箭头所指的基表示为它的朝向箭头作为目标的头部源.
0级 - 最高抽象层次的DFD被称为0级DFD,它描述了整个信息系统作为一个图表隐藏所有的底层细节。级别0的DFD也被称为上下文级别的DFD.
等级1 - 0级DFD被分解成更具体的,1级的DFD。级别1 DFD描绘了系统和流程的各种模块之间的数据的基本单元。 1级DFD也提到基本流程和信息来源.
2级 - 在这个层面上,DFD数据显示在第1级所提到的模块内的流动方式1.
更高级别的DFD可以转化成更具体的较低级别的DFD同的理解更深层次,除非说明书中所需要的电平来实现的.
结构图是从数据流图得出的图表。它代表了系统中比DFD更多细节。它打破了整个系统进入最低的功能模块,描述的功能和系统的各个模块的子功能以比DFD更大的细节.
结构图表示模块的层次结构。在每一层执行某一特定任务.
以下是在建结构图中使用的符号 -
模块 - 它代表的过程或子程序或任务。控制模块转移到多个子模块。库模块可重复使用和可调用任何模块
状态 - 它是由小钻石在模块的基础上表示。它描述了该控制模块可以选择任意的子例程的基础上的一些条件.
跳 - 箭头所示指向在模块内部,以描绘该控制装置将在上述子模块的中间跳.
循环 - 弯曲的箭头表示循环模块中。覆盖模块的循环重复执行所有的子模块.
数据流 - 并在后面加上空圆A的箭头表示数据流.
控制流 - 并在后面加上填充圆A的箭头代表控制流.
HIPO(分层输入过程输出)图是两个有组织的方法相结合来分析系统,并提供文档的方式。黑豹模型是由IBM公司在1970年一年的发展.
HIPO图表示模块中的软件系统的层次结构。分析员使用HIPO图,以获得对系统功能的高级视图。它分解以分层方式功能于子功能。它示出了由系统执行的功能.
HIPO图是很好的文档的目的。它们的图形表示更容易为设计者和管理者得到了系统结构的图案构思.
相反,IPO(输入过程输出)图,它描绘了在一个模块的控制和数据的流动,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 | |||||||
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模型中的实体是一个真实的世界之中,其中有 一些属性称为属性. 每个属性是由它的相应的一组值 ,称为域定义.
例如, 考虑一个学校的数据库。在这里,学生是一个实体。学生也有类似的名称,ID,年龄,阶级等.
关系 - 实体之间的逻辑关联被称为 关系. 关系映射以各种方式与实体。映射基数确定协会的两个实体之间的数.
映射基数:
数据字典是关于数据的信息的集中收集。它存储的含义和数据的起源,它与其他数据的关系,为使用等数据字典具有的所有名称的严格定义,以便于用户和软件设计的数据格式.
数据字典是经常引用为存储库的元数据(关于数据的数据)。它是随着软件程序的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
数据元素组成的名称和数据的描述和控制项目,内部或外部数据存储等具有以下细节:
它存储从在那里的数据输入到系统中,存在从系统中取出的信息。数据存储可以包括 -
有两种类型的数据处理: