martes, 7 de agosto de 2012

Rational Rose (diapositiva)




Diagrama de actividades


Diagrama de actividades


Un diagrama de actividades se usa para mostrar la secuencia de actividades, muestran el flujo de trabajo desde el punto de vista de inicio hasta el punto final detallando muchas de las rutas de decisiones que existen en el progreso de eventos contenidos en la actividad.


Diagrama de actividad (video)

 



ad03.GIF

external image moz-screenshot.jpgexternal image moz-screenshot-1.jpgELEMENTOS DE UN DIAGRAMA DE ACTIVIDAD

  • ACTIVIDAD:es la especificacion de una secuencia parametrizada de comportamiento

ad05.GIF

  • NODO INICIAL:se describe con un punto negro


ad14.GIF


  • NODO FINAL:se describe con un circulo con un punto negrpo adentro

ad04.GIF



BIBLIOGRAFIA




Diagramas de actividad

  • este tipo de diagramas se usan para mostrar cómo se construyen los diferentes flujos de trabajo o los procesos dentro de un sistema, cómo se inician, los variados caminos alternativos que se pueden tomar desde el inicio hasta el fin y dónde puede ocurrir el procesamiento paralelo durante la ejecución. Un diagrama de actividades generalmente no modela el comportamiento exacto de un sistema de software (como lo hace un diagrama de secuencia), sino los procesos y los flujos a un muy alto nivel. Las actividades generalmente serán realizadas por uno o más casos de uso; la actividad describe el proceso que se desarrolla y tanto el caso de uso como un actor usará el sistema para realizar toda o parte de una actividad.

Representacion de un diagrama de actividad

  • este tipo de diagrmas emplea un rectángulo con las esquinas redondeadas para representar una actividad. Las actividades pueden ser acompañadas por flujos de procesos o eventos. Adicionalmente, el nodo de decisión puede modelar el comportamiento divergente basado en una condición. Típicamente se definen los nodos de Inicio y de Fin para una representación completa de la actividad. También se pueden definir los puntos de sincronización para ilustrar cómo se puede llevar a cabo el procesamiento en paralelo y cómo se sincroniza en un punto antes de proceder con las actividades siguientes. El ejemplo de más abajo muestra la mayoría de estos puntos; describe el proceso vinculado a la adquisición de una bebida de una máquina expendedora. Los rectángulos redondeados son las actividades, los diamantes son los puntos de decisión y las barras negras horizontales son los puntos de sincronización. Tenga en cuenta que si Ud. estuviera construyendo el software para la máquina expendedora, serían relevantes solamente algunas de las actividades, aunque el diagrama completo provee una buena imagen de lo que abarca el proceso total de obtener una bebida. Sería necesario un análisis más profundo para determinar qué partes de este modelo se implementarían o soportaría el software.

ESTOS DOS PARRAFOS SON COPIA DEL TEXTO EL MODELO DINAMICO PAG 5 Y PAG 6, LA PAGINA WEB DONDE SE ENCUENTRA EL LIBRO ESTA EN LA BLBLIOGRAFIA MAS NO ESTAN CITADAS LAS PAGINAS NI NOMBRE DEL AUTOR DEL LIBRO AL QUE SE HACE REFERENCIA




BIBLIOGRAFIA
http://www.sparxsystems.com.ar/downloads/whitepapers/El_Modelo_Dinamico.pdf

diagrama de actividades por jhon mendez

Diagrama de componentes y objetos



Contenido
  1. Diagramas de Componentes
  2. Representando Componentes
  3. Interfaces Requeridas
  4. Componentes con puertos
  5. Diagrama de Objetos
  6. Elementos de Clase y Objeto
  7. Estado en tiempo de ejecución
  8. Ejemplos de diagramas de clase y objeto

1. Diagramas de Componentes

Los Diagramas de Componentes ilustran las piezas del software, controladores embebidos, etc. que conformarán un sistema. Un diagrama de Componentes tiene un nivel más alto de abstracción que un diagrama de clase – usualmente un componente se implementa por una o más clases (u objetos) en tiempo de ejecución. Estos son bloques de construcción, como eventualmente un componente puede comprender una gran porción de un sistema. Estos Diagramas contienen:
  • componentes
  • interfaces
  • Relaciones de dependencia, generalización, asociación y realización
  • Paquetes o subsistemas


dcomp_ingsw_ii_01.JPG

Los componentes se pueden agrupar en paquetes así como los objetos en clases, además pueden haber entre ellos relaciones de dependencia como:
  • generalización
  • asociación
  • agregación
  • realización

