EL Ee

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 27

El Software

Es un término informático que hace referencia a uno o más programas de


cómputo, así como datos, procedimientos, pautas, reglas, documentación y datos
asociados en un programa; un programa o software permite realizar distintas
tareas en un sistema informático. También se puede considerar que el software es
el equipamiento lógico e intangible de un ordenador. E l software es desarrollado
mediante distintos lenguajes de programación que permiten controlar el
comportamiento de una máquina. Los lenguajes consisten en un conjunto de
símbolos y reglas sintácticas y semánticas que definen el significado de sus
elementos y expresiones. Estos permiten al programador, especificar de forma
precisa, sobre qué datos debe operar una computadora. El Software tiene
destinado manejar diversos componentes del hardware así como ser intermediario
entre el usuario y el ordenador.

Básicamente el software es un recurso digital o intangible (que no es físico


o concreto), el cual se contrapone al hardware (que si es un medio tangible o
concreto), y pues el software por consiguiente es todo programa informático que
se basa en un lenguaje o sistema lógico, que sirve para realizar una actividad o
resolver uno o varios problemas.

Importancia del software


La importancia radica en que el software permite una comunicación entre el
usuario y la máquina, e incluso entre el software y hardware de la máquina. Un
ejemplo sería, pulsar un botón del teclado del ordenador, se activa
automáticamente una serie de órdenes que permiten identificar que botón se ha
pulsado, traducirlo a lenguaje de máquina, mostrarlo en pantalla para el usuario y
almacenarlo. Así el software que está instalado en el ordenador se ha ocupado de
todo eso ante un simple gesto del usuario. Esta es precisamente otra de sus
grandes funciones, facilitar las tareas a los usuarios en un equipo. Gracias al
software podemos ejecutar tareas que hace décadas hubiesen llevado años de
trabajo, y ello ha supuesto sin lugar a dudas una revolución mundial en la
sociedad moderna. En la actualidad, con el avance tecnológico, en la informática y
demás espacios, los programas, aplicaciones o software no solo se encuentran en
los ordenadores, sino que también en la mayor parte de electrodomésticos,
coches u otros vehículos, cajeros automáticos y demás aparatos electrónicos; en
estos se encuentra incorporado un software (no necesariamente en todos los
aparatos electrónicos o similares).

-El software se clasifica en:


1. Software de Sistema: Es el que nos permite establecer una interacción
con el hardware, a través de programas que administran los recursos y
proporcionan una interfaz de uso. El mejor ejemplo a nombrar son los
populares Sistemas Operativos (S.O) Windows, Linux, Android, iOS, Mac
Os; otros sistemas como Fedora, MS-DOS, Solaris, Unix, Ubuntu, Simbian,
entre muchos otros. Se pueden mencionar software como Controladores de
dispositivos, Herramientas de diagnóstico, Herramientas de Corrección y
Optimización, Servidores, Utilidades.

2. Software de Programación: Nos permite programar o desarrollar un


programa informático a través de uso de reglas lógicas y un lenguaje
específico, los cuales nos permiten darle forma al programa. De esta
manera, podemos crear una herramienta que nos ayude a resolver un
problema o realizar una actividad o tarea específica. Este tipo de software
se refiere a los editores de texto, compiladores, los intérpretes, depuradores
y los entornos de desarrollo integrados. Los ejemplos a mencionar son:
Android SDK, C, C++, Dremweaver, eXe, Java, Javascript, NET
Framework, MySQL, PSeInt, Python, Visual Basic, Pascal, PH, entre
muchos otros software de programación.

3. Software de Aplicación: Permiten realizar tareas específicas; este


software se enfoca en la resolución de un problema en particular y no como
lo hacen los software de sistema, en proporcionar un funcionamiento
general mucho más complejos. Programas que son usados a diario en un
ordenador por los usuarios, son de este tipo de software de aplicación. Aquí
entran en juego los procesadores de textos, los editores de audio o video,
las hojas de cálculo, las bases de datos, programas para comunicarse con
demás personas, navegadores web, reproductores de video o música,
antivirus y otros. Los ejemplos de programas de aplicación a nombrar son:
Adobe Editor, Apache Open Office, AVG Free Antivirus, Blog de notas,
CCleaner, FileLab Audio Editor, Flphoto, Freemake Video Converter,
Google Talk, Google Chrome, Libre Office, McAffe Antivirus, Microsoft Word
o Excel, Paint, Nero Wave Editor, OpenOffice Calc, PC Tool Internet
Security, Photoshop, Google Docs, Power Souns Editor, Skype, VLC Media
Player, Windows Movie Maker, y una gran infinidad más de software de
aplicación. Se mencionan de igual forma a los Software médicos, Software
de Cálculo numérico y simbólico, Bases de datos, Internet y toda su
estructura lógica, Software educativo o empresarial, Videojuegos y otros.
Características del Software

