软件工程详细知识点(下)

news2024/11/29 2:32:49

文章目录

    • 七、面向对象的分析设计
      • 1、面向对象分析(OOA)
      • 2、面向对象设计(OOD)
    • 八、编码
      • 1、程序设计语言
    • 九、软件测试
    • 十、软件维护
    • 十一、软件项目管理
    • ++RUP(统一软件开发过程)
    • ++面向对象编程和面向对象设计的五个基本原则「SOLID」

七、面向对象的分析设计

1、面向对象分析(OOA)

目的:完成对所需求解问题的分析,确定目标系统所要做的工作,定义所有与待解决问题相关类,并建立系统模型

向对象分析的3种模型类型:
(1)对象模型:描述系统的数据结构,它是用来描述系统包含的对象及对象之间关系的模型
(2)动态模型:描述系统的控制结构,它是用来确定各个对象之间交互及整体控制结构的模型
(3)功能模型:描述系统的功能结构,它是要描述系统要实现的功能的模型

对象模型的层次

  1. 主题层
  2. 类&对象层
  3. 结构层
  4. 属性层
  5. 服务层

建立对象模型的方法
确定类和对象、确定结构、确定主题、确定服务和消息

建立功能模型的方法:
(1)定义系统
(2)寻找行为者和用例
(3)描述用例
(4)定义用例之间的关系
(5)确认模型

2、面向对象设计(OOD)

面向对象设计的主要原则:开放封闭原则、单一职责原则、依赖倒置原则、里氏替换原则等。

面向对象设计的准则
(1)模块化
(2)抽象
(3)信息隐藏
(4)低耦合
(5)高内聚
(5)复用性

八、编码

1、程序设计语言

软件实现的任务:
程序设计语言的分类:

  1. 机器语言
  2. 汇编语言
  3. 高级语言
  4. 非过程化语言

程序设计语言选择的准则:

  1. 项目的应用领域
  2. 用户的要求
  3. 软件开发工具
  4. 算法和数据结构的复杂性
  5. 软件开发人员的知识
  6. 系统的可移植性要求

程序设计风格:

  1. 源程序文档化
    1、标识符的命名
    2、程序代码的视觉组织
    3、程序的注释
  2. 数据说明
  3. 语句构造
  4. 输入与输出
  5. 效率

代码评审的主要方法、代码评审要点

九、软件测试

软件测试的基本任务: 发现软件产品中存在的软件缺陷,进而保证软件产品的质量
软件测试的方法
在这里插入图片描述

软件测试的分类(理解)
(1)单元测试
(2)集成测试
(3)确认测试
(4)系统测试

十、软件维护

软件维护的任务: 保证软件系统能持续地与用户环境、数据处理操作、政府或其他有关部门的请求取得协调。最终目的是延长软件的生存周期。

软件维护的类型:
1、改正维护
改正在系统开发阶段已经发生的而系统测试阶段尚未发生的错误
2、适应性维护
适应软件环境发生的变化而进行的维护
3、完善性维护
扩充软件的功能和用户提出的新需求而进行的维护
4、预防性维护
为改进软件效率、可靠性、可维护性而进行的维护

软件维护流程

  1. 确定维护的类型

  2. 对于改正性维护从评价错误的严重性开始

  3. 对于适应性维护和完善性维护建立每个请求的优先级

  4. 实施维护任务

  5. 维护复审

    在这里插入图片描述

十一、软件项目管理

项目利用有限资源、在一定的时间内,完成满足一系列特定目标的多项相关工作
软件配置管理:用于整个软件工程过程,其任务是标识和确定系统中的配置项,在系统整个生存期内控制这些配置项的发布和变更,记录并报告配置的状态和变更要求,验证配置项的完整性和正确性

配置项:简单地说就是受scm控制和管理的工作产品单元,在配置管理过程中作为单个实体对待,是配置管理的对象

++RUP(统一软件开发过程)

统一软件过程是一个面向对象且基于网络的程序开发方法论

软件统一过程(RUP)是Rational软件公司(Rational公司被IBM并购)创造的软件工程方法。RUP描述了如何有效地利用商业的可靠的方法开发和部署软件,是一种重量级过程(也被称作厚方法学),因此特别适用于大型软件团队开发大型项目。软件统一过程(RUP)是Rational软件公司(Rational公司被IBM并购)创造的软件工程方法。RUP描述了如何有效地利用商业的可靠的方法开发和部署软件,是一种重量级过程(也被称作厚方法学),因此特别适用于大型软件团队开发大型项目。

