Ingeniería de Software UNITEC LIA. Suei Chong Sol.

25
Ingeniería de Software UNITEC LIA. Suei Chong Sol

Transcript of Ingeniería de Software UNITEC LIA. Suei Chong Sol.

Page 1: Ingeniería de Software UNITEC LIA. Suei Chong Sol.

Ingeniería de Software

UNITEC

LIA. Suei Chong Sol

Page 2: Ingeniería de Software UNITEC LIA. Suei Chong Sol.

Objetivo General.

El estudiante analizará los distintos conceptos, técnicas y métodos que provee la ingeniería de

software, tanto a nivel de actividades de construcción, así como de gestión de proyectos

con el fin de producir software bajo restricciones de tiempo, costo y calidad.

Page 3: Ingeniería de Software UNITEC LIA. Suei Chong Sol.

Temario

 1. Planeación de un proyecto de ingeniería de software.

2. Planificación, métricas y control de calidad de proyectos.

3. Ingeniería de software con enfoque SWEBOK.

4. Métodos de ingeniería de software.

Page 4: Ingeniería de Software UNITEC LIA. Suei Chong Sol.

Método de Evaluación

Evaluación 100%

1er. Examen

30%

Avance Proyecto

20%

Tareas y Prácticas

20%

Proyecto30%

Page 5: Ingeniería de Software UNITEC LIA. Suei Chong Sol.

Sesiones.

1. Miércoles 8 de Junio de 2011

2. Miércoles 15 de Junio de 2011

3. Miércoles 22 de Junio de 2011

4. Miércoles 6 de Julio de 2011

5. Miércoles 13 de Julio de 2011

6. Miércoles 20 de Julio de 2011

Page 6: Ingeniería de Software UNITEC LIA. Suei Chong Sol.

Forma de trabajo. Tareas:

Deberás realizar y entregar 6 tareas durante el cuatrimestre.

El alumno que no entregue ninguna tarea queda automáticamente reprobado.

Estas tareas se entregan en la página del curso el siguiente Lunes después de ser asignada, máximo a las 11:59 pm.

No se reciben tareas extemporáneas

No se reciben tareas enviadas a email del docente, ni por cualquier otro medio que no sea la página de la materia.

Las tareas copy-paste o duplicadas serán anuladas.

Page 7: Ingeniería de Software UNITEC LIA. Suei Chong Sol.

Sitio Web del curso

www.uvmsistemas.weebly.com

Aquí encontrarás:

Calendario de actividades

Guías de Estudio

Entrega de Tareas

Page 8: Ingeniería de Software UNITEC LIA. Suei Chong Sol.

Exámenes:

Nos pondremos de acuerdo en las primeras sesiones

Page 9: Ingeniería de Software UNITEC LIA. Suei Chong Sol.

Prueba de diagnóstico

1. Define: Ingeniería de Software.

2. ¿Qué es el ciclo de vida del software?

3. ¿Qué es la Administración de proyectos?

4. Lista las fases principales de un proyecto.

5. ¿Qué es la EDT (Estructura de División del Trabajo)

6. ¿Cuales son los factores más importantes que determinan el éxito de un proyecto?

7. ¿Cuáles son las fases del ciclo de vida clásico del software?

8. Escribe tres nombres de modelos de ciclos de vida del software.

9. Al participar en el desarrollo de un software nuevo, ¿qué tan importante crees que es la utilización de una metodología y la administración del proyecto en sí?

10. ¿Qué lenguajes de programación dominas?

Page 10: Ingeniería de Software UNITEC LIA. Suei Chong Sol.

Unidad 1

Planeación de un proyecto de ingeniería de software

Page 11: Ingeniería de Software UNITEC LIA. Suei Chong Sol.

Software por todos lados

Desde los años 40's las aplicaciones y usos de lascomputadoras han crecido de forma constante.

Hoy en día el software juega un papel central en casitodos 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 milesde millones de dolares en cuestiones de desarrollo desoftware.

Page 12: Ingeniería de Software UNITEC LIA. Suei Chong Sol.

Problemas con el software

