Logo Studenta

NORMA ISO

¡Estudia con miles de materiales!

Vista previa del material en texto

ACTIVIDADES, TAREAS, TRABAJOS QUE SE REALIZAN. 
• La norma ISO 12207 establece un marco de trabajo común para la 
ingeniería del software, a lo largo de todo el ciclo de vida del producto. 
• Objetivo de la norma ISO 12207. Este estándar tiene como objetivo 
principal proporcionar una estructura común para que compradores, 
proveedores, desarrolladores, personal de mantenimiento, operadores, 
gestores y técnicos involucrados en el desarrollo de SOFTWARE usen 
un lenguaje común. 
Principales principios de la norma ISO 12207 
 LOS PROCESOS PRIMARIOS: 
• Procesos de adquisición: Este proceso define las actividades y tareas 
del cliente que adquiere un producto de software o servicio por contrato, 
que puede ser el servicio completo o una parte de este. El cliente 
presenta las necesidades de los usuarios, este proceso comienza con la 
definición de esta necesidad, continua con la preparación y emisión de 
una solicitud de propuesta, la selección de un proveedor y la gestión del 
proceso de adquisición a través de la aceptación del sistema. Entonces 
este proceso consta de las siguientes actividades, junto a las tareas 
específicas: Iniciación, solicitud de preparación de propuesta, 
elaboración y actualización del contrato, monitoreo del proveedor y, 
aceptación y finalización. Las 3 primeras se producen antes del acuerdo 
y las últimas 2 después del acuerdo 
• Suministro. Este proceso contiene las actividades y tareas del 
proveedor. Se compone de las siguientes actividades: Iniciación, 
preparación de la respuesta, contrato, planificación, ejecución y control, 
revisión y evaluación y, entrega y terminación. Puede ser iniciado por la 
decisión de preparar una propuesta para responder a la petición de un 
cliente o mediante la firma de un acuerdo con el comprador para 
proporcionar un servicio. El servicio puede ser el desarrollo de un 
producto de software, la operación de un sistema con un software o el 
mantenimiento de un producto. Luego de esto continua con la 
identificación de los procedimientos y los recursos necesarios para 
gestionar y asegurar el servicio, incluido el desarrollo y ejecución de los 
planes a través de la entrega al cliente. 
• Desarrollo. 
• Explotación. 
• Mantenimiento. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
SEPARACION DE ENTORNOS: 
• Desarrollo: ambiente donde residen todos los recursos informáticos 
necesarios para efectuar tareas de análisis y programación en sus 
etapas de desarrollo, mantenimiento y prueba. 
• Testing: ambiente para efectuar las pruebas integrales con los usuarios. 
• Producción: ambiente de uso de los usuarios finales para el 
procesamiento de los datos reales operativos. 
 
