FUNDAMENTOS DE INGENIERÍA DE SOFTWARE SCC-1007 ISC MARÍA JOSÉ MIRÓN CHACÓN [email protected] CARACTERIZACIÓN DE LA
Views 112 Downloads 0 File size 465KB
FUNDAMENTOS DE INGENIERÍA DE SOFTWARE SCC-1007
ISC MARÍA JOSÉ MIRÓN CHACÓN [email protected]
CARACTERIZACIÓN DE LA ASIGNATURA Esta asignatura aporta al perfil del Ingeniero en Sistemas Computacionales las siguientes habilidades: Implementa aplicaciones computacionales para solucionar problemas de diversos
contextos, integrando diferentes tecnologías, plataformas o dispositivos Diseña e implementa interfaces para la automatización de sistemas de hardware y
desarrollo del software asociado. Coordina y participa en equipos multidisciplinarios para la aplicación de soluciones
innovadoras en diferentes contextos. Desarrolla y administra software para apoyar la productividad y competitividad de las
organizaciones cumpliendo con estándares de calidad.
COMPETENCIA A DESARROLLAR
Realiza el análisis de un proyecto de software, a partir de la identificación del modelo de negocios de la organización que permita alcanzar estándares y métricas de calidad.
TEMAS
1 FUNDAMENTOS DE INGENIERÍA DE SOFTWARE
1.1. Conceptos básicos 1.2. Fases de la Ingeniería de software.
1.3 Metodologías de desarrollo de software 1.3.1 Clásicas 1.3.2 Agiles
1.3.3 Otras filosofías
1.4. Importancia de las herramientas CASE en la Ingeniería de software.
2 EL MODELO DE NEGOCIO
2.1 Definición
2.2 Componentes 2.3 Estándares 2.4 Diagramas
3 INGENIERÍA DE REQUISITOS 3.1 Características de los requisitos.
3.2 Tipos de requisitos. 3.2.1 Funcionales 3.2.2 No funcionales 3.2.3 De dominio
3.3 Tareas y técnicas de la ingeniería de requisitos. 3.4 Obtención de requisitos. 3.4.1 Técnicas de recopilación de información. 3.4.2 Representación de requisitos.
3.5 Herramientas CASE para la ingeniería de requisitos. 3.6 Especificación de requisitos de software.
4 MODELO DE ANÁLISIS
4.1. Clases 4.2. Objetos 4.3. Modelo de requisitos 4.4. Modelo de casos de uso
4.5. Modelo de dominio
5 CALIDAD DE SOFTWARE 5.1 Definición de calidad. 5.2 Importancia de la calidad. 5.3 Factores de calidad. 5.4 Aseguramiento de la calidad. 5.5 Estándares y métricas de calidad. 5.6 Modelos de madurez. 5.6.1 Enfoque de procesos. 5.6.2 PSP y TSP. 5.6.3 SPICE 5.6.4 CMMI. 5.6.5 MoProSoft.
ENCUADRE CRITERIO
PORCENTAJE DE EVALUACIÓN
EXAMEN
50%
ASISTENCIA
10%
TAREAS Y ACTIVIDADES
20%
PRÁCTICA
20%
1 FUNDAMENTOS DE INGENIERÍA DE SOFTWARE
EL SOFTWARE ¿Qué es? ¿Quién lo hace?
¿Porqué es importante? ¿Cuáles son los pasos? ¿Cuál es el producto obtenido? ¿Cómo puedes estar seguro de que desarrollas software correctamente?
¿QUÉ ES EL SOFTWARE?
PRODUCTO
Aplicaciones, “transforma” la información
“VEHÍCULO” PARA ENTREGAR PRODUCTOS
Sistemas operativos, software de red, herramientas y entornos
EL SOFTWARE
MÁS CUESTIONAMIENTOS ¿Por qué lleva tanto tiempo terminar los programas? ¿Por qué son tan elevados los costos de desarrollo? ¿Por qué no podemos encontrar todos los errores antes de entregar el
software al cliente? ¿Por qué nos resulta difícil constatar el progreso conforme se desarrolla
el software? (En especial, si el desarrollo es colaborativo)
1.1 CONCEPTOS BÁSICOS
Cuando se CONSTRUYE hardware, el proceso creativo humano (análisis, diseño,
construcción, prueba) se traduce finalmente en una forma FÍSICA. El software es un elemento del sistema que es LÓGICO, en lugar de físico, por tanto,
sus características son distintas a las del hardware
EL SOFTWARE SE DESARROLLA, NO SE FABRICA.
DESARROLLAR V.S. FABRICAR O CONSTRUIR Ambas actividades requieren la elaboración de un «producto» pero los enfoques son diferentes. Los costos del software se encuentran en la ingeniería. Esto significa que los proyectos de software no se pueden gestionar como si fueran proyectos de fabricación.
EL SOFTWARE NO SE “ESTROPEA”, PERO SE DETERIORA Para el hardware, la proporción de fallos y desgaste se plasma como una función del tiempo. El software no es susceptible a los mismos males del entorno que hacen que el hardware se estropee, sin embargo puede sufrir de fallos que de no ser detectados harán que el software falle durante las primeras etapas de su vida.
Cuando un componente de hardware se estropea se sustituye por una pieza de repuesto. No hay piezas de repuesto para el software. Cada fallo en el software indica un error en el diseño o en el PROCESO mediante el que se tradujo el diseño a código máquina ejecutable. Por tanto, el mantenimiento del software tiene una complejidad considerablemente mayor que la del mantenimiento del hardware.
Aunque la industria tiende a ensamblar componentes, la mayoría del software se construye a medida
ACTIVIDAD SOFTWARE DE SISTEMAS
Investiga en la biblioteca o en internet, los siguientes conceptos y definiciones sobre los tipos de software:. Escribe en tu libreta de apuntes los resultados obtenidos.
SOFTWARE DE TIEMPO REAL SOFTWARE DE GESTIÓN SOFTWARE DE INGENIERÍA Y CIENTÍFICO
SOFTWARE EMPOTRADO SOFTWARE DE COMPUTADORAS PERSONALES SOFTWARE BASADO EN WEB SOFTWARE DE INTELIGENCIA ARTIFICIAL
ACTIVIDAD
El software es la característica que diferencia a muchos productos y
sistemas informáticos. Dé ejemplos de dos o tres productos y de, al menos, un sistema en el que el software, no el hardware, sea el elemento diferenciador. Escribe en tu libreta de apuntes la respuesta.
¿LA IMPORTANCIA DEL DISEÑO DE SOFTWARE?
EL PROCESO DEL SOFTWARE Un proceso es un conjunto de actividades, acciones y tareas que se ejecutan cuando
va a crearse algún producto del trabajo. Una actividad busca lograr un objetivo amplio (por ejemplo, comunicación con los
participantes) y se desarrolla sin importar el dominio de la aplicación, tamaño del proyecto, complejidad del esfuerzo o grado de rigor con el que se usará la ingeniería de software. Una acción (diseño de la arquitectura) es un conjunto de tareas que producen un
producto importante del trabajo (por ejemplo, un modelo del diseño de la arquitectura). Una tarea se centra en un objetivo pequeño pero bien definido (por ejemplo, realizar
una prueba unitaria) que produce un resultado tangible.
EL PROCESO DEL SOFTWARE
El proceso de desarrollo de software es un enfoque, no un conjunto rígido de normas. En el contexto de la ingeniería de software, un proceso es un enfoque adaptable que permite que las personas que hacen el trabajo (el equipo de software) busquen y elijan el conjunto apropiado de acciones y tareas para el trabajo.
EL PROCESO DEL SOFTWARE La estructura del proceso establece el fundamento para el proceso completo de la ingeniería de software por medio de la identificación de un número pequeño de actividades estructurales que sean aplicables a todos los proyectos de software, sin importar su tamaño o complejidad. Una estructura de proceso general para la ingeniería de software consta de cinco actividades:
Comunicación
Planeación
Modelado
Construcción
Despliegue
COMUNICACIÓN
Antes de que comience cualquier trabajo técnico, tiene importancia crítica comunicarse y colaborar con el cliente (y con otros participantes). Se busca entender los objetivos de los participantes respecto del proyecto, y reunir los requerimientos que ayuden a definir las características y funciones del software.
PLANEACIÓN Cualquier viaje complicado se simplifica si existe un mapa. Un proyecto de software es un viaje difícil, y la actividad de planeación crea un “mapa” que guía al equipo mientras viaja. El mapa —llamado plan del proyecto de software— define el trabajo de ingeniería de software al describir las tareas técnicas por realizar, los riesgos probables, los recursos que se requieren, los productos del trabajo que se obtendrán y una programación de las actividades.
MODELADO Si fueras diseñador de paisaje, constructor de puentes, ingeniero aeronáutico, carpintero o arquitecto, a diario trabajarías con modelos. Podemos relacionar al modelo con un “bosquejo” del objeto por hacer a fin de entender el panorama general —cómo se verá arquitectónicamente, cómo ajustan entre sí las partes constituyentes y muchas características más—. Si se requiere, refinar el bosquejo con más y más detalles en un esfuerzo por comprender mejor el problema y cómo resolverlo.
Un ingeniero de software hace lo mismo al crear modelos a fin de entender mejor los requerimientos del software y el diseño que los satisfará.
CONSTRUCCIÓN
Esta actividad combina la generación de código (ya sea manual o automatizada) y las pruebas que se requieren para descubrir errores en éste.
DESPLIEGUE
El software (como entidad completa o como un incremento parcialmente terminado) se entrega al consumidor que lo evalúa y que le da retroalimentación, misma que se basa en dicha evaluación.
Hola, ¿Soporte técnico? No puedo exportar PDFs