1. 需求分析的任务

  1. 可行性研究的目的是用较小的成本在最短的时间内确定是否存在可行的解法。
  2. 需求分析的任务是准确回答“系统必须做什么”的问题。(在可行性分析的基础上,进一步了解确定用户需求。准确地回答 “系统必须做什么?” 的问题。获得需求规格说明书。
    )
    在需求分析的过程中,分析员和用户起着关键的作用。

分析方法的准则:(结构化分析的准则)

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

** 需求分析阶段的目标:**

  1. 深入描述软件的功能和性能;
  2. 确定软件设计的约束;
  3. 软件同其他系统元素的接口细节;
  4. 定义软件的其他有效性需求.

1.1 确定系统运行环境要求

1.2 确定系统综合需求

功能需求
性能需求
可靠性和可用性需求
出错处理需求
接口需求
约束
逆向需求
将来可能提出的要求

1.3 分析系统数据需求(建立数据字典)

1.4 导出系统逻辑模型(分析模型)

1.5 修正系统开发计划

2.结构化开发方法的组成

2.1 SP法(结构化程序设计方法)

2.2 SD法(结构化设计方法)

2.2.1 SD法的设计步骤

结构化设计方法(Structured Design, SD )是结构化开发方法的核心,与SA法、SD法密切联系,主要完成软件系统的总体结构设计。

1、总体设计
解决系统的模块结构,即分解模块,确定系统模块的层次结构。
① 划分模块
② 确定模块功能
③ 确定模块间调用关系
④ 确定模块间界面
文档:模块结构图及其模块功能说明。

     SD法总体设计的步骤是:

⑴ 从DFD图导出初始的模块结构图。
⑵ 按照SD法设计总则,改进模块结构图。

2、详细设计
对模块图中每个模块的过程进行描述,常用的描述的方式有:
图形工具
表格工具
语言工具

SD法的设计总则
根据软件结构的准则,模块化准则,软件独立性准则得到结构化设计的总则是:“降低块间联系,提高块内联系”

2.3 SA法(结构化分析方法)

SA法的步骤

1、建立当前系统的“具体模型”。
2、抽象出当前系统的逻辑模型。
3、建立目标系统的逻辑模型。
4、为了对目标系统做完整的描述,还要考虑人机界面及其他问题。

SA法的描述方法

1、分层的数据流图
2、数据词典
3、描述加工逻辑的结构化语言、判定表及判定树

3. 结构化分析的模型

功能——数据——行为——模型

3.1 E-R图(实体-联系图)(大题)(重点)

实体(数据对象)
属性
联系(1:n;n:1;n:m)

3.1.1 什么是E-R图

E-R图即实体-联系图(Entity Relationship Diagram),是指提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。
E-R方法

是“实体-联系方法”(Entity-Relationship Approach)的简称。它是描述现实世界概念结构模型的有效方法。

实体联系模型

实体关系模型或实体联系模式图(ERD) 是由美籍华裔计算机科学家陈品山(Peter Chen)发明,是概念数据模型的高层描述所使用的数据模型或模式图,它为表述这种实体联系模式图形式的数据模型提供了图形符号。这种数据模型典型的用在信息系统设计的第一阶段;比如它们在需求分析阶段用来描述信息需求和/或要存储在数据库中的信息的类型。但是数据建模技术可以用来描述特定论域(就是感兴趣的区域)的任何本体(就是对使用的术语和它们的联系的概述和分类)。在基于数据库的信息系统设计的情况下,在后面的阶段(通常叫做逻辑设计),概念模型要映射到逻辑模型如关系模型上;它依次要在物理设计期间映射到物理模型上。注意,有时这两个阶段被一起称为”物理设计”。

3.1.2 E-R图的基本要素

通常,使用实体-联系图(entity-relationship diagram)来建立数据模型。可以把实体-联系图简称为E-R图,相应地可把用E-R图描绘的数据模型称为E-R模型。

ER图中包含了实体(即数据对象)、关系和属性等3种基本成分,通常用矩形框代表实体,用连接相关实体的菱形框表示关系,用椭圆形或圆角矩形表示实体(或关系)的属性,并用直线把实体(或关系)与其属性连接起来

人们通常就是用实体、联系和属性这3个概念来理解现实问题的,因此,ER模型比较接近人的习惯思维方式。此外,ER模型使用简单的图形符号表达系统分析员对问题域的理解,不熟悉计算机技术的用户也能理解它,因此,ER模型可以作为用户与分析员之间有效的交流工具。

实体型(Entity) 属性(Attribute) 联系(Relationship)
具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体;在E-R图中用矩形表示,矩形框内写明实体名;比如学生张三丰、学生李寻欢都是实体。如果是弱实体的话,在矩形外面再套实线矩形 实体所具有的某一特性,一个实体可由若干个属性来刻画。在E-R图中用椭圆形表示,并用无向边将其与相应的实体连接起来;比如学生的姓名、学号、性别、都是属性。如果是多值属性的话,再椭圆形外面再套实线椭圆。如果是派生属性则用虚线椭圆表示。 数据对象彼此之间相互连接的方式称为联系,也称为关系。

