Proceso y diseño de un software

Proceso y diseño de un software
 El Proceso para el desarrollo de software, también denominado ciclo de vida
del desarrollo de software es una estructura aplicada al desarrollo de un
producto de software. Hay varios modelos a seguir para el establecimiento de un
proceso para el desarrollo de software, cada uno de los cuales describe un
enfoque diferente para diferentes actividades que tienen lugar durante el
proceso. Algunos autores consideran un modelo de ciclo de vida un término más
general que un determinado proceso para el desarrollo de software. Por ejemplo,
hay varios procesos de desarrollo de software específicos que se ajustan a un
modelo de ciclo de vida de espiral.
Actividades del desarrollo de software
 PLANIFICACIÓN.
 La importante tarea a la hora de crear un producto de software es obtener los requisitos o el análisis de
los requisitos. Los clientes suelen tener una idea más bien abstracta del resultado final, pero no sobre las
funciones que debería cumplir el software Una vez que se hayan recopilado los requisitos del cliente, se
debe realizar un análisis del ámbito del desarrollo. Este documento se conoce como especificación
funcional.
 IMPLEMENTACIÓN, PRUEBAS Y DOCUMENTACIÓN.
 La implementación es parte del proceso en el que los ingenieros de software programan el código para el
proyecto. Las pruebas de software son parte esencial del proceso de desarrollo del software. Esta parte
del proceso tiene la función de detectar los errores de software lo antes posible.
 La documentación del diseño interno del software con el objetivo de facilitar su mejora y su
mantenimiento se realiza a lo largo del proyecto. Esto puede incluir la documentación de un API, tanto
interior como exterior.
 DESPLIEGUE Y MANTENIMIENTO.
 El despliegue comienza cuando el código ha sido suficientemente probado, ha sido aprobado para
su liberación y ha sido distribuido en el entorno de producción.
 Entrenamiento y soporte para el software es de suma importancia y algo que muchos desarrolladores de
software descuidan. Los usuarios, por naturaleza, se oponen al cambio porque conlleva una cierta
inseguridad, es por ello que es fundamental instruir de forma adecuada a los futuros usuarios del software.
Modelos de Desarrollo de Software
 Los modelos de desarrollo de software
son una representación abstracta de una
manera en particular. Realmente no
representa cómo se debe desarrollar el
software, sino de un enfoque común.
Puede ser modificado y adaptado de
acuerdo a las necesidades del software
en proceso de desarrollo. 1 Hay varios
modelos para perfilar el proceso de
desarrollo, cada uno de las cuales cuenta
con pros y contras.
 1. Paradigma Tradicional:
 Es uno de los paradigmas más antiguo, se inventó durante la creación del método estructurado. Si se
elige un proyecto, el método varia en etapas. Como todo modelo, existen sus pros y contras al usar
este paradigmas:
 2. Paradigma Orientado a Objetos: Estos modelos se basan en la Programación orientada a objetos; por
lo tanto, se refiere al concepto de clase, el análisis de requisitos y el diseño. El modelo o paradigma
orientado a objetos posee dos características principales, las cuales son:
 Permite la re-utilización de software.
 Facilita el desarrollo de herramientas informáticas de apoyo al desarrollo, el cual es simple al
implementarla en una notación orientado a objetos llamado UML.
 3. Paradigma de Desarrollo Ágil: Es un paradigma de las Metodologías De Desarrollo basado en procesos