El diagrama de abajo muestra algunos componentes y sus relaciones internas. Los conectores Ensamble ‘vinculan’ las interfaces proporcionadas suministrada por el Producto y el Cliente a las interfaces requeridas especificadas por orden. Una relación de dependencia traza los detalles de la cuenta asociada del cliente a la interfaz requerida, ‘pago’, indicada por orden
dcomp_ingsw_ii_02.JPG

Los componentes son similares en práctica a los diagramas de paquete como los límites definidos y se usan para agrupar elementos en estructuras lógicas. La diferencia entre Diagramas de Paquete y Diagramas de Componente es que los diagramas de componente ofrecen un mecanismo de agrupamiento más rico semánticamente. Con los Diagramas de Componente todos los elementos del modelo son privados mientras que los diagramas de Paquete solo muestran ítems públicos.

2. Representando Componentes

Los componentes se representan como un clasificador rectangular con la clave «componente», opcionalmente el componente se puede mostrar como un rectángulo con un icono de componente en la esquina derecha arriba.

dcomp_ingsw_ii_03.JPG

3. Interfaces Requeridas

El conector Ensamble une la interfaz requerida del componente (Componente1) con la interfaz proporcionada de otro componente (Component2); esto permite que un componente provea los servicios que otro componente requiere. Las Interfaces son colecciones de uno o más métodos que pueden o no contener atributos.

dcomp_ingsw_ii_04.JPG

dcomp_ingsw_ii_05.JPG
4. Componentes con puertos

Usar puertos con Diagramas de Componentes permite que se especifique un servicio o comportamiento a su entorno así como también un servicio o comportamiento que un componente requiere. Los puertos pueden especificar entradas, salidas así como también operar bi-direccionalmente. El siguiente diagrama detalla un componente con un puerto para servicios En Línea conjuntamente con dos interfaces proporcionadas Ordenar Entrada y Seguimiento así como también una interfaz requerida Pago.

dcomp_ingsw_ii_06.JPG

5. Diagrama de Objetos

Un diagrama de Objeto se puede considerar un caso especial de un diagrama de clase. Los diagramas de objetos usan un sub conjunto de elementos de un diagrama de clase para enfatizar la relación entre las instancias de las clases en algún punto en el tiempo. Estos son útiles para entender los diagramas de clases. Estos no muestran nada diferente en su arquitectura a los diagramas de secuencia, pero reflejan multiplicidad y roles.

6. Elementos de Clase y Objeto

El siguiente diagrama muestra las diferencias en apariencia entre un elemento clase y un elemento objeto. Tener en cuenta que el elemento clase consiste de tres partes, divididas en compartimientos de nombres, atributos y operaciones; por predeterminado, los elementos objetos no tienen compartimientos. La exhibición de los nombres es también diferente: los nombres de los objetos están subrayados y pueden mostrar el nombre del clasificador desde el cual el objeto se instancia.

dcomp_ingsw_ii_07.JPG

7. Estado en tiempo de ejecución

Un elemento clasificador puede tener cualquier número de atributos y operaciones. Estos se muestran en una instancia objeto. Sin embargo, es posible definir el estado en tiempo de ejecución del objeto, mostrando un conjunto de valores de atributos en la instancia particular.

dcomp_ingsw_ii_08.JPG

8. Ejemplos de diagramas de clase y objeto

El siguiente diagrama muestra un diagrama objeto con su intercalación de clase definida, e ilustra la forma en la que un diagrama objeto se puede usar para probar las multiplicidades de tareas en los diagramas de clase. La clase car tiene multiplicidad de una a muchos a la clase wheel, pero si en su lugar se elije una multiplicidad de 1 a 4, eso no hubiera permitido una clase car con tres clases wheel como se muestra en el diagrama objeto.

dcomp_ingsw_ii_09.JPG

Referencias:

http://www.sparxsystems.com.ar/resources/tutorial/uml2_componentdiagram.html
http://virtual.usalesiana.edu.bo/web/practica/archiv/componen1.ppt
http://www.sparxsystems.com.ar/resources/tutorial/uml2_objectdiagram.html

viernes, 27 de julio de 2012

Diagramas de Casos De Uso


