Software design patterns

 https://farm8.static.flickr.com/7286/27844620322_d5df4758b6.jpg


flickr photo by Philippe Put https://flickr.com/photos/34547181@N00/27844620322 shared under a Creative Commons (BY-ND) license
Software design patterns are general solution to common problems presented in software development. They are also commonly know as "goog practices" while programming.

There are several types:
  • Alogorithm strategy patterns
  • Computational design patterns
  • Execution patterns
  • Implementation strategy patterns
  • Structural desgin patterns
Some types refer only to a specific conection 

Classification:
  • Creational patterns
  • Structural patterns
  • Behavioral patterns
  • Concurrency patters
Also, if you want to know design patterns more in detail watch Derek Banas' tutorials. He not only explains what they are and how to work with them but also codes a little bit in Java to show us some example implementations. The videos are a little bit long but they are not boring, if you already know OOP basics you can skip the first two videos. So, pick up a coffee cup, take your time and watch his tutorials, it´s worth it.

source:
https://en.wikipedia.org/wiki/Software_design_pattern
https://www.youtube.com/watch?v=vNHpsC5ng_E

Software implementation and tools – Building software

 https://farm6.static.flickr.com/5336/8949632578_a84bd35751.jpg


flickr photo by SammCox https://flickr.com/photos/sammcox/8949632578 shared under a Creative Commons (BY-NC) license
Software implementation is a methodology to effectively integrate a software into a complete service.

There are two programming methods:

-Structured programming is about usisng subroutines and loops to bring clarity to the code and make it easier and faster to read.

-Functional programming uses mathematical functions to operate. With a given argument it should produce the same result.

As you can notice, the main function of these methods is to make the code more easier to read and to understand. Thats why documentation is very important. It helps  future generation of coders to understand what it does without even having to read it completely, also, it makes you the job easier while debugging.

There are several tools that can be very useful to build a program. I´m going to categorize them from the role they play in the process:


-Editor 
The editor is just the text editor. It can go to a simple NotePad or a more elaborated software with integrated features for a specific language like Eclipse.

-Compiler 
The compiler depends on the language you are using. Some check for mistakes while others don´t, it´s main function is to translate the code and convert it into something readable for the machine. There are sevar compilers like GCC for C++ and Delphi for Pascal.

-Debugger 
In case that your editor doesn´t include a debugging tool, you can always check for individual programs that can Continue reading "Software implementation and tools – Building software"

Software implementation and tools – Building software

 https://farm6.static.flickr.com/5336/8949632578_a84bd35751.jpg


flickr photo by SammCox https://flickr.com/photos/sammcox/8949632578 shared under a Creative Commons (BY-NC) license
Software implementation is a methodology to effectively integrate a software into a complete service.

There are two programming methods:

-Structured programming is about usisng subroutines and loops to bring clarity to the code and make it easier and faster to read.

-Functional programming uses mathematical functions to operate. With a given argument it should produce the same result.

As you can notice, the main function of these methods is to make the code more easier to read and to understand. Thats why documentation is very important. It helps  future generation of coders to understand what it does without even having to read it completely, also, it makes you the job easier while debugging.

There are several tools that can be very useful to build a program. I´m going to categorize them from the role they play in the process:


-Editor 
The editor is just the text editor. It can go to a simple NotePad or a more elaborated software with integrated features for a specific language like Eclipse.

-Compiler 
The compiler depends on the language you are using. Some check for mistakes while others don´t, it´s main function is to translate the code and convert it into something readable for the machine. There are sevar compilers like GCC for C++ and Delphi for Pascal.

-Debugger 
In case that your editor doesn´t include a debugging tool, you can always check for individual programs that can Continue reading "Software implementation and tools – Building software"

Software implementation and tools – Building software

 https://farm6.static.flickr.com/5336/8949632578_a84bd35751.jpg


flickr photo by SammCox https://flickr.com/photos/sammcox/8949632578 shared under a Creative Commons (BY-NC) license
Software implementation is a methodology to effectively integrate a software into a complete service.

