martes, 29 de mayo de 2012

UML


UML

Lenguaje Unificado de Modelado

Diagramas
Los diagramas son las gráficas que describen el contenido de una vista. UML tiene nueve tipos de diagramas que son utilizados en combinación para proveer todas las vistas de un sistema: diagramas de caso de uso, de clases, de objetos, de estados, de secuencia, de colaboración, de actividad, de componentes y de distribución.

Diagrama de estado
Los diagramas de estado muestran los diferentes estados de un objeto durante su vida, y los estímulos que provocan los cambios de estado en un objeto.
Los diagramas de estado ven a los objetos como máquinas de estado o autómatas finitos que pueden estar en un conjunto de estados finitos y que pueden cambiar su estado a través de un estímulo perteneciente a un conjunto finito. Por ejemplo, un objeto de tipo NetServer puede tener durante su vida uno de los siguientes estados:
·        Listo
·         Escuchando
·         Trabajando
·         Detenido
y los eventos que pueden producir que el objeto cambie de estado son
·         Se crea el objeto
·         El objeto recibe un mensaje de escucha
·         Un cliente solicita una conexión a través de la red
·         Un cliente finaliza una solicitud
·         La solicitud se ejecuta y ser termina
·         El objeto recibe un mensaje de detención

Diagramas de secuencia
Los diagramas de secuencia muestran el intercambio de mensajes (es decir la forma en que se invocan) en un momento dado. Los diagramas de secuencia ponen especial énfasis en el orden y el momento en que se envían los mensajes a los objetos.
En los diagramas de secuencia, los objetos están representados por líneas intermitentes verticales, con el nombre del objeto en la parte más alta. El eje de tiempo también es vertical, incrementándose hacia abajo, de forma que los mensajes son enviados de un objeto a otro en forma de flechas con los nombres de la operación y
los parametros

Diagramas de colaboración

Los diagramas de colaboración muestran las interacciones que ocurren entre los objetos que participan en una situación determinada. Esta es más o menos la misma información que la mostrada por los diagramas de secuencia, pero destacando la forma en que las operaciones se producen en el tiempo, mientras que los diagramas de colaboración fijan el interés en las relaciones entre los objetos y su topología.
En los diagramas de colaboración los mensajes enviados de un objeto a otro se representan mediante flechas, mostrando el nombre del mensaje, los parámetros y la secuencia del mensaje. Los diagramas de colaboración están indicados para mostrar una situación o flujo programa específicos y son unos de los mejores tipos de diagramas para demostrar o explicar rápidamente un proceso dentro de la lógica del program

Diagrama de actividad

Los diagramas de actividad describen la secuencia de las actividades en un sistema. Los diagramas de actividad son una forma especial de los diagramas de estado, que únicamente (o mayormente) contienen a
Los diagramas de actividad son similares a los diagramas de flujo procesales, con la diferencia de que todas las actividades están claramente unidas a objetos.
Los diagramas de actividad siempre están asociados a una clase, a una operación o a un caso de uso.
Los diagramas de actividad soportan actividades tanto secuenciales como paralelas. La ejecución paralela se representa por medio de iconos de fork/espera, y en el caso de las actividades paralelas, no importa en qué orden sean invocadas (pueden ser ejecutadas simultáneamente o una detrás de otra).

Diagramas de componentes

Los diagramas de componentes muestran los componentes del software (ya sea las tecnologías que lo forman como Kparts, componentes CORBA, Java Beans o simplemente secciones del sistema claramente distintas) y los artilugios de que está compuesto como los archivos de código fuente, las librerías o las tablas de una base de datos.
Los componentes pueden tener interfaces (es decir clases abstractas con operaciones) que permiten asociaciones entre componentes.
Diagrama de distribución
Este tipo de diagramas se enfoca específicamente al hardware de un sistema determinado.
El elemento primordial del hardware es un nodo, que es un nombre genérico para todo tipo de recurso de cómputo.
Para comenzar, se debe saber que un nodo se representa mediante un cubo:
Diagrama de clases