Los sistemas funcionan de manera conjunta, nunca de manera aislada y a su vez existe una interaccion con actores que utilizan dicho sistema para un fin, esperando un funcionamiento apropiado segun el contexto en el que se usa.
El caso de uso un tipo de diagrama UML que se encarga de modelar los aspectos mas sobresalientes de un sistema, es decir, modela el comportamiento de un sistema, subsistema o una clase determinada.Tambien es la descripcion de un conjunto de secuencias de acciones que ejecuta un sistema para producir un resultado observable y de valor para el actor.

La utilidad de los casos de uso se evidencia en el momento de capturar el comportamiento que se desea del sisstema que se esta desarrollando, incluso se podria ver como una simulacion de lo que se espera del sistema a cosntruir.


Elementos o componentes de un Diagrama de Caso de Uso: Normalmente los diagramas de caso de uso contienen componentes tales como:
  1. Sujeto:es una clase que contiene un conjunto de casos de uso.
  2. Actor:representa un conjunto de roles que interactuan con los casos de uso.
  3. Flujo de eventos:describe que hace el sistema y cuando se usa se debe incluir como y cuando empieza y acaba el caso de uso.
  4. Escenario:Son las distintas secuencias del flujo de eventos que ilustra un comportamiento.
  5. Colaboraciones:son sociedades de clases y otros elementos que colaboran para lllevar a cabo el comportamiento de un caso de uso
  6. Relaciones como:
  • Dependencia
  • Generalizacion
  • Asociacion.
  • Inclusion
  • Extension
7.Si se requiere, algun tipo de paquete.
8.Restricciones
9.Nombres: es el elemento que se usa para identificar un caso de uso, estos se dividen en "nombres simples" y "nombres calificados".

Nota: Los paquetes se emplean con el objetivo de agrupar varios elementos del modelo en partes mayores.

OTROS OBJETOS QUE SE PUEDEN ENCONTRAR DENTRO DE LOS DIAGRAMAS DE CASO DE USO SON :

Tecnicas comunes de los Diagramas de Caso de Uso:
  • Modelado del contexto de un sistema: Esta tecnica nos permite definir el entorno en el que reside el sistema con el cual se esté trabajando. Para ello tenemos unos pasos para modelar dicho sistema:
a) Identificar actores del sistema
b) Jerarquizar los actores del sistema
c) Generar un estereotipo para cada actor
d) Incorporar los actores al respectivo caso de uso y especificar algún tipo de relación.
  • Modelado de los requisitos de un sistema: Nos proporciona una manera de establecer que propiedades o comportamientos son necesarios en un sistema. Pasos para modelar requisitos del sistema:
a) Identificar actores del sistema.
b) Verificar el comportamiento del actor frente al sistema.
c) Nombrar los comportamientos como casos de uso.
d) Generar casos de uso mas especificos de uno general.
e) Modelar los casos de uso con sus respectivos actores y relaciones a un diagrama.
f) Adicionar etiquetas mencionando los requisitos no funcionales.
  • Ingenieria directa e inversa: Esta ultima tecnica nos permite transformar un modelo de caso de uso a un lengueje de codigo cualquiera y viceversa. para ello tenemos los siguientes pasos para llegar a ingenieria directa:
a) Identificar el flujo de eventos de cada caso de uso.
b) Generar las precondiciones de cada flujo.
c) Generar la estructura del programa de acuerdo al caso de uso.
d) Probar que efectivamente dicho programa cumpla con lo planteado en el diagrama de caso de uso.
Pasos para llegar a Ingenieria inversa:
a) Identificar los actores que interactúan con el sistema.
b) Considerar el tipo de interacción del actor con el sistema.
c) Trazar el flujo de eventos del sistema.
d) Agrupar los diferentes flujos de eventos en un caso de uso.
e) Representar los actores en un diagrama de caso de uso con las respectivas relaciones.

  • Modelado de comportamiento de un elemento: Los casos de uso se utilizan para modeladar el comportamiento de un sistema o clase, concentrandose en lo que este hace, dejando de lado, el como lo hace.
Para ello se debe tener en cuenta los siguientes puntos:
a) Identificacion de los actores que interactuan con el sistema.
b) Organizar los actores identificando los roles que desempeñan
c) Tener en cuenta las formas mas importantes que tiene el cator de interactuar con el sistema.

ESTRUCTURA DE DOCUMENTACION DE CASOS DE USO

EJEMPLO




Documento En pdf sobre la documentacion de casos de uso:
Documentación de Los Casos de Uso

