面向对象分析与设计Python版 分析与设计概述

文章目录

  • 一、软件工程概述
  • 二、分析与设计概述
  • 三、领域模型


一、软件工程概述

高质量软件系统的基本要求

  • 架构性内聚
  • 可重用性
  • 可维护性
  • 可扩展性
  • 灵活性

软件开发过程模型:是指根据软件开发项目从开始到结束的一系列步骤和方法,建模为不同的模型。常见的有:

  • 瀑布模型(Waterfall Model):线性顺序执行,分为需求分析、设计、实现、测试、部署和维护等阶段。每个阶段有明确的开始和结束,前一阶段完成后才能进入下一阶段。适用于需求明确且不太可能变更的项目。
  • 敏捷开发(Agile Development):迭代和增量开发,强调适应性、客户协作和快速响应变化。通过短周期的迭代(通常称为“sprints”)来逐步构建和改进产品。适用于需求经常变化或需求不完全明确的项目。
  • 迭代模型(Iterative Model):将项目分解成多个小的、可管理的部分,每一部分都是一个迭代。每个迭代都包含需求、设计、开发和测试阶段。适用于需求可以在项目开发过程中逐渐明确的项目。
  • DevOps:强调软件开发和IT运营之间的协作和沟通。 通过自动化部署、持续集成和持续交付来提高软件交付的速度和质量。

分析、设计、实现与部署

  • 分析是指对问题或需求的发现、理解和梳理,明确系统必须做什么。而不是解决方案,无需考虑如果解决
  • 设计是指提出满足需求的概念性解决方案,包括架构设计、界面设计和数据库设计等
  • 分析与设计的关系
    • 分析为了明确做什么
    • 设计为了明确怎么做
  • 实现是指将设计方案使用编码实现。包括根据设计文档编写源代码、进行单元测试等
  • 部署是指将软件系统部署到生产环境中,并确保其稳定运行。

在这里插入图片描述

二、分析与设计概述

面向对象分析与设计

  • 面向对象分析(Object-Oriented Analysis,OOA)是一种调查问题域、确定所需对象及其相互关系的分析方法。主要任务包括确定系统中的主要对象、对象之间的关系、以及对象的属性

  • 面向对象设计(Object-Oriented Design,OOD)是一种将面向对象分析的结果转换成实际代码的设计方法。主要任务包括确定系统中对象的操作

  • 关系

    • OOAOOD 的前提和基础,没有良好的分析,设计就无从谈起。
    • OODOOA 的具体实现,分析的结果需要通过设计来体现。
  • UML统一建模工具是一种思考的工具、沟通的形式,能够可视化地表达你的建模思想。重要的不是工具,而是面向对象的思维方式。即一切都是对象,一切都可以建模为模型。

三、领域模型

领域模型 (Domain Model)是一种概念模型,是对问题领域的概念表示。看作“没有定义操作的类图”,它可以显示概念类、概念类之间的关系、概念类的属性

领域模型建模原则

  • 使用行业通识名词,作为概念类的名称
  • 一般将计算/汇总/总结性所得的概念类删除,避免数据不一致风险
  • 删除无关的、超出范围的概念类,不增加额外没必要的概念类。
  • 符合下列条件的可能是概念类
    • 有很多元素构成;
    • 有操作和行为;
    • 有数量单位。
  • 下列情况,可考虑将描述性质单独作为概念类
    • 如果描述内容独立于对应的事物 ,如产品、产品描述
    • 如果删除对象的同时删除了描述,而该描述还需要继续维护
    • 为了减少重复或者更清晰

示例:将描述性质作为单独概念类

在这里插入图片描述


您正在阅读的是《面向对象分析与设计Python版》专栏!关注不迷路~

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3D目标检测数据集——Waymo数据集

