martes, 30 de julio de 2013

IEEE 830

1.   Quien lo invento :  Thomas Alva Edison,  Alexander Graham Bell y Franklin Leonard Pope (IEEE )


2.      "Saber que es y para que sirve :  IEEE (leído i-e-cubo en España e i-triple-e en Hispanoamérica) corresponde a las siglas de (Institute of Electrical and Electronics Engineers) en español Instituto de Ingenieros Eléctricos y Electrónicos, una asociación técnico-profesional mundial dedicada a la estandarización, entre otras cosas. Con cerca de 425.000 miembros y voluntarios en 160 países, es la mayor asociación internacional sin ánimo de lucro formada por profesionales de las nuevas tecnologías, como ingenieros eléctricos, ingenieros en electrónica, científicos de la computación, ingenieros en informática, matemáticos aplicados, ingenieros en biomédica, ingenieros en telecomunicación e ingenieros en Mecatrónica.Su creación se remonta al año 1884, contando entre sus fundadores a personalidades de la talla de Thomas Alva Edison, Alexander Graham Bell y Franklin Leonard Pope. En 1963 adoptó el nombre de IEEE al fusionarse asociaciones como el AIEE (American Institute of Electrical Engineers) y el IRE (Institute of Radio Engineers).Según el mismo IEEE, su trabajo es promover la creatividad, el desarrollo y la integración, compartir y aplicar los avances en las tecnologías de la información, electrónica y ciencias en general para beneficio de la humanidad y de los mismos profesionales. Algunos de sus estándares son:
VHDLPOSIXIEEE 1394IEEE 488IEEE 802IEEE 802.11IEEE 754Mediante sus actividades de publicación técnica, conferencias y estándares basados en consenso, el IEEE produce más del 30% de la literatura publicada en el mundo sobre ingeniería eléctrica, en computación, telecomunicaciones y tecnología de control, organiza más de 1000 conferencias al año en todo el mundo, y posee cerca de 900 estándares activos, con otros 700 más bajo desarrollo.
  3.       Coger cada uno de los términos e investigar los que no entienda :
  Normalización : La normalización o estandarización es la redacción y aprobación de normas que se establecen para garantizar el acoplamiento de elementos construidos independientemente, así como garantizar el repuesto en caso de ser necesario, garantizar la calidad de los elementos fabricados, la seguridad de funcionamiento y trabajar con responsabilidad social.
 Ingeniería mecatrónica :  La mecatrónica es una disciplina que une la ingeniería mecánica, ingeniería electrónica, ingeniería de control e ingeniería informática; la cual sirve para diseñar y desarrollar productos que involucren sistemas de control para el diseño de productos o procesos inteligentes, lo cual busca crear maquinaria más compleja para facilitar las actividades del ser humano a través de procesos electrónicos en la industria mecánica principalmente. Debido a que combina varias ingenierías en una sola, su punto fuerte es la versatilidad
 Telecomunicación : La telecomunicación, o telecomunicaciones indistintamente, es el estudio y aplicación de la técnica que diseña sistemas que permitan la comunicación a larga distancia, a través de la transmisión y recepción de señales. La definición dada por la Unión Internacional de Telecomunicaciones (ITU, International Telecommunication Union) para telecomunicación es «toda emisión, transmisión y recepción de signos, señales, escritos e imágenes, sonidos e informaciones de cualquier naturaleza, por hilo, radioelectricidad, medios ópticos u otros sistemas electromagnéticos Típicamente estas señales se propagan a través de ondas electromagnéticas, pero es extensible a cualquier medio que permita la comunicación entre un origen y un destino como medios escritos, sonidos, imágenes. El término telecomunicación» resulta al añadir a comunicación el prefijo griego tele-, que significa distancia.


lunes, 22 de julio de 2013

Proyectos y tipos de requisitos

Un requisito funcional :