La ubicación en la Jerarquia de Diagramación UML está en el Nivel 2, y se deriva de Diagramas de Comportamiento:
Jerarquia.png
Para su documentación es importante ser lo más claro y descriptivo posible durante la secuencia normal del sistema y se emplea el siguiente formato eñ cual puede variar por el Analista:
Formato_CU.png

Elementos de la Contratacion


  Es la autorización para usar el software por parte del propietario del mismo a un tercero

Es la autorización de uso de un programa informático respecto de todas o algunas de las facultades que integran el derecho de exclusiva y para todo o parte del territorio nacional.

Las licencias son concedidas por el titular del programa en las condiciones que libremente convenga con el destiantario.

El destinatario de la licencia asume las obligaciones de: pagar el precio fijado, explotar la aplicación informática y custodiar el Know-how o conocimientos, técnicas y formas transmitidas por el titular para facilitar la explotación de la aplicación informática

Las licencias exclusivas no se pueden ceder a terceros. La licencia exclusiva impide el otorgamiento de otras licencias, e incluso, generalmente, impide la explotación al propio titular en un ámbito determinado: aquel para el que se concede la exlusiva.

Sin embargo en las licencias no exclusivas, el titular puede conceder licencias a terceros, puediendo obviamente, explotar por sí mismo la aplicación.


Tipos de Contratacion



1. El contrato de compraventa de software


La compraventa es un contrato en que una de las partes se obliga a trasmitir la propiedad de una cosa y la otra a pagarla en dinero. Es decir, tiene que ver con la transferencia de la propiedad y por ello el contrato tiene las implicacioneslegales más importantes.

La propiedad legalmente se conoce como el conjunto de derechos que tiene una o varias personas sobre un bien y que básicamente consiste en usarlo, sacarle provecho y disponer del bien dentro de los límites legales. El propietariode un software puede usarlo sin ningún tipo de limitación; puede instalarlo en el número de computadores que quiera, puede tener el número de usuarios que desee, puede hacer las copias que desee. El propietario de un software puede sacarle provecho (frutos), como licenciándolo a terceros, cediéndolo o prestando servicios en ASP (Application Service Pro-vider).

Finalmente, el propietario de un software puede disponer (abusar) del mismo en el sentido que si quiere puede modificarlo, borrarlo, regalarlo, convertirlo en software libre o simplemente abandonarlo en cajón.
Comúnmente se dice: “Compré la última versión de Windows”; “tal empresa de electricidad compró ASP”. En realidad, en este tipo de operaciones técnicamente no se compró un software sino un derecho de uso sobre el software.Esto se denomina licenciamiento y podría llamarse el contrato de compraventa de licencia. Si bien el lenguaje corriente admite esta imprecisión, un contrato si requiere que se emplee el término correcto. Si estamos frente a un contrato de compraventa de Windows o de SAP es fácil intuir que se trata de una licencia. El problema surge cuando se celebra el contrato de compraventa de software con una empresa que lo desarrolla especialmente para el cliente. El cliente le paga una pequeña fortuna para cubrir todo el valor del desarrollo, dejarle una ganancia a la empresa de software y esta última entiende que ella simplemente otorgó una licencia de uso. En este caso sí es importante tener claridad sobre qué tipo de contrato se celebró.

Básicamente, en la compraventa lo que antes era del vendedor pasa a ser del comprador. Ahora el comprador puede ejercer los derechos patrimoniales que haya adquirido sobre el software y el vendedor no podrá ejercerlos porque ya no son de él. Suena sencillo, pero la mayoría de las veces no se entiende. El vendedor sigue “vendiendo” a terceros el mismo programa de computador que ya le había vendido al comprador inicial. Esto no necesariamente se hace de mala fe, es la consecuencia de una negociación mal lograda.

2 . El licenciamiento de software

El propietario de un software tiene el derecho a usarlo. Igualmente, tiene el derecho a explotarlo y una manera de hacerlo es permitiéndole a otra persona usarlo a cambio de una remuneración. A esto se llama licenciamiento y ha sido la manera tradicional como las empresas de software han obtenido sus ingresos. Este contrato también se suele llamar “compraventa de licencia de software” cuando la licencia se adquiere con un solo pago y el derecho se adquiere a perpetuidad.
A diferencia de un bien corporal que sólo puede usarse por una persona a la vez, el software permite que millones de personas lo utilicen al mismo tiempo. El costo marginal de cada nuevo usuario es muy bajo mientras el valorde venta se mantiene. Esto explica en parte por qué el señor Bill Gates continúa siendo el hombre más rico del mundo. El caso de las empresas colombianas es distinto porque en el pago de las licencias al parecer nunca ganan pero obtienen sus recursos del soporte y mantenimiento hasta que un día el cliente decide pasarse a una herramienta más robusta y la empresanacional ve partir sus clientes de la mano de alguna firma extranjera.
Según el modelo de licenciamiento, el propietario no pierde en ningún momento esta calidad. El licenciatario simplemente adquiere un derecho de uso en los términos que se haya pactado la licencia. Este derecho se entenderá limitado a las formas de explotación y demás modalidades pactadas expresamente en el contrato. Por esto es muy importante que en la licencia queden expresadas todas las acciones que el adquirente desea realizar, de lo contrario se entenderá que no están incluidas en la licencia.

