Hervorgehoben

Hi @all.

The right Blog to be.

Even if a pawn becomes a queen, it’s still just a playing piece.

— B.B.

As long as you play by the rules made by others, you’re just like a chess piece. Find your own rules and express yourself in your own way. Not only in your own Blog but also in your everyday life. I’ll try to do this in my Blog, and I hope that you can enjoy my expressions.

S.S.

Final Reflection

Hello there and welcome to the last TC2004 post at my blog. It’s been a great experience for me, and I hope, I have provided knowledge and also a little bit of entertainment. This will be my last reflection on this blog. The Germans have a very poetic saying:

Everything has an (one) end, only the sausage has two.

– Poetic German saying

Therefore, I have a special song for you. It’s one of my all-time favourites. I don’t speak Greek but you can look up the lyrics. But enjoy the song.

What does one write in such a final résumé? Actually, I should write about the course TC2004, but this post is not only my last assignment to the Tec, but also my last week in Guadalajara. And since this is my blog… you know already.

Can’t we get this thing rolling? The Tec has wonderful advantages as a university but also disadvantages, whereby I can already say (attention spoiler!) that the Tec was super! Many things at the Tec are not so well organized and planned, many courses have projects and homework that don’t make much sense. However, compared to the German university, you can collect points already during the semester and thus relieve yourself of the enormous stress before the final exams. But you have the whole semester for that, a bit stressful time. The Tec does its best to make the student’s time a pleasant one. The sports and social activities are varied, as well as the food on offer. I have never felt so comfortable at my university. I can easily spend a whole day at Tec and learn, do sports, eat and meet friends all the time. It has been a great time. My favourite courses at Tec were TC2004 and Supply Chain Management. It was here that I learned the most. Both about the subject matter, the connections to real implementations and also topics that were not directly related to the subjects. That’s why I can do it at the Tec in Guadalajara for anyone who wants to do a semester abroad.

Not only because of the Tec, but because of Guadalajara and Mexico in general. As already mentioned, Mexico is a beautiful country with a delightful culture and gorgeous places. I have seen a lot and I will see more in Yucatan and Quintana Roo, I can only quote one of the most important men of the 20th and 21st centuries.

I’ll be back.

– Arnold Schwarznegger (aka. The Terminator)

Yes, I would like to come back one day, maybe during my master’s degree or for vacations. I have not seen everything yet, still a lot to explore left. 
I had a great time at Tec and in Mexico, thanks to Tec, all Tec members and all new friends I met! 
Like in the German saying, we need two endings! Therefore, a final song for you guys! For a happy farewell!

Mastery12 Object-Oriented Testing

Mastery12

Hello there, and welcome to the next topic. Today I will tell you something about testing in Object-Oriented Testing. Once again, I have a nice song for you so, play it and enjoy the post.

Today’s topic is the Object-Oriented Testing (OOT). We have already talked about testing in general, as a phase in the Life Cycle of Software. Object-Oriented Testing differs from the conventional testing and I will write about the OOT and explain the differences to the Conventional Testing. 

When do we use OOT, well, -attention, attention, captain obvious steps on deck- when you use object-oriented systems. More specific, when you don’t use the Waterfall model, what this means will be answered later. In the OOT you have three levels of testing.

1. Unit Testing

In this level, the individual classes are tested. The application engineer -who implements the structure- tests the class attributes for the correct implementation as per design and whether the methods are error-free.

2. Subsystem Testing

This level, is testing –captain obvious back again- subsystems and modules. The responsible person is the subsystem lead engineer. Therefore, the interaction of the subsystem with the outside and the associations with the subsystems are tested. 

3. System Testing

The third and last level, is testing the system as a whole, which is the responsibility of the quality-assurance team. 

So, beside the levels, there are also OOT Techniques.

Grey Box Testing is such a technique. The aim is to test defects due to improper usage of applications. But why is it called Gray Box Testing? Black + White = ? 
Black Box Tester is unaware of the internal structure of the application to be tested. A
White Box Tester has access to the internal structure of the application. Now, Gray Box Tester partially knows the internal structure, which includes access to the documentation of internal data structures as well as the algorithms used. It’s a combination out of the Black- and White Box Tester.

