31 de agosto de 2012

¿QUÉ ES UN PARADIGMA?


Bienvenidos sean nuevamente a este blog, me gustaría compartir con ustedes lo que es un paradigma ya que quiero que sepan que nunca me lo pregunte y cuando lo descubrí me di cuenta que toda la vida han estado ahí sin que me diera cuenta, en realidad es algo tan sencillo que no lo imagine y hoy puedo decirles lo que es, para ello he dejado alguna información sobre paradigmas, un ejemplo la verdad bastante divertido que estoy segura entenderán y más que nada los hará reflexionar sobre lo que hacemos diario en nuestra vida y se preguntarán el porque hacemos las cosas como hasta ahora si pueden ser diferentes, lo entenderán rápidamente estoy segura, también les he dejado un video sobre una metáfora de paradigma está muy entretenido y pues bueno no queda mas que decir que por favor léanlo, compréndanlo y espero les guste.

Un paradigma puede definirse como creencias que se aceptan como verdaderas o falsas sin ponerlas a prueba de un nuevo análisis. 

El término paradigma significa ejemplo o modelo, también puede ser utilizado como sinónimo de marco teórico o conjunto de teorías, puede referirse a una parábola, fábula, o a una clase de elementos con similitudes.

El término también cuenta con un significado dentro de la psicología, este se refiere a aceptaciones de ideas, pensamientos y creencias incorporadas generalmente durante nuestra primera etapa de vida, que se aceptan como verdaderas o falsas sin ponerlas a prueba de un nuevo análisis.
                        
En términos generales se puede definir al término paradigma como la forma de visualizar e interpretar los múltiples conceptos, esquemas o modelos del comportamiento en todas las etapas de la humanidad, que influyen en el desarrollo de las diferentes sociedades así como de las empresas, integradas e influenciadas por lo económico, intelectual, tecnológico, científico, cultural, artístico, y religioso que al ser aplicados pueden sufrir modificaciones o evoluciones según las situaciones para el beneficio de todos.

PARADIGMA CIENTÍFICO

El filósofo y científico Thomas Kuhn define a un paradigma de la siguiente manera:

"Considero a los paradigmas como realizaciones científicas universalmente reconocidas que, durante cierto tiempo, proporcionan modelos de problemas y soluciones a una comunidad científica" 

                                                                                                                                       Thomas Kuhn.

PARADIGMA DE PROGRAMACIÓN

Es una propuesta tecnológica adoptada por una comunidad de programadores cuyo núcleo central es incuestionable en cuanto a que unívocamente trata de resolver uno o varios problemas claramente delimitados. La resolución de estos problemas debe suponer consecuentemente un avance significativo en al menos un parámetro que afecte a la ingeniería de software. Un paradigma de programación está delimitado en el tiempo en cuanto a aceptación y uso ya que nuevos paradigmas aportan nuevas o mejores soluciones que la sustituyen parcial o totalmente.

Ejemplo : 

Probablemente el paradigma de programación que actualmente es el más usado a todos los niveles es la orientación a objeto. El núcleo central de este paradigma es la unión de datos y procesamiento en una entidad llamada "objeto", relacionable a su vez con otras entidades "objeto".

Ejemplo sobre paradigma:











VIDEO: METÁFORA SOBRE PARADIGMAS


FUENTES DE INFORMACIÓN:

http://es.wikipedia.org/wiki/Paradigma

¿QUÉ ES UNA HERRAMIENTA CASE?


Hola me gustaría que conocieran lo que son las herramientas CASE, es por ello que he subido una breve información sobre ello, así como los objetivos que tienen y su clasificación, mas que nada espero que sepan lo que son, les sirvan y cualquier cosa lo comenten, de antemano muchas gracias por leer este blog.

Las herramientas CASE (Computer Aided Software Engineering, Ingeniería de Software Asistida por Computadora) son diversas aplicaciones informáticas que están destinadas a aumentar la productividad en el desarrollo de un software reduciendo así  el costo de las mismas en términos de tiempo y de dinero. Estas herramientas nos pueden ayudar en todos los aspectos del ciclo de vida de desarrollo de nuestro  software en tareas tales como el proceso de realizar un diseño del proyecto, el cálculo de costos, la implementación de parte del código, la compilación automática y la documentación o detección de errores entre otras. 

La  primera herramienta CASE fue Excelerator que salió a la luz en el año 1984 y trabajaba bajo una plataforma PC.

Las herramientas CASE alcanzaron su límite a principios de los años 90.

Actualmente el mercado de las Big CASE ha muerto completamente abriendo el mercado de diversas herramientas más específicas para cada fase del ciclo de vida del software.