RUP最重要的它有三大特点:
1)软件开发是一个迭代过程
2)软件开发是由Use Case驱动的
3)软件开发是以架构设计(Architectural Design)为中心的。

UP中的软件生命周期在时间上被分解为四个顺序的阶段,分别是:初始阶段(Inception)、细化阶段(Elaboration)、构造阶段(Construction)和交付阶段(Transition)。

RUP中有9个核心工作流,分为6个核心过程工作流(Core Process Workflows)和3个核心支持工作流(Core Supporting Workflows)。

++面向对象编程和面向对象设计的五个基本原则「SOLID」

单一职责原则(Single Responsibility Principle)
开放封闭原则(Open Closed Principle)
里氏替换原则(Liskov Substitution Principle)
接口隔离原则(Interface Segregation Principle)
依赖反转原则(Dependency Inversion Principle)

1.单一职责原则,规定一个类有且仅有一个理由使其改变。换句话说,一个类的边界和职责应当是十分狭窄且集中的。一个类应当做它该做的事,并且不应当被它的任何依赖的变化所影响。

2.开放封闭原则,又称开闭原则,规定代码对扩展是开放的,对修改是封闭的。

3.里氏替换原则,规定对象可以被其子类的实例所替换,并且不会影响到程序的正确性。

4.接口隔离原则,规定不应该强制接口的实现依赖于它不使用的方法。

5.依赖反转原则,规定高层次的代码不应该依赖低层级的代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/331282.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++STL】双向循环链表与其迭代器的深度剖析及实现(百字短文速通)

1,双向循环链表基本结构的实现(不包含需要迭代器的部分)先用struct封装链表的节点,这里我们仅需要提供一个构造函数即可,并且构造函数必须提供缺省值,因为会有如下使用场景:new Node();此时需要…

crawler爬虫抓取数据

crawler爬虫实现 学习目标: 了解 crawler爬虫运行流程了解 crawler爬虫模块实现 1. crawler功能 初始化driver输入公司名称,并点击判断是否需要验证如果需要验证,获取验证图片并保存获取打码坐标点击验证图片判断查询结果选择第一条查询结果获取主要信…

电脑自带的录屏软件在哪?图文教学,教你如何快速录屏

很多小伙伴或许都听说过电脑有一款自带的录屏软件,但却不知道这款录屏软件在哪里。电脑自带的录屏软件在哪?其实很简单,如果你的电脑是Win10或者Win11的电脑,那么就可以使用电脑自带的录屏软件,一起跟着小编来看看吧。…

初次认识C++类

目录 前言: 面向过程和面向对象的区别: C语言: C: 类的引入: 类的定义: 类的权限: 类的作用域: 类的实例化: 类的大小计算: 空类或则只…

急速肝了一波ChatGPT,听说阿里面试题都没问题~

目录前言注册步骤:最后总结前言 互联网圈子里面ChatGPT现在实在是太火了,但是你还没用过?我只能说你OUT了,ChatGPT是什么呢? 由人工智能实验室OpenAI发布的对话式大型语言模型ChatGPT引爆中文互联网。它可以与人类轻松…

2022年ts学习记录

以下记录的是,我在学习中的一些学习笔记,这篇笔记是自己学习的学习大杂烩,主要用于记录,方便查找一、TS 是什么 ?##1、简介TS:是TypeScript的简称,是一种由微软开发的自由和开源的编程语言。ts …

朗润外盘国际期货:SC原油市场情绪回暖领涨期市

今日值得回溯的三个行情:①SC原油主力合约今日收高4.23%,研报建议仍以震荡行情对待?②沪锡主力合约收涨3.20%,现在做多合适吗?③鸡蛋主力合约收跌1.32%,研报称这只是小幅回调。 【今日期市盘面概况】 整体…

深度学习 Day25——使用Pytorch实现彩色图片识别

深度学习 Day25——使用Pytorch实现彩色图片识别 文章目录深度学习 Day25——使用Pytorch实现彩色图片识别一、前言二、我的环境三、前期工作1、导入依赖项和设置GPU2、下载数据3、加载数据4、数据可视化四、构建CNN网络结构1、函数介绍2、构建CNN并打印模型3、可视化模型结构五…

