Application Programming Interface

An API is an application that comunicates with other applications. They are useful beacuse they bring routines, protocols and tools for building software. The most famous APIs are from GoogleMaps, Facebook, Yahoo, Youtube, Amazon, Twitter, Pinterest and Reddit.

Image result for software apis 


     Now it´s possible to use widgets or pull information to your website thanks to the APIs. A lot of webpages and applications use data from other sources thanks to the APIs, thats how we can post maps in WhatsApp or see the weather in our cellphone. APIs are a really important part in the software industry beacuse it allows the developers to be faster and at the same time the company becomes more competitive. Also, the users have access and have control of the content they generate. The average user can now access to photos, posts, tools and more data without having to creating from scratch a way of getting this data.


     I see the APIs as a library, you import a group of functions that you can use in your code to do pre-programmed stuff. They already bring you the access to the database you want to, so you don´t have to worry about that. Also, one great think about APIs is that some of them are free and easy to use, the installation instructions and documentation of every API is on the internet and a lot of people are willing to help you use them if you ask, so it´s only up to you to start getting into the wonderful of world of APIs.


source:
http://101.apievangelist.com/
http://www.webopedia.com/TERM/A/API.html
https://en.wikipedia.org/wiki/Application_programming_interface

Application Programming Interface

An API is an application that comunicates with other applications. They are useful beacuse they bring routines, protocols and tools for building software. The most famous APIs are from GoogleMaps, Facebook, Yahoo, Youtube, Amazon, Twitter, Pinterest and Reddit.

Image result for software apis 


     Now it´s possible to use widgets or pull information to your website thanks to the APIs. A lot of webpages and applications use data from other sources thanks to the APIs, thats how we can post maps in WhatsApp or see the weather in our cellphone. APIs are a really important part in the software industry beacuse it allows the developers to be faster and at the same time the company becomes more competitive. Also, the users have access and have control of the content they generate. The average user can now access to photos, posts, tools and more data without having to creating from scratch a way of getting this data.


     I see the APIs as a library, you import a group of functions that you can use in your code to do pre-programmed stuff. They already bring you the access to the database you want to, so you don´t have to worry about that. Also, one great think about APIs is that some of them are free and easy to use, the installation instructions and documentation of every API is on the internet and a lot of people are willing to help you use them if you ask, so it´s only up to you to start getting into the wonderful of world of APIs.


source:
http://101.apievangelist.com/
http://www.webopedia.com/TERM/A/API.html
https://en.wikipedia.org/wiki/Application_programming_interface

Waterfall method

Waterfall methodology is one of the first Software Development Processes, it was firsts used in hardware but now it has moved to software.

The steps of this methodology are followed in order one after another after checking that the previous steps are completed. The steps are:
  1. System and software requirements: captured in a product requirements document.
  2. Analysis: resulting in models, schema, and business rules.
  3. Design: resulting in the software architecture.
  4. Coding: the development, proving, and integration of software
  5. Testing: It consists on debugging.
  6. Operations: the maintenance
Imagine a waterfall with different levels, here is an ilustration:


Now imagine that each level is a step and the development course is the water. It can only flow in one direction, passing through each level until it reaches the end that is the maintenance.

I think that watefall methodolgy is one of the simplest one because it follows the normal software lifecycle. You think about the desgin, implement it, test it and then do the maintenace. The good part of the waterfall methodogy is that it takes it time to do well on each steps. Contrary to other methodogies that focus only on the developing, waterfall methodology cares about what is done before the coding because thats the plan and documentation you are going to follow. 

Now enjoy the music:



source:
https://en.wikipedia.org/wiki/Waterfall_model
http://istqbexamcertification.com/what-is-waterfall-model-advantages-disadvantages-and-when-to-use-it/

Waterfall method

Waterfall methodology is one of the first Software Development Processes, it was firsts used in hardware but now it has moved to software.

The steps of this methodology are followed in order one after another after checking that the previous steps are completed. The steps are:
  1. System and software requirements: captured in a product requirements document.
  2. Analysis: resulting in models, schema, and business rules.
  3. Design: resulting in the software architecture.
  4. Coding: the development, proving, and integration of software
  5. Testing: It consists on debugging.
  6. Operations: the maintenance
Imagine a waterfall with different levels, here is an ilustration:


Now imagine that each level is a step and the development course is the water. It can only flow in one direction, passing through each level until it reaches the end that is the maintenance.

I think that watefall methodolgy is one of the simplest one because it follows the normal software lifecycle. You think about the desgin, implement it, test it and then do the maintenace. The good part of the waterfall methodogy is that it takes it time to do well on each steps. Contrary to other methodogies that focus only on the developing, waterfall methodology cares about what is done before the coding because thats the plan and documentation you are going to follow. 