Las herramientas CASE tienen los siguientes objetivos:

  1. Mejorar la productividad en el desarrollo y mantenimiento del software.
  2. Aumentar la calidad del software.
  3. Reducir el tiempo, el coste de desarrollo y el mantenimiento de los sistemas informáticos.
  4. Mejorar la planificación de un proyecto.
  5. Aumentar la biblioteca de conocimiento informático de una empresa ayudándola en la búsqueda de soluciones para los requisitos.
  6. Automatizar el desarrollo del software, la documentación, la generación de código, las pruebas de errores y la gestión del proyecto.
  7. Ayudar a la reutilización del software, portabilidad y estandarización de la documentación.
  8. Gestionar globalmente todas las fases de desarrollo de software con una misma herramienta.
  9. Facilitar el uso de las distintas metodologías propias de la ingeniería del software.

La Clasificación de las herramientas CASE es la siguiente

A pesar de que no es fácil y no existe una forma única de clasificarlas, las herramientas CASE se pueden clasificar teniendo en cuenta los siguientes parámetros:

  1. Las plataformas que soportan.
  2. Las fases del ciclo de vida del desarrollo de sistemas que cubren.
  3. La arquitectura de las aplicaciones que producen.
  4. Su funcionalidad. 
Hoy en día, muchas empresas han  adquirido  herramientas CASE, con el fin de automatizar los aspectos clave de todo el proceso de desarrollo de un sistema, desde su principio hasta su fin e incrementar su posición en el mercado competitivo, pero obteniendo algunas veces costos elevados en la adquisición de cierta herramienta y costos de capacitación de personal así como la falta de adaptación de la herramienta a la arquitectura de la información y a las metodologías de desarrollo utilizadas por la organización. Por otra parte, algunas herramientas CASE no ofrecen o evalúan soluciones potenciales para los problemas relacionados con sistemas o virtualmente no llevan a cabo ningún análisis de los requerimientos de la aplicación.

Sin embargo, lo que CASE ofrece es un conjunto de herramientas semiautomatizadas y automatizadas que están desarrollando una cultura de ingeniería nueva para muchas empresas.

CASE nos sirve para automatizar o apoyar una o mas fases del ciclo de vida del desarrollo de sistemas.

Una herramienta CASE suele contar con los siguientes elementos:

  • Un diccionario de datos para almacenar información sobre los datos de la aplicación de bases de datos.
  • Herramientas de diseño para dar apoyo al análisis de datos.
  • Herramientas que permitan desarrollar el modelo de datos corporativo, así como los esquemas conceptual y lógico.
  • Herramientas para desarrollar los prototipos de las aplicaciones. 


La estructura de una herramienta CASE se basa en los siguientes términos:

  • ALTO NIVEL se refiere a aquellas herramientas que automatizan o apoyan las fases finales o superiores del ciclo de vida del desarrollo de sistemas como la planificación de sistemas, el análisis de sistemas y el diseño de sistemas.
  • BAJO NIVEL se refiere a aquellas herramientas que automatizan o apoyan las fases finales o inferiores del ciclo de vida como el diseño detallado de sistemas, la implantación de sistemas y el soporte de sistemas.
  • CRUZADO de ciclo de vida se aplica a aquellas herramientas que apoyan actividades que tienen lugar a lo largo de todo el ciclo de vida, se incluyen actividades como la gestión de proyectos y la estimación. 


Sin duda las herramientas CASE han revolucionado la forma de automatizar los aspectos clave en el desarrollo de los sistemas de información, debido a la gran plataforma de seguridad que ofrecen a los sistemas que las usan y es que éstas, brindan toda una gama de componentes que incluyen todos o la mayoría de los requisitos necesarios para el desarrollo de los sistemas, han sido creadas con una gran exactitud en torno a las necesidades de los desarrolladores de sistemas para la automatización de procesos incluyendo el análisis, diseño e implantación.

HERRAMIENTAS CASE MAS UTILIZADAS

SNAP
SNAP es un CASE (Ingeniería de Software Asistida por el Computador) para el desarrollo de aplicaciones en Sistemas AS/400 de IBM.

System Architect
System Architect posee un repositorio único que integra todas las herramientas, y metodologías usadas. En la elaboración de los diagramas, el System Architect conecta directamente al diccionario de datos, los elementos asociados, comentarios, reglas de validaciones, normalización, etc

PowerDesigner
PowerDesigner es una suite de aplicaciones de Powersoft para la construcción, diseño y modelado de datos a través de diversas aplicaciones.