1. El software es un recurso intangible o que no se puede tocar, es la parte


lógica de un ordenador y el cual se basa en un lenguaje o sistema lógico
para realizar actividades; Un Sistema Operativo (como Windows, Linux,
Android, entre otros…) son Software; Programas de uso diario por parte del
usuario en el ordenador (como Navegadores web, Reproductores de audio
o video, Antivirus, entre otros…) son Software; Programas para crear
software o modificar los códigos fuentes (como Compiladores, los
Intérpretes u otros…) son Software “algunos por nombrar, PSeInt, Java,
eXe, Python, C, C++, y otros”.

2. El software se encarga de integrar y administrar los elementos del


hardware.
3. Debe contar con funcionabilidad o alto nivel de rendimiento.
4. Su fiabilidad va a depender en gran manera de la funcionalidad que el
software genere.
5. Tiene que ser compatible, es decir, fácil para ejecutar las acciones
necesarias para optimizar y acelerar el rendimiento del equipo.
6. Se puede transmitir un software de un equipo a otro sin mayor
inconveniente.
7. Existen diversos tipos de software a saber: de Sistema, de Programación y
de Aplicación.
8. El software no es un producto que se fabrica, debe ser desarrollado.
9. Todo software es evolutivo, ya que a medida que se avance en su uso, se
descubren potenciales y fallas en el sistema a resolver.
10. Todo software debe contar con un mantenimiento periódico, rentable,
óptimo y fácil de implementar, con el fin de agilizar el proceso.
11. El software se puede actualizar a medida que existan nuevas versiones del
mismo.

Cualidades o características
deseables para un software

1. Que sea correcto; un software es correcto si se comporta de acuerdo a su


especificación o que cumpla su objetivo por el que fue desarrollado.
2. Que sea confiable; un software se comporta de acuerdo con lo esperado
por el usuario.
3. Que sea robusto; un software es robusto si se comporta en forma razonable
aún en situaciones no anticipadas.
4. Que sea eficiente; es eficiente si usa recursos en forma económica.

5. Que sea amigable; si el usuario lo encuentra fácil de usar y de entender.


6. Que sea verificable; si sus propiedades pueden ser comprobadas.
7. Que sea reusable; que el programa o código fuente del mismo pueda
modificarse para ser reusado como una aplicación diferente, es decir, que
el código fuente sea modificable como para cambiar la especificación u
objetivo del programa por otro objetivo diferente.
8. Que sea portable; si pueden usarse y ejecutarse en distintos ambientes o
sistemas operativos.
9. Que sea interoperable; si puede coexistir y cooperar con otros sistemas.
10. Que sea seguro; un software que es resistente a ataques externos o virus
informáticos.

Factores de Calidad
del Software

Las posibilidades de que aparezca el fallo humano en el proceso de


desarrollo de software son enormes. Es complicado realizar un buen software, y
muchos de los productos que se construyen tienen calidad insuficiente, además de
no acertar con las estimaciones de tiempo y recursos inexactos para la
construcción de los mismos. Todos los métodos, herramientas y procedimientos
que constituyen la Ingeniería del Software van orientados a un único fin: producir
software de calidad.

Los factores de calidad del software sirven para descomponer el concepto


genérico de “calidad” en otros más sencillos, para facilitar su control y su medición.

Dado que la división en factores es una división subjetiva, existen varias


clasificaciones de los factores de calidad. Veremos la de McCall, que los agrupa
en tres perspectivas: operativa, de mantenimiento y evolutiva.

-Factores operativos de la calidad del software.


Los factores operativos son aquellos que afectan al uso del software:
a. Corrección: el software cumple las especificaciones.
b. Fiabilidad: grado en el que el software es confiable, es decir, no tiene
fallos.
c. Eficiencia: necesidad de recursos software y hardware del producto.
d. Seguridad: grado en el que puede controlarse el acceso al software y a los
datos.
e. Facilidad de uso: grado de esfuerzo necesario para utilizar el software.

-Factores de mantenimiento de la calidad del software.


Los factores de mantenimiento son aquellos que se aplican a la capacidad
de modificación del software:
a. Flexibilidad: esfuerzo necesario para modificar un programa.
b. Facilidad de prueba: esfuerzo requerido para realizar las pruebas de un
programa.
c. Facilidad de mantenimiento: esfuerzo requerido para localizar y reparar
un error.