Waymo数据集簡介 发布首页:https://waymo.com/open/ 论文:https://openaccess.thecvf.com/content_CVPR_2020/papers/Sun_Scalability_in_Perception_for_Autonomous_Driving_Waymo_Open_Dataset_CVPR_2020_paper.pdf github:https://github.…

[笔记] 使用 Jenkins 实现 CI/CD :从 GitLab 拉取 Java 项目并部署至 Windows Server

随着软件开发节奏的加快,持续集成(CI)和持续部署(CD)已经成为确保软件质量和加速产品发布的不可或缺的部分。Jenkins作为一款广泛使用的开源自动化服务器,为开发者提供了一个强大的平台来实施这些实践。然而…

基于“大型园区”网络设计

基于“大型园区”网络设计 目 录 第1章 项目概述1 1.1 项目背景1 1.2 公司概况1 1.3 网络现状2 第2章 需求分析4 2.1 部门需求4 2.2 配置需求4 2.3 网络功能需求5 第3章 网络设计6 3.1 建设原则6 3.2 网络拓扑结构6 3.3 IP地址和VLAN划分8 3.4 核心层设计9 3.5 …

回归预测 | MATLAB实RVM-Adaboost相关向量机集成学习多输入单输出回归预测

回归预测 | MATLAB实RVM-Adaboost相关向量机集成学习多输入单输出回归预测 目录 回归预测 | MATLAB实RVM-Adaboost相关向量机集成学习多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 RVM-Adaboost相关向量机集成学习多输入单输出回归预测是一种先进…

力扣经典练习题之70.爬楼梯

今天继续给大家分享一道力扣的做题心得今天这道题目是70.爬楼梯 题目如下: 题目链接:70.爬楼梯 1,题目分析 这个题目是一个经典的动态规划问题,它帮助我们理解如何通过分解问题来找到解决方案。在现实生活中,很多复杂…

Vue学习二——创建登录页面

前言 以一个登录页面为例子,这篇文章简单介绍了vue,element-plus的一些组件使用,vue-router页面跳转,pinia及持久化存储,axios发送请求的使用。后面的页面都大差不差,也都这么实现,只是内容&am…

ZYNQ初识10(zynq_7010)UART通信实验

基于bi站正点原子讲解视频: 系统框图(基于串口的数据回环)如下: 以下,是串口接收端的波形图,系统时钟和波特率时钟不同,为异步时钟,,需要先延时两拍,将时钟同…

java小知识点总结

一、比特流的本质就是数组 二、位运算 位运算就是CPU的底层原理&#xff0c;半导体电路进行位运算 位运算涉及一些算法&#xff0c;&和^ ^ 异或 两变量交换值&#xff0c;不依赖第三个变量 x^s k 异或知道两者就能推另一个 a a<<2就是乘以2的多少次方 相反 a…

vue3后台系统动态路由实现

动态路由的流程&#xff1a;用户登录之后拿到用户信息和token&#xff0c;再去请求后端给的动态路由表&#xff0c;前端处理路由格式为vue路由格式。 1&#xff09;拿到用户信息里面的角色之后再去请求路由表&#xff0c;返回的路由为tree格式 后端返回路由如下&#xff1a; …

贪心算法笔记