Now enjoy the music:



source:
https://en.wikipedia.org/wiki/Waterfall_model
http://istqbexamcertification.com/what-is-waterfall-model-advantages-disadvantages-and-when-to-use-it/

History of Software Engineering

Making history

Back at the 50´s computers were made to make just one set of computations, machines like the ENIAC was  only capable of computing mathematical or business problems, also, they needed a lot of hardware and personel to work. If i want to do both computations, what then? You had to buy two computers, asign them a big room and hire a lot of people. Computers were expenseive and thats why scientist started thinking about a computer that can assign a different set of instructions in the memory and change them as the user please. Thats how software was created and with it the two first software oriented languages came, FORTRAN and COBOL. The term of Software Engineering was first used in a letter from the ACM president  Anthony Oettinger in 1965.

Software crisis

Due to repentine change to a hardware focused market to a software focused market, employees had difficulties at acomplishing the tasks. They were not prepared to build software. Thats why a conference was convened in 1968 to find a solution to the problem. They realized that processes and better tools were needed to develop better software. Here is where Software Engineering finds its roots.

Internet Empire

In 1989 the web was born when Tim Berners-Lee, a computer scientist at CERN in Switzerland, wrote a paper describing linking documents together with "hypertext". But it wasn't until the mid-1990's that the web browser was created to give users graphical access to those pages and the ensuing browser wars over its dominance occurred.  Now thanks to the internet a lot more people can access information, communicate and create software faster than anytime in history.

Now i´m gonna leave you with a summary of the highlights in software history, this list is not made by me but i Continue reading "History of Software Engineering"

History of Software Engineering

Making history

Back at the 50´s computers were made to make just one set of computations, machines like the ENIAC was  only capable of computing mathematical or business problems, also, they needed a lot of hardware and personel to work. If i want to do both computations, what then? You had to buy two computers, asign them a big room and hire a lot of people. Computers were expenseive and thats why scientist started thinking about a computer that can assign a different set of instructions in the memory and change them as the user please. Thats how software was created and with it the two first software oriented languages came, FORTRAN and COBOL. The term of Software Engineering was first used in a letter from the ACM president  Anthony Oettinger in 1965.

Software crisis

Due to repentine change to a hardware focused market to a software focused market, employees had difficulties at acomplishing the tasks. They were not prepared to build software. Thats why a conference was convened in 1968 to find a solution to the problem. They realized that processes and better tools were needed to develop better software. Here is where Software Engineering finds its roots.

Internet Empire

In 1989 the web was born when Tim Berners-Lee, a computer scientist at CERN in Switzerland, wrote a paper describing linking documents together with "hypertext". But it wasn't until the mid-1990's that the web browser was created to give users graphical access to those pages and the ensuing browser wars over its dominance occurred.  Now thanks to the internet a lot more people can access information, communicate and create software faster than anytime in history.

Now i´m gonna leave you with a summary of the highlights in software history, this list is not made by me but i Continue reading "History of Software Engineering"

Software Lifecycle

What is Software Lifecycle? 

SLC is a term used in Software Engineering to describe a process for planning, creating, testing, and deploying an information system. The process is composed by several phases that focus on delivering a high quiality product to the customer:

-Preliminary analysis: propose alternative solutions, describe costs and benefits and submit a preliminary plan with recommendations.
-System analysis: Defines project goals into defined functions and operation of the intended application.
-Systems design: Describes desired features and operations in detail, including screen layouts, business rules, process diagrams, pseudocode and other documentation.
-Developing: Here you write the code and implement all the planning.
-Integration and testing: This space is for testing and debugging.
-Acceptance, installation, deployment: Here the program is complete and pushed into the market.
-Maintenance: Keep track of the software and make sure it does not become obsolete.
-Evaluation: This is the time to improve, check the complete design and modify it if something is wrong.
-Disposal: The disposal activities ensure proper migration to a new system.On this phase the old data is destroyed.

There are a lot of models for this methodology, some of them are:
Waterfall model, Iterative model, Agile model, Spiral model, V-model and Big-Bang model

Why is important to know about Software Lifecycle?

Because the main focus of this methodology is to create quality software to make the customer happy and that´s the only think big companies care. So, if you want to work at a big software producer company you must know at least the proces of software developing. It is very important that software keeps upgrading and geting better for the customer, not only adding more features but also to change or remove the old fetures that people stop caring Continue reading "Software Lifecycle"

Software Lifecycle

What is Software Lifecycle? 

SLC is a term used in Software Engineering to describe a process for planning, creating, testing, and deploying an information system. The process is composed by several phases that focus on delivering a high quiality product to the customer:

-Preliminary analysis: propose alternative solutions, describe costs and benefits and submit a preliminary plan with recommendations.
-System analysis: Defines project goals into defined functions and operation of the intended application.
-Systems design: Describes desired features and operations in detail, including screen layouts, business rules, process diagrams, pseudocode and other documentation.
-Developing: Here you write the code and implement all the planning.
-Integration and testing: This space is for testing and debugging.
-Acceptance, installation, deployment: Here the program is complete and pushed into the market.
-Maintenance: Keep track of the software and make sure it does not become obsolete.
-Evaluation: This is the time to improve, check the complete design and modify it if something is wrong.
-Disposal: The disposal activities ensure proper migration to a new system.On this phase the old data is destroyed.

There are a lot of models for this methodology, some of them are:
Waterfall model, Iterative model, Agile model, Spiral model, V-model and Big-Bang model

Why is important to know about Software Lifecycle?

Because the main focus of this methodology is to create quality software to make the customer happy and that´s the only think big companies care. So, if you want to work at a big software producer company you must know at least the proces of software developing. It is very important that software keeps upgrading and geting better for the customer, not only adding more features but also to change or remove the old fetures that people stop caring Continue reading "Software Lifecycle"

Team talk about Agile Development

Today on Ken´s Class we talked about Agile Development.

Image result for agile

Agile Development is a methodology that was presented in the Agile Manifesto wrote in 2001. Gerardo Juarez and me discussed about the main principles about Agile Development presented in the manifesto. Agile Development was made to make the process of developing a software faster with only the functionla part, it is also about group collaboration and open communication with the customer.

The Agile Manifesto propose 12 principles to follow this methodology:

  1. Customer satisfaction by early and continuous delivery of valuable software
  2. Welcome changing requirements, even in late development
  3. Working software is delivered frequently (weeks rather than months)
  4. Close, daily cooperation between business people and developers
  5. Projects are built around motivated individuals, who should be trusted
  6. Face-to-face conversation is the best form of communication (co-location)
  7. Working software is the principal measure of progress
  8. Sustainable development, able to maintain a constant pace
  9. Continuous attention to technical excellence and good design
  10. Simplicity—the art of maximizing the amount of work not done—is essential
  11. Best architectures, requirements, and designs emerge from self-organizing teams
  12. Regularly, the team reflects on how to become more effective, and adjusts accordingly 
It is also very important to say that Agile Development works in cycles. There is a time set for accomplishing short goals, after the time has ended the team shows their work to the customer so that him/she can give feedback. This cycle repeats until the job is done.

We think that Agile Development is very useful because it is about delivering only the functional part of the software, the design comes later, the simpliest the better. It is also useful when the customer is not sure about what he/she wants because it allows the team to change constantly during the elaboration of the program. Some disadvantages that some people
flickr photo by cote https://flickr.com/photos/cote/63914774 shared under a Creative Commons (BY) license
Continue reading "Team talk about Agile Development"

Team talk about Agile Development

Today on Ken´s Class we talked about Agile Development.

Image result for agile

Agile Development is a methodology that was presented in the Agile Manifesto wrote in 2001. Gerardo Juarez and me discussed about the main principles about Agile Development presented in the manifesto. Agile Development was made to make the process of developing a software faster with only the functionla part, it is also about group collaboration and open communication with the customer.

The Agile Manifesto propose 12 principles to follow this methodology:

  1. Customer satisfaction by early and continuous delivery of valuable software
  2. Welcome changing requirements, even in late development
  3. Working software is delivered frequently (weeks rather than months)
  4. Close, daily cooperation between business people and developers
  5. Projects are built around motivated individuals, who should be trusted
  6. Face-to-face conversation is the best form of communication (co-location)
  7. Working software is the principal measure of progress
  8. Sustainable development, able to maintain a constant pace
  9. Continuous attention to technical excellence and good design
  10. Simplicity—the art of maximizing the amount of work not done—is essential
  11. Best architectures, requirements, and designs emerge from self-organizing teams
  12. Regularly, the team reflects on how to become more effective, and adjusts accordingly 
It is also very important to say that Agile Development works in cycles. There is a time set for accomplishing short goals, after the time has ended the team shows their work to the customer so that him/she can give feedback. This cycle repeats until the job is done.

We think that Agile Development is very useful because it is about delivering only the functional part of the software, the design comes later, the simpliest the better. It is also useful when the customer is not sure about what he/she wants because it allows the team to change constantly during the elaboration of the program. Some disadvantages that some people
flickr photo by cote https://flickr.com/photos/cote/63914774 shared under a Creative Commons (BY) license
Continue reading "Team talk about Agile Development"