-Factores evolutivos
Los factores evolutivos son aquellos que indican si el software se puede
trasladar con facilidad a otra máquina o a otro producto de base (SO, SGBD, etc.),
o incrementar sus prestaciones:
a. Portabilidad: facilidad para migrar el software de un entorno de operación
a otro.
b. Capacidad de reutilización: grado en el que un programa o parte del
mismo se puede utilizar en otras aplicaciones.
c. Capacidad de interoperación: esfuerzo necesario para que un software
opere conjuntamente con otros sistemas.

Ingeniería del Software

La ingeniería es el conjunto de conocimientos y técnicas cuya aplicación


permite la utilización racional de los materiales y recursos naturales, mediante
invenciones, construcciones u otras realizaciones provechosas para el hombre.

La Ingeniería del Software tiene varias definiciones:


1. Es el estudio de los principios y metodologías para desarrollo y
mantenimiento de sistemas de software.
2. 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 (funcionar) y mantenerlos. También se
conoce como desarrollo o producción de software.
3. 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.
4. La aplicación de un enfoque sistemático, disciplinado y cuantificable al
desarrollo, operación (funcionamiento) y mantenimiento del software; es
decir, la aplicación de ingeniería al software.

Importancia de la Ingeniería del Software

El desarrollo del software se ha convertido en una de las disciplinas más


importantes en la actualidad, y se encuentra avanzando a pasos agigantados, ya
que el consumo de productos software por parte de la sociedad es cada vez
mayor y la necesidad de dar soluciones a problemas cotidianos con la tecnología
se vuelve imprescindible. El software ayuda a las personas con las tareas, a
optimizar tiempos y hacer la vida más fácil. El software es aquel ente lógico que
hace funcionar a los dispositivos electrónicos; son secuencias de instrucciones
que le dicen a los dispositivos qué hacer, cómo y cuándo. El desarrollo de
software es realizado por personas amantes de la tecnología, comúnmente
llamados programadores.

El papel de la Ingeniería del Software, es que comprende todos los


aspectos de la producción del software, desde las etapas iniciales de la
especificación del producto, hasta el mantenimiento de éste, después de que se
utiliza. Es además un conjunto de métodos, la aplicación de un enfoque
sistemático, disciplinado y cuantificable al desarrollo, además ofrece herramientas
y técnicas que trascienden más allá de sólo la codificación del software y que es
sumamente importante para construir o mantener un software de calidad.
-Objetivos de la Ingeniería del Software:
1. Diseñar aplicaciones informáticas que se ajusten a las necesidades de las
organizaciones o de un cliente.
2. Dirigir y coordinar el desarrollo de aplicaciones complejas.
3. Intervenir en todas las fases del ciclo de vida de un producto o software.
4. Estimar los costes de un proyecto y determinar los tiempos de desarrollo
del mismo.
5. Hacer seguimiento de los costes y plazos.
6. Dirigir equipos de trabajo de desarrollo de software.
7. Organizar la realización de pruebas que verifiquen el correcto
funcionamiento de los programas y que se ajustan a los requisitos de
análisis y diseño.
8. Diseñar, construir y administrar bases de datos.
9. Dirigir y asesorar a los programadores durante el desarrollo de aplicaciones
o software.
10. Introducir procedimientos de calidad de los sistemas, evaluando métricas e
indicadores y controlando la calidad de software producido.
11. Organizar y supervisar el trabajo de su equipo de técnicos de
mantenimiento y los ingenieros de sistemas y redes.

Visión general del Proceso


de Desarrollo de Software

Un proceso de desarrollo de software tiene como propósito la producción


eficaz y eficiente de un producto software que reúna los requisitos del cliente, son
las actividades requeridas para desarrollar un sistema de software de alta calidad
y proporciona el marco de trabajo desde el cual se puede establecer un plan
detallado para el desarrollo del software, actividades como diseño, validación,
evolución y especificación.
El papel del usuario dentro del proceso
de desarrollo de software

El rol “Función que alguien o algo cumple” que uno o más usuarios
desempeñan dentro del desarrollo de un Sistema de Información es de suma
importancia, ya que los sistemas se desarrollan para satisfacer las necesidades
particulares del o los clientes; los roles son necesarios para cubrir todas las
especificaciones necesarias para cumplir un proceso, ya que no todos tienen las
mismas cualidades y experiencias, por lo que al asignar roles, se definen objetivos
y actividades únicas para cada usuario, evitando que alguna actividad no sea
asignada o que dos personas realicen el mismo trabajo (en esta última puede
haber excepciones).
Los roles para el Proceso de Desarrollo de Software se asignan de acuerdo
a las capacidades de cada persona, así como también su especialización,
experiencia e interés. El Software o programa se construye y se desarrolla en
equipo. Los roles más comunes son:
1. Gerente de proyecto: Tiene por función presentar informes sobre
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.
2. Analista de requerimientos: Se encarga del revelamiento de los
requerimientos esenciales para el Desarrollo de 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.
3. Desarrollador de Software o programador: Encargado de la concepción
y el diseño, escribe el código, prueba lo que construye y se encarga de
hacer el mantenimiento del código.

