软件工程课程笔记

第一章:软件与软件工程

软件工程三要素是方法、工具、过程。
软件开发模型

软件开发模型又称为软件过程模型。
软件过程模型是对软件开发实际过程的抽象和简化。
目前典型的有瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等。
在这里插入图片描述

  • 瀑布模型
    在这里插入图片描述
    主要思想:
    软件开发过程与软件生命周期一致;
    相领二阶段存在因果关系;
    需要对阶段性产品进行评审

优点:
软件开发过程具有系统性,可控性,客服了软件开发的随意性;
每个阶段都有产出,非常经典的模型

缺点:
项目开始阶段用户很难精确提出产品需求,由于技术进步,用户对系统深入的理解,修改需求十分普遍。每个阶段都依赖于上一阶段,不能应对客户需求变更;
项目开发晚期才能得到程序运行版本,这时修改软件需求和开发的错误代价很大;
采取线性模型组织项目开发经常发生小组成员“堵塞状态”。

  • 增量模型
    增量模型是一个非整体开发的模型。
    先开发核心模块,按照模块一个个开发。
    在这里插入图片描述
    在这里插入图片描述
  • 快速原型
    在这里插入图片描述在这里插入图片描述
  • 螺旋模型
    在这里插入图片描述
    在这里插入图片描述
  • 其他
    在这里插入图片描述
软件开发方法

软件开发方法分为两大类:
①面向过程的开发方法
②面向对象的开发方法

结构化开发方法:
现有软件开发方法中最成熟,应用最广泛的方法,特点是快速、自然和方便。
在这里插入图片描述
面向对象方法
四个要点:对象;类;父类(基类)和子类(派生类);消息
模拟人类习惯的思维方式,使描述问题的问题空间与实现解法的解空间在结构上尽可能一致。
在这里插入图片描述
信息系统开发方法
在这里插入图片描述

第三章:需求分析基础

软件生命周期

在这里插入图片描述

需求工程

功能需求、非功能需求、领域需求
没有需求就没有软件。

软件需求的困难:

  1. 应用领域的广泛性;
  2. 非功能性需求建模技术缺乏
  3. 沟通上的困难

在这里插入图片描述
在这里插入图片描述

需求分析的作用

在这里插入图片描述

需求工程的基本活动
  • 获取需求
  • 需求分析与建模
  • 确认需求
  • 进化需求
获取需求

非常困难
原因:
在这里插入图片描述
需求获取方法:
在这里插入图片描述

需求分析与建模

包含三个层次工作:
需求分析
需求建模
需求规格说明——不同的描述方式

需求的有效性验证

由于需求是软件开发的第一阶段,直接影响后面各阶段的开发。
需求的可变性必须进行验证。
需求验证的内容:

  1. 有效性检查
  2. 一致性检查
  3. 完备性检查
  4. 可检验性检查
需求管理

在这里插入图片描述

3.需求分析方法

3.1 功能分解方法
3.2 结构化分析方法
数据流图(DFD图):是一种以数据、数据的封闭性为基础,从问题空间到某种表示的映射方法。
在这里插入图片描述
ER图:E-实体。是一个或一组对象;R-关系。
面向对象的分析方法(OOA)
在这里插入图片描述
SA法的描述方法:
1.分层的数据流图(DFD图)
2.数据词典
3.描述加工逻辑的结构化语言、判定表和判定树

数据流图DFD
在这里插入图片描述
在这里插入图片描述
数据字典DD
在这里插入图片描述在这里插入图片描述

加工说明
在这里插入图片描述
在这里插入图片描述
判定表
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.结构化分析流程

SA法的基本思想:“分解”和“抽象”
分解:对于一个复杂的系统,为了将复杂度降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决。
抽象:分解可以分层进行,即先考虑问题最本质的属性,暂时把细节略去,以后再逐层添加细节,直至设计最详细的内容,这种用最本质的属性表示一个系统的方法就是“抽象”。

软件设计基础

软件设计过程
软件开发的信息流——

在这里插入图片描述

设计任务分类:

系统结构设计、数据设计、过程设计、界面设计

软件设计的目标 就是构造一个高内聚低耦合的软件模型
软件设计准则
  • 原则1:软件结构的准则
    在这里插入图片描述
    在这里插入图片描述
  • 原则2:模块化设计 在这里插入图片描述
    在这里插入图片描述
    模块个数的标准:7±2
  • 原则3:独立性原则
    高内聚、低耦合
    在这里插入图片描述

内聚:

在这里插入图片描述
巧合性内聚
逻辑性内聚
时间内聚
过程内聚
通信内聚
信息内聚
功能内聚

耦合

在这里插入图片描述

2.软件架构设计

体系结构的设计过程的主要活动:

  1. 系统分解
  2. 控制建模
  3. 模块分解
2.1 仓库模型

在这里插入图片描述

  1. 各子系统共享中央数据库中的数据——共享容器模型
  2. 各子系统可以有自己的数据库,子系统之间通过信息传递实现数据交换
优缺点

在这里插入图片描述

2.2 客户机/服务器模型(C/S)

客户机:向服务器发送请求
服务器:响应请求,进行相应操作,将结果回传给客户机,客户机再将格式化的结果呈现给用户
三级/多级应用模型

2.3 分布式对象结构
2.4 抽象机模型
2.5 控制模型

结构化设计

SD方法的阶段

  1. 总体设计(任务:解决系统的模块结构,即分解模块,确定模块功能和系统模块的层次结构)
  2. 详细设计(对模块图每个模块的过程进行描述)

SD法的设计步骤:
1.从DFD图导出初始的模块结构图(SC)
2.按照SD法设计总则,改进模块结构图

软件:
层次性:反映软件整体的性质(结构图)
过程性:反映局部的性质(框图)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
模块结构图的改进
设计总则:“降低块间联系,提高块内联系”提高内聚,减少耦合
(1)尽可能建立功能模块
功能模块具有最强的内聚性,应满足信息屏蔽原则:一个模块内包含的信息对不需要这些信息的模块是不能访问的。

在这里插入图片描述
(2)消除重复功能
(3)控制范围
(4)模块大小适宜
50-100行
(5)模块的扇入扇出不宜过多

详细设计工具

常用的描述方法工具
1.流程图
2.结构化流程图(N-S图)
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值