jueves, 26 de agosto de 2010

MODELO

CICLO DE VIDA

Ciclo de vida del software
El término ciclo de vida del software describe el desarrollo de software, desde la fase inicial hasta la fase final. El propósito de este programa es 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 procedimientos de desarrollo: se asegura de que los métodos utilizados son apropiados.

Estos programas se originan en el hecho de que es muy costoso rectificar los errores que se detectan tarde dentro de la fase de implementación. El ciclo de vida permite que los errores se detecten lo antes posible y por lo tanto, permite a los desarrolladores concentrarse en la calidad del software, en los plazos de implementación y en los costos asociados.

El ciclo de vida básico de un software consta de los siguientes procedimientos:

•Definición de objetivos: definir el resultado del proyecto y su papel en la estrategia global.
•Análisis de los requisitos y su viabilidad: recopilar, examinar y formular los requisitos del cliente y examinar cualquier restricción que se pueda aplicar.
•Diseño general: requisitos generales de la arquitectura de la aplicación.
•Diseño en detalle: definición precisa de cada subconjunto de la aplicación.
•Programación (programación e implementación): es la implementación de un lenguaje de programación para crear las funciones definidas durante la etapa de diseño.
•Prueba de unidad: prueba individual de cada subconjunto de la aplicación para garantizar que se implementaron de acuerdo con las especificaciones.
•Integración: para garantizar que los diferentes módulos se integren con la aplicación. Éste es el propósito de la prueba de integración que está cuidadosamente documentada.
•Prueba beta (o validación), para garantizar que el software cumple con las especificaciones originales.
•Documentación: sirve para documentar información necesaria para los usuarios del software y para desarrollos futuros.
•Implementación
•Mantenimiento: para todos los procedimientos correctivos (mantenimiento correctivo) y las actualizaciones secundarias del software (mantenimiento continuo).
El orden y la presencia de cada uno de estos procedimientos en el ciclo de vida de una aplicación dependen del tipo de modelo de ciclo de vida acordado entre el cliente y el equipo de desarrolladores





Modelos de ciclo de vida
Para facilitar una metodología común entre el cliente y la compañía de software, los modelos de ciclo de vida se han actualizado para reflejar las etapas de desarrollo involucradas y la documentación requerida, de manera que cada etapa se valide antes de continuar con la siguiente etapa. Al final de cada etapa se arreglan las revisiones de manera que (texto faltante).

Modelo en cascada
El modelo de ciclo de vida en cascada comenzó a diseñarse en 1966 y se terminó alrededor de 1970. Se define como una secuencia de fases en la que al final de cada una de ellas se reúne la documentación para garantizar que cumple las especificaciones y los requisitos antes de pasar a la fase siguiente:


Modelo V

LICENCIA

Una licencia de software es un contrato entre el licenciante (autor/titular de los derechos de explotación/distribuidor) y el licenciatario del programa informático (usuario consumidor /usuario profesional o empresa), para utilizar el software cumpliendo una serie de términos y condiciones establecidas dentro de sus cláusulas.

Las licencias de software pueden establecer entre otras cosas: la cesión de determinados derechos del propietario al usuario final sobre una o varias copias del programa informático, los límites en la responsabilidad por fallos, el plazo de cesión de los derechos, el ámbito geográfico de validez del contrato e incluso pueden establecer determinados compromisos del usuario final hacia el propietario, tales como la no cesión del programa a terceros o la no reinstalación del programa en equipos distintos al que se instaló originalmente.


Una de las más utilizadas es la Licencia Pública General de GNU (GNU GPL). El autor conserva los derechos de autor (copyright), y permite la redistribución y modificación bajo términos diseñados para asegurarse de que todas las versiones modificadas del software permanecen bajo los términos más restrictivos de la propia GNU GPL. Esto hace que sea imposible crear un producto con partes no licenciadas GPL: el conjunto tiene que ser GPL.

Es decir, la licencia GNU GPL posibilita la modificación y redistribución del software, pero únicamente bajo esa misma licencia. Y añade que si se reutiliza en un mismo programa código "A" licenciado bajo licencia GNU GPL y código "B" licenciado bajo otro tipo de licencia libre, el código final "C", independientemente de la cantidad y calidad de cada uno de los códigos "A" y "B", debe estar bajo la licencia GNU GPL.

