打卡软件工程第2天

1.需求分析

①需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么”这个问题,对目标系统提出完整、准确、清晰、具体的要求。

需求分析是发现、求精、建模、规格说明和复审的过程。

②系统分析员应该写出软件需求规格说明书,以书面形式准确地描述软件需求

③即:先与用户交流,了解基本需求……继续深入,逐步求精需求……建立分析模型……写成软件规格说明书……严格评审……最终得到用户确认。

补充:一般从1.一致性2.完整性3.现实性4.有效性 四方面去复审软件需求规格说明书。

  • 一致性 所有需求必须是一致的,任何一条需求不能和其他需求相互矛盾。
  • 完整性 需求必须是完整的,规格说明书应包括用户需求的每个功能。
  • 现实性 用现有的硬件技术或软件技术基本上能实现的。
  • 有效性 需求是正确有效的,确实能解决用户面对的问题。

软件需求规格说明是需求分析阶段得出的最主要的文档

④验证软件需求的方法:

①验证需求的一致性(使用形式化的描述需求的方法);②验证需求的现实性(参照以往经验 );三验证需求的完整性和有效性(让用户使用原型系统)

⑤软件需求说明书组成:

(1)引言:编写目的、背景说明、术语定义及参考资料等。
(2) 概述主要功能、约束条件或特殊需求。
(3) 数据流图与数据字典。
(4) 用户接口、硬件接口及软件接口。
(5) 性能需求、属性等。
(6) 其它需求,如数据库、操作及故障处理等

2.需求工程

①需求工程包括需求分析和需求管理

②需求分析任务主要包括:

  • 确定随系统的综合要求(①功能需求;②性能需求;③可靠性和可用性需求;④出错处理需求;⑤接口需求;⑥约束(精度约束、标准约束之类的);⑦逆向需求(系统不应该做什么);⑧将来可能提出的需求)
  • 分析系统的数据要求     (建立数据模型 ——ER图。描绘数据结构—— 层次方框图和 Warnier 图。数据结构规范化。)
  • 导出系统的逻辑模型(根据前两项分析结果导出详细的逻辑模型,通常用 数据流图、实体- 联系图(ER图)、状态转换图 、 数据字典和主要的处理算法描述这个逻辑模型)
  • 修正系统开发计划

③需求管理是对系统需要变更了解和控制的工程,包括标识、控制和跟踪需求的活动

④需求分析两大主要目标:

  1. 建立分析模型:可用实物——联系图建立数据模型,可用数据流图建立逻辑模型,可用状态图建立行为模型。(其中,数据字典是把三种分析模型粘合在一起的“粘合剂”,是分析模型的“核心”)
  2. 编写需求规格说明书(简称:规格说明)

3.结构化分析方法的准则

  • 必须理解并描述问题的信息域,根据这条准则应该建立数据模型
  • 必须定义软件应完成的功能,这条准则要求建立功能模型
  • 必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型
  • 必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。

4.实体联系图

概念性数据模型反映了用户的现实环境,且与软件系统中的实现方法无关。
数据模型包含三种互相关联的信息:

数据对象,矩形框表示
数据对象的属性,菱形框表示
数据对象彼此之间相互连接的关系,圆角矩阵或椭圆形表示。

5.数据规范化

第一范式:每个列不能再分

第二范式:满足一范式条件,并且消除部分函数依赖。

第三范式:符合第二范式的条件,每个非关键字属性仅由关键字决定,消除传递函数依赖。

6.状态转换图

①状态转换图通过描述系统的状态及引起系统状态转换的时间,来表示系统的行为模型

②状态:状态是任何可以观察到的系统行为模式,一个状态代系统的一种行为模式。状态规定了系统对事件的响应方式。状态图中定义的状态有初态、终态和中间状态。一张状态图只有一个初态,有零个或多个终态。

中间状态:用圆角矩形表示,分成上、中、下3 部分

