Fis Unidad 1

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

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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