Oracle Designer
Oracle Designer es un juego de herramientas para guardar las definiciones que necesita el usuario y automatizar la construcción rápida de aplicaciones cliente/servidor flexibles y gráficas.

EasyCASE
EasyCASE Profesional - el centro de productos para procesos, modelamiento de datos y eventos, e Ingeniería de Base de Datos- es un producto para la generación de esquemas de base de datos e ingeniería reversa - trabaja para proveer una solución comprensible para el diseño, consistencia y documentación del sistema en conjunto.

ERwin
PLATINUM ERwin es una herramienta de diseño de base de datos. Brinda productividad en diseño, generación, y mantenimiento de aplicaciones.


FUENTES DE INFORMACIÓN







30 de agosto de 2012

CÓDIGO DE ÉTICA Y PRÁCTICA PROFESIONAL PARA INGENIEROS DE SOFTWARE

Hola de nuevo, en esta ocasión les mostraré lo que es el código de ética para los ingenieros de software y ya que este no puede sufrir modificaciones, lo escribiré tal cual como lo he encontrado en la página, la misma que pondré en las fuentes de información, escribiré la versión corta del código para que se les haga más fácil de comprender, espero que lo lean, lo comprendan y pues finalmente que les sirva y lo pongan en práctica.

La versión corta del código resume las aspiraciones a un alto nivel de abstracción; las cláusulas que se incluyen en la versión completa proporcionan ejemplos y detalles acerca de cómo estas aspiraciones modifican nuestra manera de actuar como profesionales de la ingeniería de software. Sin las aspiraciones, los detalles pueden convertirse en tediosos y legalistas; sin los detalles las aspiraciones pueden convertirse en altisonantes pero vacías; juntas, las aspiraciones y los detalles forman un código cohesivo.


Los ingenieros de software deberán comprometerse a convertir el análisis, especificación, diseño, implementación, pruebas y mantenimiento de software en una profesión respetada y benéfica. De acuerdo a su compromiso con la salud, seguridad y bienestar social, los ingenieros de software deberán sujetarse a los ocho principios siguientes:


  1. Sociedad. Los ingenieros de software actuarán en  forma congruente con el interés social.
  2. Cliente y empresario. Los ingenieros de software actuarán de manera que se concilien los mejores intereses de sus clientes y empresarios, congruentemente con el interés social.
  3. Producto. Los ingenieros de software asegurarán que sus productos y modificaciones correspondientes cumplen los estándares profesionales más altos posibles.
  4. Juicio. Los ingenieros de software mantendrán integridad e independencia en su juicio profesional.
  5. Administración. Los ingenieros de software gerentes y líderes promoverán y se suscribirán a un enfoque ético en la administración del desarrollo y mantenimiento de software.
  6. Profesión. Los ingenieros de software incrementarán la integridad y reputación de la profesión congruentemente con el interés social.
  7. Colegas. Los ingenieros de software apoyarán y serán justos con sus colegas.
  8. Personal. Los ingenieros de software participarán toda su vida en el aprendizaje relacionado  con la práctica de su profesión y promoverán un enfoque ético en la práctica de la profesión.                        
Bien, espero que hayan terminado de leerlo y no se les haya hecho pesado ya que el motivo por el cual he elegido solo poner la versión corta del código es porque quiero que lo lean y no se les haga muy tedioso leer tanto, pero aun así les dejo el link de la página en que lo obtuve por si quieren checar la versión completa del código ya que en dicha página están las dos versiones.

TECNOLOGÍAS INTELIGENTES


Es importante saber que la tecnología inteligente básicamente se refiere a darle a un dispositivo con una programación lógica, la capacidad de responder de forma racional con un estimulo en sus sensores.

Es por ello que cada uno de estos dispositivos tiene un microprocesador que analiza los datos en sus sensores y luego este responde basado en la programación que se le ha sido otorgada como un parámetro de uso.

Existen varios ejemplos de tecnologías inteligentes tales como televisiones, computadoras, autos y muchos mas, como ejemplo tomaremos el caso del televisor inteligente, actualmente la mayoría de las pantallas LCD y LED cuentan con una aplicación llamada modo de ahorro de energía, la cual funciona de la siguiente manera, la televisión esta programada para apagar la luz de la pantalla y ahorrar energía en el momento en el que sus sensores dejen de percibir alguna presencia y al percibir una presencia  esta se prenderá de nuevo, esto es como un modo de hibernación y como dije anteriormente la televisión cuenta con un microprocesador que analiza los datos en sus sensores para después realizar una acción en base a como este fue programado, en este caso sería cuando se apaga la pantalla o cuando se enciende.
Otra muestra de tecnología es el caso de un auto inteligente, este es capaz de utilizar los parámetros de ubicación brindados por un sistema de localización como el GPS, y al combinar estos datos con los que ingresan a través de todos los sensores con los que cuenta el vehículo, conducir de manera automática y segura hasta un destino, un ejemplo seria el caso del Citroën C3 ya que los sensores  de este permiten que el vehículo se estacione de manera automática.