a. El arrendamiento de software

Está de moda que el pago del software se haga por períodos limitados pero además añadiendo otras prestaciones. A esto se le conoce como el arrendamiento de software. Esta modalidad de licenciamiento tiene la ventaja que el usuario no debe hacer un gran pago inicial al adquirir la licencia y mantiene su software con la versión actualizada. Para las empresas de software, estemodelo resulta interesante porque garantiza un flujo de ingresos constante.

Este contrato no se encuentra regulado y por ello deberá tenerse a lo que establezcan las partes en el respectivo contrato.Las principales características que se suelen encontrar en este tipo de contrato son:1. El usuario sólo tendrá derechos de uso sobre el software mientras dure el contrato.2. El usuario siempre tendrá acceso a la última versión del programa que se haya lanzado al mercado.3. El arrendador de alguna manera se compromete a que la última versión se encuentre actualizada con los cambios necesarios.4. Suele ir acompañado de un servicio de soporte y de mantenimiento.5. Puede ir acompañado de hardware y de servicios de conectividad.

b. El software de código abierto


Otra de las tendencias es el uso de software de código abierto o software libre. El software de código abierto o softwarelibre es un software que se encuentra licenciado, lo que sucede es que no se cobra por la licencia y se permite acceder al código fuente para hacer modificaciones.

Este tipo de software debe diferenciarse del software gratuito también conocido como freeware o shareware. Existen diferentes aplicaciones de amplio uso en el que no se cobran ciertas licencias. Ejemplos hay varios como puedeser el Acrobat Reader que permite la lectura de archivos PDF, el Winzip que permite la compresión y descompresión de archivos o el AVG que es un antivirus. Ciertas versiones y usos restringidos de estos programas están permitidos sin pagar, pero fuera de esos casos se debe pagar la licencia. La diferencia fundamental con el software de código abierto es que no se tiene acceso a los códigos fuentes y por ende no se pueden hacer modificacionesa los mismos.

3. La prestación de servicios

Otro de los contratos que encontramos regularmente es el contrato de prestación de servicios. En este tipo de contrato una persona se compromete a hacer algo a favor de otra persona y a cambio recibe un pago.Este tipo de contratos son muy populares en el mundo del software y se utilizan para diferentes cosas. Hay que contratos de este tipo que buscan crear o modificar los programas. Hay otros contratos que están relacionados con los servicios conexos o complementarios de los programas. Y otros que implican un modelo de negocio totalmente distinto. Muchas veces, todos estostipos de contratos aparecen confundidos en un solo documento pero es importante poder diferenciar cada una de las obligaciones.a. La prestación de servicios para el desarrollo de softwareEl contrato de prestación de servicios para el desarrollo de software se utiliza cuando el usuario desea un programa que no se encuentra desarrollado o que algunos de sus componentes o funcionalidades no se han desarrolladoo deben adaptase a determinados requerimientos del usuario. Este tipo de contratos es muy frecuente y hasta cierto punto ha sido el servicio que más se ofrece por parte de las compañías locales de software.Estos desarrollos pueden hacerse con recursos internos del usuario o contratarse por fuera. Cuando se hace al interior generalmente se desarrolla por uno o varios empleados de la compañía. Cuando se contrata por fuera puedehacerse con una empresa de desarrollo de software o con un programador que lo desarrolla solo.Una persona que no conozca de desarrollo de software puede pensar que se trata simplemente de programar, en realidad es mucho más complejo. Un proyecto puede hacerse según varias metodologías de desarrollo de softwarepero en general todas incluyen las siguientes etapas principales :

• Análisis de requisitos (requerimientos)
• Especificación
•Diseño y arquitectura
• Programación
• Prueba• Documentación

Licencias de Software



