Ingeniería de Software

Documentos relacionados
FACULTAD DE INGENIERÍA

CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES SYLLABUS DE INGENERIA DE SOFTWARE I

ANÁLISIS DE SISTEMAS. Prof. Eliz Mora

Programa Educativo: Licenciatura en Ingeniería de Software Campus: Xalapa, Coatzacoalcos, Ixtaczoquitlan

I JORNADAS DE COMPUTACIÓN Y SISTEMAS Universidad Dr. José Gregorio Hernández Maracaibo

LICENCIATURA EN CIENCIAS COMPUTACIONALES. Este programa educativo se ofrece en las siguientes sedes académicas de la UABC:

UNIVERSIDAD DE SAN MARTÍN DE PORRES

Internacionales de la Ingeniería de Sistemas y Computación

1.- DATOS DE LA ASIGNATURA

Duración: Curso Propedéutico (2 semanas) Escolarizado TSU. 6 cuatrimestres (2 años) ING. 5 cuatrimestres (1 año 8 meses)

PERFIL PROFESIOGRÁFICO PARA IMPARTIR LAS ASIGNATURAS DE LA LICENCIATURA EN INFORMÁTICA (PLAN DE ESTUDIOS 2005)

PERFIL PROFESIOGRÁFICO PARA IMPARTIR LAS ASIGNATURAS DE LA LICENCIATURA EN INGENIERÍA EN COMPUTACIÓN (PLAN DE ESTUDIOS 2005)

Técnico en Informática

INFORMÁTICA EMPRESARIAL

Perfil de Egreso. Ingeniería de Ejecución en Informática

LICENCIATURA EN INGENIERÍA EN TECNOLOGÍAS DE LA INFORMACIÓN

INGENIERO EN MECATRÓNICA. Este programa educativo se ofrece en las siguientes sedes académicas de la UABC:

EPE INGENIERÍA DE REDES Y COMUNICACIONES

Ingeniería Informática

BUENAS PRACTICAS EN DESARROLLO DE SOFTWARE APUNTES DE UNA EXPERIENCIA

CARRERA DE INGENIERÍA CIVIL EN INFORMÁTICA COMPETENCIAS ESPECÍFICAS Y SUS NIVELES DE DOMINIO

Curso de Preparación para la Certificación CAPM

DESCUBRE ICESI INGENIERÍA DE SISTEMAS

Especialidades en GII-TI

Licenciatura en ingeniería EN SISTEMAS COMPUTACIONALES

Ingeniería en Informática PLAN DE ESTUDIO. Título: Ingeniero en Informática. Departamento de PRODUCCIÓN Y TRABAJO

INGENIERÍA EN SISTEMAS AUTOMOTRICES

Crear diagramas basados en UML para la representación de la solución a un problema mediante el Paradigma Orientado a Objetos.

Programa Alpha de Certificación PMP

Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute.

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS.

MARIA. -Plan de Estudios- Doctorado en Informática

UNIVERSIDAD MAYOR DE SAN SIMÓN

CARRERA DE INGENIERÍA EN MECATRÓNICA SYLLABUS DE ELECTRÓNICA

Subsecretaría de Educación Básica Educación Secundaria

LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN

Programa Alpha para la Certificación PMP

Estándares para el área de Tecnología e Informática

PLAN DE AVALÚO DEL APRENDIZAJE DE LOS ESTUDIANTES DEL DEPARTAMENTO DE MATEMÁTICAS

INGENIERÍA DEL SOFTWARE

La Identificación de Stakeholders en la Ingeniería de Requisitos

CRITERIOS DE ACREDITACIÓN. Programas de Computación Ciclo de Acreditación 2016

ALCANZA EL RETO! Ingeniería en Sistemas Computacionales. Haz de tu pasión tu profesión INGENIERÍA SEMIESCOLARIZADA ESTUDIA 1 DÍA EN FINES DE SEMANA.

