Ingenieria de Software
Ingenieria de Software
Ingenieria de Software
Autor: Bohem
Ingeniería de software es la aplicación práctica del conocimiento científico al
diseño y construcción de programas de computadora y a la documentación
asociada requerida para desarrollar, operar y mantenerlos. Se conoce también
como desarrollo de software o producción de software.
OBJETIVO GENERAL
OBJETIVO ESPECIFICO
¿Qué es el software?
Según Pressman, 2010
“El software de computadora es el producto que construyen los programadores
profesionales y al que después le dan mantenimiento durante un largo
tiempo. Incluye programas que se ejecutan en una computadora de
cualquier tamaño y arquitectura, contenido que se presenta a medida que
se ejecutan los programas de cómputo e información descriptiva tanto en
una copia dura como en formatos virtuales que engloban virtualmente a
cualesquiera medios electrónicos.
La ingeniería de software está formada por un proceso, un conjunto de
métodos (prácticas) y un arreglo de herramientas que permite a los
profesionales elaborar software de cómputo de alta calidad.”
INGENIERÍA DE SOFTWARE
Para entender un poco mas de lo que es la ingeniería de software vamos a citar
definiciones de varios autores:
Fi
gura 5: Actividades Estructurales para el desarrollo del software
Ventajas
radica en su sencillez ya que sigue los pasos intuitivos necesarios a la
hora de desarrollar el software.
obtiene una rápida realimentación del usuario, ya que las actividades de
especificación, desarrollo y pruebas se ejecutan en cada iteración.
Figura 6: Modelo de desarrollo evolutivo. Existen dos tipos de desarrollo
evolutivo:
MODELO INCREMENTAL
El enfoque incremental de desarrollo se ve como una forma de reducir la
repetición del trabajo en el proceso de desarrollo y dar oportunidad de
retrasar la toma de decisiones en los requisitos hasta adquirir experiencia
con el sistema (ver Figura 10). Es una combinación del Modelo de Cascada
y Modelo Evolutivo.
Reduce el rehacer trabajo durante el proceso de desarrollo y da oportunidad
para retrasar las decisiones hasta tener experiencia en el sistema. Durante
el desarrollo de cada incremento se puede utilizar el modelo de cascada o
evolutivo, dependiendo del conocimiento que se tenga sobre los requisitos a
implementar. Si se tiene un buen conocimiento, se puede optar por
cascada, si es dudoso, evolutivo.
Cada incremento debe ser pequeño para limitar el riesgo (menos de 20.000
líneas).
Cada incremento debe aumentar la funcionalidad.
Es difícil establecer las correspondencias de los requisitos contra los
incrementos.
Es difícil detectar las unidades o servicios genéricos para todo el sistema.
MODELO EN ESPIRAL
El modelo espiral para la ingeniería de software ha sido desarrollado para cubrir
las mejores características tanto del ciclo de vida clásico, como de la
creación de prototipos, añadiendo al mismo tiempo un nuevo elemento: el
análisis de riesgo. El modelo representado mediante la espiral de la figura
2.4, define cuatro actividades principales:
Planificación: determinación de objetivos, alternativas y restricciones.
Análisis de riesgo: análisis de alternativas e identificación/resolución de
riesgos.
Ingeniería: desarrollo del producto del "siguiente nivel",
Evaluación del cliente: Valorización de los resultados de la ingeniería.
Figura 8: Modelo Espiral
METODOLOGÍA SCRUM
Scrum es una metodología ágil y flexible para gestionar el desarrollo de
software, cuyo principal objetivo es maximizar el retorno de la inversión para
su empresa (ROI). Se basa en construir primero la funcionalidad de mayor
valor para el cliente y en los principios de inspección continua, adaptación,
auto-gestión e innovación.
¿Cuándo se utiliza?
Con Scrum el cliente se entusiasma y se compromete con el proyecto dado que
lo ve crecer iteración a iteración. Asimismo, le permite en cualquier
momento realinear el software con los objetivos de negocio de su empresa,
ya que puede introducir cambios funcionales o de prioridad en el inicio de
cada nueva iteración. Esta metódica de trabajo promueve la innovación,
motivación y compromiso del equipo que forma parte del proyecto, por lo
que los profesionales encuentran un ámbito propicio para desarrollar sus
capacidades.
BENEFICIOS
METODOLOGÍA RUP
1. COCOMO
El Modelo COCOMO Creado por Barry Boehm en 1981. Su nombre significa
COnstructiveCOst MOdel (Modelo constructivo de costo) constituye una
jerarquía de modelos de estimación para el software. La jerarquía está
constituida por los siguientes modelos (COCOMO Model definition manual.,
1990).
COCOMO básico. Calcula el esfuerzo y el costo del desarrollo en función
del tamaño del programa estimado en LOC.
COCOMO intermedio. Calcula el esfuerzo del desarrollo en función del
tamaño del programa y un conjunto de conductores de costo que incluyen la
evaluación subjetiva del producto, del hardware, del personal y de los
atributos del proyecto.
COCOMO detallado. Incorpora las características de la versión intermedia y
lleva a cabo una evaluación del impacto de los conductores de costo en
cada fase (análisis, desarrollo, etc.) del proceso.
COCOMO es una herramienta basada en las líneas de código la cual le hace
muy poderoso para la estimación de costos y no como otros que solamente
miden el esfuerzo en base al tamaño. Es necesario para un administrador
de proyectos una herramienta de estimación de costos; y esta herramienta
puede estar relacionada con COCOMO ya que esta técnica representa uno
de los más completos modelos empíricos para la estimación de software
(Bumett, 1998).
Una de las deficiencias detectadas en el modelo COCOMO es que para el
análisis del costo del proyecto solo analizan el salario del desarrollador sin
tener en cuenta otros elementos de gastos que inciden en los costos del
proyecto de software.
2. COCOMO II
COCOMO II es un modelo que permite estimar el costo, el esfuerzo y el tiempo
cuando se planifica una nueva actividad de desarrollo software, y está
asociado a los ciclos de vida modernos. Fue desarrollado a partir de
COCOMO, incluyendo actualizaciones y nuevas extensiones más
adecuadas a los requerimientos de los ingenieros software (Heemstra,
1992).
CONCLUSIONES
El cálculo de los costos en el desarrollo de software constituye una herramienta
necesaria para garantizar el éxito en la gestión del producto informático
aportándole calidad al servicio desde su planificación hasta la entrega final.
Las métricas propuestas instituyen un novedoso instrumento para calcular el
precio de venta del producto de software, partiendo de costos que miden, lo
intangible, el conocimiento, la comunicación del equipo de especialistas, el
ambiente de trabajo, aportándole valor agregado al producto final.
RECOMENDACIONES
Se recomienda implementar las métricas propuestas para mejorar el cálculo del
costo en la actividad de desarrollo.
Continuar el estudio del tema, para profundizar en nuevas técnicas de
estimación de software.
Aplicar las métricas desde la planificación del proyecto y mantener el proceso
de mejora continua durante todas las etapas del desarrollo de software.
BIBLIOGRAFIA
Aparicio A. 2012. Ingeniería en Software. (En línea). Consultado el
15 de abr. 2015. Formato PDF. Disponible en:
http://datateca.unad.edu.co/contenidos/301404/301404.pdf
Presman, R. 2010. Ingeniería en Software Un Enfoque Práctico:
introducción a la introducción de ingeniería en software. México.
McGraw-Hill Companies. 7ed. p 1:13.
Sommerville, I. 2005. Ingeniería del software. Pearson Educación.
Madrid.
https://www.monografias.com/trabajos102/gestion-proyectos-
software/gestion-proyectos-software
https://www.monografias.com/trabajos108/modelos-del-proceso-
del-software/modelos-del-proceso-del-software
http://avellano.usal.es/~mmoreno/APITema2.pdf
https://www.fing.edu.uy/tecnoinf/mvd/cursos/ingsoft/material/
teorico/is03b-GestProy.pdf
https://www.gestiopolis.com/estimacion-de-costos-de-desarrollo-
de-software/