贪心算法笔记 大概内容 贪心就是对于一个问题有很多个步骤,我们在每一个步骤中都选取最优的那一个,最后得出答案。就是在一些函数中可行,但是有些比如二次函数,因为它的转折点不一定最优,就是不可行的。那么如何判断贪心呢?有这么几种 看时间复杂度,一般的就是 O ( n…

CVE-2025-22777 (CVSS 9.8):WordPress | GiveWP 插件的严重漏洞

漏洞描述 GiveWP 插件中发现了一个严重漏洞&#xff0c;该插件是 WordPress 最广泛使用的在线捐赠和筹款工具之一。该漏洞的编号为 CVE-2025-22777&#xff0c;CVSS 评分为 9.8&#xff0c;表明其严重性。 GiveWP 插件拥有超过 100,000 个活跃安装&#xff0c;为全球无数捐赠平…

ubuntu官方软件包网站 字体设置

在https://ubuntu.pkgs.org/22.04/ubuntu-universe-amd64/xl2tpd_1.3.16-1_amd64.deb.html搜索找到需要的软件后&#xff0c;点击&#xff0c;下滑&#xff0c; 即可在Links和Download找到相关链接&#xff0c;下载即可&#xff0c; 但是找不到ros的安装包&#xff0c; 字体设…

细说STM32F407单片机以DMA方式读写外部SRAM的方法

目录 一、工程配置 1、时钟、DEBUG、GPIO、CodeGenerator 2、USART3 3、NVIC 4、 FSMC 5、DMA 2 &#xff08;1&#xff09;创建MemToMem类型DMA流 &#xff08;2&#xff09;开启DMA流的中断 二、软件设计 1、KEYLED 2、fsmc.h、fsmc.c、dma.h、dma.c 3、main.h…

二分查找算法——山脉数组的峰顶索引

一.题目描述 852. 山脉数组的峰顶索引 - 力扣&#xff08;LeetCode&#xff09; 二.题目解析 题目给了我们一个山脉数组&#xff0c;山脉数组的值分布就如下面的样子&#xff1a; 然后我们只需要返回数组的峰值元素的下标即可。 三.算法原理 1.暴力解法 因为题目明确说明…

重塑视频创作的格局!ComfyUI-Mochi本地部署教程

一、介绍 mochi是近期Genmo公司开源的先进视频生成模型&#xff0c;具有高保真运动和强大的提示遵循性。此模型的发布极大的缩小了闭源和开源视频生成系统之间的差距。 目前&#xff0c;视频生成模型与现实之间存在巨大差距。其中最影响视频生成的两个关键功能也就是运动质量和…

Docker 安装开源的IT资产管理系统Snipe-IT

一、安装 1、创建docker-compose.yaml version: 3services:snipeit:container_name: snipeitimage: snipe/snipe-it:v6.1.2restart: alwaysports:- "8000:80"volumes:- ./logs:/var/www/html/storage/logsdepends_on:- mysqlenv_file:- .env.dockernetworks:- snip…

Oracle重启后业务连接大量library cache lock

一、现象 数据库和前段应用重启后&#xff0c;出现大量library cache lock等待事件。 二、分析解决 本次异常原因是&#xff1a;原因定位3&#xff1a; 库缓存对象无效 Library cache object Invalidations 三、各类情况具体分析如下 原因定位1&#xff1a;由于文字导致的非…

硬件设计-七位半电压表硬件方案(下)

目录 摘要 简介 解决方案和评估系统简介 应用聚焦&#xff1a;高准确度数据采集器 结论 摘要 本文探讨了为仪器仪表应用设计高准确度设备所涉及的挑战&#xff0c;并介绍了由低INL SAR ADC、全集成式超低温漂精密基准电压源、四通道匹配电阻网络和零漂移低噪声放大器构建的…

基于springboot+vue+微信小程序的宠物领养系统

基于springbootvue微信小程序的宠物领养系统 一、介绍 本项目利用SpringBoot、Vue和微信小程序技术&#xff0c;构建了一个宠物领养系统。 本系统的设计分为两个层面&#xff0c;分别为管理层面与用户层面&#xff0c;也就是管理者与用户&#xff0c;管理权限与用户权限是不…

Termora 一个开源的 SSH 跨平台客户端工具

Termora 是一个终端模拟器和 SSH 客户端&#xff0c;支持 Windows&#xff0c;macOS 和 Linux。 功能特性 支持 SSH 和本地终端支持 SFTP 文件传输支持 Windows、macOS、Linux 平台支持 Zmodem 协议支持 SSH 端口转发支持配置同步到 Gist支持宏&#xff08;录制脚本并回放&…