ágiles. Estos intentan evitar los tediosos caminos de las metodologías tradicionales enfocándose en las
personas y los resultados. Usa un enfoque basado en el Valor para construir software, colaborando con
el cliente e incorporando los cambios continuamente.
Desarrollo iterativo e incremental.
Artículo principal: Desarrollo iterativo e incremental
El desarrollo iterativo recomienda la construcción de secciones reducidas de software que irán
ganando en tamaño para facilitar así la detección de problemas de importancia antes de que sea
demasiado tarde. Los procesos iterativos pueden ayudar a desvelar metas del diseño en el caso de
clientes que no saben cómo definir lo que quieren
Desarrollo ágil.
Artículo principal: Desarrollo ágil de software
El desarrollo ágil de software utiliza un desarrollo iterativo como base para abogar por un punto de
vista más ligero y más centrado en las personas que en el caso de las soluciones tradicionales. Los
procesos ágiles utilizan retroalimentación en lugar de planificación, como principal mecanismo de
control. La retroalimentación se canaliza por medio de pruebas periódicas y frecuentes versiones del
software.
Codificación y corrección.
El desarrollo de codificación y corrección (en inglés "Code and fix") es, más que una estrategia
predeterminada, el resultado de una falta de experiencia o presión que se ejerce sobre los
desarrolladores para cumplir con una fecha de entrega.7 Sin dedicar tiempo de forma explícita para
el diseño, los programadores comienzan de forma inmediata a producir código. Antes o después
comienza la fase de pruebas de software (a menudo de forma tardía) y los inevitables errores que se
encuentran han de eliminarse antes de poder entregar el software.
 Orientado a la Reutilización
 La reutilización de software es un proceso donde se recurre al uso de activos de software en las
especificaciones de análisis, diseños, implementación y pruebas de una aplicación o sistemas de
software.
La reutilización tiene ciertos Indicadores por ejemplo:
 1. Entre el 40% y 60% de una aplicación es reutilizable en otra.
 2. Aproximadamente el 60% de una aplicación administrativa es reutilizable.
 3. Aproximadamente el 75% de las funciones son comunes a más de un programa.
 4. Solo el 15% del código encontrado en muchos sistemas es único y novedoso a una aplicación
especifica.
 El rango general de uso recurrente esta entre el 15% y 85%.
 La reutilización tiene Principios como la existencia de parecidos en distintos sistemas de un mismo
dominio, donde el software puede representarse como una combinación de módulos y los sistemas
nuevos se puede caracterizar por diferencias respecto a los antiguos sistemas.
Modelos de mejora de procesos
 El Capability Maturity Model Integration (CMMI), en español «Integración de Modelos de Madurez de
Capacidades» es uno de los modelos líderes basados en mejores prácticas. Son evaluaciones
independientes las que confirman el grado con el que una organización siguen sus propios procesos,
que no evalúa la calidad de los procesos o del software que se produce. CMMI ha reemplazado
a CMM y tiene un ámbito global, no sólo en procesos destinados al desarrollo del software.
ISO 9000 describe estándares para un proceso organizado formalmente para resultar en un producto y
los métodos de gestión y monitoreo del progreso. Aunque este estándar se creó inicialmente para el
sector de producción, los estándares de ISO 9000 también se han aplicado al desarrollo del software. Al
igual que CMMI, que una organización está certificada con el ISO 9000 no garantiza la calidad del
resultado final, sólo confirma que se ha seguido los procesos establecidos.
ISO 15504, también conocido como Software Process Capability Determination (SPICE), en español
«Determinación de la Capacidad de Mejora del Proceso de Software» es un marco para la evaluación de
procesos de software. Este estándar tiene como objetivo un modelo claro para poder comparar procesos.
SPICE se utiliza como en el caso de CMMI. Modela procesos para gestionar, controlar, guiar y monitorear
el desarrollo del software. Este modelo se utiliza entonces para medir lo que una organización o
proyecto hace durante el desarrollo del software. Esta información se analiza para identificar puntos
débiles y definir acciones para subsanarlos. También identifica puntos fuertes que pueden adoptarse en
el resto de la organización.
Métodos formales
 Los métodos formales son soluciones matemáticas para resolver problemas de software y hardware a
nivel de requisitos, especificación y diseño. Ejemplos de métodos formales incluyen el Método B,
la red de Petri, la demostración automática de teoremas, RAISE y el VDM. Hay varias notaciones de
especificaciones formales, tales como el lenguaje Z. Más generalmente, se puede utilizar la teoría
de autómatas para aumentar y validar el comportamiento de la aplicación diseñando un sistema
de autómata finito.
 Las metodologías basadas en los autómatas finitos permiten especificación de software ejecutable y