En la práctica esto hace que las licencias de software libre se dividan en dos grandes grupos, aquellas que pueden ser mezcladas con código licenciado bajo GNU GPL (y que inevitablemente desaparecerán en el proceso, al ser el código resultante licenciado bajo GNU GPL) y las que no lo permiten al incluir mayores u otros requisitos que no contemplan ni admiten la GNU GPL y que por lo tanto no pueden ser enlazadas ni mezcladas con código gobernado por la licencia GNU GPL.

En el sitio web oficial de GNU hay una lista de licencias que cumplen las condiciones impuestas por la GNU GPL y otras que no.<3>

Aproximadamente el 60% del software licenciado como software libre emplea una licencia GPL.

[editar] Licencias AGPL
Artículo principal: Licencias AGPL
La Licencia Pública General de Affero (en inglés Affero General Public License, también Affero GPL o AGPL ) es una licencia copyleft derivada de la Licencia Pública General de GNU diseñada específicamente para asegurar la cooperación con la comunidad en el caso de software que corra en servidores de red.

La Affero GPL es íntegramente una GNU GPL con una cláusula nueva que añade la obligación de distribuir el software si éste se ejecuta para ofrecer servicios a través de una red de ordenadores.

La Free Software Foundation recomienda que el uso de la GNU AGPLv3 sea considerado para cualquier software que usualmente corra sobre una red.<4>

[editar] Licencias estilo BSD
Artículo principal: Licencia BSD
Llamadas así porque se utilizan en gran cantidad de software distribuido junto a los sistemas operativos BSD. El autor, bajo tales licencias, mantiene la protección de copyright únicamente para la renuncia de garantía y para requerir la adecuada atribución de la autoría en trabajos derivados, pero permite la libre redistribución y modificación, incluso si dichos trabajos tienen propietario. Son muy permisivas, tanto que son fácilmente absorbidas al ser mezcladas con la licencia GNU GPL con quienes son compatibles. Puede argumentarse que esta licencia asegura “verdadero” software libre, en el sentido que el usuario tiene libertad ilimitada con respecto al software, y que puede decidir incluso redistribuirlo como no libre. Otras opiniones están orientadas a destacar que este tipo de licencia no contribuye al desarrollo de más software libre (normalmente utilizando la siguiente analogía: "una licencia BSD es más libre que una GPL si y sólo si se opina también que un país que permita la esclavitud es más libre que otro que no la permite").

[editar] Licencias estilo MPL y derivadas
Artículo principal: Mozilla Public License
Esta licencia es de Software Libre y tiene un gran valor porque fue el instrumento que empleó Netscape Communications Corp. para liberar su Netscape Communicator 4.0 y empezar ese proyecto tan importante para el mundo del Software Libre: Mozilla. Se utilizan en gran cantidad de productos de software libre de uso cotidiano en todo tipo de sistemas operativos. La MPL es Software Libre y promueve eficazmente la colaboración evitando el efecto "viral" de la GPL (si usas código licenciado GPL, tu desarrollo final tiene que estar licenciado GPL). Desde un punto de vista del desarrollador la GPL presenta un inconveniente en este punto, y lamentablemente mucha gente se cierra en banda ante el uso de dicho código. No obstante la MPL no es tan excesivamente permisiva como las licencias tipo BSD. Estas licencias son denominadas de copyleft débil. La NPL (luego la MPL) fue la primera licencia nueva después de muchos años, que se encargaba de algunos puntos que no fueron tenidos en cuenta por las licencias BSD y GNU. En el espectro de las licencias de software libre se la puede considerar adyacente a la licencia estilo BSD, pero perfeccionada.