Los diagramas de clases muestran las diferentes clases que componen un sistema y cómo se relacionan unas con otras. Se dice que los diagramas de clases son diagramas «estáticos» porque muestran las clases, junto con sus métodos y atributos, así como las relaciones estáticas entre ellas: qué clases «conocen» a qué otras clases o qué clases «son parte» de otras clases, pero no muestran los métodos mediante los que se invocan
Diagrama de objetos
Partiendo del hecho que un objeto es una instancia de clase, tal como se define en la conceptualización básica de la programación orientada a objetos, en UML la representación de un diagrama de objetos se hace de tal forma que teniendo ya una clase, el símbolo del objeto es un rectángulo, pero con el nombre subrayado. El nombre de la instancia específica se encuentra a la izquierda de los dos puntos (:), y el nombre de la clase a la derecha. Por ejemplo, si ya se tuviera una clase llamada "Lavadora", una instancia de esa clase o un objeto instanciado a partir de esa clase se representaría de la siguiente forma

Diagramas de relación de entidad

Los diagramas de relaciones de entidad (diagramas ER) muestran el diseño conceptual de las aplicaciones de bases de datos. Representan varias entidades (conceptos) en el sistema de información y las relaciones y restricciones existentes entre ellas. Una extensión de los diagramas de relaciones de entidad llamado «diagramas de relaciones de entidad extendida» o «diagramas de relaciones de entidad mejoradas» (EER), se utiliza para incorporar las técnicas de diseño orientadas a objetos en los diagramas ER

martes, 22 de mayo de 2012

Tarea 2

DIAGRAMA DE GANT
El diagrama de Ganttgráfica de Gantt o carta Gantt es una popular herramienta gráfica cuyo objetivo es mostrar el tiempo de dedicación previsto para diferentes tareas o actividades a lo largo de un tiempo total determinado. A pesar de que, en principio, el diagrama de Gantt no indica las relaciones existentes entre actividades, la posición de cada tarea a lo largo del tiempo hace que se puedan identificar dichas relaciones e interdependencias
Por esta razón, para la planificación del desarrollo de proyectos complejos (superiores a 25 actividades) se requiere además el uso de técnicas basadas en redes de precedencia como CPM o los grafos PERT. Estas redes relacionan las actividades de manera que se puede visualizar el camino crítico del proyecto y permiten reflejar una escala de tiempos para facilitar la asignación de recursos y la determinación del presupuesto
En gestión de proyectos, el diagrama de Gantt muestra el origen y el final de las diferentes unidades mínimas de trabajo y los grupos de tareas (llamadossummary elements en la imagen) o las dependencias entre unidades mínimas de trabajo (no mostradas en la imagen).
Desde su introducción los diagramas de Gantt se han convertido en una herramienta básica en la gestión de proyectos de todo tipo, con la finalidad de representar las diferentes fases, tareas y actividades programadas como parte de un proyecto o para mostrar una línea de tiempo en las diferentes actividades haciendo el método más eficiente.
Básicamente el diagrama esta compuesto por un eje vertical donde se establecen las actividades que constituyen el trabajo que se va a ejecutar, y un eje horizontal que muestra en un calendario la duración de cada una de ellas.


jueves, 17 de mayo de 2012

Actividad 3

