bases teoricas

11
1. Sis temas de información 1.1Proceso del Software Un proceso es un conjunto de actividades, acciones y tareas que se ejecutan cuando va a crearse algún producto del trabajo. Una actividad busca lograr un objetivo amplio por ejemplo, comunicación con los participantes! y se desarrolla sin importar el dominio de la aplicación, tama"o del proyecto, complejidad del esfuer#o o grado de rigor con el que se usar$ la ingenier%a de software. Una acción dise"o de la arquitectura! es un conjunto de tareas que producen un producto importante del trabajo por ejemplo, un modelo del dise"o de la arquitectura!. Una tarea se centra en un objetivo peque"o pero bien de&nido por ejemplo, reali#ar una prueba unitaria! que produce un resultado tangible. 'a estructura del proceso establece el fundamento para el proceso completo de la ingenier%a de software por medio de la identi&cación de un número peque"o de actividades estructurales que sean

Upload: rogger-william-evangelista-busso

Post on 06-Jan-2016

214 views

Category:

Documents


0 download

DESCRIPTION

sOFTWARE

TRANSCRIPT

7/17/2019 Bases Teoricas

http://slidepdf.com/reader/full/bases-teoricas-568caa6b0fa29 1/11

1. Sistemas de información1.1Proceso del Software

Un proceso es un conjunto de actividades, acciones y tareas que seejecutan cuando va a crearse algún producto del trabajo. Unaactividad busca lograr un objetivo amplio por ejemplo, comunicación

con los participantes! y se desarrolla sin importar el dominio de laaplicación, tama"o del proyecto, complejidad del esfuer#o o grado derigor con el que se usar$ la ingenier%a de software. Una acción dise"ode la arquitectura! es un conjunto de tareas que producen unproducto importante del trabajo por ejemplo, un modelo del dise"ode la arquitectura!. Una tarea se centra en un objetivo peque"o perobien de&nido por ejemplo, reali#ar una prueba unitaria! que produceun resultado tangible.

'a estructura del proceso establece el fundamento para el proceso

completo de la ingenier%a de software por medio de la identi&caciónde un número peque"o de actividades estructurales que sean

7/17/2019 Bases Teoricas

http://slidepdf.com/reader/full/bases-teoricas-568caa6b0fa29 2/11

aplicables a todos los proyectos de software, sin importar su tama"oo complejidad. (dem$s, la estructura del proceso incluye un conjuntode actividades sombrilla que son aplicables a trav)s de todo elproceso del software. Una estructura de proceso general para laingenier%a de software consta de cinco actividades*

Comunicación. Se busca entender los objetivos de losparticipantes respecto del proyecto, y reunir los requerimientosque ayuden a de&nir las caracter%sticas y funciones delsoftware.

Planeación. Un proyecto de software es un viaje dif%cil, y laactividad de planeación crea un +mapa que gu%a al equipomientras viaja. -l mapa llamado plan del proyecto desoftware de&ne el trabajo de ingenier%a de software aldescribir las tareas t)cnicas por reali#ar, los riesgos probables,los recursos que se requieren, los productos del trabajo que se

obtendr$n y una programación de las actividades.

Modelado. Un ingeniero de software crea modelos a &n deentender mejor los requerimientos del software y el dise"o quelos satisfar$. /rea un +bosquejo del objeto por 0acer, a &n deentender el panorama general cómo se ver$arquitectónicamente, cómo ajustan entre s% las partesconstituyentes y muc0as caracter%sticas m$s. Si se requiere,re&na el bosquejo con m$s y m$s detalles en un esfuer#o porcomprender mejor el problema y cómo resolverlo.

Construcción. -sta actividad combina la generación de códigoya sea manual o automati#ada! y las pruebas que serequieren para descubrir errores en )ste.

Despliegue. -l software como entidad completa o como unincremento parcialmente terminado! se entrega al consumidorque lo evalúa y que le da retroalimentación, misma que se basaen dic0a evaluación.

'as actividades estructurales del proceso de ingenier%a de softwareson complementadas por cierto número de actividades sombrilla. -ngeneral, las actividades sombrilla se aplican a lo largo de un proyecto