There are two programming methods:

-Structured programming is about usisng subroutines and loops to bring clarity to the code and make it easier and faster to read.

-Functional programming uses mathematical functions to operate. With a given argument it should produce the same result.

As you can notice, the main function of these methods is to make the code more easier to read and to understand. Thats why documentation is very important. It helps  future generation of coders to understand what it does without even having to read it completely, also, it makes you the job easier while debugging.

There are several tools that can be very useful to build a program. I´m going to categorize them from the role they play in the process:


-Editor 
The editor is just the text editor. It can go to a simple NotePad or a more elaborated software with integrated features for a specific language like Eclipse.

-Compiler 
The compiler depends on the language you are using. Some check for mistakes while others don´t, it´s main function is to translate the code and convert it into something readable for the machine. There are sevar compilers like GCC for C++ and Delphi for Pascal.

-Debugger 
In case that your editor doesn´t include a debugging tool, you can always check for individual programs that can Continue reading "Software implementation and tools – Building software"

Open source software

Open source software is a program which source code is free on the internet. This means that anyone can download the source code and make modifications to it. The whole purpose to this is that the software gets constant upgrades made by the whole community. This is great because everyone con contribute with their knowledge to the software development, making it faster and with important features for the real users. In short these are the advantages of working with souce code:
  • Security
  • Affordability
  • Transparency
  • Perpetuity
  • Interoperability
  • Flexibility
  • Localization
All this of course, comes with a condition, everything that comes from an open source code must be also free and open. There are multiple licences that follows the open source pilosophy, some examples are: Apache License, BSD license, GNU General Public License, GNU Lesser General Public License, MIT License, Eclipse Public License and Mozilla Public License.



flickr photo by miss_curse_10 https://flickr.com/photos/miz_curse_10/1404420256 shared under a Creative Commons (BY-SA) license
I think that open source is great because it allows everyone to add whatever they thing is missing or o fix whatever they thing is broken. This is excellent for the companies because they don´t need to hire experts on the customer's behavior to study their needs, an open source code is customer oriented by nature. Also, bug fixing is a lot quicker and cheap because other people do it for free instead of paid engineers of the company. In an open source software everyone is a tester and everyone can be a developer.

sources:
https://en.wikipedia.org/wiki/Open-source_software
https://opensource.org/

Open source software

Open source software is a program which source code is free on the internet. This means that anyone can download the source code and make modifications to it. The whole purpose to this is that the software gets constant upgrades made by the whole community. This is great because everyone con contribute with their knowledge to the software development, making it faster and with important features for the real users. In short these are the advantages of working with souce code:
  • Security
  • Affordability
  • Transparency
  • Perpetuity
  • Interoperability
  • Flexibility
  • Localization
All this of course, comes with a condition, everything that comes from an open source code must be also free and open. There are multiple licences that follows the open source pilosophy, some examples are: Apache License, BSD license, GNU General Public License, GNU Lesser General Public License, MIT License, Eclipse Public License and Mozilla Public License.



flickr photo by miss_curse_10 https://flickr.com/photos/miz_curse_10/1404420256 shared under a Creative Commons (BY-SA) license
I think that open source is great because it allows everyone to add whatever they thing is missing or o fix whatever they thing is broken. This is excellent for the companies because they don´t need to hire experts on the customer's behavior to study their needs, an open source code is customer oriented by nature. Also, bug fixing is a lot quicker and cheap because other people do it for free instead of paid engineers of the company. In an open source software everyone is a tester and everyone can be a developer.

sources:
https://en.wikipedia.org/wiki/Open-source_software
https://opensource.org/

Software architecture



Software architecture is about defining and creaiting the structures of a software. These structures manages the relations between the components of the program. Sofware architecture is important because it describes how these structures control the conections of the back-end part of the software.
The architecture is the carrier of the software qualities such as perfomance, modifiability and security.
https://farm3.static.flickr.com/2511/3770016707_bb5aca3a02.jpg
flickr photo by Will Scullin https://flickr.com/photos/wscullin/3770016707 shared under a Creative Commons (BY) license