Análisis
La programación estructurada nace para que los programas fueran más fáciles de manejar ya que el problema era la complejidad de los mismos cuando se trataban de resolver quedaban con fallas ocultas. A raíz de ello se llevo la programación estructurada al análisis y diseño.
Objetivo específicos
•   Captura de información acerca de: Datos personales del trabajador.
•   Captura de información acerca de: Datos personales del solicitante y Datos profesionales del solicitante.
•    Actualizar la información acerca de: los cambios efectuados en los Datos Profesionales de trabajador.
•    Estudiar los datos para la selección del candidato adecuado.
•    Evaluar el desenvolvimiento que a tenido el trabajador dentro de la organización a través de calificaciones.
•   Depende de la actuación y el resultado obtenido en sus calificaciones, el trabajador es recomendado a realizar cursos los cuales traerán beneficios a la organización.
•    Analizar los diversos beneficios que se le otorgan a cada empleado dentro de la organización.
Diseño de cuestionarios
El respeto al tiempo de las personas se debe valorar aplicando cuestionarios objetivos a través de individuos preparados y con experiencia, capaces de interpretar la información presentada.
El uso de cuestionarios en investigación supone que
1.    El investigador debe partir de objetivos de estudio perfectamente definidos
2.    Cada pregunta es de utilidad para el objetivo planteado por el trabajo.
3.    El investigador debe estructurar las preguntas teniendo en mente siempre los objetivos del trabajo.
4.    El que contesta está dispuesto y es capaz de proporcionar respuestas fidedignas.
Confiabilidad.
Una pregunta es confiable si significa lo mismo para todos los que la van a responder.
Se puede confiar en una escala cuando produce constantemente los mismos resultados al aplicarla a sujetos similares. La confiabilidad implica consistencia
Validez.
Una pregunta es válida si estimula información exacta y relevante. La selección y la redacción influyen en la validez de la pregunta.
La validez puede ser
•    De contenido
•    De criterio
•    De constructo
Cuatro preguntas clave.
1. ¿De cuánto tiempo disponen quienes responderán para contestar el cuestionario?
2.¿Cuánto tiempo tiene el investigador para editarlo, presentarlo, aplicarlo, codificarlo, procesarlo y analizarlo?
3. ¿Qué tan dispuestos están para responder quienes van a contestar?
4. ¿Cuánto costará su aplicación?
Observación
Observar es aplicar atentamente los sentidos a un objeto o a un fenómeno, para estudiarlos tal como se presentan en realidad
La observación depende en gran medida de los sentidos. Pero, para contrarrestar las limitaciones de nuestros sentidos, el ser humano ha creado instrumentos que lo auxilian para realizar una buena observaciones. Estos instrumentos aumentan, precisan o reemplazan nuestros sentidos en la observaciones. Ejemplos de ellos son:
Telescopio
Cronómetro y balanza
Cámara fotográficas y sismógrafo
Para hacer una buena observación, es necesario que usted desarrolle cualidades como las siguientes:
1.  Una inteligencia despierta para observar lo que tenga interés cientifico
2. Atención concentrada y gran paciencia, pues los fenómenos no se nos presentan en forma total y es necesario esperar atentamente a que aparezcan en la forma más completa que sea posible.
3. Un conocimiento de lo observado y de su ambiente, para mejorar la observación e interpretar los resultados con mayor objetividad.
Entrevista
Las entrevistas se utilizan para recabar información en forma verbal, a través de preguntas que propone el analista. Quienes responden pueden ser gerentes o empleados, los cuales son usuarios actuales del sistema existente, usuarios potenciales del sistema propuesto o aquellos que proporcionarán datos o serán afectados por la aplicación propuesta. El analista puede entrevistar al personal en forma individual o en grupos algunos analistas prefieren este método a las otras técnicas que se estudiarán más adelante. Sin embargo, las entrevistas no siempre son la mejor fuente de datos de aplicación.
Dentro de una organización, la entrevistas es la técnica más significativa y productiva de que dispone el analista para recabar datos. En otras palabras, la entrevistas es un intercambio de información que se efectúa cara a cara. Dentro de una organización, la entrevistas es la técnica más significativa y productiva de que dispone el analista para recabar datos. En otras palabras, la entrevistas es un intercambio de información que se efectúa cara a cara.
Preparación de la Entrevista
1.  Determinar la posición que ocupa de la organización el futuro entrevistado, sus responsabilidades básicas, actividades, etc. (Investigación).
2.   Preparar las preguntas que van a plantearse, y los documentos necesarios (Organización).
3.   Fijar un límite de tiempo y preparar la agenda para la entrevista. (Sicología).
4.   Elegir un lugar donde se puede conducir la entrevista con la mayor comodidad (Sicología).
5.   Hacer la cita con la debida anticipación (Planeación).
Conducción de la Entrevista
1.   Explicar con toda amplitud el propósito y alcance del estudio (Honestidad).
2. Explicar la función propietaria como analista y la función que se espera conferir al entrevistado. (Imparcialidad).
3.   Hacer preguntas específicas para obtener respuestas cuantitativas (Hechos).
4.   Evitar las preguntas que exijan opiniones interesadas, subjetividad y actitudes similares (habilidad).
5.   Evitar el cuchicheo y las frases carentes de sentido (Claridad).
6.   Ser cortés y comedio, absteniéndose de emitir juicios de valores. (Objetividad).
7.   Conservar el control de la entrevista, evitando las divagaciones y los comentarios al margen de la cuestión.
8.   Escuchar atentamente lo que se dice, guardándose de anticiparse a las respuestas (Comunicación).

