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


一、软件工程概述

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

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

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

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

分析、设计、实现与部署

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

在这里插入图片描述

二、分析与设计概述

面向对象分析与设计

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

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

  • 关系

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

三、领域模型

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

领域模型建模原则

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

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

在这里插入图片描述


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值