Sanchez garcia juan jose definiciones en la ingeniería de software sis4-1

Preview:

Citation preview

Universidad Tecnologica de Hermosillo

Tecnologias de la Informacion y la Comunicación

Juan Jose Sanchez Garcia

15 de enero de 2013

Definiciones en la Ingeniería de

Software

Introduccion

El presente trabajo contempla una breve pero informativa

introducción al tema de la Ingenieria de Software.

Este trabajo cubre varios temas de importancia para el alumno

de TICS pues presenta conceptos importantes de la Ingenieria

de Software.

Entre los temas que están en este trabajo se encuentra

W3C,Refactorizacion de Software,Sistema de computo,etc.

Ingeniería de Software: Definición, inicios,

importancia, utilidad

Definicion

Es la aplicación de un enfoque sistemático, disciplinado y

cuantificable al desarrollo, operación y mantenimiento de

software, y el estudio de estos enfoques, es decir, la

aplicación de la ingeniería al software.

Inicios

El concepto de ingeniería del software surgió en 1968, tras una

conferencia en Garmisch (Alemania) que tuvo como objetivo

resolver los problemas de la crisis del software. El término

crisis del software se usó desde finales de 1960 hasta mediados

de 1980 para describir los frecuentes problemas que aparecían

durante el proceso de desarrollo de nuevo software.

Tras la aparición de nuevo hardware basado en circuitos

integrados, comenzaron a desarrollarse sistemas y aplicaciones

mucho más complejos que hasta entonces no era posible

construir puesto que el hardware disponible no lo permitía.

Estos nuevos proyectos de desarrollo de software, en la mayoría

de ocasiones, no se terminaban a tiempo, lo cual también

provocaba que el presupuesto final del software excediera de

aquel que se había pactado. Algunos de estos proyectos eran tan

críticos (sistemas de control de aeropuertos, equipos para

medicina, etc.) que sus implicaciones iban más allá de las

pérdidas millonarias que causaban

Importancia

En la ingeniería de software se utilizan los métodos, las

herramientas y los procedimientos necesarios para que el

software que se vaya formando tenga una buena calidad y que

los errores que se puedan cometer sean mínimos. Hay un factor

que se toma en cuenta para que el software funcione

adecuadamente y tenga la calidad requerida.

Las organizaciones se ven obligadas a disminuir el costo y el

tiempo tanto para el desarrollo de su producción, como para el

funcionamiento de la organización como tal, ello lleva a la idea

de generar crecimiento arrancando por la problemática de

corregir falencias y automatizar procesos sin dejar de lado el

hecho de que la solución definitiva no solo debe ser capaz de

realizar la labor que se solicita de la forma más eficiente y eficaz

sino también de permitir que mute o cambie de acuerdo a la

exigencia del mercado, con conocimiento claro que esta tiene

un tiempo de vida limitado

Utilidad

En la construcción y desarrollo de proyectos se aplican métodos

y técnicas para resolver los problemas, la informática aporta

herramientas y procedimientos sobre los que se apoya la

ingeniería de software.

mejorar la calidad de los productos de software

aumentar la productividad y trabajo de los ingenieros

del software.

Facilitar el control del proceso de desarrollo de

software.

Suministrar a los desarrolladores las bases para

construir software de alta calidad en una forma eficiente.

Definir una disciplina que garantice la producción y el

mantenimiento de los productos software desarrollados en el

plazo fijado y dentro del costo estimado.

Clasificacion de los Sistemas de Computo

De acuerdo a la forma de representación física de la

información: Hace referencia a la forma de recibir y/o procesar

internamente la información surgiendo así 3 tipos de estos

sistemas:

Sistemas Analógicos

Sistemas Digitales

Sistemas Hibridos

Sistemas Analogicos

Basados en la lectura de magnitudes físicas que pueden tomar

un valor cualquiera dentro de un rango prefijado. Estas

representan los números mediante una cantidad física, es

decir, asignan valores numéricos por medio de la medición

física de una propiedad real, como la longitud de un objeto, el

Angulo entre 2 líneas, o la cantidad de voltaje que pasa a través

de un punto en un circuito eléctrico.

Sistema Digital

Las computadoras digitales representan los datos o unidades

separadas. La forma más simple de computadora digital es

contar con los dedos. A diferencia de la computadora

analógica, limitada por la precisión de las mediciones que

puedan realizarse, la computadora digital puede representar

correctamente los datos con tantas posiciones y números que se

requieran.

Sistema Hibrido

Estos sistemas toman valores tanto digitales como analógicos.

Generalmente se usan en problemas especiales en los que los

datos de entrada provienen de mediciones convertidas a dígitos

y son procesados por una computadora por ejemplo.

De acuerdo al tipo de uso

Tienen que ver con el tipo de aplicaciones que puede

ejecutar, se tipifican en:

Computadoras de uso personal

Computadoras de uso Especifico

Uso Personal

Es la computadora que puede utilizarse para distintas clases de

aplicaciones, es decir que puede soportar el trabajo

concurrente de diferentes aplicaciones de usuario y/o sistema.

Uso Especifico

Es la computadora que únicamente puede utilizarse para una

o grupo de aplicaciones determinado a una aplicación muy

concreta, este tipo de computadoras son conocidas

habitualmente como embebidas pues se encuentra incorporadas

a otros a otros sistemas o equipos.

De Acuerdo a la potencia

Hace referencia a la configuración que presentan las

computadoras que les permite un mejor desempeño , esta

clasificación considera:

Supercomputadora

Microcomputadora

Servidores de red

Estación de trabajo

Computadora Personal

Computadoras móvil

Software Engineering Institute

Software Engineering Institute (SEI) es un instituto federal

estadounidense de investigación y desarrollo, fundado por

Congreso de los Estados Unidos en 1984 para desarrollar

modelos de evaluación y mejora en el desarrollo de

software, que dieran respuesta a los problemas que generaba al

ejército estadounidense la programación e integración de los

sub-sistemas de software en la construcción de complejos

sistemas militares. Financiado por el Departamento de Defensa

de los Estados Unidos y administrado por la Universidad

Carnegie Mellon.

Es un referente en Ingeniería de Software por realizar el

desarrollo del modelo SW-CMM (1991) que ha sido el punto

de arranque de todos los que han ido formando parte del

modelo que ha desarrollado sobre el concepto de capacidad y

madurez, hasta el actual CMMI.

W3C

El WorldWide Web Consortium, abreviado W3C, es un

consorcio internacional que produce recomendaciones para la

WorldWide Web.

Está dirigida por Tim Berners-Lee, el creador original de URL

(Uniform Resource Locator, Localizador Uniforme de

Recursos), HTTP (HyperTextTransfer Protocol, Protocolo de

Transferencia de HiperTexto) y HTML (HyperText Markup

Language,Lenguaje de Marcado de HiperTexto) que son las

principales tecnologías sobre las que se basa la Web.

Modelos y filosofias de desarrollo de

software

La ingeniería de software dispone de varios modelos, paradigmas y filosofías de desarrollo, en los cuales se apoya para la construcción

del software, entre ellos se puede citar:

Modelo en cascada o Clásico (modelo tradicional)

Modelo de prototipos

Modelo en espiral

Desarrollo por etapas

Desarrollo iterativo y creciente o Iterativo e Incremental

RAD (Rapid Application Development)

Desarrollo concurrente

Proceso Unificado

RUP (Proceso Unificado de Rational)

Ciclo de vida del desarrollo de Software

El ciclo de vida básico de un software consta de los siguientes procedimientos:

• Definición de objetivos: definir el resultado del proyecto y su papel en la estrategia global.

• Análisis de los requisitos y su viabilidad: recopilar, examinar y formular los requisitos del cliente y examinar cualquier restricción que se

pueda aplicar.

• Diseño general: requisitos generales de la arquitectura de la aplicación.

• Diseño en detalle: definición precisa de cada subconjunto de la aplicación.

• Programación (programación e implementación): es la implementación de un lenguaje de programación para crear las funciones

definidas durante la etapa de diseño.

• Prueba de unidad: prueba individual de cada subconjunto de la aplicación para garantizar que se implementaron de acuerdo con las

especificaciones.

• Integración: para garantizar que los diferentes módulos se integren con la aplicación. Éste es el propósito de la prueba de

integración que está cuidadosamente documentada.

• Prueba beta (o validación), para garantizar que el software cumple con las especificaciones originales.

• Documentación: sirve para documentar información necesaria para los usuarios del software y para desarrollos futuros.

• Implementación

• Mantenimiento: para todos los procedimientos correctivos (mantenimiento correctivo) y las actualizaciones secundarias del

software (mantenimiento continuo).

El orden y la presencia de cada uno de estos procedimientos en el ciclo de vida de una aplicación dependen del tipo de modelo de ciclo de

vida acordado entre el cliente y el equipo de desarrolladores.

• Integración: para garantizar que los diferentes módulos se

integren con la aplicación. Éste es el propósito de la prueba de

integración que está cuidadosamente documentada.

• Prueba beta (o validación), para garantizar que el software

cumple con las especificaciones originales.

• Documentación: sirve para documentar información necesaria

para los usuarios del software y para desarrollos futuros.

• Implementación

• Mantenimiento: para todos los procedimientos correctivos

(mantenimiento correctivo) y las actualizaciones secundarias del

software (mantenimiento continuo).

El orden y la presencia de cada uno de estos procedimientos en el ciclo

de vida de una aplicación dependen del tipo de modelo de ciclo de vida

acordado entre el cliente y el equipo de desarrolladores.

Arquitectura de Software

En los inicios de la informática, la programación se consideraba un

arte y se desarrollaba como tal, debido a la dificultad que entrañaba

para la mayoría de las personas, pero con el tiempo se han ido

descubriendo y desarrollando formas y guías generales, con base a las

cuales se puedan resolver los problemas. A estas, se les ha

denominado Arquitectura de Software, porque, a semejanza de los

planos de un edificio o construcción, estas indican la estructura,

funcionamiento e interacción entre las partes del software. En el

libro "An introduction to Software Architecture", David Garlan y

Mary Shaw definen que la Arquitectura es un nivel de diseño que

hace foco en aspectos "más allá de los algoritmos y estructuras de

datos de la computación; el diseño y especificación de la estructura

global del sistema es un nuevo tipo de problema".

Conclusion

La ingeniería de software es un tema muy importante dentro

del proceso de aprendizaje de un alumno.

La ingeniería de software permite a los programadores la

creación de mejor software mediante el uso de técnicas y

metodologías para garantizar la correcta funcionalidad de

este, además de poder formalizar el código fuente para facilitar

la reutilización del software.

La ingeniería de software ha sido uno de los pilares mas grandes

para el crecimiento de la industria del software a lo largo de los

años

http://www.buenastareas.com/ensayos/Inportancia-De-

La-Ingenier%C3%ADa-De-Software/1205392.html

http://www.itpuebla.edu.mx/Alumnos/Cursos_Tutoriales

/Ana_Sosa_Pintle/SISTEMAS/ARCHIVOS_FUNDAMENTOS

/ARCHIVOS/U4_1.htm

http://histinf.blogs.upv.es/2010/12/28/ingenieria-del-

software/

http://prezi.com/wribnzku2hre/ieee-830/

http://www.slideshare.net/almoralgon/clasificacion-de-

los-sistemas-de-computo

http://es.wikipedia.org/wiki/Ventana_(inform%C3%A1tic

a)#Modalidad

Recommended