evitar la creación convencional de código.
 Los métodos formales se suelen aplicar en software de aviación, especialmente si es software de
seguridad crítico. Los estándares de aseguramiento del software de seguridad, tales
como DO178B demandan métodos formales en el nivel más alto de categorización (Nivel A).
 La formalización del desarrollo de software está ganando en fuerza poco a poco, en otros ámbitos,
con la aplicación del lenguaje de especificación OCL2.0 (y especializaciones tales como Java
Modeling Lenguaje) y particularmente con Model-driven Architecture que permite la ejecución de
diseños, incluso especificaciones.
1 de 10

Recomendados

Modelos del software por
Modelos del softwareModelos del software
Modelos del softwareangelicasolishernnde
99 vistas11 diapositivas
SELECCIÓN DE TECNICAS DE INGENIERIA DE SOFTWARE. por
SELECCIÓN DE TECNICAS DE INGENIERIA DE SOFTWARE. SELECCIÓN DE TECNICAS DE INGENIERIA DE SOFTWARE.
SELECCIÓN DE TECNICAS DE INGENIERIA DE SOFTWARE. Cristhian Martinez
2.1K vistas9 diapositivas
Ingeniería de software por
Ingeniería de softwareIngeniería de software
Ingeniería de softwareysik granja
3.7K vistas12 diapositivas
Etapas del Proceso de la Ingeniería del Software por
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareT.I.C
9.3K vistas4 diapositivas
Proceso del software por
Proceso del softwareProceso del software
Proceso del softwareTensor
3.6K vistas28 diapositivas
Desarrollo agil, Producto Proceso, Scrum por
Desarrollo agil, Producto Proceso, ScrumDesarrollo agil, Producto Proceso, Scrum
Desarrollo agil, Producto Proceso, Scrumrgomezm
1.8K vistas31 diapositivas

Más contenido relacionado

La actualidad más candente

Act20 por
Act20Act20
Act20karinaaura
204 vistas4 diapositivas
Rup por
RupRup
Rupjarmendipg
992 vistas13 diapositivas
PROCESOS DE CALIDAD DE SOFTWARE por
PROCESOS DE CALIDAD DE SOFTWAREPROCESOS DE CALIDAD DE SOFTWARE
PROCESOS DE CALIDAD DE SOFTWAREAlejandro Leon
15.1K vistas44 diapositivas
Metodologias Rup Xp por
Metodologias Rup XpMetodologias Rup Xp
Metodologias Rup Xpda4
8.4K vistas19 diapositivas
Principios de RUP por
Principios de RUPPrincipios de RUP
Principios de RUPradoslawkb
1.5K vistas1 diapositiva
Procesos de desarrollo de Software por
Procesos de desarrollo de SoftwareProcesos de desarrollo de Software
Procesos de desarrollo de Softwareolea_saavedra
3.4K vistas14 diapositivas

La actualidad más candente(18)

