每当需要构建项目时,我总是设法进行构建,而不是事先设计计划或设计,而是在首先编写了需要的类之后,从下至上充实整个项目。现在,我知道这不是创建软件的正确方法,但是对我来说,将其包裹在所谓的面向对象的分析和设计上并不容易。我可以更容易地理解自上而下的程序设计,因为它只包含将任务分解为子任务,这些子任务在代码,功能上与之相对。但是我不容易理解面向对象的分析和设计,因为我不理解人们如何知道他们将需要哪些类以及它们将如何交互,除非他们知道如何对它们进行编码。
因为一旦在设计过程中引入了类和对象的概念,就不能再自上而下进行设计,因为我们不再将问题分解为可以作为过程实现的事物。相反,根据我对该主题的了解,我们必须确定需要哪些类,并在统一建模语言中创建各种工件,然后在实现软件时就可以使用这些工件。但是这种设计过程我不明白。除非他们已经构思了整个系统,否则如何知道他们将需要哪些类以及它们将如何交互?
这就是我的问题。尽管我确实了解面向对象编程的概念,但是我不了解如何设计面向对象的系统,并且可以在我知道的任何面向对象编程语言中使用这些概念。因此,我需要有人向我解释可以使用对我来说有意义的方式设计面向对象系统的简单过程。