2. DEFINICION DE INGENIERIA
DE SOFTWARE
La Ingeniería de Software es una disciplina de la
Ingeniería que concierne a todos los aspectos de la
producción de software
Los Ingenieros de Software adoptan un enfoque
sistemático para llevar a cabo su trabajo y utilizan las
herramientas y técnicas necesarias para resolver el
problema planteado, de acuerdo a las restricciones de
desarrollo y recursos disponibles.
3. PRIMERA ERA
(1950 - 1965)
Se trabajaba con la idea de "Codificar y Corregir".
No exista un planteamiento previo.
No exista documentación de ningún tipo.
Existencia de pocos métodos formales y pocos
creyentes en ellos.
Desarrollo a base de prueba y error.
SEGUNDO ERA
(1965 - 1972)
Se busca simplificar código.
Aparición de Multiprogramación y Sistemas
Multiusuarios. Sistemas de Tiempo Real apoyan la
toma de decisiones.
Aparición de Software como producto. (Casas de
Software).
Se buscan procedimientos para el desarrollo del
Software.
EL PAPEL EVOLUTIVO DEL SOFTWARE
4. TERCERA ERA
(1972 - 1985)
Complejidad en los Sistemas de Informacion
Aparecen: Redes de area local y global, y Comunicadores
Digitales. Amplio Uso de Microprocesadores.
CUARTA ERA
(1985 - 1995 )
Impacto Colectivo de Software.
Aparecen: Redes de Información Tecnológicas Orientadas a
Objetos.
Aparecen: Redes Neuronales, Sistemas Expertos y SW de
Inteligencia Artificial.
La información como valor preponderante dentro de las
Organizaciones.
QUINTA ERA
(2000 hasta hoy en día)
5. DIFERENCIA ENTRE INGENIERÍA DE
SOFTWARE Y COMPUTACIÓN
La computación concierne a la teoría y fundamentos de
cualquier sistema de computo, sea de hardware o de
software.
La Ingeniería de software concierne solo al desarrollo
de sistemas o productos de software.
La Ingeniería de Software todavía esta lejos de ser una
ciencia como los son la Química, la Ingeniería Civil o
la Electrónica.
6. DEFINICION DE LA HISTORIA DE LAS HERRAMIENTAS CASE
Case es un conjunto de herramientas que contiene programas y aplicaciones
informáticas diseñados con la finalidad de generar mayor productividad, brindar
facilidades de uso que ahorran tiempo y dinero en el desarrollo de softwares o nuevas
aplicaciones.
Herramientas CASE
Las herramientas CASE fueron diseñadas tanto para desarrollar softwares con bajos costos de
producción y que impliquen menos tiempo de trabajo, como con el propósito de extender el ciclo de
utilidad del software creado a través de este medio, por el cual se puede diseñar un proyecto con un
costo de producción determinado y a su vez agilizar el proceso de programación.
Finalidad de las herramientas CASE
• Desarrollar softwares de mayor calidad
• Elaborar software a menor costo y en menor tiempo
• Desarrollar software que garanticen una programación universal
• Automatizar el desarrollo de softwares.
7. CLASIFICACION DE LAS HERRAMIENTAS CASE.
No existe una única clasificación de herramientas CASE y, en ocasiones, es difícil
incluirlas en una clase determinada. Puedan clasificarse atendiendo a:
Las plataformas que soportan
■ Las fases del ciclo de vida del desarrollo de sistemas que cubren.
■ La arquitectura de las aplicaciones que producen.
■ Su funcionalidad.
Las herramientas CASE, en función de las fases del ciclo de vida abarcadas, se pueden agrupar
de la forma siguiente:
1. Herramientas integradas, I-CASE (Integrated CASE, CASE integrado):
abarcan todas las fases del ciclo de vida del desarrollo de sistemas.
2. Herramientas de alto nivel, U-CASE (Upper CASE - CASE superior) o front-end, orientadas
a la automatización y soporte de las actividades desarrolladas durante las primeras fases del
desarrollo: análisis y diseño.
3. Herramientas de bajo nivel, L-CASE (Lower CASE - CASE inferior) o back-end, dirigidas a
las ultimas fases del desarrollo: construcción e implantación.
4. Juegos de herramientas o Tools-Case, son el tipo mas simple de herramientas CASE.
Automatizan una fase dentro del ciclo de vida. Dentro
5. de este grupo se encontraban las herramientas de reingeniena, orientadas a la fase de
mantenimiento.
8. CARACTERÍSTICAS DE LOS
PRODUCTOS DE SOFTWARE
Mantenibles
Debe ser posible que el software evolucione y que siga cumpliendo con sus
especificaciones.
Confiabilidad
El software no debe causar danos tangibles o económicos en el caso de
fallos.
Eficiencia
El software no debe desperdiciar los recursos del sistema.
Utilización adecuada
El software debe contar con una interfaz de usuario adecuada y su
documentación.
9. ¿QUE CONTIENE EL SOFTWARE ?
El software contiene:
Líneas de código de algún lenguaje
Instrucciones de computadora
Descripción de las estructuras de datos
Algoritmos
Procedimientos y funciones
Componentes de software
10. ¿QUE TIPOS DE SOFTWARE EXISTEN ?
Por su estructura:
Funcionales.
Orientados a objetos.
Orientados a listas.
Orientados a componentes.
Por su función:
Programas o Sistemas de Usuario
Interfaces Hombre-Maquina.
Herramientas de Software.
Librerías.
Sistemas de uso genérico: Compiladores, S.O’s, Procesadores de Texto, etc.
Bases de Datos.
Sistemas basados en Web.
11. INGENIERÍA DEL SOFTWARE
ORIENTADA A OBJETOS
La Programación Orientada a Objetos (OOP por sus siglas en inglés de Object
Oriented Programming) como paradigma, "es una forma de pensar, una filosofía, de la
cual surge una cultura nueva que incorpora técnicas y metodologías diferentes
La Programación Orientada a Objetos desde el punto de vista computacional "es un
método de implementación en el cuál los programas son organizados como grupos
cooperativos de objetos, cada uno de los cuales representa una instancia de alguna
clase, y estas clases, todas son miembros de una jerarquía de clases unidas vía
relaciones de herencia"
Programación Orientada a Objetos
La OO se basa en tres principios básicos: todo son objetos, encapsulamiento /
ocultación y herencia / polimorfismo.
El primer principio indica la unidad básica de trabajo. El segundo permite englobar en
un mismo concepto a los datos y a las operaciones. El tercero permite agrupar y tratar
de igual forma a objetos similares.
12. Análisis y Diseño Orientado a objetos
Análisis Orientado a Objetos
(OOA por sus siglas en inglés de Object Oriented Analysis) "es
un método de análisis que examina los requerimientos desde la
perspectiva de las clases y objetos encontrados en el
vocabulario de del dominio del problema" .
Diseño Orientado a Objetos
Es un método de diseño abarcando el proceso de
descomposición orientado a objetos y una notación para
representar ambos modelos lógico y físico tal como los modelos
estáticos y dinámicos del sistema bajo diseño