1.1 Conceptos básicos
La ingeniería de software es una disciplina formada por un conjunto de métodos, herramientas y técnicas que se utilizan en el desarrollo de los programas informáticos (software).
Esta diciplina traciende la actividad de programacion, que es la actividad principal a la hora de crear un software. El ingeniero de software se encarga de toda la gestion del proyecto para que este se pueda desarrollar en un plazo determinado y con el presupuesto preevisto.
la ingenieria de software, por lo tanto, incluye el analisis previo de la situacion, el diseño del proyecto, el desarollo del software las pruebas necesarias para su correcto funcionamiento y la implementacion del sistema.
Los ingenieros de software deben:
Adoptar un enfoque sistemático de trabajo.
Utilizar la herramientas y técnicas apropiadas para resolver el problema planteado, de acuerdo a las restricciones de desarrollo y a los recursos disponibles.
1.2 El papel evolutivo del software
hoy en dia, el papel del software tiene un papel dual. Este producto y canal de distribucion de ests. Como producto ofrece la potencia de computo presentada como hardware de una computadora o, de manera mas global de una red de computadoras accecibles mediante hardware local y de acceso fisico. Sin importar en lugar donde resida el software, ya sea en un celular o en una computadora central, este es un transformador de informacion: realiza la produccion, el manejo, la adquisicion, la modificacion, el despliegue o la transmision de informacion que puede ser tan simple hasta de un solo bit o tan compleja como una precentacion multimedia.
Primera era (1950-1965):
Se trabajaba con la idea de (codificar y corregir)
No existia un planteamiento previo.
No exisitia documentacion de ningun tipo.
Exsistencia de pocos metodos formales y poco creyentes de ellos.
Desarollo a base de prueba y error.
Segunda era (1965-1972):
Se busca simplificador de codigo.
Aparicion de multiprogramacion y multiusuarios.
Sistema de tiempo real ayudando a la toma de deciciones.
Aparicion de software como producto. ( casas de software).
Se busca procedimientos para en desarrollo de software.
Tercera era (1972-1985):
Nuevo concepto sistemas distribuidos.
complejidad de los sietamas de informacion.
Aparecen: redes de area local y global.
amplio uso de microprocesadores.
cuarta era (1985-1995):
Impacto colectivo de software.
Aparecen: redes de informacion, tecnologias orientada a objetos.
Apareces: redes neourales, sistemas expertos y SW de sistema artificial.
La informacion como valor preponderante dentro de las organizaciones.
Quinta era (2000 Hasta hoy en dia):
Utiliza algunos registros de las eras anteriores solo que aumenta la omniprecencia de la red la reutilizacion de la informacion y componentes de software.
codificar: Transformar mediante las reglas de un codigo la formulacion de un mensaje.
Hradware: Componente fisico de la computadora, por ejemplo; el monitor la impresora o el disco rigido. El hardware por si mismo no hace que una maquina funcionSe.
1.4 Clasificacion de la tecnologia en el desarrollo del software
Tecnologias de desarrollo estructurado:
Estos son los mas convencioneles de las empleadas hoy dia. Han surgido de la evolucion de las ideas de la programacion estructurada (Hace mas de 25 años) hacia las faces inicales del siglo de vida. En su formulacion actual las notaciones empleadas en su primera face del siclo de vida (especificacion de requisito de usuro y sistema) suele estar constituidos por lenguajes graficos que perimte: identificar el sistema y el entorno; reprecentado el flojo de informacion entre los elementos y describir los datos ya las actividades del sistems.
La idea base de esta tecnologia es que es posible estructurar el modelo de un sistema software en base a funciones que procesen informacion que reciben de otras funciones (o de exterios) y dirigen la informacion procesada a otro modulo funcionles ( o al exterior) el enfoque seguido por tanto es de pensar en las funciones de sistemas necesarias ( extraidas del requisito del sistema) y luego en los datos que requiere.
Orientada o objetos:
Los metodos de descompocicion orientada a objetos constituyendola tendecia mas intuyente observada en la ingenieria de sistema de software en los ultimos años. con ello nos referimos a un conjunto de metodo (a un enfase de desarollo o evolucion)
que permite al analista y diseñador consebir su sistema identificando clase de objetos, operaciones permitidas y relaciones etre ellos como base para la estructura de sistema a dseñar.
En ellas, un objeto es un conjunto de datos y funciones de manipulacion de los mismos encapsulados en una unidad que es posible de tratar como un todo ( crear, copiar, destruir, etc.). un objeto posee unas operaciones visibles a otros objetos aunque estos no conoces como estan implemantado. El diseñaros reconoce inicalmente clases y de objetos de las que se derivan los objetos concretos que utilizran en el diseño.
1.5 Definicion de la historia de as Herramientas case:
1.3 Etapas del desarrollo del software
Etapa de análisis: Es el proceso de investigar un problema que se quiere resolver. definir claramente el problema que se desea resolver o el sistema que se desea crear para identificar los componentes principales que integran el producto.
Etapas de diseño: Es el proceso a utilizar la información recolectada en la etapa de análisis de al diseño del producto. la principal tarea de la etapa de diseño es desarrollar un modelo o las especificaciones para el producto o componentes del sistema.
Etapa de desarrollo: Consiste en utilizar los modelos guiados durante la etapa de diseño para crear los componentes del sistema.
Etapa de prueba o verificación prueba: Cosiste en asegurar los componentes individuales que integran el sistema o producto, cumplen con los requerimientos de la especificación creada durante la etapa de diseño.
Etapa de implementacion o entrega de implantacion: Consiste en poner a dispocicion del cliente el producto.
Etapa de mantenimiento: Cosiste en coregir problemas de producto y reliberar el producto como una nueva version o revision (producto mejorado).
Etapa final: El fin del siclo del producto consiste en realizar todas las tareas necesarias para asegurar que los clientes y empleados esten concientes de que el producto ya no sera vendido ni soportado.
Tecnologias de desarrollo estructurado:
Estos son los mas convencioneles de las empleadas hoy dia. Han surgido de la evolucion de las ideas de la programacion estructurada (Hace mas de 25 años) hacia las faces inicales del siglo de vida. En su formulacion actual las notaciones empleadas en su primera face del siclo de vida (especificacion de requisito de usuro y sistema) suele estar constituidos por lenguajes graficos que perimte: identificar el sistema y el entorno; reprecentado el flojo de informacion entre los elementos y describir los datos ya las actividades del sistems.
La idea base de esta tecnologia es que es posible estructurar el modelo de un sistema software en base a funciones que procesen informacion que reciben de otras funciones (o de exterios) y dirigen la informacion procesada a otro modulo funcionles ( o al exterior) el enfoque seguido por tanto es de pensar en las funciones de sistemas necesarias ( extraidas del requisito del sistema) y luego en los datos que requiere.
Orientada o objetos:
Los metodos de descompocicion orientada a objetos constituyendola tendecia mas intuyente observada en la ingenieria de sistema de software en los ultimos años. con ello nos referimos a un conjunto de metodo (a un enfase de desarollo o evolucion)
que permite al analista y diseñador consebir su sistema identificando clase de objetos, operaciones permitidas y relaciones etre ellos como base para la estructura de sistema a dseñar.
En ellas, un objeto es un conjunto de datos y funciones de manipulacion de los mismos encapsulados en una unidad que es posible de tratar como un todo ( crear, copiar, destruir, etc.). un objeto posee unas operaciones visibles a otros objetos aunque estos no conoces como estan implemantado. El diseñaros reconoce inicalmente clases y de objetos de las que se derivan los objetos concretos que utilizran en el diseño.
1.5 Definicion de la historia de as Herramientas case:
Las herramientas case se
iniciaron con un procesador de palabras que fue
usado para crear y manipular
documentación. Los 70’s vieron la introducción de técnicas gráficas y diagramas
de flujo de datos. Sobre este punto, el diseño y especificaciones en forma
pictórica han sido extremadamente complejos y consumían mucho tiempo para realizar
cambios.
La introducción de las
herramientas case para ayudar en este proceso ha permitido que los diagramas
puedan ser fácilmente creados y modificados, mejorando la calidad de los
diseños de software. los diccionarios de datos, un documento muy usado que
mantiene los detalles de cada tipo de dato y los procesos dentro de un sistema,
son el resultado directo de la llegada del diseño de flujo de datos y análisis
estructural, hecho posible a través de las mejoras en las herramientas case.
Pronto se remplazaron los
paquetes gráficos por paquetes especializados que habilitan la edición,
actualización e impresión en múltiples versiones de diseño. a diario, las
herramientas gráficas integradas con diccionarios de base de datos para
producir poderosos diseños y desarrollar herramientas, podrían sostener ciclos
completos de diseño de documentos. Como un paso final, la verificación de
errores y generadores de casos de pruebas fueron incluidos para validar el
diseño del software. Todos estos procesos pueden saberse integrados en una
simple herramienta case que soporta todo el ciclo de desarrollo. La primera
herramienta comercial se remonta a 1982, aunque algunos especialistas indican
que algunos ejemplos de herramientas para diagramación ya existían. No fue sino
hasta 1985 cuando las herramientas case se volvieron realmente importantes en
el proceso de desarrollo de software. Los proveedores prometieron a la
industria que muchas actividades serían beneficiadas por la ayuda de las case.
El
objetivo en 1985 para muchos vendedores era producir software más rápidamente.
Las herramientas del CASE serían una familia de métodos favorablemente
estructurados para planeamiento, análisis y diseño. Esto llevaría a la
generación automática de código para desarrollo de software. Esto traería
como beneficio: Una mejora en la calidad, fiabilidad, utilidad y rendimiento.
1.6 Clasificacion de las Herramientas case:
1.- Herramientas integrado, I-CASE (Integrad CASE, CASE integrado): abarcan todas las fases del siglo de vida del desarrollo de sistemas. son llamadas tambien Case workbench.
2.- Herramientas de alto nivel, U-CASE (Uper CASE-CASE superior): orientada a las automatizaciones y soporte de las actividades desarrollada durante las primeras fases del desarrollo: analisis y diseño.
3.- Herramienta de bajo nivel L-CASE (Lower-CASE- CASE-inferior) dirigdas a las ultimas faces del desarrollo: implementacion y constuccion.
4.- Juegos de herramientas o Tools-case, son el tipo mas simple de herramienta case. Automatizan una fase dentro del ciclo de vida. Dentro de este grupo se encuentran .
2.- Herramientas de alto nivel, U-CASE (Uper CASE-CASE superior): orientada a las automatizaciones y soporte de las actividades desarrollada durante las primeras fases del desarrollo: analisis y diseño.
3.- Herramienta de bajo nivel L-CASE (Lower-CASE- CASE-inferior) dirigdas a las ultimas faces del desarrollo: implementacion y constuccion.
4.- Juegos de herramientas o Tools-case, son el tipo mas simple de herramienta case. Automatizan una fase dentro del ciclo de vida. Dentro de este grupo se encuentran .