Docker安装EalasticSearch、Kibana,安装Elasticvue插件

使用Docker快速安装部署ES和Kibana的前提:首先需要确保已经安装了Docker环境。 如果没有安装Docker的话,先在Linux上安装Docker。 有了Docker环境后,就可以使用Docker安装部署ES和Kibana了 一、安装ES 1、拉取EalasticSearch镜像 docker p…

SpringIOC之创建Bean的核心方法doGetBean

概述面向资源(XML、Properties)、面向注解定义的 Bean 是如何被解析成 BeanDefinition(Bean 的“前身”),并保存至 BeanDefinitionRegistry 注册中心里面,实际也是通过 ConcurrentHashMap 进行保存。Spring…

强缓存与协商缓存

Ⅰ、http缓存 HTTP 缓存策略 分为 > 「强制缓存」 和 「协商缓存」 为什么需要 HTTP 缓存 呢 ? 👇 直接使用缓存速度 >> 远比重新请求快 缓存对象有那些呢 ?👇 「图片」 「JS文件」 「CSS文件」 等等 文章目录Ⅰ、http缓存Ⅱ…

Hi3559av100平台8路1080P/720P输入配置流程梳理

平台: hi3559av100 硬件连接: 8路YUV422 -> 4路 2lane MIPI -> hi3559av100 最终效果: 经过处理后,后端可以实现8路独立视频流处理; 可以自由和后级VPSS/VENC/VO等模块进行绑定和处理 前言: &…

Spring-整合Mybatis

Spring-整合Mybatis 6,Spring整合 6.1 Spring整合Mybatis思路分析 6.1.1 环境准备 在准备环境的过程中,我们也来回顾下Mybatis开发的相关内容: 步骤1:准备数据库表 Mybatis是来操作数据库表,所以先创建一个数据库及表 create database…

IDEA设置默认JDK、Maven版本问题汇总

遇到的问题:使用IDEA导入一个Maven多模块项目遇到关于JDK和Maven版本相关的问题,这里记录一下解决办法。如何修改当前项目JDK和Maven的版本?修改当前项目对应Maven版本:File -> Setting -> 搜索Maven修改JDK版本&#xff0c…

图像处理--OpenCV学习笔记

内容简介 OpenCV是应用广泛的开源图像处理库,包括基本的图像处理方法:几何变换,形态学变换,图像平滑,直方图操作,模板匹配,霍夫变换;特征提取和描述方法:理解角点特征&a…

Linux驱动开发基础__工作队列

目录 1 引入 2 内核函数 2.1 定义work 2.2 使用 work:schedule_work 2.3 其他函数 3 代码 3.1 gpio_key_drv.c 3.2 button_test.c 4 内部机制 4.1 Linux 2.x 的工作队列创建过程 4.2 Linux 4.x 的工作队列创建过程 1 引入 前面讲的定时器、下半部 task…

ASEMI整流模块MDQ100-16的优点是什么?

编辑-Z ASEMI整流模块MDQ100-16参数: 型号:MDQ100-16 最大重复峰值反向电压(VRRM):1600V 最大RMS电桥输入电压(VRMS):1700V 最大平均正向整流输出电流(IF&#xff0…

【内网安全】——Linux提权姿势

作者名:白昼安全主页面链接: 主页传送门创作初心: 一切为了她座右铭: 不要让时代的悲哀成为你的悲哀专研方向: web安全,后渗透技术每日emo: 希望你在新的一年也能更好,不惧流言蜚语&…

Django drf使用Django自带的用户系统的注册功能实现

在写登录功能的时候看着网上的视频学着做,然后看了源码的时候发现了一些有意思的功能,因此写这一篇笔记分享给大家. 1.阅读Django自带用户系统源码 1.1 阅读User类源码 系统自带的用户系统的models文件的位置\site-packages\django\contrib\auth\models.py,打开这个文件发现…

python爬虫--re模块简介

Python re正则表达式模块用法详解 前面章节介绍了一些系统自带的工具函数,如 id()、max()。这些函数在 Python 启动时会自动加载进来,不需要我们做任何事情。但并不是所有的模块都是自动加载进来的,因为有些模块不常用,它们只是在…