4. Testeador: Diseña y ejecuta las pruebas, para ello requiere conocer el


producto a probar claro esta, estudiar funcionalidad del producto y
desarrollar las pruebas que revelen incidentes críticos. Reporta los
incidentes y provee información sobre la calidad del sistema.
5. 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. Debe ser una persona con un innato sentido de
liderazgo, dispuesto a forma a los integrantes del equipo, dispuesto a recibir
y aplicar abiertamente recomendaciones.

Se consiguen esos y entre varios roles más en el Proceso de Desarrollo de


Software…

Responsabilidad ética y profesional


en Ingeniería del Software

La Ingeniería del Software se lleva a cabo dentro de un marco legal y social


que limita la libertad de los ingenieros. Los ISW “Ingenieros de Software” deben
aceptar que su trabajo comprende responsabilidades más amplias que
simplemente la aplicación de habilidades técnicas; Deben comportarse de una
forma ética y moral responsable; no basta con poseer estándares normales de
honestidad e integridad; no deben usar su capacidad y habilidades para
comportarse de forma deshonesta o de forma que deshonre la profesión de la
Ingeniería del Software. Existen áreas donde los estándares de comportamiento
aceptable no están acotados por las leyes, sino por la responsabilidad profesional.

Algunas de éstas son:


-Confidencialidad: Respetar la confidencialidad de sus empleadores o clientes,
independientemente de que se haya firmado un acuerdo formal de
confidencialidad.
-Competencia: No debe falsificar su nivel de competencia, ni aceptar
conscientemente trabajos que están fuera de su capacidad.
-Derechos de propiedad intelectual: Debe ser consciente de las leyes locales
que gobiernan el uso de la propiedad intelectual, como las patentes y el copyright.
Debe asegurarse de que la propiedad intelectual de los empleadores y clientes
está protegida.
-Uso inapropiado de las computadoras: No debe emplear sus habilidades
técnicas para utilizar la forma inapropiada las computadoras de otras personas.
Desde los relativamente triviales (ejemplo: utilizar juegos en la máquina de un
empleado) hasta los extremadamente serios (difusión de virus informáticos).

Ciclo de vida del software


Este término “ciclo de vida del software” describe el desarrollo de software,
desde la fase inicial hasta la fase o etapa final. El propósito de este programa o
modelo es definir las distintas fases intermedias que se necesitan para validad el
desarrollo de la aplicación, en otras palabras, para garantizar que el software
cumpla los requisitos o deseos del usuario o cliente y verificar los procedimientos
de desarrollo de una manera más organizada, asegurándose de que los métodos
utilizados sean los indicados o apropiados. Este modelo “ciclo de vida del
software” permite que se detecten los errores lo antes posible y que por lo tanto
ayude a los desarrolladores a concentrarse en la calidad del software, en los
plazos de tiempo de la implementación y en los costos asociados. Ya que es muy
costoso rectificar los errores que se detecten tarde en el programa o software
durante la fase de implementación o codificación, pues para esto se tiene muy en
cuenta usar dicho modelo.

Las etapas del anterior modelo son:


1. Definición de necesidades: En esta etapa solo se distinguen todos los
requerimientos o necesidades que pide el o los clientes. Se refiere a todas
las tareas relacionadas con la determinación de las necesidades o de las
condiciones a satisfacer para un software nuevo o modificado, tomando en
cuenta los diversos requisitos de las partes interesadas “como de o los
clientes con los programadores o desarrolladores”. Aquí es donde el cliente
puede mostrar el resultado final de cómo quiere que quede el software,
pero no sabe cómo serán los procedimientos para llegar al final, y es
posible que no tenga una metodología de desarrollo clara para ello.
2. Análisis: Una vez se haya recopilado los requisitos del cliente, pues se
realiza un análisis o estudio de los requisitos o necesidades del cliente,
para que el equipo se decida por alguna metodología de desarrollo, y por
consiguiente esta serie de factores, son los que regirán el nuevo sistema o
darán los cambios a introducir en un antiguo sistema o software;
Simplemente en esta etapa se definen los requerimientos y funcionalidades
que debe tener el software al final de todo el proceso de desarrollo;
mediante el trabajo conjunto de desarrolladores, los estudios de mercado y
por supuesto con el contacto con el cliente, todo esto para obtener un
software de calidad.

3. Diseño: Se busca determinar el cómo funcionará de forma general el