Integrantes de la academia de Ingeniería en Sistemas computacionales

PLAN DE ESTUDIOS ARTÍCULO 21, FRACCIÓN I. INSTITUTO TECNOLÓGICO SUPERIOR DE CIUDAD SERDÁN. NOMBRE DE LA INSTITUCIÓN

INFORMÁTICA FACULTAD DE CIENCIAS E INGENIERÍA

4.1 CONGRUENCIA ENTRE LOS OBJETIVOS DEL PLAN DE ESTUDIOS Y EL PERFIL DE EGRESO CON LAS LGAC:

Selección del Hardware y Software Administración del proceso de desarrollo de Sistemas de Información.

ISF-1302 SATCA 1 : Carrera:

Asignatura: Metodologías, Desarrollo y Calidad en la Ingeniería de Software. Contenidos: Competencias 1 : Cuatrimestre: 1º ECTS: 6 Carácter: OB

Plan de estudios Ingeniería de Software

PROCEDIMIENTO PARA EL DESARROLLO DE SOFTWARE

UNIVERSIDAD AUTÓNOMA METROPOLITANA. UNIDAD CUAJIMALPA División de Ciencias de la Comunicación y Diseño

LICENCIATURA EN INFORMÁTICA ADMINISTRATIVA

Sistemas de información Administrativa II

POSTGRADO INGENIERO EN INFORMÁTICA Total UC= II

Examen Nacional de Certificación en Ingeniería Petrolera, ENCIP.

SIM - Simulación

Universidad de Costa Rica Sistema de Aplicaciones Estudiantiles SAE

UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRION ESCUELA DE POSGRADO

Ingeniería de Software

PROGRAMA ACADÉMICO DE INGENIERÍA INDUSTRIAL LINEAMIENTOS PARA LA ELABORACIÓN DE TESIS

El Proceso. Capítulo 2 Roger Pressman, 5 a Edición. El Proceso de Desarrollo de Software

Ingeniería en Software y Redes

Método S.L.P. - Planeación Sistemática de la Distribución de Planta Desarrollado por Richard Muther.

INGENIERÍA N DEL SOFTWARE

Transcripción:

Ingeniería de Software Humberto Cervantes Maceda 1 Septiembre 2008

Software por todos lados Desde los años 40's la aplicaciones y usos de las computadoras han crecido de forma constante Hoy en día el software juega un papel central en casi todos los aspectos de la vida cotidiana: gobierno, finanzas, educación, transporte, medicina, etc... De forma paralela, la complejidad de los sistemas ha crecido de forma dramática, y anualmente se gastan miles de millones de dolares en cuestiones de desarrollo de software 2

Problemas con el software 3 A pesar de que los sistemas de software nos han permitido se más eficientes y productivos existen serios problemas relacionados con el desarrollo de software. Estos problemas tienen que ver con el tiempo, costo y calidad de los sistemas que se crean. Los productos de software se ubican entre los sistemas más complejos realizados por el hombre y su naturaleza intangible complica más el problema Las técnicas de desarrollo que funcionan de forma individual o para equipos pequeños no escalan adecuadamente para el desarrollo de sistemas complejos La velocidad de cambio tecnológico es muy elevada. Los clientes tienen nuevas expectativas y todo ello pone presión que limita la habilidad de crear software de calidad en tiempos aceptables La ingeniería de software busca dar soluciones

Definiciones 4 La primera discusión formal relativa a la ingeniería de software se llevó a cabo en 1968. Hoy en día, el término se utiliza ampliamente sin embargo es necesario definir más claramente su significado. Ingeniería Disciplina y profesión enfocada a la aplicación de conocimiento científico y técnico y que utiliza recursos físicos para diseñar e implementar diversos artefactos (estructuras, máquinas, dispositivos, sistemas y procesos) para realizar un objetivo deseado y alcanzar criterios especificados Ingeniero Un ingeniero es un profesional cuya educación lo prepara para usar matemáticas, ciencias y tecnología del momento para crear productos que son importantes para el bienestar del público