miércoles, 16 de mayo de 2012

Tarea 1


PARADIGMA ORIENTADO A OBJETOS

Planteamiento del problema 
En la actualidad, la programación utiliza un paradigma orientado a objetos, consiste en organizar los programas de modo que reflejen la forma en que los objetos en el mundo real se encuentran organizados. 
Programación orientada a objetos 
La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos y sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, abstracción, polimorfismo y encapsulamiento.
Ventajas de la POO
• Fomenta la reutilización y extensión del código. 

• Permite crear sistemas más complejos. 
• Relacionar el sistema al mundo real. 
• Facilita la creación de programas visuales. 
• Construcción de prototipos. 
• Agiliza el desarrollo de software. 
• Facilita el trabajo en equipo. 
• Facilita el mantenimiento del software. 
• Lo interesante de la POO es que proporciona conceptos y herramientas con las cuales se modela y representa el mundo real tan fielmente como sea posible. 
Objeto 
Entender que es un objeto es la clave para entender cualquier lenguaje orientado a objetos. 
Características de la POO 
Existe un acuerdo acerca de qué características contempla la "orientación a objetos", las características siguientes son las más importantes: 
· Abstracción
Denota las características esenciales de un objeto, donde se capturan sus comportamientos.
·Encapsulamiento 
Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción.
·Modularidad
Se denomina Modularidad a la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes.
·Principio de ocultación 
Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una interfaz a otros objetos que específica cómo pueden interactuar con los objetos de la clase.
·Polimorfismo
Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando.
·Recolección de basura 
La recolección de basura o garbage collector es la técnica por la cual el entorno de objetos se encarga de destruir automáticamente, y por tanto desvincular la memoria asociada, los objetos que hayan quedado sin ninguna referencia a ellos.

lunes, 14 de mayo de 2012

Actividad 2

PARADIGMA CICLO DE VIDA DEL SOFTWARE
Este fue el modelo inicial planteado para organizar el proceso de desarrollo, aunque antiguo tiene vigencia en algunos proyectos o como parte de otros modelos, da la medida de los pasos tradicionales de cualquier modelo: análisis, entrevista, diseño, codificación, prueba y mantenimiento.

PARADIGMA DE CONSTRUCCIÓN DE PROTOTIPOS
Normalmente un cliente definirá un conjunto de objetivos generales para el software pero no identificara los requerimientos detallados de entrada, procesamiento de salida.
En otros casos el programador puede no estar seguro de la eficiencia de un algoritmo, la adaptabilidad de un sistema operativo o la forma en que debe realizarse la interacción hombre-maquina. En estas y muchas otras situaciones puede ser mejor método de ingeniería de software realizar un prototipo. La construcción de prototipo es un proceso que facilita al programador la creación de un método de software a conseguir
CARACTERISTICAS:
  • Este paradigma ayuda al cliente a brindar requisitos paso a paso.
  • También facilita al programador ir probando algoritmos no explotados con anterioridad, de los que no tiene seguridad de su eficiencia.
  • Consiste en la creación de prototipos

PARADIGMA DEL MODELO ESPIRAL
Es un modelo de proceso de software evolutivo. En el modelo espiral, el software se desarrolla en una serie de versiones increméntales. Durante las primeras iteraciones. La versión incremental podría ser un modelo en papel o un prototipo. Durante las últimas iteraciones, se producen versiones cada vez mas completas de ingeniería del sistema.
CARACTERISTICAS:
  • Es también al igual que el anterior un modelo evolutivo que combina el modelo clásico con el diseño de prototipos.
  • Incluye la etapa de análisis de riesgos, no incluida anteriormente.
  • Es ideal para crear productos con diferentes versiones mejoradas como se hace con los software modernos de microcomputadoras.
  • La ingeniería puede desarrollarse a través del ciclo de vida clásico o el de construcción de prototipos.
  • Este es el enfoque más realista actualmente.



