软件工程(速成笔记)

第一章 软件工程概论

第一节 软件

1、软件定义

包括程序、数据、文档

2、软件特点

抽象、无明显制造过程、无备件、手工制作、成本昂贵

第二节 软件生存周期及软件开发模型

1、软件生存周期

①需求分析:描述软件的功能、性能、限制、接口、有效性需求,用需求规格说明书表达

②软件设计:技术核心,把确定的需求转换成相应的体系结构,分成总体设计和详细设计

③编码:把软件设计成代码

④测试:保证软件质量的重要手段,在设计测试用例的基础上检验软件

2、软件生存周期模型

①瀑布模型

遵循软件生存期的划分,各阶段自上而下、顺序展开

②演化模型

先做试验开发,探索可行性,弄清软件需求,再获得满意的软件

演化模型在克服瀑布模型缺点、减少由于软件需求不明给开发工作带来风险

③螺旋模型

结合瀑布与演化模型,加入风险分析,螺旋模型沿着螺线旋转,四个象限表达了四种活动:

1.制定计划:确定软件目标,选定实施方案

2.风险分析:分析所选方案,识别和消除风险

3.实施工程:实施软件开发

4.客户评估:评价开发工作,提出修正建议

第二章 可行性研究与需求分析

第一节 可行性研究

1、可行性研究的任务

用极少的代价在最短时间内决定软件能否开发成功

经济(成本和盈利)技术、法律、运行(运行方式)

2、可行性研究的步骤和工具

步骤

①确定系统的规模和目标

②分析现有系统,设计新系统的高层系统模型

③评审系统模型

④设计和评价新系统的实现方案

⑤制定行动方案

⑥拟定开发计划

⑦编制可行性报告

工具:系统流程图

第二节 结构化分析方法

1、定义

面向数据处理的软件开发方法,核心思想是自顶向下、逐层分解

2、主要建模工具

①实体关系图ERD

静态数据结构

②状态迁移图

对象在其生命周期内经历的状态序列

③数据流图DFD

系统中数据的流动、处理、存储情况

④数据字典

对数据流图中所有数据元素进行精确严格的定义

第三章 软件设计

第一节 软件设计的分类

①概要设计:将软件需求转换为软件结构和数据结构,编写概要设计说明书

②详细设计:细化软件结构,得到软件的详细算法和数据结构,编写详细设计文档

第二节 软件设计的概念

1、耦合性

模块间连接紧密,联系多,则耦合度高,以下是七种耦合方式(独立性渐降)

①非直接耦合

模块间互不联系,通过主模块的控制和调用实现联系

②数据耦合

模块间通过参数传递基本类型的数据

③特征耦合

模块间通过参数传递复杂的数据结构

④控制耦合

模块向另一个模块传递控制信息,控制其内部逻辑

⑤外部耦合

模块通过外部工具相关联

⑥公共耦合

多个模块访问同一个全局数据结构或公共环境

⑦内容耦合

一个模块直接访问另一个模块的内部数据,或者直接跳转到另一个模块的内部

2、内聚性

表示模块内部各元素相结合的紧密程度,以下是七种内聚方式(内聚性渐升)

①偶然内聚

各部分无联系,偶然被放到一起

②逻辑内聚

各部分属于相似的操作,由标志参数控制执行哪个操作

③时间内聚

各部分需要在同一时间段内执行

④过程内聚

各部分按照特定的执行顺序组合到一起,共同完成一个业务流程

⑤通信内聚

各模块在同一个数据集上进行不同的操作

⑥顺序内聚

各模块顺序执行,前一个部分的输出是下一个部分的输入

⑦功能内聚

各模块共同协作,完成一个单一、明确的功能或任务

第三节 结构化设计方法

变换分析

将结构化分析阶段得到的数据流图转换为软件结构图

1.找核心:找到流程图中最核心的处理步骤

2.搭架子:创建一个总控模块,下面加上输入、处理、输出三大模块

3.填细节:把输入、处理、输出分成更具体的模块

第四节 详细设计

1、N-S图(盒图)
2、判定表与判定树

算法包含多重嵌套的条件选择时使用判定表与判定树

第四章 面相对象技术