A technique for the Subsystem Testing is the Thread Base Testing, in which all classes that are needed to realize a single use case in a subsystem are integrated and tested.

A System Testing technique would be the Alpha Testing. Therefore, bugs are identified before the release of the product to real users. Internal employees test the the product using the White Box Testing and Black Box testing in a testing environment or a lab. 

What is the difference between OOT and Conventional testing?

The Conventional Testing is realized in the Waterfall Lifecycle Model and the OOT is realized for the different Models like Agile or Incremental.
Conventional Testing focuses on  three levels of testing (system, integration and unit), compared to that, the OOT uses much smaller units compared to the Conventional one. 

Well, well it won’t get any better than that! So as always, thank you for sticking around. I hope you enjoyed the song, it’s my favorite right now.
See you on my next post. 
-SolidSnake8

Mastery11 Verification and Validation

I know you reacted the same way after seeing my new blog post about Mastery Topic 11.

And I am happy, happy to introduce you this topic, which is about Software Verification and Validation. Besides that, you will learn what Panna Cotta and Software have in common.

But what is Software Verification and Validation for? 

Easy example, you would not serve a dish to somebody without tasting it. Or at least you should not. You have to ensure that you dish tastes good. Even if you have a lot of years of experience, it could be that some salt is missing or pepper or garlic or… . The list is long.

Further, you can „test“ your dish. In its final form, which is called dynamic verification. You taste it and test the taste, texture, and so on.
Or you can analyze the ingredients and compare it to your recipe, which is called static verification.

It’s the same for the software, you have to ensure that it works properly, but you can’t taste it like the dish, you need other tools for that. This would be the verification part. 

An example for the validation would be… let’s see … I started with making cooking examples … hmm, ah ok got one. It is kind of … what is the right word for it … I’d say “not soooooo good” but you’ll get the idea. 


So, you have to cook for your whole family and your grandparents want something special for starters, like a fancy Tomato-Mozzarella salad. Your siblings want Cannelloni as main dish and you parents want Panna Cotta as dessert (yes, I am hungry and yes, I would like to go to an Italian restaurant right now). Further, they don’t want basil on the salad, no meat in the Cannelloni and instead of strawberries, they want raspberries in the Panna Cotta. You got the whole picture now, right? 
One meal, three courses and exact specifications. 

You are passionately cooking your dishes, finishing every single dish (at this point I want to add that a software-not always but often or most of… ok always- has more specifications than a dish). Afterwards, you want to know if it’s good, if all the specification your family asked for are met.
There are two ways to test if your meal meets the requirements of your family or let’s just say stakeholders instead of family.
The first one is the internal validation, which means that you test the meals and its requirements. If you have tested the meal and fulfilled all the specifications, it has been internally validated.
The second one is, to let you stakeholders test your meal and decide if the specifications were met. If all the stakeholders approve, your meal has been externally validated. 

As a conclusion I would like to say:

The commonality of Panna Cotta and Software is that both have to be tested before being provided/served. 

If I want to talk seriously about this issue, then I have to say that in my opinion it is indispensable to carry out these two steps. In Java, for example, you have an implemented debugger that immediately tells you that you have an error, where it is and what kind of error it is. Even with the debugger you sometimes need several minutes if not hours to fix a bug. But if you are looking for a bug in a source code without knowing where it is… Certainly possible in small projects, but in large programs, without systematic testing, the completion of a working and requirement fulfilling software is doomed to failure.
Also, as in dynamic testing, you have to try all the functions of the software, I mean how many bugs there are in video games, for example. Even after the software designers have tested a lot, you can still find bugs afterwards.

Well, well it won’t get any better than that! So as always, thank you for sticking around.
See you on my next post. 
-SolidSnake8

Mastery10 Code Revision

You read my last post and now you’re writing the code for your software. You have finally completed the most complicated method of your software. Tested and it works without problems or errors. You are somehow proud that you finally did it, because it took so long. You have a meeting with your professor to show him the fruits of your hard work. He looks through your 250 lines of code. He tests it and it works. He opens his mouth to make a comment on your work.