Ingeniería de Software Definición IEEE La aplicación de un enfoque sistemático (ordenado), disciplinado y cuantificable al desarrollo, operación y mantenimiento de software, esto es, la aplicación de la ingeniería en el área del software Profesionalización de la Ingeniería de Software Muchos de los estados en EUA tienen regulaciones con respecto a la práctica de la ingeniería y no permiten que la gente se llame ingeniero a menos que hayan demostrado ser competentes en su especialidad profesional. Hoy en día todavía no existe una profesión de ingeniero de software como tal aunque cada vez hay más esfuerzos encaminados hacia allá 5

Ingeniero de software vs programador Un programador no es equivalente a un ingeniero de software Todo mundo puede sentarse a programar Esto no garantiza que se pueda crear una solución compleja en tiempo, costo y calidad El desarrollar software sin conocer técnicas de ingeniería representa un enfoque artesanal de desarrollo que hoy en día sigue siendo común. Los esfuerzos de profesionalización mencionados atrás (certificaciones de individuos y de empresas) buscan reducir este enfoque artesanal en el desarrollo 6

Ingeniería de Software y computación 7 Históricamente Los científicos en computación producían software y los ingenieros en electrónica producían hardware en el cual se ejecuta el software. Conforme aumentó el tamaño y complejidad del software, aumentó la necesidad de asegurarse que el software se desempeña de la manera esperada. A principios de los 70's se volvió aparente que las prácticas adecuadas de desarrollo requerían aspectos adicionales al los principios subyacentes de las ciencias de la computación. El desarrollo de software necesita entonces tanto los fundamentos desarrollados dentro de las ciencias de la computación como el rigor que las disciplinas de ingeniería aportan a la confiabilidad de los artefactos que se producen.

Ingeniería de software e ingeniería Diferencia con demás ingenierías La ingeniería de software es distinta de las demás disciplinas de ingeniería dada la naturaleza intangible del software. Busca integrar principios de matemáticas y ciencias de la computación con principios de ingeniería que fueron desarrollados para producir artefactos físicos. La disciplina de ingeniería de software puede ser vista como un campo de la ingeniería con una conexión más fuerte a la disciplina de las ciencias de la computación que en campos más tradicionales de la ingeniería. 8

Ingeniería de software e ingeniería Algunas otras diferencias... Las fundaciones están principalmente en las ciencias de la computación y no en las ciencias naturales El enfoque está en entidades abstractas/lógicas en vez de artefactos concretos/físicos No hay fase de fabricación en el sentido tradicional El mantenimiento se refiere al desarrollo continuo y a la evolución y no tanto al desgaste 9

Características de la ingeniería 10 Las siguientes características son bases de la ingeniería y son características deseables de los ingenieros de software: Los ingenieros proceden mediante la toma de series de decisiones, evaluando cuidadosamente opciones y escogiendo enfoques en cada punto de decisión que son apropiados para la tarea actual en el contexto actual. El qué tan apropiado es puede ser juzgado por un análisis de compromisos que balancea costos contra beneficios Los ingenieros miden cosas y cuando es apropiado trabajan de manera cuantitativa; realizan calibración y validación de sus mediciones y usan aproximaciones basadas en experiencia y datos empíricos Los ingenieros enfatizan el uso de un proceso disciplinado cuando crean un diseño y pueden operar de manera efectiva como parte de un equipo al realizarlo

Características de la ingeniería (2) Los ingenieros pueden tener múltiples roles: investigación, desarrollo, diseño, producción, pruebas, construcción, administración, consultoría y capacitación Los ingenieros usan herramientas para aplicar procesos de manera sistemática. Por ello, la elección y uso de herramientas apropiadas es una clave para la ingeniería 6.Los ingenieros reutilizan diseños y diseñan artefactos 11