Define una función del sistema de software o sus componentes. Una función es descrita como un conjunto de entradas, comportamientos y salidas. Los requerimientos funcionales pueden ser: cálculos, detalles técnicos, manipulación de datos y otras funcionalidades específicas que se supone, un sistema debe cumplir. Los requerimientos de comportamiento para cada requerimiento funcional se muestran en los casos de uso. Son complementados por los requisitos no funcionales, que se enfocan en cambio en el diseño o la implementación.

Un requisito no funcional :

 Atributo de calidad es, en la ingeniería de sistemas y la ingeniería de software, un requisito que especifica criterios que pueden usarse para juzgar la operación de un sistema en lugar de sus comportamientos específicos, ya que éstos corresponden a los requisitos funcionales. Por tanto, se refieren a todos los requisitos que ni describen información a guardar, ni funciones a realizar.


Funcionales:

Son las funcionalidades  con las que el sistema de cumplir, en el caso de Google chrome serian:
Cuenta de usuario
Extensiones
Marcadores
Enlaces Favoritos
Interfaz Personalizable
Ultimas ventanas Abiertas
Ultimas ventanas Serradas
Historial de Búsqueda
Barra de Búsqueda
Pagina Anterior
Pagina  Siguiente
Pagina Principal

Entre muchas otras.


Requerimientos no Funcionales:


Son aquellos requerimientos importantes que se deben tener en cuenta para un buen   funcionalismo de un sistema, pero que no son para interactuar  o modificables por el usuario









 PUNTO 2 : La definición del alcance de un proyecto es el proceso de subdividir los entregables principales en componentes administrables con el objetivo de:
1. Mejorar la exactitud de los estimados de costo y tiempo.
2. Definir una línea de base para medición y control del proyecto.
3. Facilitar una clara asignación de roles y responsabilidades.


Básicamente, la declaración de alcance se usa para definir lo que está dentro de las fronteras del proyecto y lo que está afuera de estas fronteras. Es decir, que el alcance es la definición de los puntos que entran y no entran en el proyecto y que es acordado por todas las partes, refiriéndose a todos los requerimientos a satisfacer en el proyecto.

Las áreas que pueden ser examinadas a la hora de identificar el alcance son: datos, procesos, aplicaciones y áreas de negocio.

Los siguientes tipos de información servirán como ayuda a la hora de identificar el alcance:
Tipos de entregables que están dentro y fuera del alcance (requerimientos de negocio y análisis de la situación actual).
Procesos del ciclo de vida que están dentro y fuera del alcance (Análisis, diseño, pruebas).
Tipos de datos que están dentro y fuera del alcance (financieros, ventas, empleados, etc…).
Fuentes de datos o bases de datos que están dentro y fuera del alcance (facturación, mayor general, nómina, activos, etc…).
Organizaciones que están dentro y fuera del alcance (Recursos humanos, manufactura, proveedores, etc…).
Funcionalidades que están dentro y fuera del alcance (Soporte de decisiones, captura de datos, reportes de gestión, etc…).


PUNTO 3 :


En programación un módulo es una porción de un programa de computadora. De las varias tareas que debe realizar un programa para cumplir con su función u objetivos, un módulo realizará, comúnmente, una de dichas tareas (o varias, en algún caso). En general (no necesariamente relacionado con la programación), un módulo recibe como entrada la salida que haya proporcionado otro módulo o los datos de entrada al sistema (programa) si se trata del módulo principal de éste; y proporcionará una salida que, a su vez, podrá ser utilizada como entrada de otro un módulo o bien contribuirá directamente a la salida final del sistema (programa), si se retorna al módulo principal. Particularmente, en el caso de la programación, los módulos suelen estar (no necesariamente) organizados jerárquicamente en niveles, de forma que hay un módulo principal que realiza las llamadas oportunas a los módulos de nivel inferior. Cuando un módulo es convocado, recibe como entrada los datos proporcionados por otro del mismo o superior nivel, el que ha hecho la llamada; luego realiza su tarea. A su vez este módulo convocado puede llamar a otro u otros módulos de nivel inferior si fuera necesario; cuando ellos finalizan su tareas, devuelven la salida pertinente al módulo inmediato llamador, en secuencia reversa, finalmente se continúa con la ejecución del módulo principal.