Very good idea and implementation. But have you thought about doing it…
– My Prof

That’s a SolidSnake8’s True University Story (Charlie Murphy actually stole that name from me!)
I thought I had the best result for the method. But after talking to my professor, I knew that I was close to it, but I wasn’t there yet. I also thought that this was the only way to write this method. 
My group was not the only group that had to write the same software and needed a method that provided the same information. 

Four groups presented their results and four different approaches were developed. 
We had the same task, but completely different approaches, the result was the same, all methods did their work, but in a different way. 

Sometimes there is no perfect solution, mostly there is. And when more than two eyes and more than one brain work on the same topic, different approaches can emerge. People on different levels, with different thoughts and skills united can create superior approaches. You can use these approaches and try to find out which one is the best.

I was alone while writing the method, and after hours of work I found out how to make it work. But I wasn’t curious if there was any other way. 
That’s why you need someone to work with you or at least look at it. 
It’s like writing your own essay or blog post, it’s much easier for a friend to look for mistakes than it is for you.

But it’s not always good, sometimes working with someone can be a destructive thing. There can be confrontations and disputes if both parties insist on a solution. It is worse if one is wrong and can convince the other of the correctness.

Well, well it won’t get any better than that! So as always, thank you for sticking around.
See you on my next post. 
-SolidSnake8

Mastery09 Class to Classes

, and welcome my friend to the next topic. We have learned a lot about languages UML and in my last post we talked about how to convert classes to tables. You still remember it right?
And after reading my posts you are a pro in UML! NO? check out the other post of the course.

So, you want to be a code writer? Let me tell you something, I know that if you read the post, you still won’t be able to write a code, but it may be a first step. Take a look at this UML I created for a group project.

by SolidSnake8

You have all necessary classes and methods in it. The name of the methods can give you a hint about their function. Let’s take a look at this UML (object oriented!). For instance “+becherNachfuellen():void”, simply means “cupRefill”. What is the function of this method? Take a guess (hoho)!
Exactly, the function is to refill the cups. All you have to do now is to now all the commands you need for this method (do-loop should be enough). 
Pick one class and start with the variables and methods. After you finished the first class go with the second and so on. 

Is it necessary to take an object-oriented class? No, it depends on your knowledge, I mean why should you pick a modeling language you have no knowledge about. I would prefer to use Java for this example, why? Haha that’s not so hard to answer!  I’ve already written a big part of the code for the program represented by this UML in a previous class.One last tip from my side, don’t start to write your code without understanding the functions of the methods, it can cost you a lot of time and can be very frustrating. 

Well, well it won’t get any better than that! So as always, thank you for sticking around.
See you on my next post. 
-SolidSnake8

Reflection Partial 02

Welcome to the second reflection of this Blog post. I have three topics here. Traveling, TC2004 and Semana i. To get you in the right mood for the first topic I will embed a cool song for you my friend. Enjoy!

Traveling:

There are a lot of great activities to do and hobbies to have. But one of the best is traveling. Why is that? When I see all the beautiful places on earth, I think that we are already in paradise, but we are destroying it day by day. There are places, which even surpass your imagination. Therefore, I love to travel and see new places and enjoy their beauty and energy. A journey is always good, even if you had a bad experience, it can open your eyes, so you can see the difference between your current place of living and other places in the world. Maybe this will make you more satisfied with your current situation and appreciate things you didn’t appreciate before.
And Mexico is just a great country to travel. You have everything here, beautiful beaches, desert, jungle, mountains, volcanos, culture, food and much more. For me, it is the greatest opportunity I had so far and I am enjoying it to the fullest.
Traveling changes my mindset and gives me a different view of things, shows me that the same things are valued differently at another place and that there is no such thing as “The only right way to live”. Thanks Mexico, for the opportunity to experience your beauty, culture and impressions.

Picture of the sunset at the beach of Balandra. It is deliberately blurred.

TC2004

In this partial, I had the second meeting with Ken, which was cool. It is nice to have a professor who really cares. Not only for your assignments, grade and projects, but for you as a person. We had a very nice chat about every kind of things. Thanks for that!

