Ingeniería de Software UNITEC LIA. Suei Chong Sol.
-
Upload
maria-mercedes-diaz-quintana -
Category
Documents
-
view
228 -
download
3
Transcript of Ingeniería de Software UNITEC LIA. Suei Chong Sol.
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.
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.
Método de Evaluación
Evaluación 100%
1er. Examen
30%
Avance Proyecto
20%
Tareas y Prácticas
20%
Proyecto30%
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
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.
Sitio Web del curso
www.uvmsistemas.weebly.com
Aquí encontrarás:
Calendario de actividades
Guías de Estudio
Entrega de Tareas
Exámenes:
Nos pondremos de acuerdo en las primeras sesiones
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?
Unidad 1
Planeación de un proyecto de ingeniería de software
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.
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
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
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
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
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.
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
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
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
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
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
¿ 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
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.
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