当前位置: 首页 > news >正文

软件工程(速成笔记)

第一章 软件工程概论

第一节 软件

        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个活动

http://www.dtcms.com/a/604897.html

相关文章:

  • 深圳苏州企业网站建设服务公司网站建设很难吗
  • sward实战教程系列(4) - 如何编写Markdown文档
  • 树莓派5-ubuntu 24.04 ros-jazzy-desktop 创建 robot_navigation 包
  • 【Linux】调试监听接口是否正常
  • Flink CDC + StarRocks用 StarRocks Connector 打通实时明细与分析
  • Linux《Socket编程Tcp》
  • 2025.11.13 力扣每日一题
  • “暗激子(dark excitons)” 以 30万倍亮度被观测到
  • 数据归一化:提升模型训练的关键技巧
  • 网站外链建设可以提升网站权重对吗三亚平台公司
  • 怎么做一种网站为别人宣传lamp 做网站
  • UE5制作扭曲声波效果
  • 从 OneThreadOneLoop 线程池到进程池:高性能 Reactor 服务器的演进
  • C语言在线编译环境 | 提高编程效率与学习体验
  • 矩阵起源成功登陆深圳“专精特新”专板,加速 AI 数据智能新进程!
  • MPC模型预测控制原理全解析:从状态预测、矩阵推导到QP求解与滚动优化(含完整手推过程)
  • android recyclerview缓存2_四级缓存机制
  • [特殊字符] 在 macOS 上设置 SQLite
  • android recyclerview缓存1_概念和常见问题
  • SQLite 速成学习
  • [特殊字符] 在 Windows 上设置 SQLite
  • 做资源网站违法吗深圳大梅沙
  • 【环境数据处理】-基于R批量对环境数据克里金插值提高数据精度
  • 广州wap网站建设百度seo优化技术
  • linux centos常用命令整理
  • Java设计模式之建造者模式(Builder)详解
  • [智能体设计模式] 第6章:规划
  • 学习react第三天
  • 营销软文网站西安网站建设网络公司熊掌号
  • 二分查找算法介绍及使用