7

有人可以解释系统设计和面向对象设计之间的区别吗?

面向对象设计涉及对象建模并使用面向对象的概念,例如抽象、封装、分解和泛化。两种设计都涉及建筑设计和概念设计。

设计范例之一是其他设计范例的子集吗?

4

4 回答 4

4

系统设计是设计软件/应用程序作为一个整体[高级],可能包括分析、建模、架构、组件、基础设施等。而面向对象的设计是一组定义的规则/概念,用于在一个内部实现功能软件。

打个比方,一场足球比赛。

所以系统设计涉及足球场的设计、球门杆、地面上的草、地面的位置、地面的长度/宽度、在地面上放置线标记、记分牌、定义比赛球队、比赛人数等等

现在,以面向对象的设计为例:需要如何玩游戏是由一组需要遵循的规则来定义的。因此,玩家需要在定义的规则内玩游戏。因此,球员对这些规则了解得越多,他们就越能在不犯规的情况下进行比赛。同样,面向对象概念的规则是继承、组合、抽象、封装。因此,我们对这些概念了解得越多,我们就能做出更好的设计。

@Prashant,希望它能解释一下

于 2018-07-25T22:35:45.833 回答
2

假设您要设计一个在线购物网络应用程序(如 amazon.com)。因此,在制作该 Web 应用程序之前,您必须考虑:

  1. 负载均衡来处理用户请求,
  2. 数据库是使用 SQL 还是 NOSQL,
  3. 是否使用像 Redis 这样的缓存,
  4. 为不同的任务制作微服务(如通知服务、订单处理服务等)
  5. 监控您的 Web 应用程序(如内存、CPU 等),
  6. 日志记录(比如在 sumoLogic 中)。
  7. CI/CD

因此,所有这些都将属于系统设计,因为它们是任何系统工作所必需的。

现在,一旦你完成了所有这些事情并去实现(编写代码)系统的任何部分,那么你就可以按照面向对象的设计来制作类、接口等。

例如,您开始实现通知微服务(例如在 Java 中),所以现在您必须设计类、接口等,为此,您可以使用 SOLID 等面向对象的设计原则。

所以我们可以说面向对象设计是系统设计的一部分,当我们开始为系统的任何部分进行实际实现时,它就会出现。

于 2021-01-05T14:53:28.447 回答
1

System in System Theory can be everything. (Facets of Systems Science, George Klir, 1991) System is on TOP of TREE, Superclass of other categories.
In overall, System Development included 2 major phases:

1- System Analysis: including Planning, requirements, analysis and etc. These items related to specific methodology in system theory.

2- System Design: including design, implementation, test, deploy, maintenance and etc.

As I said, System can be everything. For example:
Mechanical systems, Psychological systems, Social systems, Aircraft Systems and so on. Each category may have detailed and specific analysis and design steps based on mentioned 2 major phases.

In computer world, Software Systems is one of System categories. Each software Analysis and Design method is based on mentioned 2 major phases too.

Additionally, In Software Systems, we have some paradigms to analysis and design like:
Structural/Process Centered
Data Centered
Object Oriented
Service Oriented
and etc.

Each of them has it's own Analysis and Design Steps. These steps are based on 2 major phases as well. But in details, they have some differences.

To sum up, Systems Analysis and Design is a big picture to all other type of systems. Learning System Analysis and Design helps to understand all other systems analysis and design and specially helps to compare and evaluate them.

于 2017-11-24T21:39:15.683 回答
0

对象是系统的一部分。您可以认为面向对象设计是系统设计的一部分。您可以在高级(带有概述)或低级(带有详细信息)中设计系统。它将突出显示

  1. 基础设施
  2. 数据流管理
  3. 服务
  4. 缓存管理
  5. 请求/响应管理等

在进行面向对象设计时,您可以认为您必须使用一些对象并在它们之间建立关系。但在制作对象之前,您需要设计一些类。所以实际上OOD(面向对象设计)是

  1. 设计类图(可选)
  2. 制作一些课程
  3. 建立类之间的关系
  4. 使用类创建对象
  5. 实现目的(基本功能和逻辑)等
于 2019-09-24T05:58:59.813 回答