La licencia de software es una forma de contrato donde se especifican todas las normas y cláusulas que rigen el uso de un determinado programa, principalmente se estipulan los alcances de uso, instalación, reproducción y copia de estos productos.

Las licencias de uso de software generalmente caen en alguno de estos tipos:
·Licencia propietaria. Uso en una computadora por el pago de un precio.
·Shareware. Uso limitado en tiempo o capacidades, después pagar un precio.
·Freeware. Usar y copiar ilimitado, precio es cero.
·Software libre. Usar, copiar, estudiar, modificar, redistribuir. Código fuente incluído.
 
Es posible dividir las licencias de software libre en dos grandes familias. Una de ellas está compuesta por las licencias que no imponen condiciones especiales, sólo especifican que el software se puede redistribuir o modificar. Estas son las llamadas licencias permisivas. La otra familia, denominadas licencias robustas o licencias copyleft, imponen condiciones en caso de que se quiera redistribuir el software, condiciones que van en la línea de forzar a que se sigan cumpliendo las condiciones de la licencia después de la primera redistribución.

Mientras que el primer grupo hace énfasis en la libertad de quien recibe un programa, ya que le permite hacer casi lo que quiera con él (en términos de las sucesivas redistribuciones), el segundo obliga a que las modificaciones y redistribuciones respeten los términos de la licencia original.


Tipos de Licencias


Software Libre o Free Softwarees un software disponible para cualquiera que desee utilizarlo, copiarlo y distribuirlo, ya sea en su forma original o con modificaciones. La posibilidad de modificaciones implica que el código fuente está disponible. Si un programa es libre, puede ser potencialmente incluido en un sistema operativo también libre.

Copyleft.
La mayoría de las licencias usadas en la publicación de software libre permite que los programas sean modificados y redistribuidos. Estas prácticas están generalmente prohibidas por la legislación internacional de copyright, que intenta impedir que alteraciones y copias sean efectuadas sin la autorización del o los autores.

GPL.
La Licencia Pública General GNU (GNU General Public License GPL) es la licencia que acompaña los paquetes distribuidos por el Proyecto GNU, más una gran varidad de software que incluye el núcleo del sistema operativo Linux. La formulación de GPL es tal que en vez de limitar la distribución del software que protege, llega hasta impedir que este software sea integrado en software propietario. La GPL se basa en la legislación internacional de copyright, lo que debe garantizar cobertura legal para el software licenciado con GPL.

Debian.
La licencia Debian es parte del contrato realizado entre Debian y la comunidad de usuarios de software libre, y se denomina Debian Free Software Guidelines (DFSG). En esencia, esta licencia contiene criterios para la distribución que incluyen, además de la exigencia de publicación del código fuente: (a) la redistribución libre ; (b) el código fuente debe ser incluido y debe poder ser redistribuido; (c) todo trabajo derivado debe poder ser redistribuido bajo la misma licencia del original; (d) puede haber restricciones en cuanto a la redistribución del código fuente, si el original fue modificado; (e) la licencia no puede discriminar a ninguna persona o grupo de personas, así como tampoco ninguna forma de utilización del software; (f) los derechos otorgados no dependen del sitio en el que el software se encuentra; y (g) la licencia no puede 'contaminar' a otro software.
Open Source. La licencia de Open Source Initiative deriva de Debian.

BSD. La licencia BSD cubre las distribuciones de software de Berkeley Software Distribution, además de otros programas. Ésta es una licencia considerada 'permisiva', ya que impone pocas restricciones sobre la forma de uso, alteraciones y redistribución del software. El software puede ser vendido y no hay obligaciones de incluir el código fuente. Esta licencia garantiza el crédito a los autores del software pero no intenta garantizar que las modificaciones futuras permanezcan siendo software libre.

X.org. El Consorcio X distribuye X Window System bajo una licencia que lo hace software libre, aunque sin adherirse al copyleft. Existen distribuciones bajo la licencia de la X.org que son software libre, y otras distribuciones que no lo son. Existen algunas versiones no-libres del sistema de ventanas X11 para estaciones de trabajo y ciertos dispositivos de IBM-PC que son las únicas funciones disponibles, sin otros similares que sean distribuidos como software libre.

Software con Dominio Público. El Software con dominio público es software sin copyright. Algunos tipos de copia o versiones modificadas pueden no ser libres si el autor impone restricciones adicionales en la redistribución del original o de trabajos derivados.