上面部分----- 为状态的名称;
中间部分----- 为状态变量的名字和值;
下面部分----- 是活动表。

状态转换:带箭头的连线,箭头指明转换方向

 

③ 活动:

格式:事件名(参数表)/动作表达式**
“事件名”可以是任何事件的名称。

常用的3种标准事件:
1、entry事件指定进入该状态的动作;
2、exit事件指定退出该状态的动作;
3、do事件则指定在该状态下的动作。

需要时可以为事件指定参数表。活动表中的动作表达式描述应做的具体动作。

7.系统流程图和数据流程图的区别

  • 系统流程图描述系统物理模型的工具,数据流程图描述系统逻辑模型的工具。
  • 系统流程图从系统功能的角度抽象的描述系统的各个部分及其相互之间信息流动的情况。数据流程图从数据传送和加工的角度抽象的描述信息在系统中的流动和数据处理的工作状况

8.形式化说明技术

①按照形式化的程度,可以把软件工程使用的方法划分为非形式化、半形式化、形式化三类

(1)用自然语言描述需求规格说明是典型 的非形式化方法.

(2)用数据流图或E-R图建立的模型是典型 的半形式化方法。

(3)形式化方法是描述系统性质的基于数学 的技术,即如果一种方法有坚实的数学基础,那么它就是形式化的。

②形式化方法的优点

  • 准确、没有二义性
  • 可以在软件工程活动之间平滑过渡
  • 提供了高层确认的手段

③应用形式化的原则

1.选用适当的方法
2.应该形式化,但不要过度形式化
3.估算成本
4.有形式化方法顾问随时提供咨询
5.不应该放弃传统的方法
6.不应该放弃质量标准
7.不应该盲目以来形式化方法
8.反复测试
9.重用

 

9.状态转换图

STD图(State Transform Diagram)状态转换图,表示行为模型。STD通过描述系统的状态和引起系统状态转换的事件,来表示系统的行为,指出作为特定事件的结果将执行哪些动作。STD描述系统对外部事件如何响应,如何动作

①各部分如下:状态集、输入集、转换函数T、初始态S、终态集。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。在编写C程序时,需要注意变量的声明和定义、指针的使用、内存的分配与释放等问题。C语言常用的数据结构包括: 1. 数组:一种存储同类型数据的结构,可以进行索引访问和修改。 2. 链表:一种存储不同类型数据的结构,每个节点包含数据和指向下一个节点的指针。 3. 栈:一种后进先出(LIFO)的数据结构,可以通过压入(push)和弹出(pop)操作进行数据的存储和取出。 4. 队列:一种先进先出(FIFO)的数据结构,可以通过入队(enqueue)和出队(dequeue)操作进行数据的存储和取出。 5. 树:一种存储具有父子关系的数据结构,可以通过序遍历、前序遍历和后序遍历等方式进行数据的访问和修改。 6. 图:一种存储具有节点和边关系的数据结构,可以通过广度优先搜索、深度优先搜索等方式进行数据的访问和修改。 这些数据结构在C语言都有相应的实现方式,可以应用于各种不同的场景。C语言的各种数据结构都有其优缺点,下面列举一些常见的数据结构的优缺点: 数组: 优点:访问和修改元素的速度非常快,适用于需要频繁读取和修改数据的场合。 缺点:数组的长度是固定的,不适合存储大小不固定的动态数据,另外数组在内存是连续分配的,当数组较大时可能会导致内存碎片化。 链表: 优点:可以方便地插入和删除元素,适用于需要频繁插入和删除数据的场合。 缺点:访问和修改元素的速度相对较慢,因为需要遍历链表找到指定的节点。 栈: 优点:后进先出(LIFO)的特性使得栈在处理递归和括号匹配等问题时非常方便。 缺点:栈的空间有限,当数据量较大时可能会导致栈溢出。 队列: 优点:先进先出(FIFO)的特性使得

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值