sábado, 26 de noviembre de 2011

Perfil y mapa curricular de la carrera

Perfil de Egreso
El ingeniero en software es un profesionista que desarrolla soluciones de software, mediante la aplicación de procesos, modelos y estándares de calidad de la industria del software, las cuales contribuyen al crecimiento y progreso de su sociedad, en un ambiente que provee vida sustentable y oportunidades a sus habitantes.
Mapa curricular 
 

Responsabilidad en la profesión y ética

La ingeniería del software se lleva a cabo dentro de un marco legal y social que limita la libertad de los ingenieros.
Los ISW deben aceptar que su trabajo comprende responsabilidades más amplias que simplemente la aplicación de habilidades técnicas.
Deben comportarse de una forma ética y moral responsable.

No basta con poseer estándares normales de honestidad e integridad.
No debería utilizar su capacidad y sus habilidades para comportarse de forma deshonesta o de forma que deshonre la profesión de la ingeniería del software.
Existen áreas donde los estándares de comportamiento aceptable no están acotados por las leyes, sino por la responsabilidad profesional.
Algunas de éstas son:
Confidencialidad. Respetar la confidencialidad de sus empleadores o clientes, independientemente de que se haya firmado un acuerdo formal de confidencialidad.
Competencia. No debe falsificar su nivel de competencia, ni aceptar conscientemente trabajos que están fuera de su capacidad.
Derechos de propiedad intelectual. Debe ser consciente de las leyes locales que gobiernan el uso de la propiedad intelectual, como las patentes y el copyright. Debe asegurarse de que la propiedad intelectual de los empleadores y clientes está protegida.
Uso inapropiado de las computadoras. No debe emplear sus habilidades técnicas para utilizar de forma inapropiada las computadoras de otras personas. Desde los relativamente triviales (utilizar juegos en la máquina de un empleado, por ejemplo) hasta los extremadamente serios (difusión de virus).
Las sociedades e instituciones profesionales desempeñan un papel importante en el establecimiento de estándares éticos.
Organizaciones como la ACM (Association for Computing Machinery), el IEEE (Instituto de Ingenieros Eléctricos y Electrónicos) y la British Computer Society publican un código de conducta profesional o de ética.

Los miembros de estas organizaciones se comprometen a cumplir ese código cuando se inscriben en ellas.
ACM y el IEEE
El código contiene ocho principios relacionados con el comportamiento y con las decisiones hechas por ingenieros de software profesionales, incluyendo practicantes, educadores, administradores, supervisores y creadores de políticas, así coma aprendices y estudiantes de la profesión.
Los principios identifican las relaciones éticas en las que los individuos, grupos y organizaciones participan, y las obligaciones primarias dentro de estas relaciones.
Las cláusulas de cada principio son ilustraciones de algunas de las obligaciones incluidas en estas relaciones. Estas obligaciones se fundamentan en la humanidad del ingeniero de software, con especial cuidado en la gente afectada por el trabajo de los ingenieros de software, y los elementos únicos de la práctica.
Código de Ética (ACM/IEEE)
Los ingenieros de software deberán comprometerse consigo mismos en convertir el análisis, especificación, diseño, desarrollo, prueba y mantenimiento de software en una profesión respetable y beneficiosa.

¿Qué es RUP?

Es un proceso de ingeniería de software, que hace una propuesta orientada por disciplinas para lograr las tareas y responsabilidades de una organización que desarrolla software.
Su meta principal es asegurar la producción de software de alta calidad que cumpla con las necesidades de los usuarios, con una planeación y presupuesto predecible.

Características

Dirigido por Casos de Uso:
Los casos de uso son los artefactos primarios para establecer el comportamiento deseado del sistema
Centrado en la Arquitectura:
La arquitectura es utilizada para conceptualizar, construir, administrar y evolucionar el sistema en desarrollo

Iterativo e Incremental:
Maneja una serie de entregas ejecutables
Integra continuamente la arquitectura para producir nuevas versiones mejoradas
Ciclo de vida RUP
Fases de ciclo de vida 
 Inicio(inception)
El objetivo general de esta fase es establecer un acuerdo entre todos los interesados acerca de los objetivos del proyecto.
Es significativamente importante para el desarrollo de nuevo software, ya que se asegura de identificar los riesgos relacionados con el negocio y requerimientos.
Para proyectos de mejora de software existente, esta fase es más breve y se centra en asegurar la viabilidad de desarrollar el proyecto.
Elaboración
El objetivo en esta fase es establecer la arquitectura base del sistema para proveer bases estables para el esfuerzo de diseño e implementación en la siguiente fase.
La arquitectura debe abarcar todas las consideraciones de mayor importancia de los requerimientos y una evaluación del riesgo.
Construcción 

El objetivo de la fase de construcción es clarificar los requerimientos faltantes y completar el desarrollo del sistema basados en la arquitectura base.
Vista de cierta forma esta fase es un proceso de manufactura, en el cual el énfasis se torna hacia la administración de recursos y control de la operaciones para optimizar costos, tiempo y calidad. 
Transición
Esta fase se enfoca en asegurar que el software esté disponible para sus usuarios.
Se puede subdividir en varias iteraciones, además incluye pruebas del producto para poder hacer el entregable del mismo, así como realizar ajuste menores de acuerdo a ajuste menores propuestos por el usuario.
En este punto, la retroalimentación de los usuarios se centra en depurar el producto, configuraciones, instalación y aspectos sobre utilización. 

Disciplinas de RUP 

Son un conjunto de actividades relacionadas con un área especifica dentro del proyecto.
Están inspiradas en las etapas de un proceso de desarrollo en cascada
Es una secuencia parcialmente ordenada de actividades que son realizadas para lograr un resultado particular, representado en un conjunto de artefactos. 

Las disciplinas son:  

Modelado de Negocios, Requerimientos, Análisis y Diseño, Implementación, Pruebas, Transición, Configuración y Administración del Cambio, Administración de Proyectos y Ambiente.
 
¿Cuándo usar el modelo RUP?
 
En proyectos de nuevos productos de software
En ciclos de desarrollo subsecuentes
Consideraciones que alteran cuándo y cómo usar partes de RUP
El ciclo de vida del proyecto
Los objetivos del negocio, la visión, el alcance y los riesgos
El tamaño del esfuerzo de desarrollo
 


 Conclusión

Es un modelo de proceso de desarrollo de software
Es una base para procesos particulares
El objetivo es asegurar el desarrollo
De productos de software de alta calidad
Que satisfagan los requerimientos
En tiempo y presupuesto predecible
Permite un vocabulario común entre equipos de desarrollo