de software y ayudan al equipo que lo lleva a cabo a administrar ycontrolar el avance, la calidad, el cambio y el riesgo.

Seguimiento y control del proyecto de software: permiteque el equipo de software evalúe el progreso compar$ndolocon el plan del proyecto y tome cualquier acción necesaria paraapegarse a la programación de actividades.

Administración del riesgo: evalúa los riesgos que puedanafectar el resultado del proyecto o la calidad del producto.

Aseguramiento de la calidad del software: de&ne yejecuta las actividades requeridas para garanti#ar la calidad delsoftware.

7/17/2019 Bases Teoricas

http://slidepdf.com/reader/full/bases-teoricas-568caa6b0fa29 3/11

Revisiones técnicas: evalúa los productos del trabajo de laingenier%a de software a &n de descubrir y eliminar erroresantes de que se propaguen a la siguiente actividad.

Medición: de&ne y reúne mediciones del proceso, proyecto yproducto para ayudar al equipo a entregar el software quesatisfaga las necesidades de los participantes2 puede usarse

 junto con todas las dem$s actividades estructurales ysombrilla.

Administración de la conguración del software: administra los efectos del cambio a lo largo del proceso delsoftware.

Administración de la reutili!ación: de&ne criterios paravolver a usar el producto del trabajo incluso los componentesdel software! y establece mecanismos para obtener

componentes reutili#ables.Preparación y producción del producto del tra"a#o: agrupa las actividades requeridas para crear productos deltrabajo, tales como modelos, documentos, registros, formatos ylistas.

Un aspecto importante del proceso de software es el llamado fujo del proceso y se describe la manera en que est$n organi#adas lasactividades estructurales y las acciones y tareas que ocurren dentrode cada una con respecto de la secuencia y el tiempo.

7/17/2019 Bases Teoricas

http://slidepdf.com/reader/full/bases-teoricas-568caa6b0fa29 4/11

Un 3ujo de proceso lineal ejecuta cada una de las cincoactividades estructurales en secuencia, comen#ando por lacomunicación y terminando con el despliegue. Un 3ujo de procesoiterativo repite una o m$s de las actividades antes de pasar a la

siguiente. Un 3ujo de proceso evolutivo reali#a las actividades enforma +circular. ( trav)s de las cinco actividades, cada circuito llevaa una versión m$s completa del software. Un 3ujo de proceso paraleloejecuta una o m$s actividades en paralelo con otras por ejemplo, elmodelado de un aspecto del software tal ve# se ejecute en paralelocon la construcción de otro aspecto del software!.

1.4S/5U6

Scrum nombre que proviene de cierta jugada que tiene lugar duranteun partido de rugby! es un m)todo de desarrollo $gil de softwareconcebido por 7e8 Sut0erland y su equipo de desarrollo a principios

de la d)cada de 199:. -n a"os recientes, Sc0waber y ;eedle 0andesarrollado m$s los m)todos Scrum.

7/17/2019 Bases Teoricas

http://slidepdf.com/reader/full/bases-teoricas-568caa6b0fa29 5/11

'os principios Scrum son congruentes con el mani&esto $gil y seutili#an para guiar actividades de desarrollo dentro de un proceso dean$lisis que incorpora las siguientes actividades estructurales*requerimientos, an$lisis, dise"o, evolución y entrega. <entro de cadaactividad estructural, las tareas del trabajo ocurren con un patrón del

proceso llamado sprint. -l trabajo reali#ado dentro de un sprint elnúmero de )stos que requiere cada actividad estructural variar$ enfunción de la complejidad y tama"o del producto! se adapta alproblema en cuestión y se de&ne y con frecuencia se modi&ca entiempo real por parte del equipo Scrum.

Scrum acentúa el uso de un conjunto de patrones de proceso delsoftware que 0an demostrado ser e&caces para proyectos con pla#osde entrega muy apretados, requerimientos cambiantes y negocioscr%ticos. /ada uno de estos patrones de proceso de&ne un grupo deacciones de desarrollo*

Retraso: lista de prioridades de los requerimientos o caracter%sticasdel proyecto que dan al cliente un valor del negocio. -s posibleagregar en cualquier momento otros aspectos al retraso )sta es laforma en la que se introducen los cambios!. -l gerente del proyectoevalúa el retraso y actuali#a las prioridades según se requiera.

