Second Reflection

For this second reflection it is important to understand the flow of the topics and how they take part in the process of modelling systems to have a successful developed software. From design patterns, to classes and code, these main topics can be transformed into steps that one can take to develop a new skill of practice one on the modelling systems’ area. The importance here is to know the way the topics are displayed and how can you take advantage of those to apply them  in real life cases.

Design patterns

The first topic from the second reflection is design patterns. These tools are used in most projects by developers which sometimes don’t know they are using design patterns. We identify a design pattern as a general concept for solving a particular problem which is used to develop the main solution of the program. It consists of four main descriptions which are the intent, which is the description of the problem; the motivation, which is the way the pattern can resolver the problem; the structure, which describes each part of the pattern to make it a whole; and the code example to have a more complete example of the idea.

Design patterns also involves anti-patterns when creating a pattern for a very small problem or overdesigning it, so it makes the problem more complex; at the end, anti-patterns are the same as what not to do or when not to apply design patterns on a problem. Antipatterns are used in a good way when refactoring and trying to find the right perspective to a pattern to be made.

Modeling language

When there is a need to represent information and systems in a logical way, there is a modeling language that is used to solve that necessity. These modeling languages are introduced with rules and components to create this structure that helps us to display the flow and rules of the software so that developments can be easily managed by this structure. The goals of a modeling language can diverge from different methods, and that’s because there are tons of different tools to use to make these types of models. Most of them are nowadays online services and web applications with a lot of versatility when designing different types of modeling languages.

From what I could learn from many different modeling languages, there was one which is the most used one and other which I found it quite interesting. The first one I UML, most programmers find it more than useful because of the connection that this modeling language can make between the databases and the functionality of the software to develop. So, when we are dealing with a big and complex development, or even a small and simple one, the UML helps to create the final structure of the database and make the relations that the code must make between them. The UML was the next topic from this one so that also explains the importance.

The second modeling language was the Virtual Reality Markup Language, for me this has a lot of potential in the near future because of new virtual reality technologies being developed. If one could represent for instance the UML in a virtual reality space it could make it much clearer if added with images of other resources to incorporate to the design.

Reflection. By Sunsword & Moonsabre

UML

As the last topic explained, UML (Unified Modeling Language) is one of the most used modeling languages that exist. It is a set of diagrams to standardize the modeling languages and help to develop software systems so developers can visualize, construct, and document the whole process in a short and standardized way. It is the most used modeling language on big and medium companies, so it is highly recommended to learn it for better opportunities. hanks to the UML, techniques have been made to manage the complexity of systems and help to increase the scope and scale controls of it.

There are many types of diagrams in the UML concept; for example, the class diagram, which is based on classes and types of object that are in the system; the object diagram, which exemplifies a graph of instances which marks the difference between the class diagram; the sequence diagram, which makes a collaboration based on a time sequence; the state diagram, which describes de behavior of systems; the package diagram, which involves packages within the system by making relations with dependencies; the component diagrams, which create complex systems with components and dependencies to illustrate architectures. These examples are all part of the UML world, and there are a lo more, concluding the explanation of why it is extremely important to learn it.

Classes to tables

When using a modeling language, relations and dependencies are made for then be adapted into code or tables, in this topic, tables where the main focus. The translation of class designs to database tables starts with the representation of a class as an entity of a database, from which the relations are made and communication between entities happen. This translation or conversion into tables databases require a certain level of logic to resolve the relations and order between the classes or entities in the databases. Same as design patterns, there are no relational databases in the transformation from classes to tables, the solution to this case is to make NoSQL Databases, these are stored in many different ways so the non-relational model can be achieved.

Reflections!. By Sanjay Dandekar

Classes to code

For the last topic in this second reflection is classes to code. In this topic the main objective was to understand the implications of using different programming languages when transforming classes, and also if doing it with a non-object-oriented language was possible. With the programming language it depends on the one that is used, but it can be affected by complexity or time of development. It is highly recommended to have a good pattern design in play so that it can be adapted in a very fluent way into code. It is also recommended to have the design translated into a database for relations and dependencies.

What to expect

I have learned an amazing good process of software models to be used in my nowadays projects and work. I really expect to now learn more of the most used models in big companies or new tendencies in translations to code and databases. What I have found really interesting is the new ways of representing design patterns and models in ways there was no technology before. I am really excited for the next topics to come.

Leave a comment

Website Built with WordPress.com.

Up ↑

Design a site like this with WordPress.com
Get started