Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DESARROLLO DE SOFTWARE”
Definición:
Un Software de Programación es el conjunto de utilidades y herramientas
utilizadas para el desarrollo, programación o creación de programas o
aplicaciones informáticas por parte de los programadores. Dichas utilidades y
herramientas pueden hacer uso de diversos lenguajes de programación y
metodologías de desarrollo a través de un editor de texto y un compilador.
Historia:
La historia del Software de programación se remonta a los mismos inicios de
los primeros computadores sobre 1950 donde se diseñaron estos equipos,
mediante lenguaje máquina, principalmente como sistemas de control
industrial. Un par de décadas más tarde, en los 70, comenzaría a ganar
popularidad el sistema Unix que permitiría la multitarea, y la interpretación de
lenguajes de programación, entre muchos otros avances destacados. Es en
1976 cuando se publica el libro Software Tools (Herramientas de
Programación) escrito por el científico Biran Kernighan y el programador P.J.
Plauger centrado en las buenas prácticas de programación para conseguir
códigos más limpios que sean más eficientes, fáciles de leer, de mantener y de
modificar. Con el paso de los años, diferentes herramientas y
pueden existir diferencias sustanciales entre unos entornos y otros. Es por ello
que muchos entornos de desarrollo tienden a especializarse en áreas más
concretas y específicas, mientras que otros han optado por mantenerse como
una opción viable para cualquier tipo de desarrollo. Esto generado ventajas e
inconvenientes. Si tu entorno está pensado para sustentar cualquier tipo de
desarrollo, para cualquier sector y mediante cualquier tecnología, dicho
entorno tendrá que permitir compatibilidad con un montón de librerías
diferentes, controladores, sistemas, etc. Lo que a priori provocará que se trata
de un sistema mucho más complejo, tanto para su aprendizaje y uso, como
para su manejo de manera experta. Poniendo un ejemplo, la dificultad de hacer
volar un avión de pasajeros comercial debe ser mucho mayor que la de hacer
volar una avioneta biplaza, aunque ambos sirvan para el mismo propósito:
volar. Y es que muchas veces no necesitamos un avión comercial de pasajeros,
si nuestro único interés es volar (no transportar a otras personas ni sus
equipajes). Es por ello que en las últimas décadas muchos entornos de
desarrollo integrados (IDE) se han especializado para diferentes áreas y
sectores, permitiendo así aligerar los grandes entornos y ofreciendo a los
desarrolladores un entorno mucho más ágil, rápido y sencillo de aprender y
utilizar que los anteriores. Dentro de los diferentes sectores donde estos
entornos se han especializado encontramos la informática de gestión
empresarial, los videojuegos, el sector sanitario, las inmobiliarias y
constructoras, matemáticas, etc. Cada día existen más IDE especializados para
servirnos como software de programación.
Conclusión:
El Software de Programación es un conjunto de herramientas y utilidades
utilizadas para el desarrollo, programación o creación de programas o
aplicaciones informáticas. Estos incluyen editores de texto, compiladores,
intérpretes, enlazadores y depuradores, y pueden utilizar diferentes lenguajes
de programación.
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.
El mantenimiento o mejora de un Software con problemas recientemente
desplegado, puede requerir más tiempo que el desarrollo inicial del Software.
Es posible que haya que incorporar código que no se ajusta al diseño original
con el objetivo de solucionar un problema o ampliar la funcionalidad para un
cliente. Si los costes de mantenimiento son muy elevados puede que sea
oportuno rediseñar el sistema para poder contener los costes de
mantenimiento.
Modelo de Cascada:
El modelo de cascada define las siguientes etapas que deben cumplirse de
forma sucesiva:
Especificación de requisitos
Diseño del software
Construcción o Implementación del software
Integración
Pruebas (o validación)
Despliegue (o instalación)
Mantenimiento
ISO 9000:
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:
ISO 15504, también conocido como Software Process Improvement
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.
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) y particularmente con Model-
driven Architecture, que permite la ejecución de diseños, incluso
especificaciones.
Gerente de Proyecto:
Tiene por función presentar informes sobre las litigaciones de riesgos, hacer
cumplir los plazos y lleva el control de los costos. También organiza el
equipo, realiza planificación y estima el tiempo de las actividades. En
conclusión, resuelve problemas.
Analista de Requerimientos:
Se encarga del revelamiento de los requerimientos esenciales para el
desarrollo del Software, la documentación de los requerimientos para así el
resto del equipo lo pueda consultar en cualquier momento. Debe ser una
persona con capacidad de abstracción y análisis.
Arquitecto de Software:
Determina las estructuras de la aplicación y las tecnologías con las que se
construirá la aplicación. Está encargado del aseguramiento de la calidad,
mejorar continuamente la arquitectura. Gestiona los requerimientos no
funcionales, asume la dirección técnica para asegurar que todos los aspectos
de la arquitectura se estén desarrollando de manera correcta.
Arquitecto de Sistemas
Arquitecto de la Soluciones
Arquitecto SOA
Arquitecto de soluciones orientadas a servicios
Arquitecto TI