Software Semi-libre. El Software semi-libre es un software que no es libre pero permite que otros individuos lo usen, lo copien, lo distribuyan y hasta lo modifiquen. Ejemplos de software semi-libre son las primeras versiones de Internet Explorer de Microsoft, o algunas versiones de browsers de Netscape, y StarOffice.

Freeware. El término freeware no posee una definición ampliamente aceptada, pero es utilizada para programas que permiten la redistribución pero no la modificación, y que incluyen su código fuente. Estos programas no son software libre.

Shareware. Shareware es el software disponible con el permiso para que sea redistribuido, pero su utilización implica el pago. Generalmente, el código fuente no se encuentra disponible, y por lo tanto es imposible realizar modificaciones.

Software Propietario. El Software propietario es aquel cuya copia, redistribución o modificación están, en alguna medida, prohibidos por su propietario. Para usar, copiar o redistribuir, se debe solicitar permiso al propietario o pagar.

Software Comercial. El Software comercial es el software desarrollado por una empresa con el objetivo de lucrar con su utilización. Nótese que "comercial" y "propietario" no son lo mismo. La mayor parte del software comercial es propietario, pero existe software libre que es comercial, y existe software no-libre que no es comercial.

webgrafia:



METODOLOGIA C.M.M.I (CAPACIDAD DE MADUREZ DEL MOELO DE INTEGRACION):



  • Este modelo proporciona a las empresas desarrolladoras una mejora en cuanto a su produccion de software, con el fin de mantener y proveer nuevos clientes.
  • al igual este modelo conserva el enfoque orignal, con el proposito de llevar los procesos a un nivel superior de mejoramiento, mediante las diferentes practicas se puede identificar si estos procesos rigurosos son de suma importancia y si realmente aportan a la organizacion en lo que podemos llamar empresa con experiencia.


El implementar esta metodologia brinda a las organizaciones un elemento de sistematizacion confiable para que puedad realizar el respectivo soporte al ciclo de vida del proyecyo de sofware. a continuacion se ostenta unos objetivos los cuales definiran como hacerlo con el fin de proporcionar un mejor desarrollo.
  1. Proporcionar o diseñar Sistemas de Información que ayuden a conseguir los fines de la Organización mediante la definición de un marco estratégico para el desarrollo de los mismos.
  2. Dotar a la Organización de Productos Software que satisfagan las necesidades de los usuarios dando una mayor importancia al Análisis de Requisitos.
  3. Facilitar la comunicación y entendimiento entre los distintos participantes en la producción de software a lo largo del Ciclo de Vida del Proyecto, teniendo en cuenta su papel y responsabilidad, así como las necesidades de todos y cada uno de ellos.
  4. Se contempla el desarrollo de Sistemas de Información para las distintas tecnologías que actualmente están conviviendo y los aspectos de Gestión de Proyectos que aseguran el cumplimiento de sus objetivos en términos de calidad, coste y plazos.
a continuacion presentare una estructura del modelo el cual nos indica como debemos inicializar el proceso de identificacion y jerarquia de roles para mejorar de las acciones.

Sin_título.jpg
CMMI


Los beneficios que puede esperar el uso de CMMI son los siguientes:

  • Las actividades de su organización están explícitamente vinculadas a sus objetivos de negocio.
  • Su visibilidad de las actividades de la organización es mayor para ayudar a asegurar que su producto o servicio cumple las expectativas del cliente.
  • Se aprende de las nuevas áreas de las mejores prácticas (por ejemplo, medición de riesgo)

CMMI está siendo adoptada en todo el mundo, incluyendo Norte América, Europa, Asia, Australia, América del Sur, y África. Este tipo de respuesta ha justificado el compromiso de la SEI para CMMI.

Usted puede utilizar CMMI en tres diferentes áreas de interés:

  • Desarrollo de productos y servicios (CMMI para el Desarrollo)
  • Servicio de establecimiento, manejo y entrega (CMMI para Servicios)
  • La adquisición de productos y servicios (CMMI for Acquisition)

La versión 1.2 del CMMI presentación general se introduce el concepto CMMI y puede ayudarle a tomar decisiones acerca de sus planes de mejora de procesos. También puede utilizar esta presentación para informar a otros en su organización acerca de CMMI.

Los modelos de CMMI son colecciones de las mejores prácticas que se pueden comparar con las mejores prácticas de la organización y mejora de guía para sus procesos. Una comparación formal de un modelo CMMI para los procesos que se llama una evaluación. El Standard CMMI Appraisal Method for Process Improvement (SCAMPI) incorpora las mejores ideas de varios métodos de evaluación del proceso de mejora.