sistema. Consiste en incorporar consideraciones de la implementación
tecnológica, como el hardware, la red, entre otros. Se definen los casos de
uso para cubrir las funciones que realizará el sistema. En otras palabras,
esta fase se trata del desarrollo del diseño o el cómo va a lucir el sistema
informático o software, lo cual debe satisfacer los requerimientos, peticiones
o funcionalidades del cliente sobre el programa; se determina qué va a
hacer el sistema y se identifican las entradas (Input), salidas (Output),
archivos, programas, procedimientos, controles del sistema, los menús y
demás factores que conformarán el software de manera visual

4. Codificación: Se refiere a la “programación”, donde los desarrolladores o


programadores toman los requerimientos o funcionalidades que tienen
pensado agregar al sistema software y los transforman a un código fuente;
el lenguaje de programación elegido en la fase del diseño, se transforma a
un código fuente, de tal manera que un equipo computacional pueda leerlo
e interpretarlo como un programa o software ejecutable con distintas
especificaciones, objetivos o tareas. Básicamente es la parte donde los
programadores empiezan a codificar o desarrollar el sistema que se
necesita.

5. Pruebas: Una vez el sistema se vaya desarrollando, se deberán hacer


ciertas pruebas conforme se avance. Para culminar el desarrollo y
codificación total del software, se debe asegurarse mediante pruebas, que
el sistema no presente errores o fallas, si le faltan detalles o no por agregar
o quitar, por lo que todo esto facilita a que se culmine la codificación de
manera exitosa, con el menor costo posible de tiempo y dinero, para así
obtener un software de calidad.
6. Validación: Es el proceso de comprobar que lo que se ha especificado
(funcionalidades u objetivos) para el programa, sea lo que el cliente
realmente quería desde un principio o se asemeje a ello.

7. Mantenimiento y evolución: El mantenimiento, se trata de una actividad


de corrección de errores, mejoras de las capacidades, eliminación de
funciones obsoletas o agregación de nuevas funciones y elementos,
optimización del software. Debido a que el cambio, actualización o
evolución con el paso del tiempo es inevitable, se debe realizar una
evaluación del sistema, para encontrar errores, opciones, menús o
apartados obsoletos y prácticamente ya innecesarios de tenerlos en el
sistema software; El propósito de todo esto, es preservar el valor del
software por mucho más tiempo, por medio de los factores ya mencionados
anteriormente (el diagnóstico y corrección de errores, el implementar
nuevas funciones o elementos y cambiar antiguas), como de hacer más
sencillo su uso y disponibilidad en distintos Sistemas Operativos o
versiones variantes de estos; sencillamente hacer que el programa
evolucione conjunto a las actualizaciones de los Sistemas Operativos que
se hagan durante años posteriores y funcione de manera constante.

Principios, modelos, métodos, metodologías, técnicas, actividades y


herramientas en el proceso de desarrollo de software

-Principios: Los principios en el proceso de desarrollo de software, son una serie


de valores y reglas que sirven como guía para el desarrollador, para cuando se
analiza un problema, se diseña una solución a un problema informático, se
implementa y se prueba dicha solución, para que al final se pueda entregar un
software de calidad a la comunidad de usuarios o un cliente como tal. Los
principios pueden ser:
1. Mayor prioridad a satisfacer al cliente mediante la entrega temprana y
continua de software con valor.
2. Aceptar que los requisitos cambian, incluso en etapas tardías del desarrollo.
Los procesos ágiles aprovechan el cambio para proporcionar ventaja
competitiva al cliente.
3. Entregar software funcional frecuentemente, entre dos semanas y dos
meses, con preferencia al periodo de tiempo más corto posible.
4. Los responsables de negocio y desarrolladores trabajamos juntos de forma
cotidiana durante todo el proyecto.
5. Los proyectos se desarrollan entorno a individuos motivados. Hay que
darles el entorno y el apoyo que necesitan, y confiarles la ejecución del
trabajo.

6. El método más eficiente y efectivo de comunicar información al equipo de


desarrollo y entre sus miembros es la conversación cara a cara.
7. El software funcional es la medida principal de progreso.
8. Los procesos ágiles promueven el desarrollo sostenible. Los promotores,
desarrolladores y usuarios debemos ser capaces de mantener un ritmo
constante de forma indefinida.
9. La atención continua a la excelencia técnica y al buen diseño, mejora la
agilidad.
10. La simplicidad, o el arte de maximizar la cantidad de trabajo no realizado,
es esencial.
11. Las mejores arquitecturas, requisitos y diseños emergen de equipos auto-
organizados.
12. A intervalos regulares, el equipo reflexiona sobre cómo ser más efectivo
para ajustar y perfeccionar su comportamiento en consecuencia.