Sprints: consiste en unidades de trabajo que se necesitan paraalcan#ar un requerimiento de&nido en el retraso que debe ajustarseen una caja de tiempo1= prede&nida lo común son >: d%as!. <uranteel sprint no se introducen cambios por ejemplo, aspectos del trabajoretrasado!. (s%, el sprint permite a los miembros del equipo trabajaren un ambiente de corto pla#o pero estable.

7/17/2019 Bases Teoricas

http://slidepdf.com/reader/full/bases-teoricas-568caa6b0fa29 6/11

Reuniones Scrum: son reuniones breves de 1? minutos, por logeneral! que el equipo Scrum efectúa a diario. @ay tres preguntasclave que se pide que respondan todos los miembros del equipo*

ABu) 0iciste desde la última reunión del equipoC ABu) obst$culos est$s encontrandoC ABu) planeas 0acer mientras llega la siguiente reunión del

equipoC

Un l%der del equipo, llamado maestro Scrum, dirige la junta y evalúalas respuestas de cada persona. 'a junta Scrum ayuda al equipo adescubrir los problemas potenciales tan pronto como sea posible.(simismo, estas juntas diarias llevan a la +sociali#ación delconocimiento, con lo que se promueve una estructura de equipo conorgani#ación propia.

<emostraciones preliminares* entregar el incremento de software al

cliente de modo que la funcionalidad que se 0aya implementadopueda demostrarse al cliente y )ste pueda evaluarla.

-s importante notar que las demostraciones preliminares nocontienen toda la funcionalidad planeada, sino que )stas seentregar$n dentro de la caja de tiempo establecida.

;eedle y sus colegas presentan un an$lisis eD0austivo de estospatrones en el que dicen* +Scrum supone de entrada la eDistencia decaosE 'os patrones de proceso Scrum permiten que un equipo desoftware trabaje con )Dito en un mundo en el que es imposibleeliminar la incertidumbre.

1.>Programación Frientada a Fbjetos

(GH-/-<-GH-S

'a PFF es una metodolog%a para el desarrollo lógico de programasque se remonta a la d)cada de 19I:. Sus conceptos fundamentalesya eDist%an en lenguajes como Simula desarrollado en 19IJ! ySmalltalK que data de la d)cada de 19J:!. ( &nales de la d)cada de19I: y principios de la de 19J: surgió una crisis de softwarederivada, por un lado, de la di&cultad de cambiar y modi&car losgrandes y complejos programas eDistentes, y por otro, de la

disminución de programadores dispuestos a dar mantenimiento a losprogramas. -sto trajo consigo la introducción de una nuevametodolog%a de desarrollo denominada programación estructurada,mediante la cual se descompone en procedimientos individualesfunciones! a los programas. Un procedimiento reali#a una tareaespec%&ca esto es una abstracción funcional!* este conceptoconstituye la base sobre el cual trabaja la programación estructurada.-n un programa estructurado, cada procedimiento debe reali#ar unatarea espec%&ca2 cómo se reali#a la tarea no es tan importante, puesmientras el procedimiento sea &able, se puede utili#ar.

-n la programación estructurada es cr%tica la coordinación entre losdesarrolladores implicados en el proyecto, pues dado que cada unode ellos estar$ manipulando funciones separadas que pueden

7/17/2019 Bases Teoricas

http://slidepdf.com/reader/full/bases-teoricas-568caa6b0fa29 7/11

referirse a tipos de datos mutuamente compartidos, los cambios deun desarrollador deben re3ejarse en el trabajo del resto del equipo.

Una debilidad de la programación estructurada es la separaciónconceptual de datos y código2 esto se agrava a medida que elprograma crece y se 0ace m$s complejo.

(ctualmente, las so&sticadas interfaces de usuarios, los sistemas deventanas, los programas multitareas, entre otros elementos, 0acenm$s compleja la manipulación de las relaciones eDistentes entre loscomponentes de software. Por tanto, se requiere de una nuevat)cnica que mejore las limitaciones de los sistemas anteriores.

'a programación orientada a objetos no es la solución de&nitiva, peropermite construir programas complejos a partir de entidades desoftware m$s simples llamadas objetos, que son instancias reales omuestras de clases, lo cual permite 0eredar datos y códigos de

aplicaciones eDistentes. -sto mejora la productividad del programadory facilita la eDtensión y la reutili#ación de clases en otras aplicacionescon m%nima modi&cación al código original.

(s% como la programación estructurada o procedural se construyealrededor de funciones, la programación orientada a objetos seconstruye alrededor de clases. A-Diste alguna relación entre ambasCS%* las clases que 0acemos son construidas usando elementos de laprogramación estructurada, llamadas funciones lo que en PFFllamamos m)todos!.

<-LMGM/MFG

'a programación orientada a objetos se puede de&nir como unat)cnica o estilo de programación que utili#a objetos como bloquesesenciales de construcción. 'os elementos b$sicos de la PFF son*objetos, mensajes, m)todos y clases.