[editar] Copyleft
Artículo principal: Copyleft
Hay que hacer constar que el titular de los derechos de autor (copyright) de un software bajo licencia copyleft puede también realizar una versión modificada bajo su copyright original, y venderla bajo cualquier licencia que desee, además de distribuir la versión original como software libre. Esta técnica ha sido usada como un modelo de negocio por una serie de empresas que realizan software libre (por ejemplo MySQL); esta práctica no restringe ninguno de los derechos otorgados a los usuarios de la versión copyleft. También podría retirar todas las licencias de software libre anteriormente otorgadas, pero esto obligaría a una indemnización a los titulares de las licencias en uso. En España, toda obra derivada está tan protegida como una original, siempre que la obra derivada parta de una autorización contractual con el autor. En el caso genérico de que el autor retire las licencias "copyleft", no afectaría de ningún modo a los productos derivados anteriores a esa retirada, ya que no tiene efecto retroactivo. En términos legales, el autor no tiene derecho a retirar el permiso de una licencia en vigencia. Si así sucediera, el conflicto entre las partes se resolvería en un pleito convencional.

PROGRAMAS DE UTILIDAD

Programas de utilidad
Stat: es uno de los mas útiles dentro del CP/M ya que tiene diversos usos relacionados con el manejo de fichero y discos, sus funciones son:
• Obtención información sobre el espacio libre del disco y el estatus de protección del mismo
• Obtención de un estado de fichero de un disco (tamaño del mismo, estatus de información y el espacio libre del disco)
• Modificación del estatus de protección. Es posible proteger o desproteger tanto ficheros como discos en su totalidad
• Protección de ficheros contra el comando DIR
• Obtiene información sobre el usuario en que se esta trabajando
• Obtención de las características del disco (capacidad Kbytes, número de registro, etc.)
Pip:
• Este copia de un fichero a sobre el mismo disco
• Copia de un fichero de un disco a otro.
• Concatenación de fichero (unir varios fichero a uno solo, empleando uno o varios discos)
• Copia de un fichero desde un disco a un periférico o viceversa.
• Copia de datos entre dispositivos.
Ed:
• Se pueden crear varios ficheros
• Se pueden modificar los ficheros
• En una sesión de trabajo este puede indicar la línea donde se va a realizar la siguiente operación, por medio de un puntero
• Se puede introducir texto en mitad de una línea ya sea mayúscula o minúscula
• El trabajo de una edición se puede o no salvar
Submit:
• Relacionado con la ejecución de un fichero especial que contienen una secuencia de comandos CP/M
• Se manifiesta en el momento de realizar varias operaciones de forma repetida
• Para utilizar el programa es necesario crear el fichero especial que procesa el comando. Este fichero desaparece al acabar el procedimiento de todo la secuencia de comandos.
Xsub:
• Este programa aumenta la automatización el procedimiento de los ficheros.
• Es posible modificar un programa, ejecutarlo, responder a sus peticiones durante la ejecución, etc.
Asm
• Es el programa ensamblador del CP/M que permite pasar de códigofuente ensamblador a código del 8080.
• Estos programas par hacer utilizados deben sufrir una segunda conversión a ficheros .COM mediante el programa de utilidad LOAD.COM.
• Se puede especificar la unidad de disco de los ficheros de entrada como los de salida.
Load
• Este programa (LOAD.COM) tiene como misión convertir ficheros de formato hexadecimal (.HEEX) en fichero ejecutables con código maquina (.COM)
Ddt (DDT.COM)
• Es una herramienta para la producción en ensamblador
• Permite ver comprobar y verificar programas en código maquina , así como depurar esto de forma dinámica, durante ejecuciones realizadas paso a paso
• Este se carga sobre la CCP (sección de memoria que contiene el procesador de programas de consola)
• Lectura de un fichero en memoria
• Listado de una zona de memoria cuyo contenido es un programa ( codigo exadisimal y código sin ensamblar de cada instrucción)
• Movimiento de bloque de memoria a otra dirección
Dump
• Sacar por pantalla los contenidos de un fichero con códigos de maquina, en formato exadesimal
• También es posible sacar el contenido de ficheros .COM
• Este comando es similar a la opción "D" dentro del programa de DDT
Sysgen
• Es la copia del sistema operativo CP/M de un disco a otro
• En los equipos que incorpora disco duro, este comando es capaz de realizar copias de sistema operativos