Further the Mastery Topics reminded me of why I study something with three different topics (economics, engineering and informatics). The blog entries are not only interesting for computer scientists or future computer scientists. Even people who have studied something else, such as economics, and have something to do with computer science in their everyday lives or jobs, can use the contributions to build a better understanding (at least that’s what I hope). Therefore, it is important to link words that are not so common. With this I want to make my contributions all readable and make them more interesting in the future.
I hope that I can implement this in the next blog post!

Furthermore, I got new insights into the creation of software. As already mentioned, I was fascinated by nearly everything during my internship in Cost Engineering and I am convinced that in the future Cost Engineers will also be needed for the development of software. Through the Mastery Topics I build a good foundation in this area and broadened my horizon as (maybe) future cost engineer. I am looking forward to learning the final steps of planning for software development through the next Mastery Topics.

Semana i, Impressed by Mexico.

Semana i is a week of activities, you have a lot of different things offered. Yoga, cooking, spiritual discussions in groups and much more. What is the semana i good for? I think it’s a great idea to give the students an opportunity to do something they are interested in, but never tried or they don’t work with usually. Most of the activities are for free or very cheap, which is great. Furthermore, you can get up to five 5% for every single course. I was very impressed by that idea, especially the program they provided for the students abroad. It’s called “Impressed by Mexico”, therefore, you have 5 days to travel and get to know Mexico better. You can choose the destination, of course it must be in Mexico. All you have to do is a video about your trip, which can be used by the university to encourage other students to make such. Sounds like a great idea, right? You can travel wherever you want and make a creative video about it and show what impressed YOU the most.
Sadly, it’s not like that. The video has many regulations, strict regulations. How to film it, how to work with pictures, how to work with your voice and what kind of places to visit. If you don’t do it exactly like that, they will subtract points. E.g. if you used the voiceover technique for more than 50% of the speaking time, they will subtract half of your points in this valuation. But at the same time background noises are undesirable, well … what am I supposed to do then? Tell the people to stop talking, making noises and driving around with their car? 

Use your imagination and creativity to create an audio-visual storytelling project displaying the perspectives you have experienced during this week.

– International Office 

How can I be creative when you put so much regulations into the assignment, how can I show what impressed ME the most, if I have a weak connection to arts but still need to include it in the video. If not, again, “subtraction” of points. Yes, I understand that you also need regulations to make the grading easier, but is this the best way of doing so?.

In my opinion, they should have made some small regulations like length of the video, quality, every group member should be included in the video and tell us the goal of the video. The rest should be left free. Why? Because WE can show you what WE learned, what impressed US the most and how we would want to show you and everyone else what impressed us about Mexico. On my trip, I had to think most of the time which picture or scene would fit into your regulations. It was not possible to enjoy every moment because of that, to use my recordings to show how I see Mexico and how I was impressed by it. It’s a pity, who knows if I will have the chance to come back to Mexico one more time to get impressed by it. I think that you have to give your students a bit more freedom, so they can unfold and evolve. If you give everything to someone, he will never learn to decide for himself how to do it well, independence and self-responsibility will be completely lost. 

For me the activity „impressed by Mexico“ is a great idea which unfortunately was not implemented well.

Once again, it won’t get any better than this, I guess. Also in this reflection, I didn’t want to talk about the M.T. so much because you have already read it (@Ken). 
So as always, thank you for sticking around.
See you on my next post. 
-SolidSnake8

Mastery08 Classes to tables

A beautiful song from a Yugoslavian Band called Bijelo Dugme

You have created a Class diagram and your next step is to create a database? 
My friend let me tell you that you are just at the right place!
Just follow this few steps (and listen to the music I embedded) and you will be successful!

  1. Map the classes to tables
  2. Take the attributes and map them to the fields and assign primary keys
  3. Take associations and map them to the foreign keys (one to many relations)
  4. Take associations and map them to the new tables (many to many)
  5. Implement the relationships

