Software Design: Patterns

Carlos Pe.

As we know, software design isn’t the code itself but the way that code must be structured in order to have a higher level of control over it. Patterns themselves are repeatable solutions to problems that occur constantly in software design. These type of structured ways of designing software aren’t finished designs that can be already transformed into code but they are descriptions that show how to solve certain problems. They are normally templates used in order to have a richer idea on what it will be developed in the future.

There are mainly 3 types of design patterns:

  • Creational design

    These patterns approach design by the instantiation of classes. They are divided in class creation which inherit in the instantiation step and object creational patterns that use delegation as it should be in order to achieve certain task. Some of these are:

    • Abstract Factory
    • Builder
    • Factory Method
    • Object Pool
    • Prototype
    • Singleton

View original post 114 more words


UML: The best diagrams

The main purpose of UML is to provide the developer community a common way to design the base of an application. The primary authors were Jim Rumbaugh, Ivar Jacobson, and Grady Booch; which have originally their own methods, but they joined forces to create a better one.

1. Class Diagram

2. Activity Diagram

These diagrams represent the workflow of the process that needs to be described. In other words, it describes the process or actions between two or more classes. The flow starts with a circle and then continues with the actions that are inside rectangles. There are also conditionals represented by a diamond.

c2eme

3. Deployment Diagram

4. Sequence Diagram


Is there a cycle for a Software Engineer?

Life + Software = …

Life has a cycle, and even the software that we do has a cycle (More of it here). So why not combining both. I mean, programmers, specially Software Engineers should have one too.

Looser…

It is well-known that programmers have a hard life. Maybe because we are so intelligent that nobody loves us, or because that’s life.

This is just a stereotype. Programmers have a life behind all their programs, and sometimes they are more interesting than what they appear.

So the next time you see one, please don’t call him/her a nerd (unless he/she wants it) because behind that nerd there is a real life and someone who could be your next partner in life.


Wait!! More about Software Development?

There’s more…

There are Software Development Processes that help to plan and manage better the software-development-bannersoftware that is going to be developed. Usually, industries use them to develop and
maintain an application. Each process has its own methodology; and each new process
pretends to be better than the old ones.

The most famous processes are:

  • Waterfall
  • Prototyping
  • Incremental
  • Spiral
  • Agile

Agile vs Waterfall

There are big differences between these methodologies, but at the end developers use both daily. Usually there’s no preference for one or another, you just do what you have to do…

At the end…

We end up with a piece of software that give us some kind of satisfaction when we use it. That is what software has become, a part of our lives that days before wasn’t even planned like that. People change, technology change and we keep updating our world just to improve our lifestyle.

 

Resources:

https://www.versionone.com/agile-101/

http://www.tutorialspoint.com/sdlc/sdlc_overview.htm

https://www.vikingcodeschool.com/software-engineering-basics/a-brief-history-of-software-engineering

 


Software Engineering Code of Ethics

Team work about ACM’s code of ethics!!

Julia's Blog

The industry of Software Engineering is getting bigger and bigger each day, all around the world programmers are getting filled of new ideas and attempt to give something innovative to people. With such a large community  like this, keeping a good relationship between coders and society is really important. So, we all agree that it wasn’t a bad idea (actually, it was pretty good) to create a Code of Ethics for software engineers.

ja

The Code of Ethics was developed by the ACM and the Computer Society with the purpose of instructing programmers about what the society expects from them. But if we’re going to talk about ethics, first we must know the definition on ethics, right? Well, ethics is “an area of study that deals with ideas about what is good and bad behavior”.

We believe that every mature person has an idea of what’s good and bad; so why do we need our…

View original post 387 more words


There’s a cycle for Software too…!!!

I don’t know why everything in this life has a cycle, but anyway, I will talk about another cycle in this blog. The Software Development Life Cycle! ??????

sdlc_stagesThis cycle is used in the software industry to develop high quality products and at the same time satisfy the client. Basically it consists on planing ahead everything, so the work could be done easily.
The basic steps are:

  • Planning: it shows only the technical approaches of the future program.
  • Defining: this process meant to document every requirement.
  • Designing: as the name said, it’s to design the architecture of the software.
  • Building: here is where the developement starts, by starting to build the software.
  • Testing: by testing the software, you will have an answer and opinions of it.
  • Deployment: finally you deliver the product and maintain it.

 

Want to know more about software development? CLICK HERE

 

Resources:

http://www.tutorialspoint.com/sdlc/sdlc_overview.htm

https://www-01.ibm.com/software/support/lifecycle/


History and Improvement of Software Development

Normally we use our electronic devices every single day of our lives. We use our mobile applications, play with our computers or even argue about the new technology. But, have you ever think about the past? How did people live without a smartphone? Or what we did to evolve from nothing  to today’s technology?

9112c7ca9db8cc1d95be4a2213ecffb6

A little bit of history…

There was a time were programs were only instructions to manipulate physical devices, but today software is everything to the world. Basically, without the software, our devices are obsolete.

Late in the 50’s and 60’s, programmers didn’t interact directly with computers. For making mathematical operations they delivered their programs to a technician, which returned the results some hours later. Here is where programming languages started. The FORTRAN (by IBM) and the COBOL (by the US Department of Defense) were the first programming languages used for engineering and business applications; but their effectiveness was not the best, normally they took a long time to give results, leading to loss of time and budget. This started the “Software Crisis”!!

historyoftest

But fortunately, in 1968 a conference (NATO) took place to find a solution to these problems.Here, the term Software Engineering was created. Their solution was to use practices of traditional engineering applied to software. More about Software Engineering

applemacAfter this, the BOOM of software development started. The 70’s saw the growth of interfaces, that allows the developer to break the project into pieces. Then the 80’s gave birth to the famous “object-oriented programming”, that changed the way a user interact with the computer, by the Graphical user interface (GUI); now the device was more
friendly and easy to use.

But there were also bad things. Apparently the improvement on the hardware led to more software developers?, but bad code writing?.

What…Bad Coding?!

Yes! Bad code

i-will-not-write-any-more-bad-code
627x627-sftwaredev-feature-huss
software-development-banner
Continue reading "History and Improvement of Software Development"

Discipline vs Art

Software engineering is the last engineering created, but it will be the base for future careers that will change the way we see the world now. It’s different from others because you may get a virtual result that will function in real life and not necessary tangible one.

Software engineers can create something with a single a computer, and their limits are only the limits that they give themselves.

7c29296d7858f78f2e5f07df032818b5

Making software is not just programming; there’s a processes of planing before creating something and a process of improving it after you created it. But it’s always better to develop something that comes from our imagination, in that way we convert a piece of software into a piece of art.

20160816_093055.jpg

 

Collaboration:

Victor A. Najar

Miguel A. Cabral

Ramón García

Michelle Sagnelli