There are different schools of thought concerning the importance of architecture as part of agile software development. For the purpose of this Assignment, consider that architecture is an important a

Running head: CREATING A PATTERN HIERARCHY 1









Creating a Pattern Hierarchy for an Existing Pattern Catalog



Architectural and Design Patterns

Architectural patterns are a high-level scope of the overall structure of the system. It defines how components are organized within the system and the amount of granularity of each component. This works in collaboration with the design patterns, which go into greater detail of how the components will not only be organized but also how they will be built. It is important to keep in mind that the decision on architectural patterns may affect the choices available for the design pattern (Bors, 2018). The design patterns seek to establish reusable templates that outline different methods to solve common problems when developing systems (Bautista, 2010). Some questions that may be asked during this process are, how to create classes, and how objects interact with each other? Keeping in mind the understanding of the framework architectural and design patterns, review of the Fowler catalog in the current state will allow the reorganizing of the functional areas to be seen from a different lens.

Pattern Hierarchy

Currently the Fowler Catalog of Enterprise of Application Architecture (EAA) provides patterns organized by the functionalities of the patterns (Fowler, 2003). In order to identify a new structure hierarchy and organization of the categories, an analysis of the patterns and their functions was conducted. While functionalities allow the user to think about the different things that the patterns perform, an easier way to view the patterns may be divisions of activities. The divisional hierarchy will breakdown the areas by the areas of work.

The categories chosen for the divisional hierarchy are application, database, execution, and presentation. Division seeks to interpret the categories in a manner that is both logical and sequential to break the teams. Before moving forward, it is important to know what architectural styles are. An architectural style is a collection of design groups that can be applicable in different contexts. There are multiple architectural styles that can be used to conduct actions such as event-driven, pipe & filter, and client-server.

The application division includes the service layer, which sets the boundaries and operations that interacts with the client level. The implicit lock is also found in this category and is tasked with enabling the application to the read and write methods to avoid conflicting information from being presented to users. Database is the next and biggest category due to the amount of database functions that happen in the division. The cycle goes through setting a session for inputting, updating, and deleting actions. It also involving batching jobs and executing them in one to avoid multiple actions. Execution deals with the querying of data within the database and finally presenting it a clear and understandable manner. Pattern hierarchy of Fowler’s catalog is found in Figure 1.

There are different schools of thought concerning the importance of architecture as part of agile software development. For the purpose of this Assignment, consider that architecture is an important a 1

Figure 1


References

Bautista, N. (2010). A Beginner’s Guide to Design Patterns. Retrieved from

https://code.tutsplus.com/articles/a-beginners-guide-to-design-patterns--net-12752.

Bors, M. (2018). Architectural Styles and Architectural Patterns. Retrieved from

https://medium.com/@mlbors/architectural-styles-and-architectural-patterns-c240f7df88a0.

Fowler, M. (2003). Catalog of Patterns of Enterprise Application Architecture. Retrieved from

https://martinfowler.com/eaaCatalog/.