Post on 05-Jun-2018
transcript
INGENIERÍA DEL SOFTWARE
INGENIERÍA DEL SOFTWARE
1
Sesión No. 1 Nombre: Introducción a la ingeniería del software Contextualización
Con el paso de los años, la tecnología ha avanzado y con ella el uso de los
dispositivos y el software que utiliza para funcionar correctamente, este medio de
programación que se aplica dentro de los sistemas comunes que son parte de la
vida cotidiana ayudan a solucionar problemas comunes y apoyan la forma de
trabajo, por ejemplo el uso de las calculadoras, las computadoras, dispositivos
móviles, etcétera. Todos éstos funcionan gracias a la utilización de software y la
ingeniería tras de éste.
Recordemos que un software es la parte no tangible dentro de un medio,
llámese computadora, calculadora, celular, etc. Y éste se lleva de la mano del
hardware, pues no puede funcionar el uno sin el otro.
INGENIERÍA DEL SOFTWARE
2
Introducción al Tema
¿Cuáles son los usos de la ingeniería de software?
La ingeniería de software se basa en la aplicación de un enfoque sistemático, el
cual se disciplina en un medio cuantificable de desarrollo, mantenimiento y
operación funcional de un software. Para el desarrollo de los medios de
programación se crean diagramas de flujo y estructuras donde el funcionamiento
de los mismos se explica para poder definir las funciones en la aplicación.
A pesar de que la principal función de la ingeniería de software es crear
soluciones con sistemas de cómputo, algunas veces la solución a un problema o
a las necesidades del usuario son más imples; un ejemplo puede ser, una base
de datos para negocio que cuenta sólo con un equipo de cómputo, el ingeniero
en software puede ayudar al cliente a encontrar la solución al registro de sus
productos o a su contabilidad, sin crear un gran sistema.
INGENIERÍA DEL SOFTWARE
3
Explicación
Introducción a la ingeniería del software
Dentro de la ingeniería de software encontramos varios elementos que la
componen, como los paradigmas de programación, el uso de diferentes
lenguajes de programación, la diferenciación de estructuras lógicas para cada
lenguaje y resultado a obtener, tipos de software, por ejemplo;
Software basado en la web; sistemas conocidos como exploradores, los
cuales funcionan en la red con localización de metadatos.
Software de sistemas; conjunto de programas desarrollados para servir a
otros programas.
Software de tiempo real; éste coordina, analiza y/o controla sucesos del
mundo real.
Software de gestión; reestructura los datos disponibles para facilitar
operaciones o toma de decisiones.
Software de inteligencia artificial; éste utiliza algoritmos no numéricos
para resolver problemas complejos.
Software empotrado; éste sólo es de lectura y controla productos o
sistemas de mercados industriales y de consumo.
Software de computadoras personales; se desarrollan para uso personal,
como pueden ser, convertidores de videos, procesadores de texto, hojas
de cálculo, sistemas multimedia, etc.
Software de ingeniería y científico; su principal característica es el uso de
algoritmos.
También se tienen mitos acerca de la creación de aplicaciones en la ingeniería
de software y los procesos por los que se crean;
Mitos del cliente.
Mitos del desarrollador.
Mitos de gestión.
INGENIERÍA DEL SOFTWARE
4
Concepto
¿Qué es la ingeniería de software?
La ingeniería de software es la disciplina que permite crear software a partir de
una serie de requisitos o de las necesidades planteadas por el usuario final, se
basa en un conocimiento técnico y práctico con el que se definen diagramas
para la estructura de los mismos y estructuras con las que se explica el
funcionamiento de los mismos.
Objetivos
Los objetivos que se determinan dentro de la ingeniería de software, son
realizados para cumplir con los medios de estandarización, de calidad y dar una
buena imagen a la compañía que los desarrolla, entre otras razones.
¿Cuáles son los objetivos de la Ingeniería de Software?
Diseñar aplicaciones informáticas que se ajusten a las necesidades de
los usuarios finales.
Coordinar y desarrollar aplicaciones complejas y funcionales.
Intervenir en las fases del ciclo de vida de las aplicaciones.
INGENIERÍA DEL SOFTWARE
5
Estimar los costos del proyecto y los tiempos de desarrollo del mismo.
Organizar la relación de pruebas de verificación del funcionamiento de los
programas y los requisitos de análisis y diseño.
Los objetivos de la ingeniería de software pueden ser definidos de muchas
formas y no siempre son los mismos, pues las funciones son diferentes y lo que
es útil en algunos casos, en otros no se considera, por tanto es importante
conocer el motor inicial y funcional con el que se define la aplicación que se
desarrolla para determinar de mejor manera los objetivos. Es importante siempre
sin importar el nombre de la aplicación o su uso, incluir la calidad suficiente que
cumpla con las expectativas de los usuarios finales y con los estándares de
IEEE.
Cuerpo de conocimientos
¿Existe una guía sobre el cuerpo de conocimientos?
Un cuerpo de conocimientos (BOK, del inglés Body of Knowledge), es un
compendio de términos, usos y definiciones acerca de un tema, es creado por la
asociación profesional que valida el tema del que se trata; muchos de estos
cuerpos, se han llegado a convertir en estándares y normas de calidad, y de la
misma manera, se han creado normas a partir de ellos.
Algunos de los cuerpos de conocimiento más famosos en las TI son:
BABOK (Business Analysis Body of Knowledge).Guía sobre los
fundamentos del conocimiento del análisis de negocio.
PSPBOK (Personal Software Process Body of Knowledge).Guía para la
gestión de tiempo y productividad personal.
TSPBOK (Team Software Body of Knowledge).Guía de gestión de
equipos para organizar y generar software de gran escala.
PMBOK (Project Management Body of Knowledge). Guía de dirección de
proyectos.
INGENIERÍA DEL SOFTWARE
6
SWEBOK (Software Engineering Body of Knowledge).Guía acerca del
conocimiento necesario de un ingeniero de software
SWEBOK
Contiene conceptos y conocimientos acerca de la ingeniería de software y de
cómo debe de llevarse a cabo por un ingeniero de software, proporciona una
visión general acerca del software de calidad y de las buenas prácticas de
desarrollo, las áreas de conocimiento de han ido ampliando a través de las
versiones.
Áreas principales
Para SWEBOK V3.0 el conocimiento se ha agrupado en áreas, que son:
Requisitos.
Diseño.
Desarrollo.
Pruebas.
Mantenimiento.
Gestión de configuración.
Gestión de software.
Proceso de ingeniería.
Herramientas y métodos de ingeniería.
Calidad de software
INGENIERÍA DEL SOFTWARE
7
Figura 1 Esteban, L. Rojas, W. Sánchez, M. (2013) Modelo de investigación en gestión de proyectos para la investigación en ingeniería. [Áreas de conocimiento para la ingeniería del software según el SWEBOK]. Recuperado de http://www.scielo.org.co/scielo.php?pid=S0120-81602013000100005&script=sci_arttext
Requisitos: Interpreta las necesidades del cliente en una lista de objetivos a
cumplir, cada uno se puede trasformar en un subsistema o sólo en una
funcionalidad, si los requisitos no son interpretados correctamente, el sistema
sufrirá consecuencias graves en el desarrollo y mantenimiento.
INGENIERÍA DEL SOFTWARE
8
Figura 2. Bourque, P., Fairley, R. (2014). Software Requirements. [Breakdown of Topics for the Software
Requirements KA] (p. 1-1).
Diseño: Define la arquitectura, interfaces, diagramas de flujo, entre otros del
sistema; en esta etapa se analizan los requerimientos y se crean posibles
soluciones gráficas a cada uno.
INGENIERÍA DEL SOFTWARE
9
Figura 3. Bourque, P., Fairley, R. (2014). Software Desing. [Breakdown of Topics for the Software Desing
KA] (p. 2-2).
INGENIERÍA DEL SOFTWARE
10
Desarrollo: Interpreta la arquitectura, esquemas y diagramas de flujo definidos
en la etapa de diseño en codificación de un lenguaje de programación,
interactuando también con el sistema operativo y algunas veces con los
dispositivos de entrada y salida.
Figura 4. Bourque, P., Fairley, R. (2014). Software Construction. [Breakdown of Topics for the Software
Construction KA] (p. 3-2).
INGENIERÍA DEL SOFTWARE
11
Pruebas: Evalúa la eficiencia y calidad del producto detectando las posibles
mejoras o fallas.
Figura 5. Bourque, P., Fairley, R. (2014). Software Testing. [Breakdown of Topics for the Software Testing
KA] (p. 4-2).
INGENIERÍA DEL SOFTWARE
12
Mantenimiento: Corrige las fallas y realiza las mejoras detectadas
anteriormente.
Figura 6. Bourque, P., Fairley, R. (2014). Software Maintenance. [Breakdown of Topics for the Software
Maintenance KA] (p. 5-2).
INGENIERÍA DEL SOFTWARE
13
Gestión de configuración: Identifica la configuración general del sistema para
realizar posibles adaptaciones y configurar su ciclo de vida, detecta las
características físicas y funcionales del sistema además del cumplimiento de sus
objetivos.
Figura 7. Bourque, P., Fairley, R. (2014). Software Configuration Management. [Breakdown of Topics for
the Software Configuration Management KA] (p. 6-2).
INGENIERÍA DEL SOFTWARE
14
Gestión de ingeniería: Verifica la infraestructura del proyecto, el control y la
planeación del programa, asegura que el mantenimiento del producto sea
adecuado.
Figura 8. Bourque, P., Fairley, R. (2014). Software Engineering Management. [Breakdown of Topics for the
Software Engineering Management KA] (p. 7-2).
INGENIERÍA DEL SOFTWARE
15
Gestión del proceso: Valida todas las etapas del proceso, como las tareas que
componen el proceso, funciones, mediciones, configuración, mantenimiento,
entre otros.
Figura 9. Bourque, P., Fairley, R. (2014). Software Engineering Process. [Breakdown of Topics for the
Software Engineering Process KA] (p. 8-2).
INGENIERÍA DEL SOFTWARE
16
Herramientas y proceso de ingeniería: son todos los recursos virtuales que
nos ayudan a realizar tareas exhaustivas como, validar el producto, crear el
diseño, realizar pruebas, detectar fallas, entre otros; pero es importante saber
que estas herramientas sólo interpretan el resultado de la información que
brindamos, si la información es errónea, el resultado puede llevarnos a una mala
decisión.
Figura 10. Bourque, P., Fairley, R. (2014). Software Engineering Models and methods. [Breakdown of
Topics for the Software Engineering Models and methods KA] (p. 9-2).
INGENIERÍA DEL SOFTWARE
17
Calidad de software: el conjunto de las actividades vistas anteriormente tiene
como objetivo crear un producto de calidad, el cual pueda brindar al cliente la
solución a los procesos que realiza o a la problemática que tiene, siendo eficaz,
costeable, moldeable, y que pueda tener futuras implementación, éstas son
algunas características de software de calidad.
Figura 11. Bourque, P., Fairley, R. (2014). Software Quality. [Breakdown of Topics for the Software Quality
KA] (p. 10-2).
INGENIERÍA DEL SOFTWARE
18
Conclusión
La ingeniería del software se desarrolló para poder solucionar problemas en la
creación de aplicación y creaciones de piezas de software especializadas.
Gracias a que cuenta con varios elementos de desarrollo e investigación sobre
los paradigmas, se pueden determinar nuevas formas de perfeccionamiento de
aplicaciones mejorando la calidad de éstos y el tiempo en que se crean y se
distribuyen a los usuarios.
Cuando la ingeniería de software no se utiliza correctamente pueden omitirse
varios de los principales elementos y los paradigmas de programación, estos
pueden aplicarse a cualquier lenguaje de programación, ya sea para el
desarrollo de animaciones mediante scripts de audio, de movimiento o con
elementos más robustos como composición de código en un sistema operativo
para una computadora, o el desarrollo de aplicaciones que hagan manejo de
elementos multimedia que requieren de codificación y decodificación.
INGENIERÍA DEL SOFTWARE
19
Para aprender más
Importancia de la ingeniería de software.
• Ruiz de la Peña, J; Aguilera, O. (2007). Importancia de la ingeniería de software
en la producción de software. Ciencias Holguín, vol. XIII, núm. 2, abril-junio,
2007, pp. 1-8.Centro de Información y Gestión Tecnológica de Santiago de Cuba
Holguín, Cuba. Sitio Web: http://www.redalyc.org/articulo.oa?id=181517923005
Ciclo de vida y mapas de actividades.
• Arboleya, H. (2013, Junio). Propuesta de Ciclo de Vida y Mapa de Actividades
para Proyectos de Explotación de Información. Revista latinoamericana de
ingeniería de software (ISSN 2314-2642), 1, 107-124. Sitio Web : http://iidia.com.ar/ReLAIS/relais-v1-n3-p-107-124.pdf
SWEBOK.
• SWEBOK V3. IEEE Computer Society, Sitio Web: http://www.computer.org/web/swebok/v3
INGENIERÍA DEL SOFTWARE
20
Actividad de Aprendizaje
Instrucciones:
Para que reafirmes los conocimientos que has adquirido en esta sesión, tendrás
que realizar una actividad la cual consiste en realizar un mapa mental donde
detalles los conceptos principales de la ingeniería de software y sus principales
áreas de conocimiento.
Deberás guardarlo en formato JPG, para subirlo a la plataforma de la asignatura.
Es muy importante que tengas claros los conceptos de esta sesión, ya que más
adelante harás uso de ellos de manera práctica.
Para la evaluación de esta actividad se tomarán en cuenta los siguientes puntos:
Título
Datos personales
Mapa mental
Ortografía y redacción
Bibliografía
INGENIERÍA DEL SOFTWARE
21
Bibliografía
• Alonso, F., Martínez, L., & Segovia, F. (2005). Introducción a la Ingeniería
del Software: Modelos de desarrollo de Programas. España: La
Fuensanta.
• EUI, (2011) Objetivos de Ingeniería del Software. 2013,Julio 17, Sitio
Web: http://www.eui.upm.es/estudios/grados/software/objetivos
• Galaz S. (2011) Ingeniería de software. 2013,Julio 17, Sitio
Web: http://www.ilustrados.com/tema/319/Ingenieria-Software.html#obje
• Galeotti P., Mostaco M. & Rosner N., (s.f.) Ingeniería de Software.
2013,Julio 17, Sitio Web: http://www.dc.uba.ar/inv/IngenieriaSoftware
• Méndez R., Barzanallana A., (2011) Informática aplicada a la gestión
pública.2013,Julio 17, Sitio
Web: http://www.um.es/docencia/barzana/IAGP/IAGP2-Ingenieria-
software-introduccion.html
• TechNet. (2012), ¿Qué es la Ingeniería de Software? 2013,Julio 17, Sitio
Web: http://social.technet.microsoft.com/Forums/es-ES/7dc2cf80-a6ad-
4271-b4db-a1e3edb946fb/-que-es-la-ingenieria-software-