LA TECNOLOGÍA "INTELIGENTE" AL SERVICIO DE LA SEGURIDAD EN EL AUTOMÓVIL.


Este sistema, denominado "eCall", activa una llamada de emergencia cuando se ha producido un accidente que incorpora información precisa sobre la situación del vehículo que se obtiene a través de un sistema de posicionamiento similar al GPS (sistema de posicionamiento global).


La incorporación de las nuevas tecnologías "inteligentes" a los sistemas de seguridad vial podrían reducir los errores humanos que provocan los accidentes en carretera en un 95 por ciento.


Aunque a medida que aumenta el parque de automóviles éstos se hacen más seguros, este tipo de accidentes causan 40.000 víctimas anuales en Europa.

Una llamada automática desde el propio vehículo pondría en alerta a los servicios de emergencias y daría las posiciones exactas de dónde se ha producido el accidente.

Esta llamada, además de la localización geográfica tridimensional del vehículo, ofrece a los efectivos de auxilio información útil como el tipo de colisión (lateral, frontal, vuelco) y sobre la violencia del accidente.
 

Además, esta aplicación "inteligente" se conectará con la base de datos clínica del accidentado que pondrá en antecedentes clínicos a los servicios de emergencias. 

Un estudio de la Comisión Europea informa de que la llamada automática podría reducir entre un 5 y un 10 por ciento el número total de fallecidos.

Para estos casos, la aplicación de las nuevas tecnologías a la automoción ha permitido crear un sistema de detección de este ángulo mediante un técnica de visión artificial, que no es posible con los espejos retrovisores, que reduce las colisiones con algún obstáculo no visto en las maniobras de cambio de carril.

En cuanto el vehículo detecta algún obstáculo "se autocontrola", reduce la velocidad y frena automáticamente.

En esta ocasión no les he dejado un video aquí pero en la barra lateral derecha he puesto un apartado especialmente para videos y todos son sobre ingeniería de software, tecnologías etc.
Espero que les gusten.



FUENTES DE INFORMACIÓN




25 de agosto de 2012

INGENIERÍA DE SOFTWARE


Hola bienvenidos a este blog, para comenzar les he dejado aquí una pequeña introducción sobre lo que es la ingeniería de software, aprovechando que este blog es sobre el tema mencionado, así como más artículos relacionados con las Tecnologías de la Información y Comunicaciones, creo que es lógico que sepan lo que es así que se los dejo para que lo lean y comenten.

La ingeniería de software es una disciplina formada por un conjunto de métodos, herramientas y técnicas que se utilizan en el desarrollo de software.

Esta disciplina trasciende la actividad de programación, esta es la actividad principal a la hora de crear un software. El papel del ingeniero de software es encargarse de toda la gestión del proyecto para que éste se pueda desarrollar en un plazo determinado y con el presupuesto previsto.

Por lo tanto, la ingeniería de software, incluye el análisis previo, el diseño del proyecto, el desarrollo del software, así como las pruebas que se necesitan para confirmar su correcto funcionamiento y por último la implementación del sistema.

Es importante mencionar que el proceso de desarrollo del software implica lo que se conoce como ciclo de vida del mismo, este está formado por cuatro etapas que son: concepción, elaboración, construcción y transición.

  • Lo que hace la concepción es fijar el alcance del proyecto y desarrollar el modelo de negocio.
  • El papel de la elaboración es definir el plan del proyecto, detallar las características y fundamentar la arquitectura de este.
  •  La construcción se refiere al desarrollo del producto.
  •  La transición es el momento en el que se transfiere el producto terminado a los usuarios.

Una vez completado este ciclo, comienza el mantenimiento del software. El mantenimiento se refiere a una fase de esta ingeniería en que se solucionan los errores descubiertos, la mayoría de ellos son advertidos por el usuario luego se realizan actualizaciones para enfrentar a los nuevos requisitos.
El proceso de mantenimiento incorpora además nuevos desarrollos, para permitir que el software pueda cumplir con una mayor cantidad de tareas.

Bien, luego de haber leído la información presentada, les dejo aquí un video sobre lo que es la ingeniería de software para que les quede mas claro, he sacado el video de youtube, asi que si falla la reproducción de este les dejo el link del video en las fuentes de información presentadas abajo.




FUENTES DE INFORMACIÓN