If you have a UML class diagram, you have (most of the time) several classes with attributes, as always, I will create an example for you. This example is a really easy one, usually you have much more classes. Let’s work with two classes. The first one will be “Person “, with several attributes like name, age, gender, job and hair color. The second class in this case would be “Car” with several attributes like brand, horsepower and color.
one person can have either zero, one ot more than one cars.

By SolidSnake8

The first step is to create a table Friends and a table Car, with all the attributes in it (Step 1).

The next step is to assign a primary key, I will assign name as the primary key for “Person” and brand as the primary key for “Car”

The third step, is to Map the associations (relation: one to many) and assign the foreign key, in our example we need the name of the person to know who the owner is. 

In our case, me don’t have many to many relations so we don’t have to do this step. 

Basically, what you have to do here is to create a new table with the two classes which have a many to many relation. Combine the name of “Class1” and “Class2” :
“Class1-Class2”
Then assign the both primary keys to the table as attributes. Both primary keys (form “Class1” and “Class2”) become the primary keys of your new table “Class1-Class2”.

The last and fifth step is to implement the relationships. Therefore, the primary key is always a “1” and the foreign key is a “∞”. 

By SolidSnake8

Now you have a structure to start building your relational-database.

But there are also non-relational databases. A non-relational database is a database that does not use the tabular schema of rows like in our database systems. Instead, it uses a storage model that is optimized for the specific requirements of the type of data being stored.

It doesn’t get any better than this!
Thank you for making it to that point, I hope you did not fall asleep, this one was dry, but time is ticking!
And let me know how you liked that song! Thank you for sticking around.
See you on my next post.
-SolidSnake8

Mastery07 UML Part(y) 2

Welcome to the paaaart(y) 2 of UML. Oh you like the part(y) joke and want some part(y) music? Fine!

This Mastery Topic is about the second part(y) of UML, I will focus on state diagrams.

So, a state diagram shows the changing states of objects and the events that cause these state changes, in other words, it shows the behavior.
I want to explain it to you with an example: 

Let’s take a look at a door which is either locked or unlocked. Further, you need a key to lock or unlock the door.  
Basically, you have three different states, “Door locked, Key inside door or “Door unlocked”:

  1. Door locked
  2. Key inside door
  3. Door unlocked

So, what are the transitions? Transitions represent how a state changes in our (perfect…) example, the transition would be:

1. to 2. 
And
2. to 1. 

Further, you have events, these events would be: 

(From 1. to 2.)“ pull out the key”
And
(From 2. to 1.) “put in the key”

But, this is not all, haha, it’s not that easy. 

A state diagram has always an initial state (in our example door locked) and a final state (in our example door unlocked). These are marked as followed:

By SolidSnake8

Also, you need to implement the commands and requirements:

Key inserted [key = right key] / put in the key
Key turned left / lock door

So a complete state diagram would look like this:

It doesn’t get any better than this!
Thank you for making it to that point, I hope you did not fall asleep, this one was dry, but time is ticking!
And let me know how you liked that song! Thank you for sticking around.
See you on my next post.
-SolidSnake8

Mastery06 UML Part 1

Hello and Welcome, I am so proud to present you the next Mastery Topic. First of all, I am so sorry I kept you waiting so long. I hope you could find something else to entertain you while waiting. The good thing is… well there is no good thing about it, I am a bit under pressure now, but! Diamonds are made under pressure, so keep your expectations (LOW!) high!

This topic is about the Unified Modeling Language. So, take a seat in the hype train and let’s go!

A different language is a different vision of life.
– Frederico Fellini.

Sounds a little bit to poetic or a Software related course doesn’t it? Think about that, I don’t know how great your knowledge about software is. How it works, how it looks like or how it’s created. But you use software every day, on your mobile phones, laptops even when you are going to the grocery store and purchase something with your credit card, you have to use the payment system. But do you understand how it works? I don’t mean the procedure of typing in your four-digit code or how that bank transfers the money to the account of the store. I talk about how the Software operates, how it knows that it is your credit card and that the four digits you just entered are the right ones. Maybe some of you (not me) does know how this works, but we are using it in our everyday life. The reason is, you don’t speak the language of software modeling. Therefore, you can’t understand the complexity behind it and trust me, if you would, it would give you a different vision about your (everyday) life. Good transition? Yes? Well, thank you. No? Click here! 

