Software Design

Published on 14 July 2024 at 15:12

The biggest contrast, and comparison, between Structured Design programming and Object Orientated programming is that Structured Design programming works by breaking down big problems into small ones. Then it breaks down the small ones into even smaller ones and so forth, until they are small and simple enough that a programmer recognizes it and is able to work with it. OO programming works by grouping codes with data that it operates with. It then operates independently of the rest of the system. The interesting thing is that Structured Design and Object Orientated programming are not exclusive mutually, because you can structure coding in an object and use objects to implement modules of code in a structured program.

Creational design patterns (aka the instant of creation) are a type of design patterns that work with object creation tools, and they deal with instantiation of objects, and focuses on their complexity and their encapsulation behavior. They are used when a basic form of object creation might cause problems (Robert, 2012). There are 5 types of patterns in the creational pattern group. Those are builder (allows for step-by-step creation of objects), factory method (allows object creation without specification), prototype (initiates a class by cloning or copying an existing object), abstract factory (allows creations of groups) and singleton (ensures a class has only one concurrent instance).

Patterns that assist in easing designs by giving ways to realize the interactions in entities is called Structural design patterns (aka static structure), and they define objects and control access to object subsystems. There are 7 types of patterns in the Structural design method (Robert, 2012). Those are bridge pattern (separates abstract elements of classes from technical implementation), composite pattern (creates hierarchical object models), adapter pattern (translates two incompatible class types), façade pattern (simplifies access to functionality in the interface), decorator pattern (extends functionality of objects), proxy pattern (keeps methods of classes from being exposed) and flyweight pattern (minimizes resource usage in a large number of objects).

Patterns that are used in describing objects interacting are called Behavioral patterns (aka flow or process), and they deal with communication and algorithms between objects, and address which behavior is applicable in which state of the object. Based on the state of an object, the behavior of an object can change. There are 11 patterns in the Behavioral design method (Robert, 2013).  Those patterns are command pattern (enables information for a request to be contained in an object), chain of responsibility pattern (defines a linked list of handlers), iterator pattern (allows elements of aggregated objects to be accessed sequentially), memento pattern (permits current state of an object to be stored), interpreter pattern (helps develop domain-specific languages/notations), mediator pattern (promotes loose coupling of objects), observer pattern (defines a link between objects), strategy pattern (allows similar algorithms to be encapsulated and defined in its own classes), state pattern (lets an object completely change behavior in its internal state), visitor pattern (separates sets of structured data from functionality that is performed on it).

 

References

Otero. (2012). Software engineering design. Boca Raton: CRC Press. Retrieved from http://wow.coursesmart.com/9781466565869/?CSTenantKey=coloradotech&spid=

Robert, K. (2012, Aug 28). Design patterns 1 of 3 - creational design patterns. Retrieved from http://www.codeproject.com/Articles/430590/Design-Patterns-of-Creational-Design-Patterns

Robert, K. (2013, Jan 10). Design patterns 3 of 3 - behavioral design patterns. Retrieved from http://www.codeproject.com/Articles/455228/Design-Patterns-of-Behavioral-Design-Patterns

Sumit, Sridhar & Radhakanta (n.d.). Revolution or evolution? a comparison of object-oriented and structured systems development methods. Retrieved from http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.104.3958&rep=rep1&type=pdf