这部分是一些软工概念的总结:
第一章 :软件与软件工程的概念
软件的概念、特性和分类
其他的见ppt和视频
软件危机与软件工程
见ppt和视频
软件工程的目标
见ppt和视频
软件生存期
见ppt和视频
软件工程方法概述
主要是模块图——怎样画见另外一篇专门讲画图的
见ppt和视频
数据流图
结构图
类图
顺序图
其余的见ppt
软件工具概述
主要用这些软件画图
见ppt和视频
第二章 软件生存期模型
瀑布模型
详细的见视频和ppt
快速原型模型
详细见视频和ppt
增量模型
详细见ppt和视频
螺旋模型
详细见ppt和视频
练习(会选用哪个模型)
其他的模型
喷泉模型
详细见ppt和视频
统一软件开发过程(Rational Unified Process)
一共有6个核心工作流:
- 业务建模工作流
- 需求工作流
- 分析和设计工作流
- 实现工作流
- 测试工作流
- 部署工作流
四个阶段:
详细见ppt和视频
要点掌握
详细见ppt和视频
第三章 可行性研究
前面的概念详细见ppt和视频
系统流程图
这里主要讲解下这个系统流程图
:
这里系统流程图主要是描述物理系统
的工具
基本符号和系统符号
举例
详情见ppt和视频
总结要点
第四章 软件需求分析概述
详情见ppt和视频
业务流程图
这里主要介绍一下业务流程图
的画法
从主要业务流程入手,它们是系统的关键;
- 流程方向应尽量符合
由上至下、由左至右
; - 使用通用、统一的符号标记;
- 一个活动框应当是一件独立的工作或者事件一个判定框代表一个判定值(真或假),不应表示活动或动作本身。标明流程名称;
- 一般一个流程有
一个起始点,一或多个终结点;
- 尽量避免出现交叉的流动线路,可以并行执行的活动应尽量使用同步条表示;
- 尽量识别并绘制出流程中用到的表格和文档。
举例:期末考试流程图
主要还是使用UML的流程图:
期末考试流程:
软件工程概论 课堂练习【空调公司维修服务流程】
第五章 面向对象系统分析(部分1)
用例
用例是对系统需求的规范化的描述
第一步 识别参与者
参与者是系统之外与系统进行交互的任何事物。
注意是系统之外与之交互的
从三个方面来识别:
1 使用系统的个人
- 谁负责提供使用或者删除信息
- 谁使用某项功能
2 系统所连接的外部硬件
- 例如:控制建筑物中温度的通风系统不断的从传感器获取温度信息,传感器就是一个参与者
3 与该系统进行通信的其他信息系统
- 例如自动柜员系统建模时,中央银行系统就是它的一个参与者。信用卡系统是销售系统中的一个参与者
其他注意
另外注意进行交互必须是实时的才能称为参与者、
有时候数据的人员不一定会执行系统功能
第二步 识别主要参与者与次要参与者
用例分析的重点还是要先找到主要参与者
下面来说说表示UML的规则
第三步 参与者的表示
某些情况下,参与者的角色有相同地方,其中一个角色可以完成另外一个角色的全部,称为泛化
- 比如下面在超市系统中,值班经理完全可以充当收银员这一角色,此外,值班经理还可以有退货、更改事务等权利。
第四步 识别用例
用例就是功能性需求
每个用例至少与一个参与者相关,用例名称要体现参与者希望系统提供的功能
参与者就是这个功能部件的使用管理者
和该功能的直接交互者
第五步 用例的UML表示
区分用例和用例完成的步骤(子功能)(功能细分的步骤)
区分业务用例和系统用例
举例:
这里容易忘记右边的查看空缺岗位信息
图书馆系统的用例图
软件工程概论 课堂练习【用例图——空调公司维修服务流程】
这个例子就说明了web与非web
- 如果是非web的
就需要管理员来管理整体工作,为主要参与者
这里是业务经理
- 如果是web的
就需要用户自己申请服务,为主要参与者
因为是在网上支付,所以
不需要业务经理收回派工单后,通知财务人员进行结算并收款,流程终结。
还是有点抽象,大致理解下
其他用例方面注意的事情
用例的规格化
用例的前置后置条件
-
前置条件:比如: "预定图书"用例的前置条件是用户读者已经登录系统
如果前置条件不满足,用例无法启动 -
后置条件:比如 : 成功" 借出图书 "会使图书的状态改变等
用例一旦满足,可能会使系统内部的某些改变 -
某些可能没有,比如 查询书目 就没有后置条件
用例的场景
用例与事件流(主事件流和备选事件流)
用例的简单描述
举例总结
用例描述的双列格式
非功能需求
用例描述
带业务规则的用例描述
书写用例的准则(规范书写)
常见错误总结
举例:pos系统的描述
购买商品用例的规范描述
每个用例都可以绘制活动图
活动图可以形象的描述出来交互
图书管理系统 “借出图书”
!用例关系(包含、泛化、扩展)
包含关系(include)
:经过封装后可以在各种不同的基本用例中复用的行为称为包含用例。扩展关系(extend)
:表达某些可选或只在特定条件下才执行的系统行为的用例,它们是对基本用例的扩展。称为扩展用例。泛化关系(generalization)
:如果两个或更多用例在行为、结构和目的方面存在共性,可以使用泛化关系。父用例描述这些共有部分,子用例继承父用例并特殊化。
包含关系
-
可以在不同的用例中复用的行为
-
一个基本用例可以有多个包含用例,一个包含用例可以包含在若干基本用例中,可以嵌套
比如上图中取款和修改口令需要先登录后才能操作,所以这二个行为包含登录这个行为
预定图书需要查询书目,包含这个行为
扩展关系
就如字面意思,往下扩展的(往下延申出来的行为)
如上图:打电话可以往下扩展 三方通话和来电显示行为
归还图书可以扩展登记赔偿行为
泛化关系
用一个新的,抽象的大的用例来描述其他多个用例的共有部分
关系举例:图书馆系统的用例图
其余要注意的地方
举例:旅店管理系统用例图
注意的地方
这里旅客和用户重复了
虚线表示
应该经理这里不应该跟打印一周预定情况连起来这样就顺序了
不能用例连接指向参与者
经理指向服务人员就好多了
第五章 面向对象系统分析(部分2)
领域对象建模(类图、顺序图和活动图)
详情见ppt和视频
这里介绍下类图、顺序图和活动图
这几个图的举例和区分:
举例:图书馆系统的类图
先找出来需要的用例
再把属性添加进去
这里要讲一下他们之间的关联,怎样关联划线?
关联、关系
比如这里就是1对多,1个图书品种包含多个图书
描述关联的构成
第一步 关联名称
注意类图中的关联是实线的,他们的关联名称是放在路径上,并且是动词
第二步 关联角色
就是其中的关联的每一端
应该是一个名词
案例——关联角色
第三步 关联的一对一,一对多,多对多
第四步 关联的箭头指向
比如上面图,一个读者可以登记多个借书记录
读者指向借书记录说明读者可以单向访问借书记录
案例 影片租借系统
整体-部分关联(a is a part of b)
UML类图画图中整体部分关联
在UML类图中,使用连接线和菱形表达,菱形一端的对象是整体
这个关联有二种类型
- 组合
- 共享
1 组合聚集
用实心菱形来表示
2 共享聚集
与组合不同的是部分可能属于多个整体,而组合只能是一个整体的(特殊性)
组合用空心菱形表示
图书馆系统的类图
一般特殊结构(泛化的使用)
上图馆藏资源品种是下面二个的泛化
案例 影片租借系统
案例 空调维修系统
抽象类
多继承
接口
总结
类图的结构
举例 图书馆系统类图
案例 空调维修系统
第五章 面向对象系统分析(部分3 基本介绍)
类和对象的区分和举例见ppt和视频
多态和重用等知识也见ppt
UML的介绍也见ppt
第五章 面向对象系统分析(部分4)
交互图(顺序图)
举个例子
参与者与对象
参与者是后面类(对象)的发起者,从这里开始活动
生命线和激活框
不应该有二个,可以画大点一个
消息
顺序图控制流备用流
如下图
二个框,loop是每件货物,是循环操作
再用一个alt框,选择框架,满足条件才会执行事件流
顺序图的难点
举例 图书馆顺序图
案例 软件工程概论 顺序图思考题——绘制手机拨号顺序图
状态图
元素组成
- 初态:起始点,对象的初始状态,实心圆
- 终态:终点,对象的最终状态,实心圆外加一个圆圈
- 复合:一个状态嵌套其他多个状态
然后箭头实线转换,进行画图
举例 图书借阅
软件工程概论【状态图思考题——绘制信用卡的状态图】
活动图
用于描述各种活动的执行顺序
活动图是另一种描述交互的方式,它描述采取何种动作,动作的结果是什么(动作状态改变),何时发生(动作序列),以及在何处发生(泳道)
。
元素组成
举例
第六章 软件设计的目标
见ppt
第七章 软件体系结构(C/S B/S …)
见ppt’
第八章 面向对象设计方法(包 接口 设计类)
见ppt
第九章 结构化分析
基本的东西见ppt和视频
主要有以下几个模型:
这里主要讲解一下数据流图
数据流图
什么是数据流图?
数据流图描绘系统的逻辑模型
,图中无具体的物理元素,只是描绘信息在系统中流动和处理的情况。
例如:学生购买教材系统–通过对现实环境的调查,获得当前系统的物理模型
从物理流程中发现了许多物理地点,去掉其中的非本质因素,然后抽象出来当前系统的逻辑模型
我们还可以细分。
数据流图的元素
外部实体
处理过程
数据流
数据流用箭头
表示
箭头
表示方向
箭头线
旁数据流名字
数据流之间的关系
*
同时输入
⊕
或
+
或、和
数据存储
如销售账单:
辩别数据存储
数据流图的绘制
具体见视频和ppt:
具体可以见我另外一篇文章专门讲画图的
这里稍微讲解一下:
1.画系统的输入输出(顶层图)
——把整个软件系统看作一个大的加工处理,确定软件的数据源点和终点、源点和终点与软件系统之间的输入/输出数据流。
就是确定数据源点和终点
2.画系统的内部(0层图)
- 分解顶层图中的加工处理,并用数据流将这些加工处理连接起来,使得顶层图中的输入数据流经一连串的加工处理后变换成顶层图的输出数据流。
- 在数据流的组成或值发生变化的地方应画一个加工处理,这个加工处理的功能就是实现这一变化。
- 也可根据系统的功能确定加工处理。
3.画系统的内部
画出加工处理,把每个加工处理看成一个更小的系统再划分;
4 对第3步分解出来的DFD子图中的每个加工处理重复第3步的分解
下面讲解个例子:
例子:库存管理系统
分析构成
首先从中提起数据流图的实体和处理,以及存储的东西
画出顶层图
画出0层图
分解细化,子系统,内部
也就是这里的订货系统还能再分解
注意事项
数据流图的常见错误
1. 语法错误(可采用软件工具辅助绘图消除)
2. 逻辑错误
3. 词不达意,二义性
结构化系统分析——交通违章处理
某慕课教育平台欲添加在线作业批改系统
数据字典
详情见ppt
DFD是一种简化的模型,虽然直观,但没有具体细节,仅依靠DFD定义需求不够充分。
数据字典
是对DFD的补充描述,用来描述数据流程图中的数据流、数据存储、处理过程和外部实体的详细内容
。
数据流图与数据字典共同构成系统的功能模型,数据字典可以改进通信,规范描述,消除误解
符号
数据元素(基本数据项)
例如
数据元素条目:
数据流
例如
数据流图条目:
数据存储
主要描写该数据存储的结构
,及有关的数据流、查询要求
。
有些数据存储的结构可能很复杂 , 如“学籍表”,包括学生的基本情况、学生动态、奖惩记录、学习成绩、毕业论文成绩等,其中每一项又是数据结构.
这些数据结构有各自的条目分别加以说明;
因此在“学籍表”的条目中可以直接引用这些数据结构,而不要列出这些数据结构的内部元素构成。
例如下面:
库存清单,不用列出组成的货物名称和编号等的组成元素(上面的数据元素条目有了)
数据处理(加工)
需要在数据字典中描述处理框的编号、名称、功能的简要说明,有关的输入、输出
。
通常仅重点描述最底层的处理过程。复杂的处理逻辑可以借助于一些图表工具,如结构化语言、判定树、判定表等。
外部实体
算是个对实体的说明:
数据字典的编制
数据字典的使用
加工规模说明
三种基本结构
1. 祈使语句
2. 条件判断语句
3. 循环语句
判定树
判定表
例子:岗位再分配
使用判定表的步骤
三种工具比较及选择哪个?
数据建模(E-R图)
见ppt和我另外一篇文章
行为建模 (状态图)
见ppt和我另外一篇文章
第十章 结构化设计(总体设计)
代码的模块化设计
详情见ppt
结构图(H图)
结构图(Structure Chart)
:描述系统的模块结构及模块间的联系
结构图中的主要成分有:
模块
:用长方形表示调用
:从一个模块指向另一模块的箭头表示前一个模块调用后一个模块。有循环调用和条件调用数据
:用带圆圈的小箭头表示从一个模块传递给另一模块的数据(有实义)控制信息
:带涂黑圆圈的小箭头表示一个模块传送给另一模块的控制信息
层次图的画法
就是模块划分
模块调用
见ppt
模块的联系和耦合
见ppt
模块内聚
看ppt
变换分析(从数据流图导出结构图)
变换分析
(变换型数据流图映射成软件结构的设计)事务分析
(事务型数据流图映射成软件结构的设计)综合型数据流图映射成软件结构的设计
优化设计
变换流
详情见视频变换流分析
事务流
详情见视频事务流分析
变换分析
见ppt
工资处理结构图
结构化分析
就是一道题里面有结构图还有流图等的大题分析
基于Web的房屋中介系统
高考录取统分子系统
第十一章 结构化设计(详细设计)
见ppt
程序流程图
盒图 NS图
比较
PDL图 (不咋用)
见ppt
伪代码 PDL
例子:
软件工程概论 第3次作业4【程序流程图和N-S图】
数据库选择设计
见ppt
代码规范和选择
其余见ppt
第十二章 系统实施
- 系统实施阶段的任务
- 制定软件实现策略
- 编程方法(Coding)
- 系统测试(Testing)
- 系统排错(Debuging)
- 系统交付(Transition)
见ppt,这里讲解下要出题的部分
逻辑覆盖
见视频逻辑覆盖
上面讲解的很清楚
基本路径测试
看视频基本路径测试 和ppt
讲解的很清楚
1. 画出流图
2. 计算复杂度