Cuerpo de conocimiento de la IS En 2004 apareció una guía al cuerpo de conocimiento de la ingeniería de software SWEBOK o Software Engineering Body of Knowledge (www.swebok.org). El cuerpo de conocimiento agrupa la suma de conocimiento dentro de la profesión de la ingeniería de software. Un ingeniero de software debe además tener conocimiento no sólo en ingeniería pero también en otras disciplinas relacionadas. Esta guía define diversas áreas que forman parte del cuerpo de conocimiento de la ingeniería de software que se muestran en las imágenes siguientes 12

13 Áreas guía SWEBOK (1)

14 Áreas guía SWEBOK (2)

Educación en Ingeniería de Software 15 D. Parnas mencionó en 1999 Hoy en día, dentro de muchos departamentos de ciencias de la computación, los estudiantes toman cursos en una variedad de temas como compiladores, sistemas operativos, teoría de autómatas y muchas veces hay uno o dos cursos con nombres como ingeniería de software o analisis y diseño orientado a objetos. Es necesario que se creen carreras de ingeniería de software (Hoy en día esto está sucediendo.) Situación de la UAM El nombre mismo de la carrera Licenciatura en Computación no aclara si se trata de una carrera con orientación a las ciencias o a la ingeniería. El plan de estudios (que tiene fuertes componentes en matemáticas y ciencias de la computación) deja pensar que se trata más bien de una carrera orientada hacia las ciencias de la computación.

Qué se necesita para hacer I.S.? Para ser considerado un ingeniero de software profesional, es necesario tener conocimientos relativos a las áreas de conocimiento del SWEBOK Esto es requerido para pasar la acreditación Computer Society Certified Development Associate CSDA de IEEE). El mercado tiene actualmente una fuerte demanda de gente con competencias relacionadas con el desarrollo de software y que un problema que existe en México es que existe relativamente poca capacitación en el tema. Cada vez más empresas certificadas de acuerdo a modelos de calidad como CMM, CMMI y MoproSoft 16

El curso Este curso pretende dar una visión global de lo que es la Ingeniería de Software Se hará énfasis en los siguientes temas Administración de proyectos Planeación y seguimiento de un proyecto Administración de la configuración Manejo de cambios Calidad del software Arquitectura de Software Técnicas dinámicas (pruebas) Técnicas estáticas (estándares, revisiones) 17

Áreas guía SWEBOK (1) 18 Curso AyD Curso I.S Otros cursos

Áreas guía SWEBOK (2) Curso AyD Curso I.S Otros cursos 19

Cómo se va a realizar A lo largo del curso vamos a seguir una configuración ligera del proceso unificado llamada OpenUP Ver sitio OpenUP 20

Laboratorio Durante este curso será necesario trabajar en un proyecto de desarrollo en equipo 21 Equipo: Un grupo de personas que buscan un objetivo común Deben estar comprometidos ante este objetivo y tener un marco común que guíe su trabajo para llegar al objetivo Otros puntos a considerar Al menos dos personas (aquí deberán ser 4) Los miembros trabajan hacia un objetivo común Cada persona tiene un rol específico Para poder completar la misión es necesario cierto tipo de dependencia entre los miembros del grupo Deben hacerse a la idea que saliendo tendrán que trabajar en equipo

Acerca del proyecto Deben formar un equipo antes del lunes de la semana siguiente Para el martes de la semana 2, deberán formular una propuesta de proyecto Lo evaluará el ayudante Consejos Considerar que debe ser realizable en 11 semanas (esto es difícil, pero basarse en la experiencia previa con AyD) Es posible hacerlo en cualquier lenguaje de programación, sin embargo La evaluación se enfocará en la manera en que se están realizando las actividades relacionadas con el manejo del proyecto 22

Para terminar Curso dispone de una página web http://www.humbertocervantes.net/cursos/ingsoft/main.html 23