EL MODELO DRA
El Desarrollo Rápido de Aplicaciones (DRA) (rapid application Development RAD) es un modelo de proceso del desarrollo del software lineal secuencial que enfatiza un ciclo de desarrollo extremadamente corto. DRA es una adaptación a "Alta velocidad" en el que se logra el desarrollo rápido utilizando un enfoque de construcción basado en componentes. Si se comprenden bien los requisitos y se limita el ámbito del proyecto, el proceso DRA permite al equipo de desarrollo crear un "sistema completamente funcional" dentro de periodos cortos de tiempo. Cuando se utiliza principalmente para aplicaciones de sistemas de información, el enfoque DRA comprende las siguientes fases:
  • Modelado de gestión: el flujo de información entre las funciones de gestión se modela de forma que responda a las siguientes preguntas: ¿Qué información conduce el proceso de gestión? ¿Qué información se genera? ¿Quién la genera? ¿A dónde va la información? ¿Quién la proceso?
  • Modelado de datos: el flujo de información definido como parte de la fase de modelado de gestión se refina como un conjunto de objetos de datos necesarios para apoyar la empresa. Se definen las características (llamadas atributos) de cada uno de los objetos y las relaciones entre estos objetos.
  • Modelado de proceso: los objetos de datos definidos en la fase de modelado de datos quedan transformados para lograr el flujo de información necesario para implementar una función de gestión. Las descripciones del proceso se crean para añadir, modificar, suprimir, o recuperar un objeto de datos. Es la comunicación entre los objetos.
  • Generación de aplicaciones: El DRA asume la utilización de técnicas de cuarta generación. En lugar de crear software con lenguajes de programación de tercera generación, el proceso DRA trabaja para volver a utilizar componentes de programas ya existentes (cuando es posible) o a crear componentes reutilizables (cuando sea necesario). En todos los casos se utilizan herramientas automáticas para facilitar la construcción del software.
  • Pruebas de entrega: Como el proceso DRA enfatiza la reutilización, ya se han comprobado muchos de los componentes de los programas. Esto reduce tiempo de pruebas. Sin embargo, se deben probar todos los componentes nuevos y se deben ejercitar todas las interfases a fondo. 


PARADIGMA DE TÉCNICAS DE CUARTA GENERACION
El termino de técnicas de cuarta generación (T4G) abarca un amplio espectro de herramientas de software ha especificar algunas características de alto nivel. Luego la herramienta genera automáticamente el código fuente basándose en la especificación del técnico. Existe cierto debate sobre cuanto ha de elevarse el nivel en el que se especifique el software para una maquina. El paradigma de T4G para la ingeniería de software se orienta hacia la habilidad de especificar software a un nivel que sea más próximo al lenguaje natural o a una notación que proporcione funciones significativas.
Actualmente un entorno para el desarrollo del software que soporte el paradigma de T4G incluye algunas o todas las siguientes herramientas: lenguajes no procedimentales para consulta a base de datos, generación de informes, manipulación de datos, interacción y definición de pantallas y generación de códigos, capacidades gráficas de alto nivel y capacidad de hojas de cálculo





EL MODELO DE DESARROLLO CONCURRENTE

Es un modelo de tipo de red donde todas las personas actúan simultáneamente o al mismo tiempo.


Davis Sitaram ha descrito el modelo de desarrollo concurrente, llamado algunas veces ingeniería concurrente, de la siguiente forma:

Los gestores de proyectos que siguen los pasos del estado del proyecto en lo que se refiere a las fases importantes [del ciclo de vida clásico] no tiene ideal del estado de sus proyectos.

 El modelo de proceso concurrente se puede representar en forma de esquema como una serie de actividades técnicas importantes, tareas y estados asociados a ellas.
La figura siguiente proporciona una representación esquemática de una actividad dentro del modelo de proceso concurrente. La actividad "análisis" se puede encontrar en uno de los estados destacados anteriormente en cualquier momento dado. De forma similar otras actividades se pueden representar de una forma análoga. 



COMBINACIÓN DE PARADIGMAS

Frecuentemente se describe a los paradigmas de la ingeniería de software tratados en las secciones anteriores como métodos alternativos, para la ingeniería de software en vez de los métodos complementarios.