联系可分为以下3种类型:

一对一联系 (1 ∶ 1) 一对多联系 (1 ∶ N) 多对多联系 (M ∶ N)
例如,一个部门有一个经理,而每个经理只在一个部门任职,则部门与经理的联系是一对一的。 例如,某校教师与课程之间存在一对多的联系“教”,即每位教师可以教多门课程,但是每门课程只能由一位教师来教 例如,图1表示学生与课程间的联系(“ 学 ”)是多对多的,即一个学生可以学多门课程,而每门课程可以有多个学生来学。联系也可能有属性。例如,学生 “ 学 ” 某门课程所取得的成绩,既不是学生的属性也不是课程的属性。由于 “ 成绩 ” 既依赖于某名特定的学生又依赖于某门特定的课程,所以它是学生与课程之间的联系 “ 学 ”的属性。

3.1.2 E-R图的实例

3.1.2.1 实例1 图书借阅管理系统

题目:
数据库要求提供下述服务:
(1)可随时查询书库中现有书籍的品种、数量与存放位置。所有各类书籍均可由书号惟一标识。(自己查的,与题目无关:图书在中国原指典籍,包括书籍、画册、图片等出版物。,广义的图书泛指各种类型的读物,既包括甲骨文、金石拓片、手抄卷轴,又包括当代出版的书刊、报纸,甚至包括声像资料、缩徽胶片(卷)及机读目录等新技术产品。而书籍是图书的重要组成部分,是装订成册的著作的总称。)
(2)可随时查询书籍借还情况,包括借书人单位、姓名、借书证号、借书日期和还书日期。
约定:任何人可借多种书,任何一种书可为多个人所借,借书证号具有惟一性。
(3)当需要时,可通过数据库中保存的出版社的电报编号、电话、邮编及地址等信息向相应出版社增购有关书籍。
约定,一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有惟一性。

解题:
数据建模:
(1)满足上述需求的E-R图如图:

(2)转换为等价的关系模式结构如下:
借书人(借书证号,姓名,单位)
图书(书号,书名,数量,位置,出版社名)
出版社(出版社名,电报编号,电话,邮编,地址)
借阅(借书证号,书号,借书日期,还书日期)

3.2 数据流图(DFD)(没有特别考核)

数据流
加工
数据存储
数据源点或终点

3.3 状态转换图(STD)(重点)

  1. 在结构化方法中,用STD建立行为模型
  2. 面向对象的开发方法中,用STD作系统的(建立)动态模型

3.3.1 状态转换图的概念

状态转换图(State Transform Diagram,STD)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。此外,状态图还指明了作为特定事件的结果系统将做哪些动作(例如,处理数据)。

  • 状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。状态规定了系统对事件的响应方式。系统对事件的响应,既可以是做一个(或一系列)动作,也可以是仅仅改变系统本身的状态,还可以是既改变状态又做动作。状态转换图的状态有三种包括初态(即初始状态) 、终态(即最终状态)和中间状态,在一张状态转换图中只能有一个初态,而终态则可以有0至多个。
  • 事件是在某个特定时刻发生的事情,它是对引起系统做动作或(和)从一个状态转换到另一个状态的外界事件的抽象。简而言之,事件就是引起系统做动作或(和)转换状态的控制信息。

3.3.2 状态转换图的符号表示

  • 初态用实心圆表示,终态用一对同心圆(内圆为实心圆)表示。
  • 中间状态用圆角矩形表示,可以用两条水平横线把它分成上、中、下3个部分。上面部分为状态的名称,这部分是必须有的;中间部分为状态变量的名字和值,这部分是可选的;下面部分是活动表,这部分也是可选的。
  • 状态图中两个状态之间带箭头的连线称为状态转换,箭头指明了转换方向。状态变迁通常是由事件触发的,在这种情况下应在表示状态转换的箭头线上标出触发转换的事件表达式;如果在箭头线上未标明事件,则表示在源状态的内部活动执行完之后自动触发转换。

3.3.3 状态转换图的实例

3.3.3.1 实例1 机票预定系统

题目:
机票预定系统中涉及的状态是机票的状态。当新的航空公司入驻之后,系统管理员会向数据库中添加机票相关信息,该机票进入审核状态,当该机票审核通过后,则处于待售状态;在销售过程中,如果该机票全部销售完毕,则进入售罄状态;销售过程中,如果航班取消,机票会进入下架状态,机票售罄或下架后,管理员清空机票信息,机票会进入退出流通状态,最后管理员删除机票。请根据上述描述画出相应的状态转换图。

解题:

3.3.3.2 实例2 线程

题目:

( 1 )该图是什么图,其中的矩形框表示什么?
( 2 )该图描述了怎样的情形?

解题:
( 1 )状态图,表示就绪,运行,阻塞状态;
( 2 )线程运行的基本流程如下:
当线程准备运行时,进入就绪状态,如果获得 cpu 时间片,就转入运行状态,运行正常结束,进入结束状态,如果在运行过程中, cpu 时间片用完后还没有完成任务,就进入就绪状态,等待再次得到 cpu 时间片,如果线程在运行过程中,不满足所须资源,就进入阻塞状态,处于阻塞状态的线程得到相关资源后,进入就绪状态,依次循环。

