Sunday, March 5, 2017

Object Oriented Design

Sunday morning and nothing popped out of my morning review of favorite web sites that inspired me to dig into it with a blog entry.  The default in this case is simply to think about some aspect of Object Orientation.  My level of thought on OO is mainly at the OOD level.  The Design Level that I call broad architecture.  I don't know OO programming which is the grunt work building in accordance with the OOD plan to implement the relationships of Objects to do something.

I have not recently looked at what is currently available regarding OOD.  This is a start.  Obviously the state of the art in OOD has progressed to the establishment of basic patterns of object oriented design.  The established building blocks of design:
http://www.oodesign.com/design-pattern-books/

I like the way it begins the presentation of design patterns with the "Singleton" .  A unique instance of a Class.  In my terms of reference the most granular level object component.  Produced by a "Factory".  It goes on to present top level abstract Classes of Objects with minimal reference to the Object Oriented programming implementing relationships in the Object Oriented System..

"Head First Design Patterns" was originally publish in 2004 but looking at the recent comments it remains a fundamental primary presentation on the OOD today.

Head First Object Oriented Analysis and Design is a follow on book.

Searching on OOD and related search terms gave me results that quickly went down the path to programming the OOD.  Indeed the general orientation was that the Designer of the OO sytem was also a software programmer.

This is where I found some independence from going down the programming path to implement the OOD:  The domain of Artificial Intelligence.  In that domain the path goes in the direction of understanding Intelligence and then going down a path of designing Natural Intelligence into an Artificial non living entity.  Only much further down the path of exploring Intelligence does actual programming come into play.

I think what I am looking for is the design of Intelligence expressed in terms of Object Oriented Design.  For example:  Select a Singleton instance of an living object entity with attributes of Intelligence.  A human being is too complex as it develops to use as a simple example except for maybe its first few months of existence during which it shares acquisitions of attributes, messages and relationships with other objects.  Perhaps a dog might be a better example displaying the development of Intelligence Design that does not go to the artificial language programming level but expresses in natural dog language.

Something like this:  The instance of a Class named Dog created as a unique Singleton by a Factory Class composed of two Parents.  Then follow the Object Oriented Design development of a Single instance of Dog through the acquisition of Intelligence and Behavior  Design System and Use Cases.

What would a formal OOD description of a dog's object oriented attributes, methods and messages look like as it develops more focused Intelligence starting with the Factory that produced the Instance of a Class.

Nature is an OOD.  Nature has Intelligent Design.  I like the approach to use Nature as a model for OOD applied to higher level abstraction to Objects that are invested with "Artificial" Intelligence.

Once the Natural OOD of the creation of a Singleton Dog has been created and its relationships to other Single Instances and  Classes has been described then the same design pattern could be applied to the creation of an Artificial Singleton Dog with Artificial Intelligence embodied in its Artificial programming language. 


No comments: