Nueva MacBook Pro

apple_logo_black-svg

Ayer salió a la venta la nueva MacBook Pro. En realidad, desde siempre se me ha hecho increíble todo lo que sale refiriéndose a la tecnología, sin importad de que haya salido hace años. Pero algo que me molesta es que presenten lo antiguo como lo mejor del momento. Apple ha enseñado ser uno de los mejores diseñadores, pero ¿innovadores?, no del todo.

Me gustó mucho la nueva laptop, pero hay un problema. Creo, yo, que el precio es demasiado excesivo para lo que es. 42,000 pesos por una laptop que tiene una nueva barra editable en vez de botones. Pero, ¿quién tiene la culpa? Yo, creo que el problema viene por parte de los consumidores, porque están dispuestos a pagar esa cantidad por algo que la mayoría no necesita. Entiendo que es más rápida, que diseñadores, trabajadores, programadores puede que la necesiten, pero no lo suficiente necesaria por el precio.

Creo que deberíamos de enfocarnos en otras necesidades. No culpo a la empresa, culpo a la gente que piensa que comprar lo nuevo es lo mejor. Hay una gran diferencia entre necesidad y lujo. No es mala una combinación entre ambas, yo tengo una Mac, pero ésto se me hace excesivo.


Software Requirements…and stuff

Software Engineering

As easy as it sounds, software requirements are requirements for software. But let’s dig a little bit deeper. Requirements are not only the functions required, actually this might be the least of the concerns in terms of requirements.  Requirements must surpass all of the client’s expectations.

There’s even a science in charged of this analysis; and it is called Requirement Engineering  its goal is to develop a very very very special and important document called the System Requirements Specification.

It involves mainly four steps, although there are text that claim it to be more than that and they are:

  • Feasibility Study:  This is the initial stage. In this one, the requirement engineer must meet the client in order to talk about the general expectations. Then, he produces a very wide and thorough analysis on the possible constrains, implementation cost, and objectives. It also explores the technical aspects of the…

View original post 269 more words


Software Verification and Validation

There is a big difference between the verification of Software and the validation it. Also, there are some similarities between both of them. First, verification is the process which checks if the software is functioning correctly. On the other side, validation is concerned with checking that the software actually satisfies the customer’s needs.

Verification checks the quality of the software such as testing, inspection, design analysis, specification analysis, etcetera. All the processes should be objective because there is needed to be a concise product. If the software is created with the correct specifications, there might not be subjective judgements to it.

Validation is the process of checking if the stages of the creation of the software are accomplishing the customers needs.Validation is a subjective process because analysis might vary between the people that are evaluating the project. It all depends on the evaluator and the different ideas between each evaluator.

They have differences, such as the following:

vandvtoolbox

(Retrieved from http://www.easterbrook.ca/steve/2010/11/the-difference-between-verification-and-validation/)

The development of a project needs both of them, they might be different but important. As an example, applying both onto a project is like comparing the design of a webpage and the code. Code is fundamental to make the webpage work, but if the design of it isn’t the best, the webpage might be useless or it isn’t going to meet the customer’s needs.

Carlos Pedraza

Miguel Cabral

Victor Najar

Juan Pablo Ramírez

Information retrieved from http://www.easterbrook.ca/steve/2010/11/the-difference-between-verification-and-validation/


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


My experience with Kent Beck

2000px-extreme_programming-svg

image from https://upload.wikimedia.org/wikipedia/commons/thumb/8/84/Extreme_Programming.svg/2000px-Extreme_Programming.svg.png.

I don’t know him very well. Actually, before this course (Software Engineering Fundamentals) I had never heard about him. Our professor, Ken Bauer, introduced Kent to us, virtually. I can’t talk about what he said because of privacy, but it was a great experience.

We all ask questions to him, and it was very interesting to know about some deep stuff. Some of the responses make me feel like it’s difficult to reach his level, but others inspire me to continue learning. I need to change a lot of things in order to TRY to achieve his knowledge.

It is going to be hard, but it’s up to everyone to improve the way of learning. I’m going to try to focus on new stuff and I’ll be searching of new information in order to learn more and more.


UML: The best diagrams

fbee2d22-eec7-45a7-82f4-e67b6d8cb7701. Class Diagram

2. Activity Diagram

3. Deployment Diagram

4. Sequence Diagram

The sequence diagrams are used to show the interactions between objects. Also, they show the order in which these interactions occur. These interactions are shown depending on the situation. There are two ways to represent the sequence diagrams: processes are shown vertically and interactions are represented as arrows.

440px-checkemail-svg

 


API (Application Programming Interfaces)

api

The Application Programming Interfaces are those which interact between different applications. Facebook is one of the many websites that contain APIs, they are used to connect people around the world. Yahoo is another company that shows many gadgets to their users, helping them to find news, sports, weather, jobs, etc.

APIs are configured to control some webpages. They are used to create shortcuts between other applications. Many websites contain these APIs to help their users or guests to find something in an easier way.

Reddit, for example, is a webpage in which users share different links that are located in different subreddits. These subs contain these links, you just need to click it and reddit will redirect you through the link.

Most of the APIs can be helpful, in fact, I think that that’s the idea. However, some webpages have APIs that can affect the viewer. As a software engineer, we all have to follow a code of ethics in order to create a good environment. We are supposed to create new ways to interact with the world, without harming the others.

(Retrieved from http://101.apievangelist.com).


Software Development Life Cycle

sdlc_-_software_development_life_cycle

I just found out that the Software Development Life Cycle has six different phases. I’ll explain them below. The Life Cycle of the software is employed while the software is in its development process. It is also known as “Software Development Process Models”. The phases of the Software Development Life Cycle are the following:

  1. Requirement gathering and analysis
  2. Design
  3. Implementation or coding
  4. Testing
  5. Deployment
  6. Maintenance

(Retrieved from http://istqbexamcertification.com/what-are-the-software-development-life-cycle-sdlc-phases/ ).

  1. Requirement gathering and analysis:

It’s the process in which information regarding the project is investigated. They try to answer these questions to complete the information: Who is going to use the system? How will they use the system?  What data should be input into the system?

2. Design:

System Design creates the draft of the project according to the specifications that were retrieved in phase 1. It is used as a model in order to be used in the following phases.

3. Implementation or coding:

With the new model, software engineers start to code. They are divided in teams in order to fill the different areas of coding.

4. Testing:

When code is finished, the testing phase starts. Here, they can track bugs or see if they followed all the requirements established in phase 1.

5. Development:

When testing phase finishes, the product is delivered to the customer.

6. Maintenance:

Customer finds some bugs and the team needs to give maintenance to the product constantly.