-Modelos: Los modelos de desarrollo de software; Hay varios modelos para


perfilar el proceso de desarrollo, cada uno cuenta con pros y contras. El proyecto o
el equipo que trabaja en un software deberá escoger el modelo más apropiado
como para satisfacer las necesidades del cliente o requerimientos a agregar en el
software. Los modelos pueden ser:
1. Modelo de cascada: El modelo de cascada o clásico muestra un proceso
donde los desarrolladores han de seguir las siguientes etapas mostradas en
la imagen (desde requisitos del sistema hasta operaciones y
mantenimiento).
El modelo cascada es denominado así por la posición de las etapas o fases
en el desarrollo de esta, que parecen caer en cascada “por gravedad” hacia las
siguientes fases; es el enfoque metodológico que ordena rigurosamente las etapas
del proceso de desarrollo de software, de tal forma que el inicio de cada etapa
debe esperar a la finalización de la anterior (las etapas son procesadas de manera
lineal o en orden). Al final de cada etapa, el modelo está diseñado para llevar a
cabo una revisión final, que se encarga de determinar si el proyecto está listo para
avanzar a la siguiente fase. Este modelo fue el primero en originarse y es la base
de todos los demás modelos de ciclo de vida del software; Fue propuesto por
Winston Royce en 1970.

2. Modelo de espiral: Fue definido por primera vez por Barry Boehm en 1986,
utilizado generalmente en la Ingeniería del Software. Las actividades de
este modelo se conforman en una espiral, en la que cada bucle o iteración
representa un conjunto de actividades. Las actividades no están fijadas a
ninguna prioridad, sino que las siguientes se eligen en función del análisis
de riesgo, comenzando por el bucle anterior.
3. Modelo V: Define un procedimiento uniforme para el desarrollo de
productos para las TIC. Fue desarrollado para regular el Proceso de
Desarrollo de Software por la Administración Federal Alemana. Describe las
actividades y los resultados que se producen durante el desarrollo de
software. Tiene como propósito definir las distintas fases intermedias que
se requieren para validar el desarrollo de la aplicación, es decir, para
garantizar que el software cumpla los requisitos para la aplicación y
verificación de los procesos de desarrollo; se asegura que los métodos
usados sean los apropiados. Fue diseñado por Alan Davis.
4. Prototipos: Pertenece a los modelos de desarrollo evolutivo. El prototipo
debe ser construido en poco tiempo, usando los programas adecuados y no
se debe usar muchos recursos. El diseño rápido se centra en una
representación de aquellos aspectos del software que serán visibles para el
cliente o usuario final. Este diseño conduce a la construcción de un
prototipo, el cual es evaluado por el cliente para una retro alimentación;
gracias a ésta se refinan los requisitos del software que se desarrollará. La
interacción ocurre cuando el prototipo se ajusta para satisfacer las
necesidades del cliente; esto permite que al mismo tiempo el desarrollador
entienda mejor lo que se debe hacer y el cliente vea resultados a corto
plazo.

5. Proceso Unificado de Desarrollo: marco de trabajo extensible que puede


ser adaptado a organizaciones o proyectos específicos. De la misma forma,
el Proceso Unificado de desarrollo, también es un marco de trabajo
extensible, por lo que muchas veces resulta imposible decir si un
refinamiento particular del proceso ha sido derivado del Proceso Unificado o
del RUP. Por dicho motivo, los dos nombres suelen utilizarse para referirse
a un mismo concepto.
-Métodos:
Los métodos abarcan un grupo de tareas que incluyen definición de
necesidades o requerimientos, análisis de requisitos o de requerimientos, diseño,
codificación o desarrollo de software, pruebas, validación, mantenimiento y
evolución. Estos métodos dependen de un conjunto de principios básicos que
gobiernan cada área de la tecnología e incluyen actividades de modelado y otras
técnicas descriptivas.