En muchos casos los paradigmas pueden y deben combinarse en forma que puedan utilizarse las ventajas de cada uno en un único proyecto.


miércoles, 9 de mayo de 2012

Actividad 1

Actividades Obligatorias
1.   Investigue otras 2 definiciones de ingeniería de software.
·    software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos que pertenecen a un sistema de cómputo
·     La Ingeniería del Software es una disciplina o área de la informática o ciencias de la computación, que ofrece método y técnicas para desarrollar y mantener software de calidad que resuelven problemas.
2.   La ingeniería de software abarca un conjunto de 3 elementos clave, explique cada uno de ellos.
·     Métodos o técnicas: Indican cómo construir técnicamente el software, y abarca una serie de tareas que incluyen la planificación y estimación de proyectos, el análisis de requisitos, el diseño de estructuras de datos, programas y procedimientos, la codificación, las pruebas y el mantenimiento. Los métodos introducen frecuentemente una notación específica para la tarea en cuestión y una serie de criterios de calidad.
·     Herramientas: Son instrumentos o sistemas automatizados para realizar algo de la mejor manera posible. Esta manera óptima puede significar que la herramienta produce resultados más exactos, más eficientes, más productivos, o que refuerza la calidad del producto resultante. Proporcionan un soporte automático o semiautomático para todas las fases del desarrollo y sistemas que integran las herramientas de cada fase de manera que sirven para todo el proceso. Estas herramientas se denominan CASE (Computer Aided Software Engineering).
·     Procedimientos: Son la combinación de las técnicas y las herramientas que en forma conjunta dan un resultado particular. Los procedimientos indicarán qué herramientas deberán utilizarse cuando se aplican determinadas técnicas. Definen la secuencia en que se aplican los métodos, los documentos que se requieren, los controles que aseguran la calidad y las directrices que permiten a los gestores evaluar los progresos 
3.   Que es el ciclo de vida de sistemas, etapas y su descripción
·     El proceso de desarrollo de software requiere por un lado un conjunto de conceptos, una metodología y un lenguaje propio. A este proceso también se le llama el ciclo de vida del software que comprende cuatro grandes fases: concepción, elaboración, construcción y transición. La concepción define el alcance del proyecto y desarrolla un caso de negocio. La elaboración define un plan del proyecto, especifica las características y fundamenta la arquitectura. La construcción crea el producto y la transición transfiere el producto a los usuarios.

Actividades sugeridas
1.    Cree su propia definición de lo que es la ingeniería de software.
·       La ingeniería de software es una disciplina del área de la informática que sirve para crear una serie de programas de computadora para una necesidad en especifica o varias necesidades en general

Autoevaluación
1. ¿Qué es la ingeniería de software?
·       La ingeniería de software surge de la ingeniería de sistemas y de hardware. Abarca un conjunto de 3 elementos clave: métodos, herramientas y procedimientos, estos facilitan al gestor a controlar el proceso de desarrollo de software y suministra a los que practique dicha ingeniería las bases para construir software de alta calidad.
2. ¿Para qué son los métodos de la ingeniería de software?
·       Suministran el cómo construir técnicamente el software. Los métodos abarcan un amplio espectro de tareas que incluyen: planificación y estimación de proyectos, análisis de los requerimientos del sistema y del software, diseño de procedimientos algorítmicos, codificación, prueba y mantenimiento.
3. ¿Qué son los procedimientos?
·        Los procedimientos definen la secuencia en la que se aplican los métodos, las entregas que se requieren y los controles que ayuden asegurar, la calidad y coordinar los cambios y las guías que facilitan a los gestores de software establecer el desarrollo.
4. ¿Qué son las herramientas?
·         Las herramientas de ingeniería de software son los métodos necesarios para desarrollar el sistema
5. ¿Para que nos sirven las herramientas?
·       Suministran un soporte automático o semiautomático para los métodos. Cuando se integran las herramientas de forma que la información creada por una herramienta pueda ser usada por otra, se establece un sistema para el soporte del desarrollo del software llamado ingeniería de software asistido por computadora, por mencionar alguna de estas herramientas existen las herramientas CASE[(Ingeniería de software asistida por computadora) computer aided software engineering]. Combina del software, hardware y base de datos para crear un entorno de la ingeniería de software todo tipo