3.3.3.2 实例3 打印机

题目:
复印机的工作过程大致如下∶未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入│闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告,等待维修人员来排除故障,故障排除后回到闲置状态。
试用状态转换图描绘复印机的行为。

解题:

3.3.3.2 实例4 打电话

3.4 DD(成分,构成)

4. 结构化方法——建立行为模型

5. 面向对象开发方法——建立动态模型

5.1 案例

PPT中复印机

  1. 查找状态(复印…)
  2. 导出状态
  3. 找到状态改变外部事件
    (闲置——复印)
    (复印——闲置)
    (复印——缺纸)(复印——有纸)
    (Do/警告)(Do/警告)
  4. 在外部事件下加动作

6. 设计、测试

【软件工程总复习】第三章 需求分析(结构化分析)(数据分析)相关推荐

  1. 软件工程技术--第三章 需求分析

    第三章 需求分析 需求分析 ​ 需求分析的任务是要准确地定义新系统的目标,准确回答"系统必须做什么"的问题,并用需求规格说明书规范的形式准确地表达用户的需求. ​ 虽然在可行性研究 ...

  2. 分数怎么化成带分数_小升初数学总复习第三个基础模块:分数的认识

    今天我们开始小升初数学总复习第三个基础模块的复习:分数的认识 分数的认识一共分为8个知识考点. 第一,分数的意义 把单位"1".平均分成若干份,表示这样的一份或者几份的数叫做分数. ...

  3. 算法复习第三章分治法

    算法复习第三章分治法 循环日程表 最近点对 快速排序: 循环日程表 最近点对

  4. 计算机组成原理期末复习第三章-3(唐朔飞)

    计算机组成原理期末复习第三章-3(唐朔飞) ✨欢迎关注

  5. 【武汉理工大学】软件工程总复习 知识点整合

    「武汉理工大学 软件工程复习」第一章 | 软件工程概述_Graski的博客-CSDN博客 [ 主要考点 ] 软件特性.软件危机.软件工程基本目标(创建高质量的软件.运行正确的软件.足够好的软件).软件 ...

  6. 计网复习第三章part one

    写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 记录计网学习(复习) 计网学习 第三章 part one 3 ...

  7. 数据库系统概念(机械工业出版社,第六版)复习——第三章:SQL

    第三章       SQL SQL功能及操作符 数据查询:select 数据定义:create  alter  drop 数据操纵:insert   update   delete 数据控制:gran ...

  8. 通信电子线路期末复习第三章正弦波振荡器

    写在前面:本文仅供个人学习使用.本课程授课教师为乐艳芬. 文章目录 第三章 正弦波振荡器 3.1反馈振荡器-原理 3.2 LC正弦波振荡器 电容三点式和电感三点式 课堂练习:振荡电路 课堂练习2:判断 ...

  9. (软件工程复习核心重点)第三章需求分析-第一节:需求分析相关概念

    文章目录 一:需求分析相关概念 (1)定义 (2)必要性(了解) (3)准则 二:需求分析的任务 (1)确定对系统的综合要求 (2)分析系统的数据要求 A:意义(了解) B:工具 (3)导出系统的逻辑 ...

最新文章

  1. 顽强的病毒,如何处理
  2. 2.2 vivi虚拟视频驱动测试
  3. 【 数字信号处理 】定点数的表示之二进制数的原码与补码
  4. java集合框架(Framework)的性能
  5. 使用分析函数进行行列转换
  6. java学习(89):Charactor包装类统计
  7. 剑指offer(刷题1-10)--c++,Python版本
  8. python选择某一行_Python常用语法有哪些 如何快速入门Python开发
  9. tomcat运行出现问题(Starting Tomcat v8.0 Server at localhost' has encountered a problem.)
  10. springboot yml对于list列表配置方式
  11. 《水经注全国POI兴趣点1.0》发布
  12. OSCHINA网页旋转-愚人节效果
  13. 伯努利公式怎么推导的
  14. 解决:Elasticsearch failed to map source
  15. 【linux】 下根目录,家目录区别
  16. corn java 可配置_java的cron配置细节
  17. nginx设置缓存时间
  18. css 谷歌字体加载,使用谷歌网页字体无限制的添加字体到您的网站
  19. orangepi zero2部署网心云docker版
  20. “数据不会说谎”,如何看穿大数据背后的真相?

热门文章

  1. linux 程序怎么执行文件格式,linux汇编之——(1)ELF:Linux可执行程序文件格式
  2. Printjs 打印样式丢失,字体无法更改的处理方法
  3. 【简历模板素材】制作简历,找简历模板?这几个网站全部搞定!
  4. python中的numpy库有什么优缺点_python中关于numpy库的介绍
  5. java 发布和逸出
  6. GIS行业应用|智慧城市系列之智慧市政03
  7. 中移动NFC专用SIM卡测试报告
  8. android用支付宝打开指定链接,手机浏览器唤起支付宝并打开指定页面
  9. 揭秘阿里年会上的黑科技
  10. bs架构 mysql_什么是bs架构