PROCESOS DE CALIDAD DE SOFTWARE por Alejandro Leon
PROCESOS DE CALIDAD DE SOFTWAREPROCESOS DE CALIDAD DE SOFTWARE
PROCESOS DE CALIDAD DE SOFTWARE
Alejandro Leon15.1K vistas
Metodologias Rup Xp por da4
Metodologias Rup XpMetodologias Rup Xp
Metodologias Rup Xp
da48.4K vistas
Principios de RUP por radoslawkb
Principios de RUPPrincipios de RUP
Principios de RUP
radoslawkb1.5K vistas
Procesos de desarrollo de Software por olea_saavedra
Procesos de desarrollo de SoftwareProcesos de desarrollo de Software
Procesos de desarrollo de Software
olea_saavedra3.4K vistas
Metogologias de Desarrollo de Software Tradicionales VS Agiles por fmmeson
Metogologias de Desarrollo de Software Tradicionales VS AgilesMetogologias de Desarrollo de Software Tradicionales VS Agiles
Metogologias de Desarrollo de Software Tradicionales VS Agiles
fmmeson14.6K vistas
Presentación MeRinde 6CNSL Abril 2010 por Kiberley Santos
Presentación MeRinde 6CNSL Abril 2010Presentación MeRinde 6CNSL Abril 2010
Presentación MeRinde 6CNSL Abril 2010
Kiberley Santos1.4K vistas
Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde por Sam Espinosa
Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa CondeProceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde
Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde
Sam Espinosa3.2K vistas
Metodologias modernas para el desarrollo de software por Deisy Sapaico
Metodologias modernas para el desarrollo de softwareMetodologias modernas para el desarrollo de software
Metodologias modernas para el desarrollo de software
Deisy Sapaico19.1K vistas
Metodología de desarrollo de software por Abner Garcia
Metodología de desarrollo de softwareMetodología de desarrollo de software
Metodología de desarrollo de software
Abner Garcia417 vistas
Metodologias de desarrollo de software por hernandezcris
Metodologias de desarrollo de softwareMetodologias de desarrollo de software
Metodologias de desarrollo de software
hernandezcris1.2K vistas
Metodologias agiles Programacion Xtrema por Lis Pater
Metodologias agiles Programacion Xtrema Metodologias agiles Programacion Xtrema
Metodologias agiles Programacion Xtrema
Lis Pater48.7K vistas
Sesión 3: Modelos prescriptivos de proceso por Coesi Consultoria
Sesión 3: Modelos prescriptivos de procesoSesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de proceso
Coesi Consultoria26K vistas

Similar a Proceso y diseño de un software

Ensayo de ciclo de vida por
Ensayo de ciclo de vidaEnsayo de ciclo de vida
Ensayo de ciclo de vidaGabriel Méndez
4.8K vistas3 diapositivas
Ciclo de Vida de un Software.pdf por
Ciclo de Vida de un Software.pdfCiclo de Vida de un Software.pdf
Ciclo de Vida de un Software.pdfInstituto Profesional Inacap
151 vistas14 diapositivas
02 unidad i proceso por
02 unidad i   proceso02 unidad i   proceso
02 unidad i procesovictdiazm
285 vistas14 diapositivas
Trabajo de desarrollo desoftware por
Trabajo de desarrollo desoftwareTrabajo de desarrollo desoftware
Trabajo de desarrollo desoftwarefrancisco alexander sanchez
1.2K vistas45 diapositivas
Diseño de software por
Diseño de softwareDiseño de software
Diseño de softwareCarmineMaggio
27 vistas10 diapositivas
Exposicion 3 por
Exposicion 3Exposicion 3
Exposicion 3Evelin Oña
286 vistas13 diapositivas

Similar a Proceso y diseño de un software(20)

02 unidad i proceso por victdiazm
02 unidad i   proceso02 unidad i   proceso
02 unidad i proceso
victdiazm285 vistas
1 ingeniería de software por UVM
1 ingeniería de software1 ingeniería de software
1 ingeniería de software
UVM3.7K vistas
Proceso de desarrollo de sofware por McDonald's
Proceso de desarrollo de sofwareProceso de desarrollo de sofware
Proceso de desarrollo de sofware
McDonald's1.9K vistas
Investigación de modelos por bren1995
Investigación de modelos Investigación de modelos
Investigación de modelos
bren1995296 vistas
Trabajo de sistemas de software por JhonJairoPerez
Trabajo de sistemas de softwareTrabajo de sistemas de software
Trabajo de sistemas de software
JhonJairoPerez441 vistas
Modelo de cascadaa por mendez45
Modelo de cascadaaModelo de cascadaa
Modelo de cascadaa
mendez455.5K vistas
Trabajo 2 exposicion por Evelin Oña
Trabajo 2 exposicionTrabajo 2 exposicion
Trabajo 2 exposicion
Evelin Oña597 vistas
Desarrollo del sofware por alexis326
Desarrollo del sofwareDesarrollo del sofware
Desarrollo del sofware
alexis326362 vistas
Tecnicas.de.ingenieria.de.software por juankexmisiodj
Tecnicas.de.ingenieria.de.softwareTecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.software
juankexmisiodj4K vistas