Let’s get to the real deal! You know the quote: 

A picture is worth a thousand words.
– Someone, someday

Well, this is exactly why the UML and UML diagrams were developed. The purpose is to create a common visual language for the complex world of software development that would be understandable anyone who wanted to gain insight into a system. One of the most important users are Business-users. They must have an understanding about they are dealing with, without having to program it.
To get a deeper Understanding of this topic, please read my post about Modeling Language. There is also an example which explains the UML Class Diagram.

I will focus on the sequence diagram. Why? I have already explained the class diagram. The object diagram is very similar to the class diagram, the only difference is……

A sequence diagram simply visualizes the interactions between objects in a sequential order e.g. the order in which these interactions take place. It describe how and in what order the objects in a system function. These diagrams are widely used by businessmen and software developers to document and understand requirements for new and existing systems.

I have a perfect example for you:

It doesn’t get any better than this!
Thanks for making it to that point, I hope you didn’t fall asleep because of the song, it’s really relaxing.
Let me know how you liked that song and the post! Thank you for sticking around.
See you on my next post.
-SolidSnake8

Mastery 05 Design Patetrns

Loooong time no see! Welcome toooo the right blog tooo beee and the next amazing topic, called:
DEEEESIIIIGN PAAAATERNNNSSSS.

„What is wrong with Solid Snake today?“
-You

Well, last week was tough, I had partials, 3 blog posts, my reflection, quizzes, homework and lot of group project stuff to do. Plus, I have to finish my approx. 25 pages of internship report. So, I just wanted to hype myself. To be honest, it did not work out. 

However, I know that you are hyped and that you have waited for decades for this post, I am happy to tell you that waiting has an end!

Here’s a song for everyone who thinks they have far too much work to do and feel their roof is falling on their head. Especially the part with: “And all I can do is watch and cry”

As promissed embedded:

But enough crying and being overdramatic. let’s move on with the good stuff! Don’t get me wrong, Adele is already good stuff. I mean… her music!

I will explain you what design patterns are, what a pattern consists of and give you some examples. 

Design patterns are standardized solutions to common problemsin software design. You can think of the pattern like a blueprint that you can customize to solve a particulardesign problem. But don’t mistake a pattern with an algorithm! An algorithm defines a clear set of actions that can achieve some goal. However, a pattern is a more high-level description of a solution.
Yeah once again… a cooking example (and yes, I like to cook). Try to see an algorithm as a cooking recipe, it has clear steps to achieve a goal, same with the pattern. But on the other hand, a pattern is more like a blueprint, which means you can see what the result and its features are, but the exact order of implementation is up to you.

So, what does a pattern consists of?

– intent of the pattern which is a briefly description of the problem and the solution

-Motivation which explains the problem and explains the solution the pattern makes possible

– Structure of classes which shows each part of the pattern and how they are related

– Code example in one of the popular programming languages which makes it easier to grasp the idea behind the pattern

This are the sections that are usually presented in a pattern description.

Examples! Well there are a lot of design patterns I will explain you the three umbrella terms and give you one example, if you want to learn more about it click on this Link. This is a very good source and the explanation can help you to understand the topic in a different way after reading my post.
As already mentioned, there are three different types of patterns, Behavioral patterns, Structural patterns and Creational patterns.

Behavioral patterns take care of effective communication and the assignment of responsibilities between objects.
Chain of Responsibility is a Behavioral pattern.

Structural patterns explain how to assemble objects and classes into larger structures, while keeping the structures flexible and efficient.
Adapter design pattern is a Structural pattern.

Creational patterns provide object creation mechanisms that increase flexibility and reuse of existing code.
Abstract Factory design pattern is a Creational pattern.

Not the usual post you read on my blog but as I said, I am under pressure. Unfortunately, I’m not coal, to become a diamond under pressure.
At least the usual and in every post implemented bad joke. As always, thanks for sticing around. Leave a like for Adeles youtube video.
See you on my next post.
-SolidSnake8

Erstelle eine Website wie diese mit WordPress.com
Jetzt starten