-Metodologías:
Un proceso de software detallado y completo suele denominarse
“Metodología”. Las metodologías se basan en una combinación de los modelos de
proceso genéricos (cascada, evolutivo, espiral, incremental, modelo-V, entre
otros.). Adicionalmente una metodología debería definir con precisión los
artefactos, roles y actividades involucrados, junto con prácticas y técnicas
recomendadas, guías de adaptación de la metodología al proyecto, guías para uso
de herramientas de apoyo, etc. Habitualmente se utiliza el término “método” para
referirse a técnicas, notaciones y guías asociadas, que son aplicables a una (o
algunas) actividades del proceso de desarrollo, por ejemplo, suele hablarse de
métodos de análisis y/o diseño.
La comparación y/o clasificación de metodologías no es una tarea sencilla
debido a la diversidad de propuestas y diferencias en el grado de detalle,
información disponible y alcance de cada una de ellas. A grandes rasgos, si
tomamos como criterio las notaciones utilizadas para especificar artefactos
producidos en actividades de análisis y diseño, podemos clasificar las
metodologías en dos grupos: Metodologías Estructuradas y Metodologías
Orientadas a Objetos. Por otra parte, considerando su filosofía de desarrollo,
aquellas metodologías con mayor énfasis en la planificación y control del proyecto,
en especificación precisa de requisitos y modelado, reciben el apelativo de
Metodologías Tradicionales (o también denominada Metodologías Pesadas, o de
Peso Pesado). Otras metodologías, denominadas Metodologías Ágiles, están más
orientadas a la generación de código con ciclos muy cortos de desarrollo, se
dirigen a equipos de desarrollo pequeños, hacen especial hincapié en aspectos
humanos asociados al trabajo en equipo e involucran activamente al cliente en el
proceso.
Las metodologías a explicar son:
1. Metodologías Estructuradas: Las metodologías estructuradas
comenzaron su desarrollo a finales de los años 70 con la Programación
Estructurada; a mediados de los 70 aparecieron técnicas para el Diseño
(por ejemplo: el Diagrama de Estructura), primero y posteriormente para el
Análisis (por ejemplo: Diagrama de Flujo de Datos). Estas metodologías
son particularmente apropiadas en proyectos que se usan para la
implementación de lenguajes de 3ra (tercera) y 4ta (cuarta) generación.

2. Metodologías Orientadas a Objetos: Su historia va unida a la evolución


de los Lenguajes de Programación Orientada a Objetos, los más
representativos: a fines de los años 60 SIMULA, a fines de los años 70
Smalltalk-80, la primera versión de C++ por Bjarne Stroustrup en 1981 y
actualmente Java11 o C# de Microsoft. A fines de los años 80, comenzaron
a consolidarse algunos métodos Orientados a Objetos. En 1995 Booch y
Rumbaugh proponen el Método Unificado con la ambiciosa idea de
conseguir una unificación de sus métodos y notaciones, que posteriormente
se reorienta a un objetivo más modesto, para dar lugar al Unified Modeling
Language (UML)12, la notación OO (Orientada a Objetos) más popular en
la actualidad.

3. Metodologías Tradicionales: Las metodologías Tradicionales son aquellas


que están guiadas por una fuerte planificación durante todo el proceso de
desarrollo; estas de igual forma se pueden denominar Metodologías No
Ágiles o Metodologías Pesadas, donde se realiza una intensa fase de
análisis y diseño antes de la construcción del sistema, procesos rigurosos
con abundante documentación y formalismo, pensada para garantizar la
calidad a la hora de fabricar aplicaciones y sistemas muy sofisticados de
software. Entre estas metodologías, se encuentran las más populares como
el Rational Unified Process (RUP) o también Microsoft Solutions Framework
(MSF), que centran su atención en mantener una documentación
exhaustiva del proyecto y cumplir con el plan previsto y definido con
precisión en la fase inicial del desarrollo del proyecto. Estas metodologías
suelen enfatizar la documentación, planificación y seguimiento riguroso de
múltiples actividades (mediante plantillas, técnicas de administración,
revisiones formales, entre otros.)

4. Metodologías Ágiles: Son aquellas que permiten adaptar la forma de


trabajo a las condiciones del proyecto, consiguiendo flexibilidad e
inmediatez en la respuesta para amoldar el proyecto y su desarrollo a las
circunstancias específicas del entorno. Las empresas apuestan por esta
metodología, porque consiguen gestionar sus proyectos de forma eficaz,
reduciendo costes e incrementando productividad. La misma mejora la
motivación e implicación del equipo programador (escuchando las
opiniones de los programadores), mejoran la satisfacción del cliente
(escuchando las opiniones del cliente y mostrándole avances constantes
del proyecto), ahorra tiempo en costes (con la metodología ágil se toma
mucho en cuenta el mantenerse dentro del presupuesto requerido y del
tiempo de entrega del software), se trabaja con mayor velocidad y eficiencia
(cada cierto periodo de tiempo corto se entrega un avance del proyecto en
una versión funcional para recibir comentarios u opiniones del cliente y
compañeros programadores, de modo que se permita corregir errores e
implementar mejoras), se eliminan características innecesarias del
software; entre otros factores que conforman dicha metodología.
Básicamente son procesos que tienen en cuenta la interacción directa con
el cliente, desarrollando y entregando avances parciales del trabajo o software
hasta tener la versión final del mismo.

-Técnicas para el Desarrollo de Software.

La recolección de datos es una técnicas y herramientas que pueden ser