Último

Ác. nucleicos 2023.pdf por
Ác. nucleicos 2023.pdfÁc. nucleicos 2023.pdf
Ác. nucleicos 2023.pdfIES Vicent Andres Estelles
52 vistas56 diapositivas
Conferencia Magistral Módulo VII.pdf por
Conferencia Magistral Módulo VII.pdfConferencia Magistral Módulo VII.pdf
Conferencia Magistral Módulo VII.pdfRevista Crítica con Ciencia (e-ISSN: 2958-9495)
32 vistas25 diapositivas
Act#14 BT. 3.4 Organizacion Seres Vivos 2023 Online.pptx por
Act#14 BT. 3.4 Organizacion Seres Vivos 2023 Online.pptxAct#14 BT. 3.4 Organizacion Seres Vivos 2023 Online.pptx
Act#14 BT. 3.4 Organizacion Seres Vivos 2023 Online.pptxIntegrated Sciences 8 (2023- 2024)
200 vistas65 diapositivas
Mujeres privadas de libertad en Bolivia 2022 por
Mujeres privadas de libertad en Bolivia 2022Mujeres privadas de libertad en Bolivia 2022
Mujeres privadas de libertad en Bolivia 2022LuisFernando672460
119 vistas170 diapositivas
PEC_2023-24.pdf por
PEC_2023-24.pdfPEC_2023-24.pdf
PEC_2023-24.pdfceiplasanejas
53 vistas64 diapositivas
0 - Organología - Presentación.pptx por
0 - Organología - Presentación.pptx0 - Organología - Presentación.pptx
0 - Organología - Presentación.pptxVICENTEJIMENEZAYALA
130 vistas10 diapositivas

Último(20)

Mujeres privadas de libertad en Bolivia 2022 por LuisFernando672460
Mujeres privadas de libertad en Bolivia 2022Mujeres privadas de libertad en Bolivia 2022
Mujeres privadas de libertad en Bolivia 2022
LuisFernando672460119 vistas
Unicómic 25 años: líneas de investigación para la Didáctica de la Lengua y la... por IGNACIO BALLESTER PARDO
Unicómic 25 años: líneas de investigación para la Didáctica de la Lengua y la...Unicómic 25 años: líneas de investigación para la Didáctica de la Lengua y la...
Unicómic 25 años: líneas de investigación para la Didáctica de la Lengua y la...
Fase 4- Estudio de la geometría analítica.pptx por blogdealgebraunad
Fase 4- Estudio de la geometría analítica.pptxFase 4- Estudio de la geometría analítica.pptx
Fase 4- Estudio de la geometría analítica.pptx
blogdealgebraunad33 vistas
Castelo de San Diego (A Coruña) por Agrela Elvixeo
Castelo de San Diego (A Coruña)Castelo de San Diego (A Coruña)
Castelo de San Diego (A Coruña)
Agrela Elvixeo175 vistas
FORTI-DICIEMBRE.2023.pdf por El Fortí
FORTI-DICIEMBRE.2023.pdfFORTI-DICIEMBRE.2023.pdf
FORTI-DICIEMBRE.2023.pdf
El Fortí177 vistas
Meta 1.1 Identificar el contenido històrico de la Lengua de Señas. por IvanLechuga
Meta 1.1 Identificar el contenido històrico de la Lengua de Señas.Meta 1.1 Identificar el contenido històrico de la Lengua de Señas.
Meta 1.1 Identificar el contenido històrico de la Lengua de Señas.
IvanLechuga61 vistas

