Download - 1. Clases is Conceptos
INGENIERIA DE SOFTWARE
J E S Ú S F L O R E S C O R N E J O
2 0 1 5
…Típica apariencia del estudiante promedio cuando le preguntan acerca de Ingeniería de Software…
¿QUE ES LA INGENIERÍA DEL SOFTWARE ?
Definición 1: Zelkovitz. Principles of Software Engineering and Design. Ingeniería del software es el estudio de los principios y metodologías para desarrollo y mantenimiento de sistemas de software.
Definición 2: Boehm. Software Engineering. Ingeniería del software es la aplicación práctica del conocimiento científico en el diseño y construcción de programas de computadora y la documentación asociada requerida para desarrollar, operar y mantenerlos.
Definición 3: Bauer. Software Engineering. Ingeniería del software trata del establecimiento de los principios y métodos de la ingeniería a fin de obtener software de modo rentable que sea fiable y trabaje en máquinas reales.
Definición 4: Pressman. Ingeniería del Software. La Ingeniería de/l software es una disciplina o área de la informática o Ciencias de la Computación, que ofrece métodos y técnicas para desarrollar y mantener software de calidad que resuelven problemas de todo tipo.
Definición 5: Braude. Ingeniería de Software. La ingeniería de software es el proceso de construir aplicaciones de tamaño o alcance prácticos, en las que predomina el esfuerzo del software y que satisfacen los requerimientos de funcionalidad y desempeño.
Definición 6: IEEE. La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento del software; es decir, la aplicación de ingeniería al software.
EL CICLO DE VIDA Todo proyecto de ingeniería tiene unos fines ligados a la obtención de un producto, proceso o servicio que es necesario generar a través de diversas actividades. Algunas de estas actividades pueden agruparse en fases porque globalmente contribuyen a obtener un producto intermedio, necesario para continuar hacia el producto final y facilitar la gestión del proyecto. Al conjunto de las fases empleadas se le denomina “ciclo de vida”.
¿Qué es el Ciclo de Vida del SW? Es una sucesión de etapas por las que pasa el software en su desarrollo, desde que se concibe la idea hasta que el software deja de utilizarse (obsolescencia).
Cada etapa lleva asociada una serie de actividades y tareas que se deben realizar, y una serie de documentos que serán la salida de cada una de estas fases y que servirán de entrada a la fase siguiente.
¿Qué es el Ciclo de Vida del SW? Según la norma ISO/IEC Standard 12207:2008: Software life-Cycle processes propuesta por la ISO (International Organization for Standardization): “Es un marco de referencia que contiene los procesos, actividades y las tareas involucradas en el desarrollo, explotación y mantenimiento de un producto software, abarcando la vida del sistema desde la definición de requisitos hasta que se deja de utilizar” http://www.iso.org/iso/home.htm
¿Qué es el Ciclo de Vida del SW? ¿Qué es un proceso? Un proceso es un conjunto de actividades que se suceden siguiendo
una ordenación temporal determinada ¿Qué es una actividad? Una actividad es un conjunto de tareas ¿Qué es una tarea? Una acción que transforma unas entradas en unas salidas
Análisis
Diseño
Pruebas -
Certificación
Inicio y
planificación ( Plan del Proyecto)
Cierre Evaluación, cierre y
lecciones aprendidas
Ejecución y Control Seguimiento, gestión de riesgos y problemas, control de
cambios, estado, etc
Ciclo de vida del desarrollo del proyecto
Ciclo de vida de Gestión del proyecto
Fecha de implementación
Construcción
Implementación
Ciclo de vida de un proyecto
Ejecución y Control
DISEÑO CONSTRUCCION
IMPLEMENTACION PRUEBAS
ANALISIS
QA6
Inicio y
Planificación Cierre
QA1 QA3
QA4 QA5
Contrato y acuerdos Administración del contrato Cierre del
contrato
QA2
Arquitectura del Proyecto y Software
CVDS
CVGP
CVAP
CVCO
Calidad QA6 QA3 QA1
EL CICLO DE VIDA
Recursos
Humanos Comunicación
Abastecimiento
Riesgos
Gerenciamiento
de
Proyectos
Alcance Visión
Integral
Calidad Costos Tiempos
Modelo PMI
Areas de
Conocimiento
Interesados
Ciclo de vida de un Producto
RESUMIENDO…
La ingeniería de software es una aplicación práctica del
conocimiento científico para proveer metodologías y
técnicas que ayuden a desarrollar sistemas de software
a tiempo, y a su vez que aseguren que el desarrollador
cumpla con las expectativas de calidad y permanezca
dentro del presupuesto.
Porque se crea la Ingeniería de Software??
La ingeniería de software se crea debido a las siguientes características:
El producto debe ser confiable y realizar sólo las tareas especificadas en los requerimientos.
El producto debe ser robusto. Esto quiere decir que el software se comporta de manera razonable, incluso en circunstancias no anticipadas desde el principio.
El producto de software debe ser lo más reutilizable posible, de manera tal que pueda ser incorporado en otro producto de software si se requiere.
El producto de software debe ser eficiente en el uso de los recursos del sistema.
Se requiere desarrollar el software en una manera que lo haga evolutivo, de forma tal que se pueda agregar funcionalidad adicional sin efectos perjudiciales.
El producto de software debe cumplir con los requerimientos de rendimiento especificados, es decir, debe cumplir algunas de las restricciones relacionadas al rendimiento.
El producto de software tendrá mayor valor si es portable, es decir que puede trabajar bajo diferentes plataformas de software y ambientes (hardware, sistemas operativos, etc.).
El producto de software debe ser utilizable, es decir, el aprendizaje de su uso debe ser los suficientemente sencillo por parte de personas no especialistas.
2.5. CAPAS DEL SOFTWARE
La Ingeniería del Software es una tecnología estratificada, y debe estar sustentada en un compromiso con la calidad.
2.7. SOFTWARE DE ALTA CALIDAD
¿Qué es calidad?
El grado en que un sistema, componente, o
proceso cumple con los requerimientos
especificados, y las necesidades y/o expectativas
del cliente o usuario.
ISO 9000: “Calidad: grado en el que un conjunto de características inherentes cumple
con los requisitos”
Real Academia de la Lengua Española: “Propiedad o conjunto de propiedades
inherentes a una cosa que permiten apreciarla como igual, mejor o peor que las
restantes de su especie”
Philip Crosby: ”Calidad es cumplimiento de requisitos”
Armand V. Feigenbaum: “Satisfacción de las expectativas del cliente”.
Genichi Taguchi: “Calidad es la menor pérdida posible para la sociedad”.
William Edwards Deming: “Calidad es satisfacción del cliente”.
Walter A. Shewhart: ”La calidad como resultado de la interacción de dos dimensiones:
dimensión subjetiva (lo que el cliente quiere) y dimensión objetiva (lo que se ofrece).
.
Otras definiciones de CALIDAD
2.7. SOFTWARE DE ALTA CALIDAD
¿Qué es calidad de software? Pressman (2002) se refiere a la calidad del
software como
“La concordancia con los requisitos funcionales y de rendimiento explícitamente establecidos, con los estándares de desarrollo explícitamente documentados, y con las características implícitas que se espera de todo software desarrollado profesionalmente”.
Capa del Proceso
Las áreas claves del Proceso forman la base del control de gestión de proyectos del software y establecen contexto en el que se aplican los métodos técnicos, se obtienen productos del trabajo (modelos, documentos, datos, informes, formularios, etc.), se establecen hitos, se segura la calidad y el cambio se gestiona adecuadamente.
Proceso de Desarrollo de Software
Es un conjunto de personas, estructuras de organización, reglas, políticas, actividades y sus procedimientos, componentes de software, metodologías, y herramientas utilizadas o creadas especificamente para definir, desarrollar, ofrecer un servicio, innovar y extender un producto de software.
Capa de los Métodos
Los métodos de la Ingeniería del Software indican “como” construir técnicamente el software. Los métodos abarcan una gran gama de tareas que incluyen análisis de requisitos, diseño, construcción de programas, pruebas y mantenimiento.
Capa de Herramientas
Las herramientas de la Ingeniería de Software proporcionan un enfoque automático o semi-automático para el proceso y para los métodos. Cuando se integran herramientas para que la información creada por una herramienta la pueda utilizar otra, se establece un sistema de soporte para el desarrollo del software llamado Ingeniería del Software Asistida por Computadora (CASE).
Conclusión y reflexión
El SW es actualmente un elemento de vital importancia para la humanidad.
El SW esta por doquier: dispositivos móviles, electrodomésticos, etc.
Dada esta importancia es paradójico que aún los enfoques metodológicos no hayan penetrado suficientemente en el desarrollo
Es imperativo que los estudiantes de ingeniería de sistemas y ciencias afines entiendan la importancias de estos enfoques, para garantizar el futuro de las empresas de software.