Cada uno de los módulos de un programa idealmente debería cumplir las siguientes características: Tamaño relativamente pequeño.- Esto facilita aislar el impacto que pueda tener la realización de un cambio en el programa, bien para corregir un error, o bien por rediseño del algoritmo correspondiente. Independencia modular.- Cuanto más independientes son los módulos entre sí más fácil y flexiblemente se trabajará con ellos, esto implica que para desarrollar un módulo no es necesario conocer detalles internos de otros módulos. Como consecuencia de la independencia modular un módulo cumplirá: Características de caja negra, es decir abstracción (ver abstracción en programación orientada a objetos). Aislamiento de los detalles mediante encapsulamiento (ver encapsulamiento en programación orientada a objetos). La independencia modular mejora el rendimiento humano, pudiendo realizarse programación en equipo y desarrollar módulos paralelamente. También contribuye a la reutilización de software.

Ejemplo :



PUNTO 4 :
-4.3 :
  Requisitos Funcionales de google chrome:

Son las funcionalidades  con las que el sistema de cumplir, en el caso de Google chrome serian:
Cuenta de usuario
Extensiones
Marcadores
Enlaces Favoritos
Interfaz Personalizable
Ultimas ventanas Abiertas
Ultimas ventanas Serradas
Historial de Búsqueda
Barra de Búsqueda
Pagina Anterior
Pagina  Siguiente
Pagina Principal

Requisitos No funcionales  de google chrome:





4.5 : publico general que tengan acceso a internet


punto 2

2- red mine :

Requerimientos :  Redmine debería funcionar en la mayoría de los sistemas operativos Unix, Linux, Mac, servidor de Mac y Windows, siempre y cuando Ruby esté disponible en esa plataforma. Ver HowTos

Compatibilidad :

 • Ruby 1.9 no es compatible aún. Se requiere usar Ruby 1.8.x como se indicó anteriormente.
• Se requiere Rake 0.8.7 (versión 0.9.x no es compatible con Rails aún)
• Es necesario Rack 1.1.x , 1.1.0 tiene un error haciendo uso de comillas simples). La
migración de base de datos fallaría con otra versión.
• Mongrel 1.1.5 necesita un parche para funcionar bien con Rails 2.3.11. En el caso de
actualización, otro problema puede aparecer por algún tiempo después de la migración (#
7857).
• I18n 0.4.2 se requiere para Redmine> = 1.0.5
• Rails 2.3.11 hasta 2.3.14 sufren de un grave problema con el envío de correos electrónicos
a varios destinatarios (cuando estos superan la cifra de 8). Ver
http://www.redmine.org/issues/8751 para más detalles y solución.


VERSIÓN DE REDMINE
Se recomienda a la mayoría de los usuarios instalar las versiones puntuales de Redmine.
Redmine actualmente publica una nueva versión cada 6 meses, y estas publicaciones son
consideradas muy usables y estables. No se recomienda instalar Redmine del tronco, a menos
que esté muy familiarizado con Ruby on Rails y se encuentre siempre al día con los cambios – El

Tronco se rompe a menudo.


Es una herramienta para la gestión de proyectos y el seguimiento de errores escrita usando el framework Ruby on Rails. Incluye un calendario y unos diagramas de Gantt para la representación visual de la línea del tiempo de los proyectos. Es software libre y de código abierto, disponible bajo la Licencia Pública General de GNU v2.
Algunas de sus caracteristicas son :
- Soporte de múltiples proyectos.
- Roles flexibles basados en control de acceso.
- Sistema de seguimiento de errores flexible.
- Diagramas de Gantt y calendario.
- Wiki colaborativa para cada proyecto.
- Administración de noticias, documentos y archivos.
- Notificaciones por correo electrónico.
- Integración SCM (Subversion, CVS, Git, Mercurial, Bazaar y Darcs).
- Soporte para diferentes bases de datos (MySQL, PostgreSQL y SQLite).
Se puede extender mediante el uso de plugins, la gran mayoría de ellos escritos por la comunidad.
Puedes probar una demo del producto para hacerte una idea de las capacidades de este software. Este es el software para gestión de proyectos que venimos utilizando en mi trabajo hace tiempo y la verdad es que estamos bastante contentos con su desempeño.