Proceso y diseño de un software

  • 1. Proceso y diseño de un software
  • 2.  El Proceso para el desarrollo de software, también denominado ciclo de vida del desarrollo de software es una estructura aplicada al desarrollo de un producto de software. Hay varios modelos a seguir para el establecimiento de un proceso para el desarrollo de software, cada uno de los cuales describe un enfoque diferente para diferentes actividades que tienen lugar durante el proceso. Algunos autores consideran un modelo de ciclo de vida un término más general que un determinado proceso para el desarrollo de software. Por ejemplo, hay varios procesos de desarrollo de software específicos que se ajustan a un modelo de ciclo de vida de espiral.
  • 3. Actividades del desarrollo de software  PLANIFICACIÓN.  La importante tarea a la hora de crear un producto de software es obtener los requisitos o el análisis de los requisitos. Los clientes suelen tener una idea más bien abstracta del resultado final, pero no sobre las funciones que debería cumplir el software Una vez que se hayan recopilado los requisitos del cliente, se debe realizar un análisis del ámbito del desarrollo. Este documento se conoce como especificación funcional.  IMPLEMENTACIÓN, PRUEBAS Y DOCUMENTACIÓN.  La implementación es parte del proceso en el que los ingenieros de software programan el código para el proyecto. Las pruebas de software son parte esencial del proceso de desarrollo del software. Esta parte del proceso tiene la función de detectar los errores de software lo antes posible.  La documentación del diseño interno del software con el objetivo de facilitar su mejora y su mantenimiento se realiza a lo largo del proyecto. Esto puede incluir la documentación de un API, tanto interior como exterior.  DESPLIEGUE Y MANTENIMIENTO.  El despliegue comienza cuando el código ha sido suficientemente probado, ha sido aprobado para su liberación y ha sido distribuido en el entorno de producción.  Entrenamiento y soporte para el software es de suma importancia y algo que muchos desarrolladores de software descuidan. Los usuarios, por naturaleza, se oponen al cambio porque conlleva una cierta inseguridad, es por ello que es fundamental instruir de forma adecuada a los futuros usuarios del software.
  • 4. Modelos de Desarrollo de Software  Los modelos de desarrollo de software son una representación abstracta de una manera en particular. Realmente no representa cómo se debe desarrollar el software, sino de un enfoque común. Puede ser modificado y adaptado de acuerdo a las necesidades del software en proceso de desarrollo. 1 Hay varios modelos para perfilar el proceso de desarrollo, cada uno de las cuales cuenta con pros y contras.
  • 5.  1. Paradigma Tradicional:  Es uno de los paradigmas más antiguo, se inventó durante la creación del método estructurado. Si se elige un proyecto, el método varia en etapas. Como todo modelo, existen sus pros y contras al usar este paradigmas:  2. Paradigma Orientado a Objetos: Estos modelos se basan en la Programación orientada a objetos; por lo tanto, se refiere al concepto de clase, el análisis de requisitos y el diseño. El modelo o paradigma orientado a objetos posee dos características principales, las cuales son:  Permite la re-utilización de software.  Facilita el desarrollo de herramientas informáticas de apoyo al desarrollo, el cual es simple al implementarla en una notación orientado a objetos llamado UML.  3. Paradigma de Desarrollo Ágil: Es un paradigma de las Metodologías De Desarrollo basado en procesos ágiles. Estos intentan evitar los tediosos caminos de las metodologías tradicionales enfocándose en las personas y los resultados. Usa un enfoque basado en el Valor para construir software, colaborando con el cliente e incorporando los cambios continuamente.
  • 6. Desarrollo iterativo e incremental. Artículo principal: Desarrollo iterativo e incremental El desarrollo iterativo recomienda la construcción de secciones reducidas de software que irán ganando en tamaño para facilitar así la detección de problemas de importancia antes de que sea demasiado tarde. Los procesos iterativos pueden ayudar a desvelar metas del diseño en el caso de clientes que no saben cómo definir lo que quieren Desarrollo ágil. Artículo principal: Desarrollo ágil de software El desarrollo ágil de software utiliza un desarrollo iterativo como base para abogar por un punto de vista más ligero y más centrado en las personas que en el caso de las soluciones tradicionales. Los procesos ágiles utilizan retroalimentación en lugar de planificación, como principal mecanismo de control. La retroalimentación se canaliza por medio de pruebas periódicas y frecuentes versiones del software. Codificación y corrección. El desarrollo de codificación y corrección (en inglés "Code and fix") es, más que una estrategia predeterminada, el resultado de una falta de experiencia o presión que se ejerce sobre los desarrolladores para cumplir con una fecha de entrega.7 Sin dedicar tiempo de forma explícita para el diseño, los programadores comienzan de forma inmediata a producir código. Antes o después comienza la fase de pruebas de software (a menudo de forma tardía) y los inevitables errores que se encuentran han de eliminarse antes de poder entregar el software.
  • 7.  Orientado a la Reutilización  La reutilización de software es un proceso donde se recurre al uso de activos de software en las especificaciones de análisis, diseños, implementación y pruebas de una aplicación o sistemas de software. La reutilización tiene ciertos Indicadores por ejemplo:  1. Entre el 40% y 60% de una aplicación es reutilizable en otra.  2. Aproximadamente el 60% de una aplicación administrativa es reutilizable.  3. Aproximadamente el 75% de las funciones son comunes a más de un programa.  4. Solo el 15% del código encontrado en muchos sistemas es único y novedoso a una aplicación especifica.  El rango general de uso recurrente esta entre el 15% y 85%.  La reutilización tiene Principios como la existencia de parecidos en distintos sistemas de un mismo dominio, donde el software puede representarse como una combinación de módulos y los sistemas nuevos se puede caracterizar por diferencias respecto a los antiguos sistemas.
  • 8. Modelos de mejora de procesos  El Capability Maturity Model Integration (CMMI), en español «Integración de Modelos de Madurez de Capacidades» es uno de los modelos líderes basados en mejores prácticas. Son evaluaciones independientes las que confirman el grado con el que una organización siguen sus propios procesos, que no evalúa la calidad de los procesos o del software que se produce. CMMI ha reemplazado a CMM y tiene un ámbito global, no sólo en procesos destinados al desarrollo del software.
  • 9. ISO 9000 describe estándares para un proceso organizado formalmente para resultar en un producto y los métodos de gestión y monitoreo del progreso. Aunque este estándar se creó inicialmente para el sector de producción, los estándares de ISO 9000 también se han aplicado al desarrollo del software. Al igual que CMMI, que una organización está certificada con el ISO 9000 no garantiza la calidad del resultado final, sólo confirma que se ha seguido los procesos establecidos. ISO 15504, también conocido como Software Process Capability Determination (SPICE), en español «Determinación de la Capacidad de Mejora del Proceso de Software» es un marco para la evaluación de procesos de software. Este estándar tiene como objetivo un modelo claro para poder comparar procesos. SPICE se utiliza como en el caso de CMMI. Modela procesos para gestionar, controlar, guiar y monitorear el desarrollo del software. Este modelo se utiliza entonces para medir lo que una organización o proyecto hace durante el desarrollo del software. Esta información se analiza para identificar puntos débiles y definir acciones para subsanarlos. También identifica puntos fuertes que pueden adoptarse en el resto de la organización.
  • 10. Métodos formales  Los métodos formales son soluciones matemáticas para resolver problemas de software y hardware a nivel de requisitos, especificación y diseño. Ejemplos de métodos formales incluyen el Método B, la red de Petri, la demostración automática de teoremas, RAISE y el VDM. Hay varias notaciones de especificaciones formales, tales como el lenguaje Z. Más generalmente, se puede utilizar la teoría de autómatas para aumentar y validar el comportamiento de la aplicación diseñando un sistema de autómata finito.  Las metodologías basadas en los autómatas finitos permiten especificación de software ejecutable y evitar la creación convencional de código.  Los métodos formales se suelen aplicar en software de aviación, especialmente si es software de seguridad crítico. Los estándares de aseguramiento del software de seguridad, tales como DO178B demandan métodos formales en el nivel más alto de categorización (Nivel A).  La formalización del desarrollo de software está ganando en fuerza poco a poco, en otros ámbitos, con la aplicación del lenguaje de especificación OCL2.0 (y especializaciones tales como Java Modeling Lenguaje) y particularmente con Model-driven Architecture que permite la ejecución de diseños, incluso especificaciones.