CALIDAD DE SOFTWARE


CALIDAD1.png

CALIDAD DE SOFTWARE


Depende del producto de software que se deasea realizar, para esto es importante tener en cuenta los factores de calidad externos;

Estos factores externos se basan en los perceptibles por el usuario y los perceptibles por los ingenieros:

Dentro de los perceptibles por el usuario, encontramos:

                • UTILIDAD
                • INTEGRIDAD
                • REUTILIZACION
                • VERIFICABILIDAD
                • COMPATIBILIDAD
                • CONFIABILIDAD
                • PORTABILIDAD
                • EXTENDIBILIDAD
                • EFICIENCIA
                • FACILIDAD DE USO

Y en los factores externos que percibe el ingeniero estan:

MODULARIDAD: "es la capacidad que tiene un sistema de ser estudiado, visto o entendido como la unión de varias partes que interactúan entre sí y que trabajan para alcanzar un objetivo común, realizando cada una de ellas una tarea necesaria para la consecución de dicho objetivo."

LEGILIBILIDAD: "es el conjunto de características tipográficas y lingüísticas del texto escrito que permiten leerlo y comprenderlo con
facilidad."

ALGUNAS DEFINICIONES QUE PODEMOS TENER EN CUENTA SON:

CORECCION, que hace referencia a la habilidad de desempeñar las funciones y el desarollo de requerimientos en el desarrollo del
software.

SOLIDEZ O ROBUSTEZ, es la capacidad de que el software funcione en ambientes inesperados.

CONFIABILIDAD, es un programa el cual trabaja de forma eficiente, no genera salidas incorrectas, no se degenera (si se realizan cambios el sistema
no debe ser afectado), realiza acciones utiles en las situaciones inesperadas.

EXTENDIBILIDAD: Es la capacidad de que el software se adapte a cambio inesperados de forma simple y sin alterar el contenido del mismo.

REUTILIZACION, este punto hace referencia a la contruccion de nuevas aplicaciones usando partes de aplicaciones anteriores.

COMPATIBILIDAD, es la facilidad en la que los productos de software se pueden combinar

EFICIENCIA, se refiere basicamente al uso del minimo de recursos, con el fin de generar un software mas agil y que use la menor cantidad
de recursos.

DIMENSIONES DE LA CALIDAD SEGUN GARVIN

CALIDAD2.png


FACTORES DE CALIDAD SEGUN McCALL

calidad3.png


FACTORES DE CALIDAD ISO 9126


CALIDAD4.png


NIVELES DE CORRECION DE UN PROGRAMA

Este punto se basa principalmente en 8 puntos los cuales describen el funcionamiento correcto de un programa

Un programa:
  • No debe contener errores de sintaxis.
  • No contiene errores de compilacion o fallas en la ejecucion.
  • Se deben realizar pruebas a las cuales el sistema debe generar las respuestas correctas.
  • El programa debe generar respuestas correctas con los datos.
  • El programa debe generar respuestas correctas con datos dificiles.
  • El programa debe generar respuestas correctas para todos los tipos de datos.
  • El programa debe generar respuestas correctas para todas las entradas validas e invalidas de datos.

A partir de esto de proporciona un nivel a la evaluacion del software, los cuales se dan como:

NIVEL 6, es sifuciente si los datos son correctos.
NIVEL 5, es aceptable
Niveles inferiores a estos no son tomados en cuenta ya que se deberan realizar nuevamente las pruebas.

PERSONAL DEL EQUIPO

  • PROGRAMADOR JEFE DE EQUIPO:
    • administrador tecnico del proyecto.
    • diseña el sistema
    • escribe las interfaces mayores.
  • PROGRAMADOR PRINCIPAL:
    • respalda al programador jefe y realiza diseño.
  • PROGRAMADOR JUNIOR:
    • realizan el desarrollo de los modulos pequeños.
  • LIDER DE CONFIGURACION:
    • maneja documentacion y registra los cambios.
  • GESTOR DE CALIDAD DE SOFTWARE:
    • se encarga de implementar el SGC sistema de gestion de calidad
    • distribuye tareas
    • controla las pruebas
    • propone con el grupo mejoras o modificaciones.
  • ADMINISTRADOR:
    • es el encargado de hacer cumplir el cronograma y del manejo del presupuestos

    REFERENCIAS: Pressman roger, INGENIERIA DE SOFTWARE , UN ENFOQUE PRACTICO, 7 eD. ED Mac Graw Hill