A pesar de que los sistemas de software nos hanpermitido ser más eficientes y productivos, existenserios problemas relacionados con el desarrollo desoftware.

Estos problemas tienen que ver con el tiempo, costo ycalidad de los sistemas que se crean.Los productos de software se ubican entre los sistemasmás complejos realizados por el hombre y su naturalezaintangible complica más el problema.Las técnicas de desarrollo que funcionan de formaindividual o para equipos pequeños no escalanadecuadamente para el desarrollo de sistemas complejosLa velocidad de cambio tecnológico es muy elevada. Losclientes tienen nuevas expectativas y todo ello ponepresión que limita la habilidad de crear software de calidad

en tiempos aceptables.La ingeniería de software busca dar soluciones

Page 13: Ingeniería de Software UNITEC LIA. Suei Chong Sol.

Definiciones

La primera discusión formal relativa a la ingenieríade software se llevó a cabo en 1968. Hoy en día, eltérmino se utiliza ampliamente sin embargo esnecesario definir más claramente su significado.Ingeniería

Disciplina y profesión enfocada a la aplicación deconocimiento científico y técnico y que utiliza recursosfísicos para diseñar e implementar diversos artefactos(estructuras, máquinas, dispositivos, sistemas y procesos)para realizar un objetivo deseado y alcanzar criteriosespecificados

IngenieroUn ingeniero es un profesional cuya educación lo preparapara usar matemáticas, ciencias y tecnología delmomento para crear productos que son importantes para

4 el bienestar del público

Page 14: Ingeniería de Software UNITEC LIA. Suei Chong Sol.

Ingeniería de Software

Definición IEEELa aplicación de un enfoque sistemático (ordenado),disciplinado y cuantificable al desarrollo, operación ymantenimiento de software, esto es, la aplicación de laingeniería en el área del software

Profesionalización de la Ingeniería de SoftwareMuchos de los estados en EUA tienen regulaciones conrespecto a la práctica de la ingeniería y no permiten quela gente se llame “ingeniero” a menos que hayandemostrado ser competentes en su especialidadprofesional.Hoy en día todavía no existe una profesión de “ingenierode software” como tal aunque cada vez hay másesfuerzos encaminados hacia allá

5

Page 15: Ingeniería de Software UNITEC LIA. Suei Chong Sol.

Ingeniero de software vs programador

Un programador no es equivalente a un ingeniero desoftware

“Todo mundo” puede sentarse a programarEsto no garantiza que se pueda crear una solucióncompleja en tiempo, costo y calidad

El desarrollar software sin conocer técnicas deingeniería representa un enfoque “artesanal” dedesarrollo que hoy en día sigue siendo común. Losesfuerzos de profesionalización mencionados atrás(certificaciones de individuos y de empresas)buscan reducir este enfoque “artesanal” en eldesarrollo

6

Page 16: Ingeniería de Software UNITEC LIA. Suei Chong Sol.

Ingeniería de Software y computación

HistóricamenteLos científicos en computación producían software y losingenieros en electrónica producían hardware en el cualse ejecuta el software.Conforme aumentó el tamaño y complejidad del software,aumentó la necesidad de asegurarse que el software sedesempeñara de la manera esperada.

A principios de los 70'sse volvió aparente que las prácticas adecuadas dedesarrollo requerían aspectos adicionales al los principiossubyacentes de las ciencias de la computación.

El desarrollo de software necesita entonces tantolos fundamentos desarrollados dentro de lasciencias de la computación como el rigor que lasdisciplinas de ingeniería aportan a la confiabilidad7 de los artefactos que se producen.

Page 17: Ingeniería de Software UNITEC LIA. Suei Chong Sol.

Ingeniería de software e ingeniería

Diferencia con demás ingenieríasLa ingeniería de software es distinta de las demásdisciplinas de ingeniería dada la naturaleza intangible delsoftware. Busca integrar principios de matemáticas yciencias de la computación con principios de ingenieríaque fueron desarrollados para producir artefactos físicos.

La disciplina de ingeniería de software puede ser vistacomo un campo de la ingeniería con una conexión másfuerte a la disciplina de las ciencias de la computaciónque en campos más tradicionales de la ingeniería.

