Abstration and Modularization

As part of a class I am currently taking in Java programming, one of the chapters in our required reading begins by talking about the process of designing computer software. They use the analogy of several engineers designing a car in different parts of the world and the different levels of specialty and detail required to design each specific part. It goes on to explain how one single designer must learn to deal with complexity through the use of abstraction . They define abstraction as the ability to ignore details of parts to focus attention on a higher level of a problem. One technique that is used is referred to as divide-and-conquer. Through a process of abstraction and modularization, it allows the head designer to assign the engineers to a task in which they will develop a high level of understanding to a complex thing.

This made me think about the role of a designer. When a person plays a role in designing they must train their mind to switch perspectives and follow new paradigms. This process may need to happen over and over again, to the point in which the designer thinks they have discovered every possibility. However, in a new day with a new set of eyes, suddenly they discover more. Complexity reveals itself overtime, if one chooses to look. When the designer finally achieves the right level of abstraction every problem reveals itself and the steps to a solution becomes very clear.

Most Recent Project

Recent Project - Upper Westside CERT

View All Projects »

Most Recent Note

Digesting Web Content

This past week I read an article in the latest issue of WIRED magazine. The article was entitled Chaos Theory by author Nicholas Carr. His main argument in the article is basically that the internet is changing the way we read , focus on and analyze writing. In fact he provides recent studies that show that the [...]

View All Notes »