El RUP no es un sistema con pasos firmemente establecidos, sino un conjunto de metodologías adaptables al contexto y necesidades de cada organización.
También se conoce por este nombre al software desarrollado por Rational, hoy propiedad de IBM, el cual incluye información entrelazada de diversos artefactos y descripciones de las diversas actividades. Está incluido en el Rational Method Composer (RMC), que permite la personalización de acuerdo con las necesidades.
Originalmente se diseñó un proceso genérico y de dominio público, el Proceso Unificado, y una especificación más detallada, el Rational Unified Process, que se vendiera como producto independiente.
El RUP está basado en 6 principios clave que son los siguientes:
Adaptar el proceso
El proceso deberá adaptarse a las necesidades del cliente ya que es muy importante interactuar con él. Las características propias del proyecto u organización. El tamaño del mismo, así como su tipo o las regulaciones que lo condicionen, influirán en su diseño específico. También se deberá tener en cuenta el alcance del proyecto en un área subformal.
Equilibrar prioridades
Los requisitos de los diversos participantes pueden ser diferentes, contradictorios o disputarse recursos limitados. Debe encontrarse un equilibrio que satisfaga los deseos de todos. Gracias a este equilibrio se podrán corregir desacuerdos que surjan en el futuro.
Demostrar valor iterativamente
Los proyectos se entregan, aunque sea de un modo interno, en etapas iteradas. En cada iteración se analiza la opinión de los inversores, la estabilidad y calidad del producto, y se refina la dirección del proyecto así como también los riesgos involucrados
Colaboración entre equipos
El desarrollo de software no lo hace una única persona sino múltiples equipos. Debe haber una comunicación fluida para coordinar requisitos, desarrollo, evaluaciones, planes, resultados, etc.
Elevar el nivel de abstracción
Este principio dominante motiva el uso de conceptos reutilizables tales como patrón del software, lenguajes 4GL o marcos de referencia por nombrar algunos. Esto evita que los ingenieros de software vayan directamente de los requisitos a la codificación de software a la medida del cliente, sin saber con certeza qué codificar para satisfacer de la mejor manera los requisitos y sin comenzar desde un principio pensando en la reutilización del código. Un alto nivel de abstracción también permite discusiones sobre diversos niveles y soluciones arquitectónicas. Éstas se pueden acompañar por las representaciones visuales de la arquitectura, por ejemplo con el lenguaje UML.
Enfocarse en la calidad
El control de calidad no debe realizarse al final de cada iteración, sino en todos los aspectos de la producción. El aseguramiento de la calidad forma parte del proceso de desarrollo y no de un grupo independiente.
Ciclo de vida RUP:
El ciclo de vida RUP es una implementación del Desarrollo en espiral. Fue creado ensamblando los elementos en secuencias semi-ordenadas. El ciclo de vida organiza las tareas en fases e iteraciones.
RUP divide el proceso en cuatro fases, dentro de las cuales se realizan varias iteraciones en número variable según el proyecto y en las que se hace un mayor o menor hincapié en las distintas actividades. En la Figura muestra cómo varía el esfuerzo asociado a las disciplinas según la fase en la que se encuentre el proyecto RUP.
Caracteristicas:
- Forma disciplinada de asignar tareas y responsabilidades (quién hace qué, cuándo y cómo)
- Pretende implementar las mejores prácticas en Ingeniería de Software
- Desarrollo iterativo
- Administración de requisitos
- Uso de arquitectura basada en componentes
- Control de cambios
- Modelado visual del software
- Verificación de la calidad del software
FASES:
- Establece oportunidad y alcance
- Identifica las entidades externas o actores con las que se trata
- Identifica los casos de uso
RUP comprende 2 aspectos importantes por los cuales se establecen las disciplinas:
'Proceso': Las etapas de esta sección son: (Revise nuevamente la gráfica)
- Modelado de negocio
- Requisitos
- Análisis y Diseño
- Implementación
- Pruebas
- Despliegue
Soporte: En esta parte nos encontramos con las siguientes etapas:
- Gestión del cambio y configuraciones
- Gestión del proyecto
- Entorno
La estructura dinámica de RUP es la que permite que éste sea un proceso de desarrollo fundamentalmente iterativo, y en esta parte se ven inmersas las 4 fases descritas anteriormente:
- Inicio(También llamado Incepción o Concepción)
- Elaboración
- Desarrollo(También llamado Implementación, Construcción)
- Cierre (También llamado Transición)
Codigo de etica de un Ing en Software:
1) simbolizar una profesión;
2) proteger los intereses del grupo;
3) inspirar buena conducta;
4) educar a los miembros de tal profesión;
5) disciplinar a sus afiliados;
6) fomentar las relaciones externas;
7) enumerar los principios morales básicos;
8) expresar los ideales a los que se debe aspirar;
9) mostrar reglas básicas de compor-tamiento;
10) ofrecer guías de comportamiento;
11) enumerar derechos y responsabilidades.
2) proteger los intereses del grupo;
3) inspirar buena conducta;
4) educar a los miembros de tal profesión;
5) disciplinar a sus afiliados;
6) fomentar las relaciones externas;
7) enumerar los principios morales básicos;
8) expresar los ideales a los que se debe aspirar;
9) mostrar reglas básicas de compor-tamiento;
10) ofrecer guías de comportamiento;
11) enumerar derechos y responsabilidades.
El Código no está simplemente orientado a identificar la naturaleza de los actos cuestionables, sino que también tiene una función educativa. Puesto que este código representa el consenso de la profesión en cuestiones éticas, es un medio para educar, tanto a la sociedad como a los futuros profesionales, acerca de las obliga-ciones éticas de todos los ingenieros del software.
Los ingenieros del software actuarán de manera coherente con el interés general.
Principio 2: Cliente y empresario
Los ingenieros del software deberán actuar de tal modo que se sirvan los mejores intereses para sus clientes y empresarios, y consecuentemente con el interés general.
Principio 3: Producto
Los ingenieros del software deberán garantizar que sus productos y las modificaciones relacionadas con ellos cumplen los estándares profesionales de mayor nivel más que sea posible.
Principio 4. Juicio
Los ingenieros del software deberán mantener integridad e independencia en su valoración profesional.
Principio 5. Gestión
Los gestores y líderes en ingeniería del software suscribirán y promoverán un enfoque ético a la gestión del desarrollo y el mantenimiento del software.
Principio 6. Profesión
Los ingenieros del software deberán progresar en la integridad y la reputación de la profesión, coherentemente con el interés general.
Principio 7. Compañeros
Los ingenieros del software serán justos y apoyarán a sus compañeros.
Principio 8. Persona
Los ingenieros del software deberán participar en el aprendizaje continuo de la práctica de su profesión y promoverán un enfoque ético en ella.
Responsabilidad de un Ingeniero en Software:
La responsabilidad en la ingeniería del software es un concepto complejo, sobre todo porque al estar los sistemas informáticos fuertemente caracterizados por su complejidad, es difícil apreciar sus consecuencias.
En la ingeniería del software la responsabilidad será compartida por un grupo grande de personas, que comprende desde el ingeniero de requisitos, hasta el arquitecto software, y contando con el diseñador, o el encargado de realizar las pruebas. Por encima de todos ellos destaca el director del proyecto. El software demanda una clara distribución de la responsabilidad entre los diferentes roles que se dan en el proceso de producción.
El ingeniero del software tiene una responsabilidad moral y legal limitada a las consecuencias directas.
Aqui una imagen que para mi dice mucho de la responsabilidad de in Ing en Software:
Formar de manera integral recurso humano comprometido con su labor, innovador y emprendedor, capaz de desarrollar soluciones de software de calidad en forma eficiente, que contribuyan al crecimiento y progreso de su sociedad.
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.
Áreas
- Análisis, diseño, construcción y pruebas en el desarrollo de software
- Administración de bases de datos
- Administración de proyectos de desarrollo de software
- Lugares
- Empresas con áreas de desarrollo de Software, fábricas de software, empresas desarrolladoras de software y su propia empresa.
- Empresas con necesidades en sistemas de información.
Aqui el mapa curricular de Ingenieria en Software del Itson.
Aqui les dejo un Quizz haber que tanto aprendieron! =P
Aqui esta la encuesta para que la respondan!
Y aqui les dejo el juego jeje: