Unidad 1 Fundamentos de Ingenieria de Software

16
[Escriba aquí] GLOBALTEC Fundamentos de Ingeniería del Software UNIDAD 1 Integrantes del Equipo: Cinthia Guadalupe Ramírez Montes Lezly Susette Reyes Norman Franklin Iztcoatl Monreal Cristerna Bernardo Dávila Jiménez Alfredo Pablo Hernández

description

Documento que describe los fundamentos de la ingeniera de software.

Transcript of Unidad 1 Fundamentos de Ingenieria de Software

Page 1: Unidad 1 Fundamentos de Ingenieria de Software

[Escriba aquí]

GLOBALTEC

Fundamentos de Ingeniería del Software

UNIDAD 1

Integrantes del Equipo:

Cinthia Guadalupe Ramírez Montes

Lezly Susette Reyes Norman

Franklin Iztcoatl Monreal Cristerna

Bernardo Dávila Jiménez

Alfredo Pablo Hernández

Page 2: Unidad 1 Fundamentos de Ingenieria de Software

GlobalTec

Fundamentos de Ingeniería del Software UNIDAD 1

Ingeniería en Sistemas Computacionales Página 3 de 16

Contenido 1.1. Conceptos Básicos ....................................................................................... 4

Glosario ................................................................................................................ 4

1.2. El Papel Evolutivo del Software ..................................................................... 7

Línea del Tiempo.................................................................................................. 7

1.3 Etapas del Desarrollo del Software ................................................................... 8

Cuadro Comparativo ............................................................................................ 8

1.4 Definición e Historia de las Herramientas Case ............................................... 9

Definición ............................................................................................................. 9

Historia de las herramientas CASE: ................................................................... 10

1.5 Clasificación de las Herramientas CASE........................................................ 13

Clasificación basada en su funcionalidad .......................................................... 13

Clasificación basada en el ciclo de vida del desarrollo de sistemas que cubren 14

Clasificación basada en su integración .............................................................. 15

Referencias ........................................................................................................... 16

Page 3: Unidad 1 Fundamentos de Ingenieria de Software

GlobalTec

Fundamentos de Ingeniería del Software UNIDAD 1

Ingeniería en Sistemas Computacionales Página 4 de 16

1.1. Conceptos Básicos

Glosario

Software.- Programas de computadoras y documentación asociada, pueden ser

diseñados por una sola persona, o por un grupo. Pueden ser genéricos o hechos a

la medida para el cliente.

Equipamiento lógico o soporte lógico de un sistema informático, comprende el conjunto de los componentes lógicos necesarios que hacen posible la realización de tareas específicas, en contraposición a los componentes físicos, que son llamados hardware.

Los componentes lógicos incluyen, entre muchos otros, las aplicaciones informáticas; tales como el procesador de texto, que permite al usuario realizar todas las tareas concernientes a la edición de textos; el software de sistema, tal como el sistema operativo, que, básicamente, permite al resto de los programas funcionar adecuadamente, facilitando también la interacción entre los componentes físicos y el resto de las aplicaciones, y proporcionando una interfaz con el usuario.

Ingeniería.- disciplina que utiliza todo tipo de recursos, sea humano, de

conocimiento, físico, natural, financiero y de información, para crear y dirigir con

ciencia y arte, sistemas físicos y sociales sustentables que proveen de bienes y

servicios, mediante el conocimiento y el perfeccionamiento de los atributos y

relaciones de dichos recursos, apoyada en las matemáticas, ciencias naturales y

ciencias sociales con el fin de elevar la calidad de vida de la humanidad.

Ingeniería de Software.- Disciplina de la ingeniería que está conectada en todos

los aspectos al desarrollo de software. Los ingenieros de software deben adoptar

un enfoque sistemático y organizado en su trabajo junto con el uso de

herramientas y técnicas adecuadas dependiendo del problema a resolver, las

limitaciones de desarrollo y los recursos disponibles.

Informática.- tiene que ver con la teoría y los fundamentos de la computación.

Ingeniería en sistemas.- enfoque interdisciplinario que permite estudiar y

comprender la realidad, con el propósito de implementar u optimizar

sistemas complejos. Los ingenieros de sistemas están implicados en el sistema de

especificación, diseño arquitectónico, la integración y despliegue de los sistemas.

Proceso de creación de software.- Un conjunto de actividades cuyo objetivo es el

desarrollo o evolución de software, las partes principales son:

• Especificación - lo que el sistema debe hacer y su desarrollo limitaciones.

• Desarrollo - producción del sistema de software.

• Validación - comprobar que el software es lo que el cliente quiere.

Page 4: Unidad 1 Fundamentos de Ingenieria de Software

GlobalTec

Fundamentos de Ingeniería del Software UNIDAD 1

Ingeniería en Sistemas Computacionales Página 5 de 16

• Evolución - cambiar el software en respuesta a los cambios demandas.

CASE.- Los sistemas de software que están destinados a proporcionar soporte

automatizado para las actividades del proceso de software.

Sistema.- Una colección útil de componentes interrelacionados trabajar juntos

hacia un objetivo común. Un sistema puede incluir software, mecánica, hardware

eléctricos y electrónicos y estar en funcionamiento por la gente. Los componentes

del sistema son dependientes de los otros componentes del sistema.

Modelado de arquitectura de sistema.- Un modelo arquitectónico presenta una

visión abstracta de los subsistemas que componen un sistema Puede incluir los

principales flujos de información entre los subsistemas Generalmente se presenta

como un diagrama de bloques Puede identificar los diferentes tipos de relaciones

funcionales componente en el modelo.

Programación.- es el proceso de diseñar, codificar, depurar y mantener el código

fuente de programas computacionales. El código fuente es escrito en un lenguaje

de programación. El propósito de la programación es crear programas que exhiban

un comportamiento deseado. El proceso de escribir código requiere frecuentemente

conocimientos en varias áreas distintas, además del dominio del lenguaje a utilizar,

algoritmos especializados y lógica formal.

Depuración.- Purificación o corrección del código en un sistema.

Validación de software.- Verificación y validación tiene por objeto mostrar que un

sistema se ajusta a su especificación y cumple con los requisitos del cliente sistema.

Base de datos.- colección de datos interrelacionados.

Dominio.-es una red de identificación asociada a un grupo de dispositivos o

equipos conectados a la red Internet.

Lenguaje de programación.- es un idioma artificial diseñado para

expresar procesos que pueden ser llevadas a cabo por máquinas como las

computadoras. Pueden usarse para crear programas que controlen el

comportamiento físico y lógico de una máquina, para expresar algoritmos con

precisión, o como modo de comunicación humana.

Interfaz.- es la conexión entre dos ordenadores o máquinas de cualquier tipo dando

una comunicación entre distintos niveles.

Documento.- testimonio material de un hecho o acto realizado en el ejercicio de

sus funciones por instituciones o personas físicas, jurídicas, públicas o privadas,

registrado en una unidad de información en cualquier tipo de soporte en lengua

natural o convencional.

Page 5: Unidad 1 Fundamentos de Ingenieria de Software

GlobalTec

Fundamentos de Ingeniería del Software UNIDAD 1

Ingeniería en Sistemas Computacionales Página 6 de 16

Método.- literalmente camino o vía para llegar más lejos) al modo ordenado y

sistemático de proceder para llegar a un resultado o fin determinado: las

investigaciones científicas se rigen por el llamado método griego, basado en la

observación y la experimentación, la recopilación de datos y la comprobación de

las hipótesis de partida.

Método VORD.-

• Descubrir los puntos de vista que reciben servicios del sistema e identificar

los servicios prestados a cada punto de vista

Punto de vista estructuración

• Grupo relacionada puntos de vista en una jerarquía. Los servicios comunes

son proporcionados a mayores-niveles en la jerarquía

Mirador documentación

• Perfeccionar la descripción de los puntos de vista y prestaciones

determinadas

Punto de vista del sistema de asignación

• Transformar el análisis a un diseño orientado a objetos

Escenario.- Los escenarios son descripciones de cómo un sistema es utilizado en

la práctica.

Son útiles para obtención de requisitos como gente se puede identificar más

fácilmente que estos declaración abstracta de lo que requieren de una sistema.

Los escenarios son particularmente útiles para añadir detalles para una descripción

esquemática requisitos.

Excepciones.- es la indicación de alguna falla en el sistema.

Matriz.- es un arreglo bidimensional de números

Modelado del sistema.- es una abstracción del sistema que se está estudiando

en lugar de una representación alternativa de ese sistema.

Métodos estructurados.- es una técnica para escribir programas. Para ello se

utilizan únicamente tres estructuras: secuencia, selección e iteración.

Dato.- representación simbólica de una entidad.

Taxonomía.- sistema de clasificación

Page 6: Unidad 1 Fundamentos de Ingenieria de Software

GlobalTec

Fundamentos de Ingeniería del Software UNIDAD 1

Ingeniería en Sistemas Computacionales Página 7 de 16

1.2. El Papel Evolutivo del Software

Línea del Tiempo

Page 7: Unidad 1 Fundamentos de Ingenieria de Software

GlobalTec

Fundamentos de Ingeniería del Software UNIDAD 1

Ingeniería en Sistemas Computacionales Página 8 de 16

1.3 Etapas del Desarrollo del Software

Cuadro Comparativo

Page 8: Unidad 1 Fundamentos de Ingenieria de Software

GlobalTec

Fundamentos de Ingeniería del Software UNIDAD 1

Ingeniería en Sistemas Computacionales Página 9 de 16

1.4 Definición e Historia de las Herramientas Case

Definición Las herramientas CASE (Computer Aided Software Engineering, Ingeniería de

Software Asistida por Computadora) son diversas aplicaciones

informáticas destinadas a aumentar la productividad en el desarrollo de software

reduciendo el costo de las mismas en términos de tiempo y de dinero.

Estas herramientas nos pueden ayudar en todos los aspectos del ciclo de vida de

desarrollo del software en tareas como el proceso de realizar un diseño del

proyecto, cálculo de costos, implementación de parte del código automáticamente

con el diseño dado, compilación automática, documentación o detección de errores

entre otras, que analizaba la relación existente entre los requisitos de un problema

y las necesidades que éstos generaban, el lenguaje en cuestión se denominaba

PSL (Problem Statement Language) y la aplicación que ayudaba a buscar las

necesidades de los diseñadores PSA (Problem Statement Analyzer).

Tambien se puede definir como:

Conjunto de métodos, utilidades y técnicas que facilitan la automatización del ciclo de vida del desarrollo de sistemas de información, completamente o en alguna de sus fases. La sigla genérica para una serie de programas y una filosofía de desarrollo de software que ayuda a automatizar el ciclo de vida de desarrollo de los sistemas

La tecnología CASE supone la automatización del desarrollo del software, contribuyendo a mejorar la calidad y la productividad en el desarrollo de sistemas de información y se plantean los siguientes objetivos:

Permitir la aplicación práctica de metodologías estructuradas, las cuales al ser realizadas con una herramienta se consigue agilizar el trabajo.

Facilitar la realización de prototipos y el desarrollo conjunto de aplicaciones. Simplificar el mantenimiento de los programas. Mejorar y estandarizar la documentación. Aumentar la portabilidad de las aplicaciones. Facilitar la reutilización de componentes software. Permitir un desarrollo y un refinamiento visual de las aplicaciones, mediante la

utilización de gráficos.

Automatizar:

Ø El desarrollo del software Ø La documentación

Page 9: Unidad 1 Fundamentos de Ingenieria de Software

GlobalTec

Fundamentos de Ingeniería del Software UNIDAD 1

Ingeniería en Sistemas Computacionales Página 10 de 16

Ø La generación del código Ø El chequeo de errores Ø La gestión del proyecto

Permitir: Ø La reutilización del software Ø La portabilidad del software Ø La estandarización de la documentación

Historia de las herramientas CASE: Las Herramientas CASE tienen su inicio con el simple procesador de palabras que

Fue usado para crear y manipular documentación.

EN LA DECADA DE LOS 70´S

El proyecto ISDOS desarrolló un lenguaje llamado "Problem Statement Language"

(PSL) para la descripción de los problemas de usuarios y las necesidades de

solución de un sistema de información en un diccionario computarizado. Problem

Statement Analyzer (PSA) era un producto asociado que analizaba la relación de

problemas y necesidades.

Los setentas vieron la introducción de técnicas gráficas y diagramas de flujo de

estructuras 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 reemplazaron los paquetes gráficos por paquetes especializados que

habilitan la edición, actualización e impresión en múltiples versiones de diseño.

Eventualmente, 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

Page 10: Unidad 1 Fundamentos de Ingenieria de Software

GlobalTec

Fundamentos de Ingeniería del Software UNIDAD 1

Ingeniería en Sistemas Computacionales Página 11 de 16

saberse integrados en una simple herramienta CASE que soporta todo el ciclo de

desarrollo.

A INICIOS DELOS 80’S

Empezó a manejarse más la ayuda en la documentación por medio de la

computadora, se desarrolló más la diagramación asistida por computadora, el

análisis y el diseño.

A MEDIADOS DELOS 80’S

Diseño automático de análisis y pruebas. Repositorios automáticos de información

de sistemas.

AL FINAL DELOS 80’S

Generación automática de código desde especificaciones de diseño

A INICIOS DELOS 90’S

Las herramientas CASE alcanzaron su techo a principios de los años 90. En la

época en la que IBM había conseguido una alianza con la empresa de software

AD/Cycle para trabajar con sus mainframes, estos dos gigantes trabajaban con

herramientas CASE que abarcaban todo el ciclo de vida del software. Pero poco a

poco los mainframes han ido siendo menos utilizados y actualmente el mercado de

las Big CASE ha muerto completamente abriendo el mercado de diversas

herramientas más específicas para cada fase del ciclo de vida del software.

Metodología Inteligente. Interface de Usuario reusable como una metodología

desarrollo.

La primera herramienta CASE como hoy la conocemos fue "Excelerator" en 1984,

era para PC. Actualmente la oferta de herramientas CASE es muy amplia y tenemos

por ejemplo el EASYCASE o WINPROJECT.

La primera herramienta comercial se remonta a 1982, aunque algunos especialistas

indican que algunos ejemplos de herramientas para diagramación ya existían las

herramientas CASE.

No fue sino hasta 1985 en que las herramientas CASE se volvieron realmente

importantes en el proceso de desarrollo de software. Los proveedores prometieron

Page 11: Unidad 1 Fundamentos de Ingenieria de Software

GlobalTec

Fundamentos de Ingeniería del Software UNIDAD 1

Ingeniería en Sistemas Computacionales Página 12 de 16

a la Industria que muchas actividades serían beneficiadas por la ayuda de las

CASE.

Estos beneficios consistían, por ejemplo, en el aumento en la productividad. 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 vía una especificación

formalmente diseñada. Esto traería como beneficio:

Una mejora en la calidad, fiabilidad, utilidad y rendimiento.

El entorno de producción de documentación para software mejora la comunicación,

mantenimiento y actualización.

Hace el trabajo de diseño de software más fácil y agradable.

La promesa futura de reemplazar realmente a los ingenieros de software

especializados.

Reducción del costo de producción de software.

Con estos objetivos en mente, la industria destinó millones en producción de

Herramientas CASE.

Así como esta enorme suma de dinero fue gastada en Herramientas CASE, hubo

también trabajo de investigación a nivel mundial en diferentes instituciones como

Universidades, Instituciones Gubernamentales y de Defensa. La industria de

Herramientas CASE está creciendo y está tomando cada vez mayor importancia.

Page 12: Unidad 1 Fundamentos de Ingenieria de Software

GlobalTec

Fundamentos de Ingeniería del Software UNIDAD 1

Ingeniería en Sistemas Computacionales Página 13 de 16

1.5 Clasificación de las Herramientas CASE

No existe una única clasificación de herramientas CASE y en ocasiones, es difícil

incluirlas en una clase determinada. Podrían 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

1. Herramientas integradas, I-CASE (Integrated CASE, CASE integrado):

abarcan todas las fases del ciclo de vida del desarrollo de sistemas. Son

llamadas también CASE Workbench.

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 últimas fases del desarrollo: construcción e implantación.

4. Juegos de herramientas o Tools-Case, son el tipo más simple de

herramientas CASE. Automatizan una fase dentro del ciclo de vida. Dentro

de este grupo se encontrarían las herramientas de reingeniería, orientadas a

la fase de mantenimiento.

Clasificación basada en su funcionalidad Tipo de Herramienta Ejemplos

Planificación Herramientas PERT, Herramientas de Estimación, Hojas de Calculo

Edición de los Editores Herramientas de texto, editores de diagramas, procesadores de palabras

Gestión de Cambio Herramientas de requisitos de trazabilidad, cambio de sistemas control

Gestión de Configuración Sistema de gestión de versiones, sistemas de herramientas de construcción

Prototipos Verificador de lenguajes de alto nivel, generador de interfaces de usuarios

Método de Herramientas de apoyo Editores de diseño, diccionarios de datos, generadores de código

Procesamiento del Lenguaje Compiladores, Interpretes

Page 13: Unidad 1 Fundamentos de Ingenieria de Software

GlobalTec

Fundamentos de Ingeniería del Software UNIDAD 1

Ingeniería en Sistemas Computacionales Página 14 de 16

Programa de análisis Generadores de referencia cruzada, analizadores de estática, analizadores dinámicos

Pruebas Generadores de datos de pruebas ,Comparadores de archivos

Depuración Sistemas de depuración interactiva,

Documentación Diseño de páginas, programas editores de imágenes

Reingeniería Referencias cruzadas de sistemas, programa para la reestructuración de sistemas

Clasificación basada en el ciclo de vida del desarrollo de

sistemas que cubren Tipo de Herramienta de:

Especificación Diseño Implementación Verificación y Validación

Reingeniería ●

Prueba ● ●

Depuración ● ●

Análisis de Programa ● ●

Procesamiento de lenguaje ● ●

Método de Herramientas de apoyo ● ●

Prototipos ● ●

Gestión de Configuración ● ●

Gestión de Cambio ● ● ● ●

Documentación ● ● ● ●

Edición ● ● ● ●

Planificación ● ● ● ●

Page 14: Unidad 1 Fundamentos de Ingenieria de Software

GlobalTec

Fundamentos de Ingeniería del Software UNIDAD 1

Ingeniería en Sistemas Computacionales Página 15 de 16

Clasificación basada en su integración

Page 15: Unidad 1 Fundamentos de Ingenieria de Software

GlobalTec

Fundamentos de Ingeniería del Software UNIDAD 1

Ingeniería en Sistemas Computacionales Página 16 de 16

Referencias

Título: Conceptos Básicos de la Ingeniería de software

Libro: Software Engineering

Edición: 6th Edición

Autor: Ian Sommerville

Título: Clasificación de Herramientas Case

Libro: Software Engineering

Edición: 6th Edición

Autor: Ian Sommerville

Título: Evolución del software Libro: Ingeniería de Software un enfoque practico Edición: 5ta Edición Autor: Roger S. Pressman Título: Clasificación de Herramientas Case Libro: Software Engineering Edición: 6th Edición Autor: Ian Sommerville Título: Ingeniería del software un enfoque practico Libro: Pressman Roger Edición: 5ta Edición Sitios Web: http://www.monografias.com/trabajos14/herramicase/herramicase.shtml

http://eltamiz.com/elcedazo/2009/05/12/herramientas-case-hasta-en-la-sopa/

http://www.uclm.es/ab/educacion/ensayos/pdf/revista10/10_17.pdf

http://www.inei.gob.pe/biblioineipub/bancopub/Inf/Lib5103/Libro.pdf

Page 16: Unidad 1 Fundamentos de Ingenieria de Software

GlobalTec

Fundamentos de Ingeniería del Software UNIDAD 1

Ingeniería en Sistemas Computacionales Página 17 de 16