Propiedades de la función

  • Nombre : El nombre de visualización de la función
  • Los problemas pueden ser asignados a este rol : si no se controla, los problemas no se pueden asignar a los miembros de esta función en un proyecto.
  • Problemas de visibilidad : el supuesto de que esta función incluye la vista Problemas permiso, las siguientes reglas se aplican a los problemas de los proyectos que el usuario está vinculado a través de él:
    • Todos los temas : el usuario puede ver todos los temas. Este es el valor predeterminado.
    • Todos los temas de no privados : el usuario puede ver todas las cuestiones que no estén marcados como privados.
    • Temas creados por o cedidos al usuario : el usuario sólo puede ver los problemas creados por o atribuidos a él / ella.

Permisos

Al editar una función, puede definir los permisos marcando / desmarcando las diferentes acciones.
PermisoDescripción
Permisos de Project
Crear un proyectoPermitir a los usuarios que no son administradores para crear un proyecto raíz
Puede especificar qué papel se le asigna automáticamente a un usuario que no sea administrador que crea un proyecto (ver RedmineSettings )
Editar proyectoPermitir al usuario editar las propiedades del proyecto
Seleccione los módulos del proyectoPermite al usuario activar / desactivar los módulos del proyecto (tales como las cuestiones de seguimiento, wiki, repositorio ...)
Gestionar MiembrosPermite al usuario añadir / quitar miembros del proyecto o cambiar las funciones de los miembros existentes
Administrar versionesPermitir al usuario añadir / editar / borrar versiones de proyecto
Crear subproyectosPermite al usuario añadir subproyectos del proyecto
Permisos Tablas
Administrar tablasPermitir al usuario añadir / editar / borrar foros proyecto
Enviar mensajesPermitir al usuario publicar nuevos temas en foros
Editar mensajesPermitir al usuario editar los mensajes y eliminar los archivos adjuntos de mensajes
Editar mensajes propiosPermitir al usuario editar sus propios mensajes sólo
Eliminación de los mensajesPermite al usuario borrar cualquier tema o respuesta
Eliminación de los mensajes propiosPermite al usuario borrar sus propios temas o respuestas
Permisos Documentos
Administrar documentosPermitir al usuario añadir / editar / borrar los documentos del proyecto
Ver documentosPermitir a los usuarios ver documentos
Permisos Archivos
Gestión de archivosPermite al usuario añadir / editar / borrar archivos de proyecto en la sección Archivos
Ver archivosPermitir al usuario ver archivos
Seguimiento de problemas
Administrar categorías de emisiónPermitir al usuario añadir / editar / eliminar categorías de emisión
Ver EdicionesPermitir al usuario ver los problemas del proyecto
Añadir cuestionesPermite al usuario crear nuevos temas
Editar cuestionesPermitir al usuario editar plenamente las cuestiones existentes
Manejar las relaciones de emisiónPermite al usuario añadir / eliminar las relaciones entre las cuestiones
Gestione subtareasPermite al usuario añadir / eliminar tareas parciales a los problemas
Añadir notasPermite al usuario añadir comentarios a los temas ya existentes
Editar notasPermitir al usuario editar cualquier comentario cuestión
Editar propias notasPermitir al usuario editar sus propios comentarios sólo
Mueva cuestionesPermite al usuario moverse cuestiones existentes a otro proyecto
Eliminar los problemasPermite al usuario borrar los problemas
Gestione consultas públicasPermite al usuario añadir / editar / borrar emitir consultas que son visibles por todos los usuarios
Guardar búsquedasPermitir al usuario guardar sus propias consultas tema
Ver Diagrama de GanttPermitir al usuario ver el diagrama de Gantt
Ver calendarioPermitir al usuario ver el calendario
Ver la lista de los observadoresPermitir al usuario ver quién está viendo un tema
Añadir observadoresPermitir a los usuarios agregar otros usuarios como observadores de un problema
Eliminar los observadoresPermite al usuario eliminar los observadores de un problema
Permisos Noticias
Gestione noticiasPermitir al usuario añadir / editar / borrar noticias del proyecto
Comentar las noticiasPermite al usuario añadir comentarios a las noticias
Permisos del repositorio
Gestione repositorioPermite al usuario configurar el repositorio del proyecto
Examinar repositorioPermite al usuario navegar y ver el contenido del repositorio del proyecto
Ver changesetsPermitir a los usuarios ver los conjuntos de cambios
Comprometerse accesoUtilizado por Redmine.pm para dar acceso de escritura al repositorio del proyecto
Ver Repositories_access_control_with_apache_mod_dav_svn_and_mod_perl
Permisos de seguimiento de tiempo
Entrar el tiempo pasadoPermitir al usuario iniciar el tiempo en el proyecto
Ver el tiempo pasadoPermitir al usuario ver los registros de tiempo en el proyecto
Editar registros de tiempoPermitir al usuario editar cualquier registro del tiempo
Editar registros de tiempo propioPermitir al usuario editar su propio tiempo sólo registra
Administrar las actividades del proyectoPermitir al usuario añadir / editar / borrar actividades
Permisos Wiki
Gestione wikiPermite al usuario crear o eliminar el wiki del proyecto
Eliminación de una wiki es una irreversible operación, borra todas las páginas, su historia y todos los archivos adjuntos!
Cambiar el nombre de las páginas wikiPermite al usuario cambiar el nombre de la página wiki existente o asignar páginas wiki a una página principal
Eliminar páginas wikiPermite al usuario eliminar páginas wiki
Eliminación de una página wiki es un irreversible operación, la página y toda su historia se borran!
Ver wikiPermitir al usuario ver el wiki
Exportar páginas wikiPermite al usuario exportar páginas wiki a varios formatos (pdf, html, ...)
Ver el historial wikiPermitir al usuario ver las versiones anteriores de las páginas wiki y diff entre las versiones
Editar páginas wikiPermitir a los usuarios editar páginas wiki sin protección
Eliminar archivos adjuntosPermite al usuario borrar adjuntos de páginas wiki existentes
Proteger páginas wikiPermite al usuario bloquear / desbloquear las páginas wiki y editar páginas bloqueadas