PROCEDIMIENTO DE PASO A PRODUCCION 
Mencionen algunas actividades relacionadas: 
• Subir cambios a testing. 
• Aprobar los cambios. 
• Subir a producción. 
• Planificar la puesta en producción. 
• Capacitar usuarios. 
• Comunicar corte de servicio. 
• Comunicar corte de servicio. 
• Realizar respaldos (de aplicación y de datos). 
• Rollback. 
• Versionado. 
• Etc. 
 
 
La importancia de separar los ambientes de trabajo en el desarrollo de los 
productos de software 
En el desarrollo de los productos de software intervienen diversas etapas, una 
de ellas es la codificación de los requerimientos funcionales y no funcionales, 
conocida como desarrollo; posteriormente es la revisión del cumplimiento de 
dichos requerimientos en el software y la usabilidad que muestra para los 
usuarios, que se conoce como aseguramiento de la calidad o pruebas. Por 
último, es puesto en operación para brindar un servicio a los usuarios que lo 
utilizarán. 
Para la ejecución de las actividades que comprenden las etapas antes 
mencionadas, se ocupan espacios de trabajo donde los equipos de desarrollo y 
pruebas puedan llevarlas a cabo, así como uno donde pueda operar el sistema 
o aplicación, conocidos como ambientes de trabajo, dentro de un servidor o 
ambiente virtual. 
El ambiente de desarrollo se usa para integrar el código de los diferentes 
componentes del equipo de programación, así como los elementos que forman el 
sistema de información o aplicación, como son: lenguajes, librerías, frameworks, base 
de datos, entre otros. De igual manera, se puede hacer uso de herramientas que 
apoyen al entorno de desarrollo, como, por ejemplo, el Subversion o el GitLab, que 
ayudan a gestionar el código fuente, para el control de versiones y su reutilización. 
Por otro lado, el ambiente de pruebas tendrá las mismas características de 
configuración y recursos que el ambiente de trabajo anterior, pero aquí se despliegan 
las versiones estables del sistema o aplicación para que el equipo de pruebas realice 
las verificaciones de calidad pertinentes, por ejemplo: pruebas de funcionalidad, 
usabilidad, entre otras, para su mejora o corrección, sin interferir con las actividades 
de trabajo del equipo de desarrollo. Otra actividad que se realiza en este ambiente son 
las pruebas de seguridad, para verificar que no existan vulnerabilidades que 
comprometan su integridad y disponibilidad, así como verificar el impacto de su 
mitigación en el sistema o aplicación. 
En algunos casos, se puede considerar un ambiente de preproducción, sobre todo si 
se hará una actualización de un sistema o aplicación que ya esté en producción. Este 
es una versión parecida del ambiente final que se tendrá en operación, en cuanto a 
plataforma, aplicación y recursos de hardware. Su finalidad es la de probar 
actualizaciones del sistema, realizar pruebas de carga y desempeño, así como la 
validación de la seguridad, realizándose la afinación del ambiente en cuanto a 
parámetros a nivel del sistema operativo y de las herramientas utilizadas, como: 
Apache, Tomcat, Framework: CakePHP, Laravel, Spring, entre otros, y los ajustes 
necesarios de seguridad al sistema o aplicación. En este ambiente se verifican los 
criterios definidos para su puesta a producción, también se puede utilizar para validar 
los cambios solicitados al sistema o aplicación, así como a configuraciones en los 
ambientes de producción y poder observar comportamientos anómalos que pudieran 
presentarse, realizándose los ajustes que se requieran. 
Por último, el ambiente de producción es el espacio donde operará el sistema o 
aplicación, es decir, es donde se hace uso del servicio por parte de los usuarios 
finales. Aquí se realizan los ajustes a los elementos necesarios para mantener la 
disponibilidad del servicio y se programan los respaldos del ambiente. 
De acuerdo con lo anterior, se recomienda gestionar diferentes ambientes o entornos 
de trabajo en los servidores o equipos virtuales, para el desarrollo, pruebas y puesta 
en producción de los sistemas de información, debido a que cada equipo de trabajo 
requiere ciertas características específicas en cuanto a la configuración y recursos de 
cada uno. 
Cabe señalar, que al utilizar un mismo ambiente de trabajo para desarrollo y pruebas 
puede afectarse el trabajo llevado a cabo por cada equipo, por ejemplo, al moverse el 
código que están desarrollando o modificando los programadores, pueden resultar 
afectadas las actividades de pruebas que se estén realizando al mismo tiempo, 
presentándose errores en la funcionalidad. 
Así mismo, si el sistema ya está en producción y se están llevando a cabo cambios en 
la funcionalidad o configuración y/o efectuando pruebas de carga – desempeño, puede 
verse afectada la operación del servicio, lo cual da una mala imagen y crea 
desconfianza en cuanto a su utilidad. 
Por ello, es importante mantener separados los ambientes de trabajo: desarrollo, 
pruebas y producción como una buena práctica. 
Sin embargo, no necesariamente se tiene que tener un servidor físico por cada 
ambiente, como una alternativa a ello, se pueden virtualizar los servidores físicos con 
el uso de herramientas, algunas de las cuales son de licenciamiento comercial y otras 
de licencia pública. Para poder utilizarlase requiere que el equipo soporte la 
tecnología de virtualización, en Intel recibe la denominación VT-x y en AMD conocida 
como AMD-V, además se aconseja disponer al menos de un servidor de mediana 
capacidad (8 núcleos, 64 GB RAM) para implementar al menos 2 o 3 máquinas 
virtuales. 
El hacer uso de la virtualización permite a los administradores aprovechar mejor la 
capacidad de los servidores, reduce el tiempo de inactividad, ahorra energía, reduce 
tiempos de recuperación o de instalación, al hacer respaldos de las máquinas virtuales 
o clonar ambientes. 
Una de estas herramientas es el dúo KVM-Qemu, donde KVM es el software para 
implementar la virtualización en Linux, y Qemu es el hipervisor, el cual tiene una 
Licencia Pública General de GNU, por lo que se puede usar sin un costo, y se 
encuentra en diversas distribuciones de Linux: CentOS, Fedora, Debian, Ubuntu, por 
citar algunas. 
Otra de las ventajas de esta herramienta, es que tiene la capacidad de ejecutar 
múltiples sistemas operativos simultáneamente: Windows y Linux, además al ser parte 
del kernel de Linux, KVM obtiene correcciones de errores y actualizaciones de 
seguridad a medida que la distribución de Linux utilizada publica nuevas versiones. 
Como conclusión, se puede observar la importancia de mantener separados los 
ambientes de desarrollo, pruebas y producción para no afectar el trabajo entre los 
equipos, y en el caso de los usuarios finales no se afecte su acceso y utilización del 
sistema o aplicación, con la consecuente molestia y/o pérdida de confianza en el 
servicio.

Continuar navegando

Contenido elegido para ti

5 pag.
Norma ISO 12207

SIN SIGLA

User badge image

Gimena Arias