utilizadas por el analista para desarrollar los sistemas de información, los cuales
pueden ser la entrevistas, la encuesta, el cuestionario, la observación, el diagrama
de flujo y el diccionario de datos.

El análisis de costo-beneficio es una técnica analítica que enumera y


compara el costo neto de una intervención con los beneficios que surgen como
consecuencia de aplicar dicha intervención. Para esta técnica, los costos y los
beneficios de la intervención se expresan en unidades monetarias.
-Actividades más comunes en el Proceso del Desarrollo del Software:
1. Definición de necesidades o requerimientos.
2. Análisis de requerimientos; el Diseño y la Planificación.
3. Implementación o Codificación.
4. Pruebas del Software o Testeos del programa.
5. Documentación y Validación.
6. Entrenamiento o prácticas.
7. Despliegue, distribución o entrega del software.
8. Mantenimiento del Software y evolución o actualizaciones del software.

-Herramientas para el Desarrollo de Software.

Las Herramientas de Ayuda al Desarrollo de Sistemas de Información,


surgieron para intentar dar solución a los problemas inherentes a los proyectos de
generación de aplicaciones informáticas: plazos y presupuestos incumplidos,
insatisfacción del usuario, escasa productividad y baja calidad de los desarrollos.
Algunas de estas herramientas se dirigen principalmente a mejorar la calidad,
como es el caso de las herramientas CASE (Computer Aided Software
Engineering-Ingeniería de Software Asistida por Ordenador). Otras van dirigidas a
mejorar la productividad durante la fase de construcción, como es el caso de los
lenguajes de cuarta generación (4GL-Fourth Generation Language). Una
herramienta de Desarrollo de Software es un programa informático que usa un
programador para crear, depurar, gestionar o mantener un programa.

-.Herramientas para desarrollar software.

Algunas herramientas por mencionar que sirven para el desarrollo de


software son: GitHub, GitLab, IntelliJ IDEA, Jira, Jenkins, Node.js, Linx, AWS
CLoud9, Atom, PowerBuilder, Microsoft Visual Studio, Codeanywhere, Sublime
Text 3, Brackets, CodeSanbbox Live, Java SDK, NetBeans, Delphi, Velneo,
GeneXus, WinDev,
-.Herramientas para diseñar software.

a. Existe diversas herramientas para diseñar software como por


ejemplo: MagicDraw, Papyrus UML, Modelio, ArgoUML, StarUML,
Gliffy, Lucidchart, IBM Rational Rhapsody, Microsoft Visio.
b. El nivel de avance entre una y otra es notable, casi todas ofrecen
como funcionalidad: Diagramas de caso de uso; Diagramas de
clases; Diagramas de secuencia.
c. Generación de código en Java, C++, Python y PHP.
d. Algunas entidad-relación (pero ninguna lo suficientemente
avanzada).
e. Pocas herramientas permiten ingeniería reversa, y si lo hacen solo
es de lenguajes tipo Java o C++.

-Selección del modelo apropiado según las características de los proyectos


de software.

Cuando se busca gestionar un proyecto de software, pues lo primero que se


debe hacer es la respectiva selección del modelo o metodología para el proyecto
de software o el desarrollo del mismo. Al emprender en la gestión de un proyecto
de software, siempre surge la duda recurrente de cuál es la herramienta software
que mejor se adaptaría a tus necesidades, por lo que se tienen en cuenta estas
consideraciones:
1. Apuesta por una herramienta ágil. Los procesos van deprisa, la
información fluye como nunca antes y es necesario estar a la altura o
acercarse al nivel de otros proyectos informáticos ejemplares; por lo que
irse a escoger una herramienta o modelo ágil, sería lo adecuado para los
que comienzan en un proyecto de software.
2. Tener en cuenta que sea de fácil acceso para tu equipo de trabajo. Es
de asegurarse que el modelo tenga una pauta común y resulte lo
suficientemente precisa y sencilla de usar. Si, por el contrario, es ambigua y
tiene restricciones para su acceso, seguramente no es la más apropiada.
3. Fijarse en su grado de adaptabilidad. Como todo va deprisa, también es
importante que se observe el grado de adaptabilidad de la herramienta o
modelo. De ahí surgen las preguntas de: ¿Seguirá vigente en los próximos
años? ¿Permite realizar los cambios que el contexto exige? ¿Ofrece
opciones innovadoras o actuales?.
4. Analiza las necesidades del proyecto. Muchos proyectos fracasan al no
ser compatibles con los software de gestión. Esto es debido a que la
herramienta no puede dar respuesta a lo que el proyecto necesita. Antes de
cualquier decisión al respecto, hay que fijarse en que haya compatibilidad
en ambos elementos.

También podría gustarte