'a PFF es una eDtensión natural de la actual tecnolog%a deprogramación y representa un enfoque relativamente nuevo y distintoal tradicional. -n la PFF, los objetos son los elementos principales deconstrucción, pero simplemente comprenderlos o usarlos dentro deun programa, no signi&ca que se est) programando en un modoorientado a objetos. 'os objetivos de esta modalidad de programación

son el mejoramiento de la productividad del programador por mediodel manejo de la complejidad del software a trav)s del uso de clasesy sus objetos asociados.

1.=Mnternet y Norld Nide Neb

Mnternet una red global de computadoras! se inició 0ace casi cuatrod)cadas, con fondos suministrados por el <epartamento de <efensade los -stados Unidos. (unque originalmente se dise"ó paraconectarse con los principales sistemas computacionales deaproDimadamente una docena de universidades y organi#aciones deinvestigación, su principal bene&cio 0a sido, desde ese entonces, lacapacidad de comunicarse en forma f$cil y r$pida a trav)s de lo quellego a conocerse como correo electrónico email!. -sto es cierto

7/17/2019 Bases Teoricas

http://slidepdf.com/reader/full/bases-teoricas-568caa6b0fa29 8/11

incluso en la actualidad, en donde el correo electrónico, la mensajer%ainstant$nea y la transferencia de arc0ivos facilitan lascomunicaciones entre cientos de millones de personas en todo elmundo. Mnternet se 0a convertido en uno de los mecanismos decomunicación m$s importante a nivel mundial, y continua creciendo

con rapide#.'a Norld Nide Neb permite a los usuarios de computadora locali#ar yver, a trav)s de Mnternet, documentos basados en multimedia, sobrecualquier tema. ( pesar de que Mnternet se desarrolló 0ace variasd)cadas, la introducción de la Neb es un evento relativamentereciente. -n 19O9, Him ;erners'ee de /-5G la Frgani#ación -uropeade Mnvestigación Guclear! comen#ó a desarrollar una tecnolog%a paracompartir información a trav)s de documentos de teDto con0iperv%nculos. ;erners'ee llamo a su invención el 'enguaje de6arcado de @iperteDto @H6'!. Hambi)n escribió protocolos decomunicación para formar las bases de su nuevo sistema deinformación, el cual denomino Norld Nide Neb.

-n 199=, Him ;erners'ee fundo una organi#ación llamada Consorcio

World Wide Web o $%C!, dedicada a desarrollar tecnolog%as nopropietarias e interoperables para Norld Nide Neb. Una de lasprincipales metas de la N>/ es 0acer que la Neb sea accesible demanera universal, sin importar las discapacidades, el lenguaje o lacultura.

Mnternet es un conjunto descentrali#ado de redes de comunicacióninterconectadas que utili#an la familia de protocolos H/PMP, lo cualgaranti#a que las redes f%sicas 0eterog)neas que la componenfuncionen como una red lógica única de alcance mundial.

1.?'enguaje de 6arcado -Dtensible Q6'!

( medida que fue creciendo la popularidad de la Neb, suslimitaciones del @H6', se 0icieron aparentes. 'a falta deeDtensibilidad la 0abilidad de cambiar o agregar caracter%sticas!frustro a los desarrolladores, y su de&nición ambigua permit%a la

proliferación de @H6' con errores. -ra inminente la necesidad de unlenguaje estandari#ado, estricto en estructura y completamenteeDtensible. /omo resultado, la N>/ desarrollo Q6'.

'a independencia de datos, la separación del contenido de supresentación, es la caracter%stica esencial del Q6'. <ebido a que losdocumentos de Q6' describen los datos en forma independiente de lam$quina, es concebible que cualquier aplicación pueda procesarlos.'os desarrolladores de software est$n integrando Q6' en susaplicaciones para mejorar la funcionalidad e interoperabilidad de laNeb.

-l Protocolo Simple de (cceso a Fbjetos SF(P! es una tecnolog%apara la transmisión de objetos marcados como Q6'! a trav)s de

7/17/2019 Bases Teoricas

http://slidepdf.com/reader/full/bases-teoricas-568caa6b0fa29 9/11

Mnternet. 'as tecnolog%as .G-H de 6icrosoft utili#an Q6' y SF(P paramarcar y transferir datos a trav)s de Mnternet. Q6' y SF(P seencuentran en el núcleo de .G-H2 permiten la interoperación de loscomponentes de software es decir, que se comuniquen f$cilmenteunos con otros!. /omo las bases de SF(P son en Q6' y @HHP

Protocolo de Hransferencia de @iperteDto2 el protocolo decomunicación clave de la Neb!, la mayor%a de los tipos de sistemascomputacionales lo soporta.

1.I6icrosoft .G-H

-n el a"o 4:::, 6icrosoft anuncio su iniciativa .G-H, una nueva visiónpara incluir Mnternet y Neb en el desarrollo y uso de software. Unaspecto clave de .G-H es su independencia de un lenguaje oplataforma espec%&cos. -n ve# de estar for#ados a utili#ar un sololenguaje de programación, los desarrolladores pueden crear unaaplicación .G-H en cualquier lenguaje compatible con .G-H. 'os

programadores pueden contribuir al mismo proyecto de software,escribiendo código en los lenguajes .G-H como 6icrosoft Risual /,Risual /TT, Risual ;asic y muc0os otros! en los que sean m$scompetentes. Parte de la iniciativa incluye la tecnolog%a (SP.G-H de6icrosoft, la cual permite a los programadores crear aplicaciones paraNeb.

Un componente clave de la arquitectura .G-H son los servicios Neb,que son componentes de software reutili#ables que pueden usarse atrav)s de Mnternet. 'os clientes y otras aplicaciones pueden usar losservicios Neb como bloques de construcción reutili#ables.

'a estrategia .G-H eDtiende el concepto de reutili#ación de software0asta Mnternet, con lo cual permite que los programadores y lascompa"%as se concentren en sus especialidades sin tener queimplementar cada componente de cada aplicación. -n ve# de ello, lascompa"%as pueden comprar los servicios Neb y dedicar sus recursosa desarrollar sus propios productos. Por ejemplo, una aplicaciónindividual que utilice los servicios Neb de varias compa"%as podr%aadministrar los pagos de facturas, devoluciones de impuestos,pr)stamos e inversiones.

1.J.G-H LrameworK y /ommon 'anguage 5untime

-l .G-H LrameworK de 6icrosoft es el cora#ón de la estrategia .G-H.-ste marco de trabajo administra y ejecuta aplicaciones y serviciosNeb, contiene una biblioteca de clases llamada ;iblioteca de clasesdel .G-H LrameworK, o L/'!, impone la seguridad y proporcionamuc0as otras 0erramientas de programación. 'os detalles del .G-HLrameworK se encuentran en la Mnfraestructura de 'enguaje /omún/'M!, la cual contiene información acerca del almacenamiento de lostipos de datos es decir, datos que tienen caracter%sticas prede&nidascomo fec0a, porcentaje o una cantidad monetaria!, los objetos ydem$s. -cma Mnternational conocida en un principio como la

(sociación -uropea de Labricantes de /omputadoras! 0aestandari#ado la /'M, con lo cual se facilita la creación del .G-H

7/17/2019 Bases Teoricas

http://slidepdf.com/reader/full/bases-teoricas-568caa6b0fa29 10/11

LrameworK para otras plataformas. -sto es como publicar los planosdel marco de trabajo2 cualquiera puede construirlo con solo seguir lasespeci&caciones.

-l entorno en tiempo de ejecución /ommon 'anguage 5untime /'5!es otra parte central del .G-H LrameworK* ejecuta los programas de.G-H. 'os programas se compilan en instrucciones espec%&cas para lamaquina en dos pasos. Primero, el programa se compila en 'enguajeMntermedio de 6icrosoft 6SM'!, el cual de&ne las instrucciones para el/'5. -l /'5 puede unir el código convertido en 6SM' proveniente deotros lenguajes y fuentes. -l 6SM' para los componentes de unaaplicación se coloca en el arc0ivo ejecutable de la aplicación lo quese conoce como ensamblaje!. /uando la aplicación se ejecuta, otrocompilador conocido como compilador justo a tiempo o compilador

 7MH! en el /'5 traduce el 6SM' del arc0ivo ejecutable en código delenguaje maquina para una plataforma especi&ca! y despu)s elcódigo de lenguaje maquina se ejecuta en esa plataforma.

1.O/

/omo resultado de la popularidad de los dispositivos electrónicosmóviles, los desarrolladores de software se dieron cuenta que susclientes ya no estaban restringidos solo a las computadoras deescritorio. 5econocieron que 0ac%a falta software accesible paratodos y que estuviera disponible a trav)s de casi cualquier tipo de

dispositivo. Para satisfacer estas necesidades, en el a"o 4:::,6icrosoft anuncia el lenguaje de programación /. -ste lenguaje,desarrollado en 6icrosoft por un equipo dirigido por (nders @elsjbergy Scott Niltamut0, se dise"ó en espec%&co para la plataforma .G-Hcomo un lenguaje que permitiera a los programadores migrar confacilidad 0acia .G-H. Hiene sus ra%ces en /, /TT y 7ava2 adapta lasmejores caracter%sticas de cada uno de estos lenguajes y agreganueva caracter%sticas propias. / est$ orientado a objetos y contieneuna poderosa biblioteca de clases, que consta de componentes preconstruidos que permiten a los programadores que permiten a losprogramadores desarrollar aplicaciones con rapide#2 / y Risual ;asic

comparten la ;iblioteca de /lases LrameworK L/'!. / es apropiadopara las tareas de desarrollo de aplicaciones demandantes, enespecial para crear las aplicaciones populares basadas en la Nebactual.

/ es un lenguaje de programación visual, controlado por eventos,en el cual se crean programas mediante el uso de un -ntorno de<esarrollo Mntegrado M<-!. /on un M<-, un programador puede crear,ejecutar, probar y depurar programas en / de manera conveniente,con lo cual se reduce el tiempo requerido para producir un programafuncional en una fracción del tiempo que se llevar%a sin utili#ar el M<-.

'as aplicaciones en / pueden interactuar a trav)s de Mnternet

7/17/2019 Bases Teoricas

http://slidepdf.com/reader/full/bases-teoricas-568caa6b0fa29 11/11

mediante el uso de est$ndares industriales como Q6', y el ProtocoloSimple de (cceso a Fbjetos SF(P! basado en Q6'.

-l lenguaje de programación / original se estandari#o a trav)s de-cma Mnternacional en diciembre del 4::4, como -st$ndar -/6(>>=*-speci&cación del lenguaje /. <esde entonces, 6icrosoft propusovarias eDtensiones del lenguaje que se 0a adoptado como parte delest$ndar -cma / revisado. (ctualmente se cuenta con la versiónI.:.

/ es un lenguaje de programación simple, e&ca#, con seguridad de tipos yorientado a objetos que se 0a dise"ado para compilar diversas aplicacionesque se ejecutan en .G-H LrameworK.

0ttps*msdn.microsoft.comeseslibraryKD>JD>I4.aspD

1.9(SP.Get1.1: 6R/

<eitel, @., <eitel, P. 4::J! Como programar en C# 4da -d.!.6)Dico, <.L., 6)Dico* Pearson -ducación.

Pressman, 5. 4:1:! Ingeniería de Sotware. Un Enoque Práctico Jma -d.! 6)Dico, <.L., 6)Dico* 6cVraw @ill Mnteramericana.

4. ssss