面向对象分析

对象模型技术

①对象模型:描述系统静态结构,包括类和对象,以及他们的属性、操作和联系

②动态模型:描述系统涉及时序和改变的状态

③功能模型:描述系统内部数据的传输和处理

第五章 统一建模语言UML

第一节 UML定义

用于软件系统可视化、详述、构造和文档化的通用建模语言

第二节 UML概述

1、UML的基本构造块

①视图

从某个特定的角度对系统建模元素的抽象,不是一个具体的图形,而是一个观察视角,由一组相关的图构成

可以想象成一本相册,里面收录了从不同角度拍摄的建筑物照片

分为用例、逻辑、实现、进程、部署4种视图

②图

视图的具体表现,是包含特定模型元素的图形

可以想象成相册里的一张具体的照片

分为++++用例++++ 、++++类++++ 、++++对象++++ 、组件、部署5种静态图和状态、++++时序++++ 、协作、++++活动++++4种动态图

③模型元素

在UML各种图中使用的概念,是用标准的图形符号表示

第三节 静态建模

1、用例模型

描述参与者(用户)能用系统做什么

用例: 系统为用户提供的完整功能

关系: 描述谁能用哪个功能,以及功能间如何组合

成果是用例图,展示系统的核心功能范围

2、类和对象模型

描述系统有哪些"模板",以及它们的关系

给系统画一张静态结构图,说明系统由什么组成,不关心如何运行

3、类之间的关系

①关联:一个类作为另一个类的成员变量,它们存在长期、稳定的联系

②聚集:一种特殊的关联关系,强调整体与部分

③泛化:子类基于父类扩展,子类继承父类的特征,并添加新的特征

④依赖:一个类的行为需要用到另一个类的对象

第四节 动态建模

1、状态图

描述一个对象所有可能状态及引起其状态转移的事件

一个状态图包括一系列状态以及状态之间的转移

2、时序图

描述对象间的动态交互,体现对象间消息传递的时序

存在两个轴,水平轴表示不同对象,垂直轴表示时间

对象用一个带垂直虚线的矩形框表示,垂直虚线是对象的生命线,对象间通信通过在对象的生命线间传递消息来表示

3、协作图

用于描述相互协作的对象间的交互关系和链接关系,体现对象间的静态链接关系

4、活动图

显示动作及其结果,既可描述操作的行为,也可描述用例和对象内部的工作过程

第五节 基于UML的统一建模过程---RUP

以用例为驱动、以系统为中心的迭代与增量过程

包括初始、细化、构造、移交4个阶段,每个阶段又分为若干次迭代,每次有一个工作流,包括需求、分析、设计、实现、测试5个活动

相关推荐
小魏每天都学习23 分钟前
软件工程——习题课【笔记对应】
软件工程
YounGp_oo12 小时前
使用 AI 编程工具的一点实践体会:为什么要减少对话轮次、一次把需求说清楚
软件工程·需求分析·开发经验·工程实践·ai 编程
行业探路者1 天前
如何利用二维码提升富媒体展示的效果?
大数据·人工智能·学习·产品运营·软件工程
光明源智能科技1 天前
服务区智慧公厕的定义与演进:从“卫生设施”到“空间智能体”的跨越
软件工程
雾江流1 天前
Olib 2.4.4|免梯下载Zlibrary电子书 开源免费 需要自己的Zlib账号
软件工程
余生H1 天前
2026 年时间记录软件对比研究:时间线与「时光流」设计的产品分化
前端·软件工程·时间管理·时间记录
宇钶宇夕1 天前
CoDeSys入门实战一起学习(九):CoDeSys库文件实操指南——安装、调用与版本管理
运维·自动化·软件工程
阿勉要睡觉2 天前
软件工程期末汇总
软件工程
搞科研的小刘选手2 天前
【高届数会议推荐】第九届先进电子技术、计算机与软件工程国际学术会议(AETCSE 2026)
计算机·软件工程·软件开发·学术会议·计算机工程·先进电子技术·电子技术
Coder_Boy_3 天前
基于SpringAI的在线考试系统-数据库 表结构 & 完整外键依赖关系梳理
java·数据库·人工智能·软件工程