jueves, 18 de julio de 2013

herramientas de gestión de proyectos

HERRAMIENTAS PARA GESTION DE PROYECTOS :

 Redmine
Es una herramienta para la gestión de proyectos y el seguimiento de errores escrita usando el framework Ruby on Rails. Incluye un calendario y unos diagramas de Gantt para la representación visual de la línea del tiempo de los proyectos. Es software libre y de código abierto, disponible bajo la Licencia Pública General de GNU v2.
Algunas de sus caracteristicas son :
- Soporte de múltiples proyectos.
- Roles flexibles basados en control de acceso.
- Sistema de seguimiento de errores flexible.
- Diagramas de Gantt y calendario.
- Wiki colaborativa para cada proyecto.
- Administración de noticias, documentos y archivos.
- Notificaciones por correo electrónico.
- Integración SCM (Subversion, CVS, Git, Mercurial, Bazaar y Darcs).
- Soporte para diferentes bases de datos (MySQL, PostgreSQL y SQLite).

Se puede extender mediante el uso de plugins, la gran mayoría de ellos escritos por la comunidad.

Puedes probar una demo del producto para hacerte una idea de las capacidades de este software. Este es el software para gestión de proyectos que venimos utilizando en mi trabajo hace tiempo y la verdad es que estamos bastante contentos con su desempeño.







Project-Open

Es un conjunto de soluciones ERP open source para la gestión empresarial orientada a proyectos. Dentro del sistema project-open existen varios proyectos verticales:
- project-translation: solución para agencias de traducción.
- project-consulting: para consultoras con intranet de plataforma colaborativa, gestión de proyectos, workflow y gestión del conocimiento.
- project-agency: solución para agencias de publicidad e Internet, que optimiza la gestión de los recursos internos de la empresa.
- project-lifecycle: solución PLM (product lifecycle management) para laboratorios I+D, ingenierías y OEM en empresas de producción industrial.