8

Page 18: Ingeniería de Software UNITEC LIA. Suei Chong Sol.

Ingeniería de software e ingeniería

Algunas otras diferencias...Las fundaciones están principalmente en las ciencias dela computación y no en las ciencias naturales

El enfoque está en entidades abstractas/lógicas en vez deartefactos concretos/físicos

No hay fase de “fabricación” en el sentido tradicional

El mantenimiento se refiere al desarrollo continuo y a laevolución y no tanto al desgaste.

9

Page 19: Ingeniería de Software UNITEC LIA. Suei Chong Sol.

Características de la ingeniería

Las siguientes características son bases de laingeniería y son características deseables de losingenieros de software:

Los ingenieros proceden mediante la toma de series dedecisiones, evaluando cuidadosamente opciones yescogiendo enfoques en cada punto de decisión que sonapropiados para la tarea actual en el contexto actual. Elqué tan apropiado es puede ser juzgado por un análisisde compromisos que balancea costos contra beneficiosLos ingenieros miden cosas y cuando es apropiadotrabajan de manera cuantitativa; realizan calibración yvalidación de sus mediciones y usan aproximacionesbasadas en experiencia y datos empíricosLos ingenieros enfatizan el uso de un procesodisciplinado cuando crean un diseño y pueden operar de

10manera efectiva como parte de un equipo al realizarlo

Page 20: Ingeniería de Software UNITEC LIA. Suei Chong Sol.

Características de la ingeniería

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 procesosde manera sistemática. Por ello, la elección y uso deherramientas apropiadas es una clave para la ingeniería

Los ingenieros reutilizan diseños y diseñan artefactos.

11

Page 21: Ingeniería de Software UNITEC LIA. Suei Chong Sol.

Cuerpo de conocimiento de la IS

En 2004 apareció una guía al cuerpo deconocimiento de la ingeniería de software SWEBOKo Software Engineering Body of Knowledge(www.swebok.org).

El cuerpo de conocimiento agrupa la suma deconocimiento dentro de la profesión de la ingeniería desoftware. Un ingeniero de software debe además tenerconocimiento no sólo en ingeniería pero también en otrasdisciplinas relacionadas.

Esta guía define diversas áreas que forman parte delcuerpo de conocimiento de la ingeniería de softwareque se muestran en las imágenes siguientes

12

Page 22: Ingeniería de Software UNITEC LIA. Suei Chong Sol.

¿ Qué se necesita para hacer I.S.?

Para ser considerado un ingeniero de softwareprofesional, es necesario tener conocimientosrelativos a las áreas de conocimiento del SWEBOK

Esto es requerido para pasar la acreditación ComputerSociety Certified Development Associate CSDA de IEEE).

El mercado tiene actualmente una fuerte demandade gente con competencias relacionadas con eldesarrollo de software y que un problema que existeen México es que existe relativamente pocacapacitación en el tema.

Cada vez existen más empresas certificadas de acuerdo amodelos de calidad como CMM, CMMI y MoproSoft.

16

Page 23: Ingeniería de Software UNITEC LIA. Suei Chong Sol.

Administración de proyectos

La administración de proyectos es la disciplina de gestionar proyectos exitosamente, la cual puede y debe aplicarse durante el ciclo de vida de cualquier proyecto.

La administración de proyectos es la disciplina que se encarga de definir y alcanzar objetivos optimizando el uso de recursos: tiempo, dinero, la gente, espacio, etc.

Page 24: Ingeniería de Software UNITEC LIA. Suei Chong Sol.
Page 25: Ingeniería de Software UNITEC LIA. Suei Chong Sol.

Tarea 1

1. Investigar las siguientes metodologías de desarrollo de software:

Cascada

Espiral

Incremental

Prototipo

2. Leer el primer capítulo del libro de Ingeniería de Software de Roger Pressman. (Puedes descargarlo en el link de la página)

3. Realiza un cuadro sinóptico que integre la lectura anterior.

4. Coloca las actividades anteriores en un documento de Word y envíalo en el área de Entrega de Tareas de la página de la materia a más tardar el Lunes 10 de Octubre a las 11:59 pm