The architecture must follow the software requirements established in the software design. Actually, software architecture and software design are very related, the desgin describes what to do and what not to do while the architecture describes how to do it with the implementation of the structures.

Characteristics:
  • Multitude of stakeholders
  • Separation of concerns
  • Quality-driven
  • Recurring styles
  • Conceptual integrity
In general, software architecture is the combination between data structures and algorithms that meets all of the technical and operational requirements.

source:
https://en.wikipedia.org/wiki/Software_architecture
http://www.sei.cmu.edu/architecture/
https://msdn.microsoft.com/en-us/library/ee658098.aspx

Software architecture



Software architecture is about defining and creaiting the structures of a software. These structures manages the relations between the components of the program. Sofware architecture is important because it describes how these structures control the conections of the back-end part of the software.
The architecture is the carrier of the software qualities such as perfomance, modifiability and security.
https://farm3.static.flickr.com/2511/3770016707_bb5aca3a02.jpg
flickr photo by Will Scullin https://flickr.com/photos/wscullin/3770016707 shared under a Creative Commons (BY) license

The architecture must follow the software requirements established in the software design. Actually, software architecture and software design are very related, the desgin describes what to do and what not to do while the architecture describes how to do it with the implementation of the structures.

Characteristics:
  • Multitude of stakeholders
  • Separation of concerns
  • Quality-driven
  • Recurring styles
  • Conceptual integrity
In general, software architecture is the combination between data structures and algorithms that meets all of the technical and operational requirements.

source:
https://en.wikipedia.org/wiki/Software_architecture
http://www.sei.cmu.edu/architecture/
https://msdn.microsoft.com/en-us/library/ee658098.aspx

Software architecture



Software architecture is about defining and creaiting the structures of a software. These structures manages the relations between the components of the program. Sofware architecture is important because it describes how these structures control the conections of the back-end part of the software.
The architecture is the carrier of the software qualities such as perfomance, modifiability and security.
https://farm3.static.flickr.com/2511/3770016707_bb5aca3a02.jpg
flickr photo by Will Scullin https://flickr.com/photos/wscullin/3770016707 shared under a Creative Commons (BY) license

The architecture must follow the software requirements established in the software design. Actually, software architecture and software design are very related, the desgin describes what to do and what not to do while the architecture describes how to do it with the implementation of the structures.

Characteristics:
  • Multitude of stakeholders
  • Separation of concerns
  • Quality-driven
  • Recurring styles
  • Conceptual integrity
In general, software architecture is the combination between data structures and algorithms that meets all of the technical and operational requirements.

source:
https://en.wikipedia.org/wiki/Software_architecture
http://www.sei.cmu.edu/architecture/
https://msdn.microsoft.com/en-us/library/ee658098.aspx

Software architecture



Software architecture is about defining and creaiting the structures of a software. These structures manages the relations between the components of the program. Sofware architecture is important because it describes how these structures control the conections of the back-end part of the software.
The architecture is the carrier of the software qualities such as perfomance, modifiability and security.
https://farm3.static.flickr.com/2511/3770016707_bb5aca3a02.jpg
flickr photo by Will Scullin https://flickr.com/photos/wscullin/3770016707 shared under a Creative Commons (BY) license

The architecture must follow the software requirements established in the software design. Actually, software architecture and software design are very related, the desgin describes what to do and what not to do while the architecture describes how to do it with the implementation of the structures.

Characteristics:
  • Multitude of stakeholders
  • Separation of concerns
  • Quality-driven
  • Recurring styles
  • Conceptual integrity
In general, software architecture is the combination between data structures and algorithms that meets all of the technical and operational requirements.

source:
https://en.wikipedia.org/wiki/Software_architecture
http://www.sei.cmu.edu/architecture/
https://msdn.microsoft.com/en-us/library/ee658098.aspx