Algunas de sus principales características son las siguientes:
- Intranet colaborativa para gestionar proyectos.
- Gestión financiera.
- Almacen de ficheros.
- Sistema Wiki integrado.
- Foro colaborativo.
- Bug tracker para acciones correctivas.
- Gestión de la carga de trabajo mediante Gantt Project.
- Workflow.

Es un referente gracias a su amplia comunidad y millares de usuarios y muy popular en países como Alemania.




 eGroupWare

Es una solución de trabajo en grupo vía web, de código abierto. Está escrita en PHP utilizando bases de datos, tales como LDAP, PostgreSQL, o MySQL.

Algunas de sus características son:
- Calendario (programación de horario de grupos, de recursos y de contactos).
- Gestor de contactos con base de datos en SQL o LDAP.
- Cliente de correo integrado tipo webmail usa el protocolo IMAP (FelaMiMail).
- Infolog, una aplicación para tarea y notas.
- Gestor de recursos (inventario) y una herramienta para su reserva integrado en el Calendario del eGroupWare.
- Gestor de archivos.
- Sistema de autor de web con listas de control de acceso.
- Seguimiento de proyecto integrado con el gestor de proyectos.
- Seguimiento de errores.
- Wiki.
- Base de conocimiento.


El equipo principal detrás de eGroupware es de habla alemana y está localizado en Alemania





WEBGRAFIA :

http://unadocenade.com/una-docena-de-herramientas-colaborativas-para-la-gestion-de-proyectos/

WEBGRAFIA IMAGENES:

https://www.google.com.co/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&docid=xjlKDHd79-8NoM&tbnid=c2PgClejDxvK0M:&ved=0CAQQjB0&url=http%3A%2F%2Fproject-management.com%2Fredmine-software-review%2F&ei=10HoUcXzMYna9QSrgIEo&bvm=bv.49478099,d.eWU&psig=AFQjCNHWac70nFYm2d4TIbtLUK1EfEpAOw&ust=1374262099341338


https://www.google.com.co/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&docid=PH1ddnOb33fM5M&tbnid=1CIGhOET_ebPUM:&ved=0CAQQjB0&url=http%3A%2F%2Fwww.project-open.org%2F&ei=NkLoUdzDGoeK9gTjsIGwBQ&bvm=bv.49478099,d.eWU&psig=AFQjCNGSjYDoS7c0CAqjaLR3GqtuO-WeAA&ust=1374262191050412

https://www.google.com.co/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&docid=ZG4Y4BMYm7r1LM&tbnid=fN1_hZZaHiiKKM:&ved=0CAQQjB0&url=http%3A%2F%2Flinux.softpedia.com%2FprogScreenshots%2FeGroupWare-Enterprise-Collaboration-Screenshot-106.html&ei=e0LoUaDrMonu8QTGsIGoDg&bvm=bv.49478099,d.eWU&psig=AFQjCNG1qVv5DVEX6zyO3BzS6F-QgASiJw&ust=1374262265421095


martes, 9 de julio de 2013

ingeniería del software

Que es metodología:

La metodología hace referencia al conjunto de procedimientos racionales utilizados para alcanzar una gama de objetivos que rigen en una investigación científica una o tareas que requieran habilidades, conocimientos o cuidados específicos. Alternativamente puede definirse la metodología como el estudio o elección de un método pertinente para un determinado objetivo.

Clases de metodologías del software :

Modelo en cascada
Es un proceso secuencial de desarrollo en el que los pasos de desarrollo son vistos hacia abajo (como en una cascada de agua) a través de las fases de análisis de las necesidades, el diseño, implementación, pruebas (validación), la integración, y mantenimiento. La primera descripción formal del modelo de cascada se cita a menudo a un artículo publicado por Winston Royce W.2 en 1970, aunque Royce no utiliza el término "cascada" de este artículo.
Los principios básicos del modelo de cascada son los siguientes:

El proyecto está dividido en fases secuenciales, con cierta superposición y splashback aceptable entre fases.
Se hace hincapié en la planificación, los horarios, fechas, presupuestos y ejecución de todo un sistema de una sola vez.
Un estricto control se mantiene durante la vida del proyecto a través de la utilización de una amplia documentación escrita, así como a través de comentarios y aprobación / signoff por el usuario y la tecnología de la información de gestión al final de la mayoría de las fases antes de comenzar la próxima fase.



Prototipado:

El prototipado es el framework de actividades dedicada al desarrollo de software prototipo, es decir, versiones incompletas del software a desarrollar.


Incremental:

Provee una estrategia para controlar la complejidad y los riesgos, desarrollando una parte del producto software reservando el resto de aspectos para el futuro.
Los principios básicos son:

Una serie de mini-Cascadas se llevan a cabo, donde todas las fases de la cascada modelo de desarrollo se han completado para una pequeña parte de los sistemas, antes de proceder a la próxima incremental
Se definen los requisitos antes de proceder con lo evolutivo, se realiza un mini-Cascada de desarrollo de cada uno de los incrementos del sistema
El concepto inicial de software, análisis de las necesidades, y el diseño de la arquitectura y colectiva básicas se definen utilizando el enfoque de cascada, seguida por iterativo de prototipos, que culmina en la instalación del prototipo final.

Espiral:

Los principios básicos son:
La atención se centra en la evaluación y reducción del riesgo del proyecto dividiendo el proyecto en segmentos más pequeños y proporcionar más facilidad de cambio durante el proceso de desarrollo, así como ofrecer la oportunidad de evaluar los riesgos y con un peso de la consideración de la continuación del proyecto durante todo el ciclo de vida.
Cada viaje alrededor de la espiral atraviesa cuatro cuadrantes básicos: determinar objetivos, alternativas, y desencadenantes de la iteración; Evaluar alternativas; Identificar y resolver los riesgos;  desarrollar y verificar los resultados de la iteración, y  plan de la próxima iteración.
Cada ciclo comienza con la identificación de los interesados y sus condiciones de ganancia, y termina con la revisión y examinación.

Rapid Application Development (RAD):

El desarrollo rápido de aplicaciones (RAD) es una metodología de desarrollo de software, que implica el desarrollo iterativo y la construcción de prototipos. El desarrollo rápido de aplicaciones es un término originalmente utilizado para describir un proceso de desarrollo de software introducido por James Martin en 1991.

Principios básicos:

  • Objetivo clave es para un rápido desarrollo y entrega de una alta calidad en un sistema de relativamente bajo coste de inversión.
  • Intenta reducir el riesgos inherente del proyecto partiéndolo en segmentos más pequeños y proporcionar más facilidad de cambio durante el proceso de desarrollo.
  • Orientación dedicada a producir sistemas de alta calidad con rapidez, principalmente mediante el uso de iteración por prototipos (en cualquier etapa de desarrollo), promueve la participación de los usuarios y el uso de herramientas de desarrollo computarizadas. Estas herramientas pueden incluir constructores de Interfaz gráfica de usuario (GUI), Computer Aided Software Engineering (CASE) las herramientas, los sistemas de gestión de bases de datos (DBMS), lenguajes de programación de cuarta generación, generadores de código, y técnicas orientada a objetos.
  • Hace especial hincapié en el cumplimiento de la necesidad comercial, mientras que la ingeniería tecnológica o la excelencia es de menor importancia.
  • Control de proyecto implica el desarrollo de prioridades y la definición de los plazos de entrega. Si el proyecto empieza a aplazarse, se hace hincapié en la reducción de requisitos para el ajuste, no en el aumento de la fecha límite.
  • En general incluye Joint application development (JAD), donde los usuarios están intensamente participando en el diseño del sistema, ya sea a través de la creación de consenso estructurado en talleres, o por vía electrónica.
  • La participación activa de los usuarios es imprescindible.
  • Iterativamente realiza la producción de software, en lugar de enfocarse en un prototipo.
  • Produce la documentación necesaria para facilitar el futuro desarrollo y mantenimiento.