Vous êtes sur la page 1sur 34

12/12/2016

ED01_Contenidos

Desarrollodesoftware.
Casoprctico

EnBKProgramacintodoshanvueltoyadesusvacaciones.
Lesesperaunseptiembreagitado,puesacabanderecibirunapeticinporpartedeunacadenahotelera
paradesarrollarunproyectosoftware.
Ada, la supervisora de proyectos de BK Programacin, se rene con Juan y Mara (trabajadores de la
empresa)paraempezaraplanificarelproyecto.
Ana,cuyaespecialidadeseldiseogrficodepginasweb,acabadeterminarelCiclodeGradoMedio
en Sistemas Microinformticos y Redes y realiz la FCT en BK Programacin. Trabaja en la empresa
ayudando en los diseos, y aunque est contenta con su trabajo, le gustara participar activamente en
todaslasfasesenelproyecto.Elproblemaesquecarecedelosconocimientosnecesarios.
Antonio se ha enterado de la posibilidad de estudiar el nuevo Ciclo de Grado Superior de Diseo de
AplicacionesMultiplataformaadistancia,yestdispuestaahacerlo.(Notendraquedejareltrabajo).
LecomentasusplanesasuamigoAntonio(quetieneconocimientosbsicosdeinformtica),ystese
uneaella.
Despusdetodoqupuedenperder?

MaterialesformativosdeFPOnlinepropiedaddelMinisteriode
Educacin,CulturayDeporte.
AvisoLegal

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

1/34

12/12/2016

ED01_Contenidos

1.Softwareyprograma.Tiposdesoftware.

Casoprctico

Todos en la empresa estn entusiasmados con el proyecto que tienen entre


manos. Saben que lo ms importante es planificarlo todo de antemano y
elegireltipodesoftwaremsadecuado.Analesescuchahablarynollegaa
entenderporquhablande"tiposdesoftware".Acasoelsoftwarenoerala
partelgicadelordenador,sinms?Culessonlostiposdesoftware?

Es de sobra conocido que el ordenador se compone de dos partes bien


diferenciadas:
hardwarey
software.
Elsoftwareeselconjuntodeprogramasinformticosqueactansobreel
hardwareparaejecutarloqueelusuariodesee.
Segn su funcin se distinguen tres tipos de software: sistema operativo, software de programacin y
aplicaciones.
Elsistemaoperativoeselsoftware base que ha de estar instalado y configurado en nuestro ordenador para que
las aplicaciones puedan ejecutarse y funcionar. Son ejemplos de sistemas operativos:
Windows,
Linux,
MacOSX...
El software de programacin es el conjunto de herramientas que nos
permiten desarrollar programas informticos, y las aplicaciones
informticassonunconjuntodeprogramasquetienenunafinalidadmso
menosconcreta.Sonejemplosdeaplicaciones:unprocesadordetextos,una
hojadeclculo,elsoftwareparareproducirmsica,unvideojuego,etc.
A su vez, un programa es un conjunto de instrucciones escritas en un
lenguajedeprogramacin.
Endefinitiva,distinguimoslossiguientestiposdesoftware:
Enestetema,nuestrointerssecentraenlas
aplicaciones informticas:
cmo se desarrollan y cules son las fases por las que necesariamente han
depasar.

Descripcindelaimagen

Alolargodeestaprimeraunidadvasaaprenderlosconceptosfundamentalesdesoftwareylasfasesdelllamado
ciclodevidadeunaaplicacininformtica.
Tambinaprendersadistinguirlosdiferenteslenguajesdeprogramacinylosprocesosqueocurrenhastaqueel
programafuncionayrealizalaaccindeseada.

Parasaberms

En el siguiente enlace encontrars ms informacin de los tipos de software existente, as como


ejemplosdecadaunoqueteayudarnaprofundizarsobreeltema.
Ampliacinsobrelostiposdesoftware.
https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

2/34

12/12/2016

ED01_Contenidos

Reflexiona

Hay varios sistemas operativos en el mercado: Linux, Windows, Mac OS X etc. El ms conocido es
Windows.Apesardeeso,porquutilizamoscadavezmsLinux?

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

3/34

12/12/2016

ED01_Contenidos

2.Relacinhardwaresoftware.

Casoprctico

Despus de saber ya diferenciar los distintos tipos de software,


Anaseleplanteaotracuestin:Elsoftware,seadeltipoquesea,
se ejecuta sobre los dispositivos fsicos del ordenador. Qu
relacinhayentreellos?

Comosabemos,alconjuntodedispositivosfsicosqueconformanunordenadorseledenominahardware.
Existe una relacin indisoluble entre ste y el software, ya que necesitan estar instalados y configurados
correctamenteparaqueelequipofuncione.
Elsoftwareeseejecutarsobrelosdispositivosfsicos.
Laprimeraarquitecturahardwareconprogramaalmacenadoseestableci
en1946porJohnVonNeumann:
Esta relacin softwarehardware la podemos poner de manifiesto desde
dospuntosdevista:
Descripcindelaimagen

a.Desdeelpuntodevistadelsistemaoperativo
El sistema operativo es el encargado de coordinar al hardware durante el funcionamiento del ordenador,
actuandocomointermediarioentresteylasaplicacionesqueestncorriendoenunmomentodado.
Todas las aplicaciones necesitan recursos hardware durante su ejecucin (tiempo de
CPU, espacio en
memoria RAM, tratamiento de
interrupciones, gestin de los dispositivos de Entrada/Salida, etc.).
Ser siempre el sistema operativo el encargado de controlar todos estos aspectos de manera "oculta" para
lasaplicaciones(yparaelusuario).
b.Desdeelpuntodevistadelasaplicaciones
Ya hemos dicho que una aplicacin no es otra cosa que un conjunto de programas, y que stos estn
escritosenalgnlenguajedeprogramacinqueelhardwaredelequipodebeinterpretaryejecutar.
Hay multitud de lenguajes de programacin diferentes (como ya veremos en su momento). Sin embargo,
todostienenalgoencomn:estarescritosconsentenciasdeunidiomaqueelserhumanopuedeaprendery
usarfcilmente.Porotraparte,elhardwaredeunordenadorsloescapazdeinterpretarsealeselctricas
(ausenciasopresenciasdetensin)que,eninformtica,setraducenensecuenciasde0y1(cdigobinario).
Esto nos hace plantearnos una cuestin: Cmo ser capaz el ordenador de "entender" algo escrito en un
lenguajequenoeselsuyo?.
Como veremos a lo largo de esta unidad, tendr que pasar algo (un proceso de traduccin de cdigo) para
queelordenadorejecutelasinstruccionesescritasenunlenguajedeprogramacin.

Autoevaluacin

Parafabricarunprogramainformticoqueseejecutaenunacomputadora:
Hayqueescribirlasinstruccionesencdigobinarioparaquelasentiendaelhardware.
Slo es necesario escribir el programa en algn lenguaje de programacin y se ejecuta
directamente.
Hay que escribir el programa en algn Lenguaje de Programacin y contar con herramientas
softwarequelotraduzcanacdigobinario.
https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

4/34

12/12/2016

ED01_Contenidos

Losprogramasinformticosnosepuedenescribir:formanpartedelossistemasoperativos.

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

5/34

12/12/2016

ED01_Contenidos

3.Desarrollodesoftware.

Casoprctico

EnBKprogramacinyaestnmanosalaobra.Adareneatoda
suplantillaparadesarrollarelnuevoproyecto.
Ella sabe mejor que nadie que no ser sencillo y que habr que
pasarporunaseriedeetapas.Ananoquiereperderselareunin,
quiere descubrir por qu hay que tomar tantas anotaciones y
tantasmolestiasantesinclusodeempezar.

Entendemos por
Desarrollo de Software todo el proceso que ocurre
desde que se concibe una idea hasta que un programa est
implementadoenelordenadoryfuncionando.
El proceso de desarrollo, que en un principio puede parecer una tarea simple, consta de una serie de pasos de
obligado cumplimiento, pues slo as podremos garantizar que los programas creados son eficientes, fiables,
segurosyrespondenalasnecesidadesdelosusuariosfinales(aquellosquevanautilizarelprograma).
Comoveremosconmsdetenimientoalolargodelaunidad,eldesarrollodesoftwareesunprocesoqueconlleva
unaseriedepasos.Genricamente,estospasossonlossiguientes:
Etapaseneldesarrollodesoftware:
Comovamosaverenelsiguientepunto,segnelordenylaformaenquesellevenacabolasetapashablaremos
dediferentesciclosdevidadelsoftware.

La construccin de software es un proceso que puede llegar a ser muy complejo y que exige gran
coordinacinydisciplinadelgrupodetrabajoquelodesarrolle.

Reflexiona

Segnestimaciones,el26%delosgrandesproyectosdesoftwarefracasan,el48%debenmodificarse
drsticamente y slo el 26% tienen rotundo xito. La principal causa del fracaso de un proyecto es la
falta de una buena planificacin de las etapas y mala gestin de los pasos a seguir. Por qu el
porcentajedefracasoestangrande?Porqupiensasqueestascausassontandeterminantes?

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

6/34

12/12/2016

ED01_Contenidos

3.1.Ciclosdevidadelsoftware.
Yahemosvistoquelaseriedepasosaseguirparadesarrollarunprogramaes
loqueseconocecomoCiclodeVidadelSoftware.
Cadaetapavendrexplicadaconmsdetalleenelpuntodelapresenteunidad
dedicadoalasfasesdeldesarrolloyejecucindelsoftware.
Diversos autores han planteado distintos modelos de ciclos de vida, pero los
msconocidosyutilizadossonlosqueaparecenacontinuacin:

Siempre se debe aplicar un modelo de ciclo de vida al desarrollo de cualquier proyecto


software.
1.ModeloenCascada
Eselmodelodevidaclsicodelsoftware.
Esprcticamenteimposiblequesepuedautilizar,yaquerequiereconocerdeantemanotodoslosrequisitos
del sistema. Slo es aplicable a pequeos desarrollos, ya que las etapas pasan de una a otra sin retorno
posible.(sepresuponequenohabrerroresnivariacionesdelsoftware).
2.ModeloenCascadaconRealimentacin
Es uno de los modelos ms utilizados. Proviene del modelo anterior, pero se introduce una realimentacin
entre etapas, de forma que podamos volver atrs en cualquier momento para corregir, modificar o depurar
algnaspecto.Noobstante,siseprevnmuchoscambiosduranteeldesarrollonoeselmodelomsidneo.
Eselmodeloperfectosielproyectoesrgido(pocoscambios,pocoevolutivo)ylosrequisitosestnclaros.
3.ModelosEvolutivos
Sonmsmodernosquelosanteriores.Tienenencuentalanaturalezacambianteyevolutivadelsoftware.
Distinguimosdosvariantes:
3.1.ModeloIterativoIncremental
Estbasadoenelmodeloencascadaconrealimentacin,dondelasfasesserepitenyrefinan,yvan
propagandosumejoraalasfasessiguientes.
3.2.ModeloenEspiral
Es una combinacin del modelo anterior con el modelo en cascada. En l, el software se va
construyendo repetidamente en forma de versiones que son cada vez mejores, debido a que
incrementanlafuncionalidadencadaversin.Esunmodelobastantecomplejo.

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

7/34

12/12/2016

ED01_Contenidos

Resumentextualalternativo

Autoevaluacin

Si queremos construir una aplicacin pequea, y se prev que no sufrir grandes cambios
durantesuvida,seraelmodelodeciclodevidaenespiralelmsrecomendable?
S.
No.

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

8/34

12/12/2016

ED01_Contenidos

3.2.Herramientasdeapoyoaldesarrollodelsoftware.
En la prctica, para llevar a cabo varias de las etapas vistas en el punto
anterior contamos con herramientas informticas, cuya finalidad principal es
automatizarlastareasyganarfiabilidadytiempo.
Esto nos va a permitir centrarnos en los requerimientos del sistema y el
anlisisdelmismo,quesonlascausasprincipalesdelosfallosdelsoftware.
LasherramientasCASEsonunconjuntodeaplicacionesqueseutilizanenel
desarrollodesoftware con el objetivo de reducir costes y tiempo del proceso,
mejorandoportantolaproductividaddelproceso.
Enqufasesdelprocesonospuedenayudar?
En el diseo del proyecto, en la codificacin de nuestro diseo a partir de su apariencia visual, deteccin de
errores
El desarrollo rpido de aplicaciones o RAD es un proceso de desarrollo de software que comprende el desarrollo
iterativo, la construccin de prototipos y el uso de utilidades CASE. Hoy en da se suele utilizar para referirnos al
desarrollorpidodeinterfacesgrficasdeusuariooentornosdedesarrollointegradocompletos.
La tecnologa CASE trata de automatizar las fases del desarrollo de software para que mejore la calidad del
procesoydelresultadofinal.
Enconcreto,estasherramientaspermiten:
Mejorarlaplanificacindelproyecto.
Darleagilidadalproceso.
Poderreutilizarpartesdelsoftwareenproyectosfuturos.
Hacerquelasaplicacionesrespondanaestndares.
Mejorarlatareadelmantenimientodelosprogramas.
Mejorarelprocesodedesarrollo,alpermitirvisualizarlasfasesdeformagrfica.
CLASIFICACIN
Normalmente,lasherramientasCASEseclasificanenfuncindelasfasesdelciclodevidadelsoftwareenlaque
ofrecenayuda:
UCASE:ofreceayudaenlasfasesdeplanificacinyanlisisderequisitos.
MCASE:ofreceayudaenanlisisydiseo.
LCASE:ayudaenlaprogramacindelsoftware,deteccindeerroresdelcdigo,depuracindeprogramas
ypruebasyenlageneracindeladocumentacindelproyecto.
EjemplosdeherramientasCASElibresson:ArgoUML,UseCaseMaker,ObjectBuilder

Parasaberms

En el siguiente enlace se presenta una ampliacin de los tipos y ayudas concretas de la herramientas
CASE.
AyudasconcretasdeCASE.

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

9/34

12/12/2016

ED01_Contenidos

4.Lenguajesdeprogramacin.

Casoprctico

Una de los aspectos del proyecto que ms preocupa a Ada es la


eleccindellenguajedeprogramacinautilizar.
Necesita tener muy claros los requerimientos del cliente para
enfocar correctamente la eleccin, pues segn sean stos unos
lenguajessernmsefectivosqueotros.

Ya dijimos anteriormente que los programas informticos estn escritos usando algn lenguaje de programacin.
Por tanto, podemos definir un Lenguaje de Programacin como un idioma creado de forma artificial, formado por
unconjuntodesmbolosynormasqueseaplicansobreunalfabetoparaobteneruncdigo,queelhardwaredela
computadorapuedaentenderyejecutar.
Los lenguajes de programacin son los que nos permiten comunicarnos con el hardware del
ordenador.
En otras palabras, es muy importante tener muy clara la funcin de los lenguajes de programacin. Son los
instrumentosquetenemosparaqueelordenadorrealicelastareasquenecesitamos.
Hay multitud de lenguajes de programacin, cada uno con unos smbolos y unas estructuras diferentes. Adems,
cadalenguajeestenfocadoalaprogramacindetareasoreasdeterminadas.Porello,laeleccindellenguajea
utilizarenunproyectoesunacuestindeextremaimportancia.
Loslenguajesdeprogramacinhansufridosupropiaevolucin,comosepuedeapreciarenlafigurasiguiente:

CaractersticasdelosLenguajesdeProgramacin
Lenguajemquina:
Susinstruccionessoncombinacionesdeunosyceros.
Eselnicolenguajequeentiendedirectamenteelordenador.(Nonecesitatraduccin).
Fueelprimerlenguajeutilizado.
Esnicoparacadaprocesador(noesportabledeunequipoaotro).
Hoydanadieprogramaenestelenguaje.
Lenguajeensamblador:
Sustituyallenguajemquinaparafacilitarlalabordeprogramacin.
Enlugardeunosycerosseprogramausandomnemotcnicos(instruccionescomplejas).
Necesitatraduccinallenguajemquinaparapoderejecutarse.
Sus instrucciones son sentencias que hacen referencia ala ubicacin fsica de los archivos en el
equipo.
Esdifcildeutilizar.
Lenguajedealtonivelbasadosencdigo:
Sustituyeronallenguajeensambladorparafacilitarmslalabordeprogramacin.
En lugar de mnemotcnicos, se utilizan sentencias y rdenes derivadas del idioma ingls. (Necesita
traduccinallenguajemquina).
Sonmscercanosalrazonamientohumano.
Sonutilizadoshoyda,aunquelatendenciaesquecadavezmenos.
Lenguajesvisuales:
Estnsustituyendoaloslenguajesdealtonivelbasadosencdigo.
https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

10/34

12/12/2016

ED01_Contenidos

Enlugardesentenciasescritas,seprogramagrficamenteusandoelratnydiseandodirectamente
laaparienciadelsoftware.
Sucorrespondientecdigosegeneraautomticamente.
Necesitantraduccinallenguajemquina.
Soncompletamenteportablesdeunequipoaotro.

Parasaberms

Enelsiguienteenlace,verslaevolucinentrelosdistintostiposdeLenguajesdeProgramacinenla
historia.
EvolucindelosLenguajesdeProgramacin.

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

11/34

12/12/2016

ED01_Contenidos

4.1.Conceptoycaractersticas.
Ya sabemos que los lenguajes de programacin han evolucionado, y siguen hacindolo, siempre hacia la mayor
usabilidaddelosmismos(queelmayornmeroposibledeusuariosloutilicenyexploten).
La eleccin del lenguaje de programacin para codificar un programa depender de las
caractersticasdelproblemaaresolver.
CONCEPTO
Unlenguajedeprogramacineselconjuntode:
Alfabeto:conjuntodesmbolospermitidos.
Sintaxis: normas de construccin permitidas de los smbolos del
lenguaje.
Semntica: significado de las construcciones para hacer acciones
vlidas.
CARACTERSTICAS
Podemos clasificar los distintos tipos de Lenguajes de Programacin en base
adistintascaractersticas:
Segnlocercaqueestdellenguajehumano
Lenguajes de Programacin De alto nivel: por su esencia, estn ms prximos al razonamiento
humano.
Lenguajes de Programacin De bajo nivel: estn ms prximos al funcionamiento interno de la
computadora:
LenguajeEnsamblador.
LenguajeMquina.
Segnlatcnicadeprogramacinutilizada:
LenguajesdeProgramacinEstructurados:Usanlatcnicadeprogramacinestructurada. Ejemplos:
Pascal,C,etc.
Lenguajes de Programacin Orientados a Objetos: Usan la tcnica de programacin orientada a
objetos.Ejemplos:C++,Java,Ada,Delphi,etc.
Lenguajes de Programacin Visuales: Basados en las tcnicas anteriores, permiten programar
grficamente, siendo el cdigo correspondiente generado de forma automtica. Ejemplos: Visual
Basic.Net,BorlandDelphi,etc.

A pesar de la inmensa cantidad de lenguajes de programacin existentes, Java, C, C++, PHP y Visual
Basicconcentranalrededordel60%delintersdelacomunidadinformticamundial.

Parasaberms

En la pgina web siguiente encontrars un resumen de las caractersticas de los Lenguajes de


Programacinmsutilizadosenlaactualidad.
CaractersticasdelosPrincipalesLenguajesdeProgramacin.

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

12/34

12/12/2016

ED01_Contenidos

4.2.Lenguajesdeprogramacinestructurados.
Aunque los requerimientos actuales de software son bastante ms complejos
deloquelatcnicadeprogramacinestructuradaescapaz,esnecesarioporlo
menos conocer las bases de los Lenguajes de Programacin estructurados, ya
que a partir de ellos se evolucion hasta otros lenguajes y tcnicas ms
completas (orientada a eventos u objetos) que son las que se usan
actualmente.
La programacin estructurada se define como una tcnica para escribir
lenguajesdeprogramacinquepermitesloelusodetrestiposdesentencias
oestructurasdecontrol:
Sentenciassecuenciales.
Sentenciasselectivas(condicionales).
Sentenciasrepetitivas(iteracionesobucles).
Los lenguajes de programacin que se basan en la programacin estructurada reciben el nombre de lenguajes de
programacinestructurados.

Parasaberms

Enelsiguienteenlaceencontrarsunbrevedocumentodondeseexplicaparaqusirvecadasentencia
decontrolconunossencillosejemplosescritosusandoellenguajeC.
SentenciasdeControldelaProgramacinEstructurada.

La programacin estructurada fue de gran xito por su sencillez a la hora de construir y leer programas. Fue
sustituida por la programacin modular, que permita dividir los programas grandes en trozos ms pequeos
(siguiendo la conocida tcnica "divide y vencers"). A su vez, luego triunfaron los lenguajes orientados a objetos y
deahalaprogramacinvisual(siempreesmssencilloprogramargrficamentequeencdigo,nocrees?).
VENTAJASDELAPROGRAMACINESTRUCTURADA
Losprogramassonfcilesdeleer,sencillosyrpidos.
Elmantenimientodelosprogramasessencillo.
Laestructuradelprogramaessencillayclara.
INCONVENIENTES
Todoelprogramaseconcentraenunnicobloque(sisehacedemasiadograndeesdifcilmanejarlo).
No permite reutilizacin eficaz de cdigo, ya que todo va "en uno". Es por esto que a la programacin
estructuradalesustituylaprogramacinmodular,dondelosprogramassecodificanpormdulosybloques,
permitiendomayorfuncionalidad.
Ejemplosdelenguajesestructurados:Pascal,C,Fortran.

La Programacin estructurada evolucion hacia la Programacin modular, que divide el programa en


trozosdecdigollamadosmdulosconunafuncionalidadconcreta,quepodrnserreutilizables.

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

13/34

12/12/2016

ED01_Contenidos

4.3.Lenguajesdeprogramacinorientadosaobjetos.
Despusdecomprenderquelaprogramacinestructuradanoestilcuandolosprogramassehacenmuylargos,es
necesaria otra tcnica de programacin que solucione este inconveniente. Nace as la Programacin Orientada a
Objetos(enadelante,P.O.O.).
Los lenguajes de programacin orientados a objetos tratan a los programas no como un conjunto ordenado de
instrucciones (tal como suceda en la programacin estructurada) sino como un conjunto de objetos que colaboran
entreellospararealizaracciones.

EnlaP.O.O.losprogramassecomponendeobjetosindependientesentresquecolaboranpara
realizaracciones.
Losobjetossonreutilizablesparaproyectosfuturos.

Su primera desventaja es clara: no es una programacin tan intuitiva como la


estructurada.
A pesar de eso, alrededor del 55% del software que producen las empresas se hace
usandoestatcnica.
Razones:
Elcdigoesreutilizable.
Si hay algn error, es ms fcil de localizar y depurar en un objeto que en un
programaentero.
Caractersticas:
Losobjetosdelprogramatendrnunaseriedeatributosquelosdiferencianunos
deotros.
Sedefineclasecomounacoleccindeobjetosconcaractersticassimilares.
Mediantelosllamadosmtodos,losobjetossecomunicanconotrosproducindoseuncambiodeestadode
losmismos.
Los objetos son, pues, como unidades individuales e indivisibles que forman la base de este tipo de
programacin.
Principaleslenguajesorientadosaobjetos:Ada,C++,VB.NET,Delphi,Java,PowerBuilder,etc.

Parasaberms

Enelsiguienteenlacehayundocumentomuyinteresantedeintroduccinalaprogramacinorientadaa
objetos,enconcreto,dellenguajeC++.
AprenderaprogramarconC++. (0.44MB)

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

14/34

12/12/2016

ED01_Contenidos

5.Faseseneldesarrolloyejecucindelsoftware.

Casoprctico

EnlareunindeBKacercadelnuevoproyectoAda,lasupervisora,
dej bien claro que lo primero y ms importante es tener claro qu
queremos que haga el software y con qu herramientas contamos:
lo dems vendra despus, ya que si esto no est bien planteado,
eseerrorsepropagaratodaslasfasesdelproyecto.
Pordndeempezamos?preguntaJuan.
ANLISISdeREQUISITOScontestaAda.

Ya hemos visto en puntos anteriores que debemos elegir un modelo de ciclo de vida para el desarrollo de nuestro
software.
Independientemente del modelo elegido, siempre hay una serie de etapas que debemos seguir para construir
softwarefiableydecalidad.
Estasetapasson:
1.ANLISISDEREQUISITOS.
Seespecificanlosrequisitosfuncionalesynofuncionalesdelsistema.
2.DISEO.
Sedivideelsistemaenpartesysedeterminalafuncindecadauna.
3.CODIFICACIN.
SeeligeunLenguajesdeProgramacinysecodificanlosprogramas.
4.PRUEBAS.
Sepruebanlosprogramasparadetectarerroresysedepuran.
5.DOCUMENTACIN.
Detodaslasetapas,sedocumentayguardatodalainformacin.
6.EXPLOTACIN.
Instalamos,configuramosyprobamoslaaplicacinenlosequiposdelcliente.
7.MANTENIMIENTO.
Semantieneelcontactoconelclienteparaactualizarymodificarlaaplicacinelfuturo.

Autoevaluacin

Crees que debemos esperar a tener completamente cerrada una etapa para pasar a la
siguiente?
S.
No.

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

15/34

12/12/2016

ED01_Contenidos

5.1.Anlisis.
Esta es la primera fase del proyecto. Una vez finalizada, pasamos a la
siguiente(diseo).
Es la fase de mayor importancia en el desarrollo del proyecto y todo lo
dems depender de lo bien detallada que est. Tambin es la ms
complicada, ya que no est automatizada y depende en gran medida del
analistaquelarealice.
Eslaprimeraetapadelproyecto,lamscomplicadaylaquemsdependedelacapacidaddel
analista.
Qusehaceenestafase?
Seespecificanyanalizanlosrequisitosfuncionalesynofuncionalesdelsistema.
Requisitos:
Funcionales: Qu funciones tendr que realizar la aplicacin. Qu respuesta dar la aplicacin ante todas
lasentradas.Cmosecomportarlaaplicacinensituacionesinesperadas.
No funcionales: Tiempos de respuesta del programa, legislacin aplicable, tratamiento ante la
simultaneidaddepeticiones,etc.
Lofundamentaleslabuenacomunicacinentreelanalistayelclienteparaquelaaplicacinquesevaadesarrollar
cumplaconsusexpectativas.
LaculminacindeestafaseeseldocumentoERS(EspecificacindeRequisitosSoftware).
Enestedocumentoquedanespecificados:
Laplanificacindelasreunionesquevanatenerlugar.
Relacindelosobjetivosdelusuarioclienteydelsistema.
Relacindelosrequisitosfuncionalesynofuncionalesdelsistema.
Relacindeobjetivosprioritariosytemporizacin.
Reconocimientoderequisitosmalplanteadosoqueconllevancontradicciones,etc.

Citasparapensar

Todoaquelloquenosedetecte, o resulte mal entendido en la etapa inicial provocar un


fuerteimpactonegativoenlosrequisitos,propagandoestacorrientedegradantealolargo
detodoelprocesodedesarrolloeincrementandosuperjuiciocuantomstardasea
sudeteccin
(BellyThayer1976)(Davis1993).

Comoejemploderequisitosfuncionales,enlaaplicacinparanuestrosclientesdelastiendasdecosmtica,habra
queconsiderar:
Sideseanquelalecturadelosproductosserealicemediantecdigosdebarras.
Sivanadetallarlasfacturasdecompraydequmaneraladesean.
Silostrabajadoresdelastiendastrabajanacomisin,tenerinformacindelasventasdecadauno.
Sivanaoperarcontarjetasdecrdito.
Sideseanuncontroldelstockenalmacn.
Etc.

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

16/34

12/12/2016

ED01_Contenidos

5.2.Diseo.

Casoprctico

Juan est agobiado por el proyecto. Ya han mantenido


comunicaciones con el cliente y saben perfectamente qu debe
hacer la aplicacin. Tambin tiene una lista de las caractersticas
hardware de los equipos de su cliente y todos los requisitos. Tiene
tantainformacinquenosabepordndeempezar.
Decide hablar con Ada. Su supervisora, amable como siempre, le
sugierequeempieceadividirelproblemaenlaspartesimplicadas.
Vale,Ada,pero,cmolodivido?

Durante esta fase, donde ya sabemos lo que hay que hacer, el siguiente
pasoesCmohacerlo?
Se debe dividir el sistema en partes y establecer qu relaciones habr
entreellas.
Decidirquharexactamentecadaparte.
En definitiva, debemos crear un modelo funcionalestructural de los
requerimientosdelsistemaglobal,parapoderdividirloyafrontarlaspartes
porseparado.
Enestepunto,sedebentomardecisionesimportantes,talescomo:
Entidadesyrelacionesdelasbasesdedatos.
Seleccindellenguajedeprogramacinquesevaautilizar.
SeleccindelSistemaGestordeBasedeDatos.
Etc.

Citasparapensar

Designisnotjustwhatitlookslikeandfeelslike.Designishowitworks.
Steve Jobs ("El diseo no es slo lo que parece y cmo parece. Diseo es cmo se
trabaja").

Reflexiona

Segn estimaciones, las organizaciones y empresas que crecen ms son las que ms dinero invierten
ensusdiseos.

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

17/34

12/12/2016

ED01_Contenidos

5.3.Codificacin.Tiposdecdigo.

Casoprctico

EnBK,yatienenelproyectodivididoenpartes.
Ahora llega una parte clave: codificar los pasos y acciones a seguir
para que el ordenador los ejecute. En otras palabras, programar la
aplicacin. Saben que no ser fcil, pero afortunadamente cuentan
conherramientasCASEquelesvanaserdegranayuda.AAnael
gustara participar, pero cuando se habla de "cdigo fuente",
"ejecutable", etc. sabe que no tiene ni idea y que no tendr ms
remedioqueestudiarlosiquierecolaborarenestafasedelproyecto.

Durantelafasedecodificacinserealizaelprocesodeprogramacin.
Consiste en elegir un determinado lenguaje de programacin, codificar toda la informacin anterior y llevarlo a
cdigofuente.

Esta tarea la realiza el programador y tiene que cumplir exhaustivamente con todos los datos
impuestosenelanlisisyeneldiseodelaaplicacin.
Lascaractersticasdeseablesdetodocdigoson:
1.Modularidad:queestdivididoentrozosmspequeos.
2.Correccin:quehagaloqueselepiderealmente.
3.Fcildeleer:parafacilitarsudesarrolloymantenimientofuturo.
4.Eficiencia:quehagaunbuenusodelosrecursos.
5.Portabilidad:quesepuedaimplementarencualquierequipo.

Duranteestafase,elcdigopasapordiferentesestados:
CdigoFuente:eselescritoporlosprogramadoresenalgneditorde
texto.Seescribeusandoalgnlenguajedeprogramacindealtonivel
ycontieneelconjuntodeinstruccionesnecesarias.
Cdigo Objeto: es el cdigo binario resultado de compilar el cdigo
fuente.
La compilacin es la traduccin de una sola vez del programa, y se
realiza utilizando un compilador. La interpretacin es la traduccin y
ejecucinsimultneadelprogramalneaalnea.
Elcdigoobjetonoesdirectamenteinteligibleporelserhumano,pero
tampocoporlacomputadora.Esuncdigointermedioentreelcdigofuenteyelejecutableysloexistesi
elprogramasecompila,yaquesiseinterpreta(traduccinlneaalneadelcdigo)setraduceyseejecuta
enunsolopaso.
Cdigo Ejecutable: Es el cdigo binario resultante de enlazar los archivos de cdigo objeto con ciertas
rutinasy
bibliotecasnecesarias.Elsistemaoperativoserelencargadodecargarelcdigoejecutable
en memoria RAM y proceder a ejecutarlo. Tambin es conocido como cdigo mquina y ya s es
directamenteinteligibleporlacomputadora.

Losprogramasinterpretadosnoproducencdigoobjeto.Elpasodefuenteaejecutableesdirecto.

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

18/34

12/12/2016

ED01_Contenidos

5.4.Fasesenlaobtencindecdigo.

Casoprctico

Juan y Mara ya han decidido el Lenguajes de Programacin que


vanautilizar.
Saben que el programa que realicen pasar por varias fases antes
de ser implementado en los equipos del cliente. Todas esas fases
van a producir transformaciones en el cdigo. Qu caractersticas
ir adoptando el cdigo a medida que avanza por el proceso de
codificacin?

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

19/34

12/12/2016

ED01_Contenidos

5.4.1.Fuente.
Elcdigofuenteeselconjuntodeinstruccionesquelacomputadoradeberrealizar,escritasporlosprogramadores
enalgnlenguajedealtonivel.
Este conjunto de instrucciones no es directamente ejecutable por la mquina, sino que deber ser traducido al
lenguajemquina,quelacomputadorasercapazdeentenderyejecutar.
Un aspecto muy importante en esta fase es la elaboracin previa de un algoritmo, que lo definimos como un
conjuntodepasosaseguirparaobtenerlasolucindelproblema.Elalgoritmolodiseamosen
pseudocdigoy
conl,lacodificacinposterioraalgnLenguajedeProgramacindeterminadosermsrpidaydirecta.
Paraobtenerelcdigofuentedeunaaplicacininformtica:
1.Sedebepartirdelasetapasanterioresdeanlisisydiseo.
2.Sedisearun
algoritmoquesimbolicelospasosaseguirparalaresolucindelproblema.
3.SeelegirunaLenguajesdeProgramacindealtonivelapropiadoparalascaractersticasdelsoftware que
sequierecodificar.
4.Seprocederalacodificacindelalgoritmoantesdiseado.
La culminacin de la obtencin de cdigo fuente es un documento con la codificacin de todos los
funciones,bibliotecasy
procedimientosnecesariosparacodificarlaaplicacin.

mdulos,

Puesto que, como hemos dicho antes, este cdigo no es inteligible por la mquina, habr que TRADUCIRLO,
obteniendo as un cdigo equivalente pero ya traducido a cdigo binario que se llama cdigo objeto. Que no ser
directamenteejecutableporlacomputadorasistehasidocompilado.
Unaspectoimportanteatenerencuentaessulicencia.As,enbaseaella,podemosdistinguirdostiposdecdigo
fuente:
Cdigofuenteabierto.Esaquelqueestdisponibleparaquecualquierusuariopuedaestudiarlo,modificarlo
oreutilizarlo.
Cdigofuentecerrado.Esaquelquenotenemospermisoparaeditarlo.

Autoevaluacin

Paraobtenercdigofuenteapartirdetodalainformacinnecesariadelproblema:
SeeligeelLenguajedeProgramacinmsadecuadoysecodificadirectamente.
SecodificaydespusseeligeelLenguajedeProgramacinmsadecuado.
SeeligeelLenguajedeProgramacinmsadecuado,sediseaunalgoritmoysecodifica.

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

20/34

12/12/2016

ED01_Contenidos

5.4.2.Objeto.
Elcdigoobjetoesuncdigointermedio.
Eselresultadodetraducircdigofuenteauncdigoequivalenteformadoporunosycerosqueannopuedeser
ejecutadodirectamenteporlacomputadora.
Esdecir,eselcdigoresultantedelacompilacindelcdigofuente.
Consiste en un
bytecode (cdigo binario) que est distribuido en varios archivos, cada uno de los cuales
correspondeacadaprogramafuentecompilado.
Slosegeneracdigoobjetounavezqueelcdigofuenteestlibredeerroressintcticosysemnticos.
Elprocesodetraduccindecdigofuenteacdigoobjetopuederealizarsededosformas:
a.Compilacin: El proceso de traduccin se realiza sobre todo el cdigo fuente, en un solo paso. Se crea
cdigoobjetoquehabrqueenlazar.Elsoftwareresponsablesellama
compilador.
b.Interpretacin: El proceso de traduccin del cdigo fuente se realiza lnea a lnea y se ejecuta
simultneamente. No existe cdigo objeto intermedio. El software responsable se llama
intrprete. El
proceso de traduccin es ms lento que en el caso de la compilacin, pero es recomendable cuando el
programadoresinexperto,yaquedaladeteccindeerroresesmsdetallada.

Elcdigoobjetoescdigobinario,peronopuedeserejecutadoporlacomputadora

Parasaberms

En el siguiente enlace podrs visitar una pgina web, que te permitir aprender ms acerca de la
generacindecdigosobjeto:
Generacindecdigoobjeto.

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

21/34

12/12/2016

ED01_Contenidos

5.4.3.Ejecutable.
Elcdigoejecutable,resultadodeenlazarlosarchivosdecdigoobjeto,constadeunnicoarchivoquepuedeser
directamente ejecutado por la computadora. No necesita ninguna aplicacin externa. Este archivo es ejecutado y
controladoporelsistemaoperativo.
Para obtener un slo archivo ejecutable, habr que enlazar todos los archivos de cdigo objeto, a travs de un
software llamado
linker (enlazador) y obtener as un nico archivo que ya s es ejecutable directamente por la
computadora.

Parasaberms

En el siguiente enlace podrs visitar una pgina web, que te permitir aprender ms acerca de la
generacindeejecutables:
Generacindecdigoejecutable.

En el esquema de generacin de cdigo ejecutable, vemos el proceso completo para la


generacindeejecutables.
A partir de un editor, escribimos el lenguaje fuente con algn Lenguaje de programacin.
(Enelejemplo,seusaJava).
Acontinuacin,elcdigofuentesecompilaobteniendocdigoobjetoobytecode.
Esebytecode,atravsdelamquinavirtual(severenelsiguientepunto),pasaacdigo
mquina,yadirectamenteejecutableporlacomputadora.

Generacindecdigoejecutable.

Autoevaluacin

Relaciona los tipos de cdigo con su caracterstica ms relevante, escribiendo el nmero


asociadoalacaractersticaenelhuecocorrespondiente.

Ejercicioderelacionar
Tipode
cdigo.

Relacin.

Caractersticas.

CdigoFuente

1.EscritoenLenguajeMquinaperonoejecutable.

CdigoObjeto

2.EscritoenalgnLenguajedeProgramacindealtonivel,perono
ejecutable.

Cdigo
Ejecutable

3.EscritoenLenguajeMquinaydirectamenteejecutable.

Enviar

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

22/34

12/12/2016

ED01_Contenidos

5.5.Mquinasvirtuales.
Una mquina virtual es un tipo especial de software cuya misin es separar el
funcionamientodelordenadordeloscomponenteshardwareinstalados.
Estacapadesoftwaredesempeaunpapelmuyimportanteenelfuncionamientodelos
lenguajesdeprogramacin,tantocompiladoscomointerpretados.
Con el uso de mquinas virtuales podremos desarrollar y ejecutar una aplicacin sobre
cualquier equipo, independientemente de las caractersticas concretas de los
componentesfsicosinstalados.Estogarantizala
portabilidaddelasaplicaciones.
Lasfuncionesprincipalesdeunamquinavirtualsonlassiguientes:
Conseguirquelasaplicacionesseanportables.
Reservarmemoriaparalosobjetosquesecreanyliberarlamemorianoutilizada.
Comunicarse con el sistema donde se instala la aplicacin (husped), para el
controldelosdispositivoshardwareimplicadosenlosprocesos.
Cumplimientodelasnormasdeseguridaddelasaplicaciones.
CARACTERSTICASDELAMQUINAVIRTUAL
Cuandoelcdigofuentesecompilaseobtienecdigoobjeto(bytecode,cdigointermedio).
Paraejecutarloencualquiermquinaserequieretenerindependenciarespectoalhardwareconcretoquesevayaa
utilizar.
Paraello,lamquinavirtualaslalaaplicacindelosdetallesfsicosdelequipoencuestin.
Funciona como una capa de software de bajo nivel y acta como puente entre el bytecode de la aplicacin y los
dispositivosfsicosdelsistema.
LaMquinaVirtualverificatodoelbytecodeantesdeejecutarlo.
LaMquinaVirtualprotegedireccionesdememoria.

Lamquinavirtualactadepuenteentrelaaplicacinyelhardwareconcretodelequipodonde
seinstale.

Parasaberms

EnelsiguienteenlacetepresentamoselprocesodeinstalacindelaJVM(MquinaVirtualdeJava)y
suapariencia.
GuarpidadeinstalacindeJVM. (0.15MB)

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

23/34

12/12/2016

ED01_Contenidos

5.5.1.Frameworks.
Un
frameworkesunaestructuradeayudaalprogramador,enbasealacual
podemosdesarrollarproyectossinpartirdesdecero.
Setratadeunaplataformasoftwaredondeestndefinidosprogramassoporte,
bibliotecas, lenguaje interpretado, etc., que ayuda a desarrollar y unir los
diferentesmdulosopartesdeunproyecto.
Con el uso de framework podemos pasar ms tiempo analizando los
requerimientos del sistema y las especificaciones tcnicas de nuestra
aplicacin, ya que la tarea laboriosa de los detalles de programacin queda
resuelta.
Ventajasdeutilizarunframework:
Desarrollorpidodesoftware.
Reutilizacindepartesdecdigoparaotrasaplicaciones.
Diseouniformedelsoftware.
Portabilidaddeaplicacionesdeuncomputadoraotro,yaquelosbytecodesquesegeneranapartir
dellenguajefuentepodrnserejecutadossobrecualquiermquinavirtual.
Inconvenientes:
Gran dependencia del cdigo respecto al framework utilizado (sin cambiamos de framework, habr
quereescribirgranpartedelaaplicacin).
La instalacin e implementacin del framework en nuestro equipo consume bastantes recursos del
sistema.

Parasaberms

El uso creciente de frameworks hace que tengamos que estar reciclndonos constantemente. En el
siguiente enlace, hay un documento muy interesante de sus principales caractersticas, ventajas y
formasdeuso:
Caractersticasdeframeworks.

EjemplosdeFrameworks:
.NETesunframeworkparadesarrollaraplicacionessobreWindows. Ofrece el "Visual Studio .net" que nos
da facilidades para construir aplicaciones y su motor es el ".Net framework" que permite ejecutar dichas
aplicaciones.Esuncomponentequeseinstalasobreelsistemaoperativo.
SpringdeJava.Sonconjuntosdebibliotecas(API's)paraeldesarrolloyejecucindeaplicaciones.

Debesconocer

El proceso de instalacin y configuracin del framework Spring de Java, as como varios ejemplos de
uso.Enelsiguienteenlaceencontrarsunaguamuytildetallandolospasosaseguir:
InstalacinyconfiguracindelSpringdeJava. (0.11MB)

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

24/34

12/12/2016

ED01_Contenidos

5.5.2.Entornosdeejecucin.
Un entorno de ejecucin es un servicio de mquina virtual que sirve como base software para la ejecucin de
programas. En ocasiones pertenece al propio sistema operativo, pero tambin se puede instalar como software
independientequefuncionarpordebajodelaaplicacin.
Esdecir,esunconjuntodeutilidadesquepermitenlaejecucindeprogramas.
Sedenominaruntimealtiempoquetardaunprogramaenejecutarseenlacomputadora.
Durantelaejecucin,losentornosseencargarnde:
Configurarlamemoriaprincipaldisponibleenelsistema.
Enlazar los archivos del programa con las bibliotecas existentes y
con los subprogramas creados. Considerando que las bibliotecas
sonelconjuntodesubprogramasquesirvenparadesarrollarocomunicarcomponentessoftwareperoqueya
existenpreviamenteylossubprogramassernaquellosquehemoscreadoapropsitoparaelprograma.
Depurar los programas: comprobar la existencia (o no existencia) de errores semnticos del lenguaje (los
sintcticosyasedetectaronenlacompilacin).
Funcionamientodelentornodeejecucin:
ElEntornodeEjecucinestformadoporlamquinavirtualylosAPI's(bibliotecasdeclasesestndar,necesarias
para que la aplicacin, escrita en algn Lenguaje de Programacin pueda ser ejecutada). Estos dos componentes
sesuelendistribuirconjuntamente,porquenecesitansercompatiblesentres.
El entorno funciona como intermediario entre el lenguaje fuente y el sistema operativo, y consigue ejecutar
aplicaciones.
Sinembargo,siloquequeremosesdesarrollarnuevasaplicaciones,noessuficienteconelentornodeejecucin.
Adelantndonos a lo que veremos en la prxima unidad, para desarrollar aplicaciones necesitamos algo ms. Ese
"algoms"sellamaentornodedesarrollo.

Autoevaluacin

Sealalaafirmacinfalsarespectodelosentornosdeejecucin:
Suprincipalutilidadesladepermitireldesarrollorpidodeaplicaciones.
Actacomomediadorentreelsistemaoperativoyelcdigofuente.
Eselconjuntodelamquinavirtualybibliotecasnecesariasparalaejecucin.

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

25/34

12/12/2016

ED01_Contenidos

5.5.3.Javaruntimeenvironment.
En esta seccin de va a explicar el funcionamiento, instalacin, configuracin
y primeros pasos del Runtime Environment del lenguaje Java (se hace
extensiblealosdemslenguajesdeprogramacin).
Concepto.
Se denomina JRE al Java Runtime Environment (entorno en tiempo de
ejecucinJava).
ElJREsecomponedeunconjuntodeutilidadesquepermitirlaejecucinde
programasjavasobrecualquiertipodeplataforma.
Componentes.
JREestformadopor:
Una Mquina virtual Java (JMV o JVM si consideramos las siglas en ingls), que es el programa que
interpretaelcdigodelaaplicacinescritoenJava.
BibliotecasdeclaseestndarqueimplementanelAPIdeJava.
Lasdos:JMVyAPIdeJavasonconsistentesentres,porellosondistribuidasconjuntamente.
Lo primero es descargarnos el programa JRE. (Java2 Runtime Environment JRE 1.6.0.21). Java es software libre,
porloquepodemosdescargarnoslaaplicacinlibremente.
Unavezdescargado,comienzaelprocesodeinstalacin,siguiendolospasosdelasistente.

Debesconocer

El proceso de descarga, instalacin y configuracin del entorno de ejecucin de programas. En el


siguienteenlace,seexplicanlospasosparahacerlobajoelsistemaoperativoLinux.
InstalacinyconfiguracindelJREdeJava.

Parasaberms

En el siguiente enlace encontrars un tutorial del lenguaje Java, con sus principales caractersticas y
rdenesycomandosprincipales.
TutorialdeJavaPrimerospasos. (1.96MB)

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

26/34

12/12/2016

ED01_Contenidos

5.6.Pruebas.

Casoprctico

Mara rene todos los cdigos diseados y los prepara para


implementarlosenelequipodelcliente.
Juan se percata de ello, y le recuerda a su amiga que an no los
han sometido a pruebas. Juan se acuerda bien de la vez que le
pas aquello: hace dos aos, cuando fue a presentar una
aplicacin a sus clientes, no paraba de dar errores de todo tipo
los clientes, por supuesto, no la aceptaron y Juan perdi un mes
dedurotrabajoyestuvoapuntodeperdersuempleo
NotandeprisaMara,tenemosquePROBARlaaplicacin.

Unavezobtenidoelsoftware,lasiguientefasedelciclodevidaeslarealizacindepruebas.
Normalmente,stasserealizansobreunconjuntodedatosdeprueba,queconsistenenunconjuntoseleccionadoy
predefinidodedatoslmitealosquelaaplicacinessometida.
Larealizacindepruebasesimprescindibleparaasegurarla
softwareconstruido.

validaciny

verificacin del

Entretodaslaspruebasqueseefectansobreelsoftwarepodemosdistinguirbsicamente:
PRUEBASUNITARIAS
Consistenenprobar,unaauna,lasdiferentespartesdesoftwareycomprobarsufuncionamiento(porseparado,de
maneraindependiente).JUniteselentornodepruebasparaJava.
PRUEBASDEINTEGRACIN
Se realizan una vez que se han realizado con xito las pruebas unitarias y consistirn en comprobar el
funcionamientodelsistemacompleto:contodassuspartesinterrelacionadas.
La prueba final se denomina comnmente Beta Test, sta se realiza sobre el entorno de produccin donde el
softwarevaaserutilizadoporelcliente(aserposible,enlosequiposdelclienteybajounfuncionamientonormal
desuempresa).
Elperododepruebasernormalmenteelpactadoconelcliente.

Autoevaluacin

Silaspruebasunitariasserealizanconxito,esobligatoriorealizarlasdeintegracin?
S,silaaplicacinestformadapormsdecincomdulosdiferentes.
S,encualquiercaso.

Parasaberms

Puedes visitar la siguiente pgina web, donde se detallan los tipos de pruebas que suelen hacer al
softwareylafuncindecadauna.
TiposdePruebas.
https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

27/34

12/12/2016

ED01_Contenidos

TiposdePruebas. (0.02MB)

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

28/34

12/12/2016

ED01_Contenidos

5.7.Documentacin.

Casoprctico

Ada ha quedado dentro de dos das con su cliente. Pregunta a


Mara por todos los dossiers de documentacin. La plida
expresin de la joven hace que Ada arda en desesperacin: "
No habis documentado las etapas? Cmo voy a explicarle al
cliente y sus empleados el funcionamiento del software? Cmo
vamosarealizarsumantenimiento?".

Todaslasetapaseneldesarrollodesoftwaredebenquedarperfectamentedocumentadas.

Porquhayquedocumentartodaslasfasesdelproyecto?
Paradartodalainformacinalosusuariosdenuestrosoftwareypoderacometerfuturasrevisionesdelproyecto.
Tenemosqueirdocumentandoelproyectoentodaslasfasesdelmismo,parapasardeunaaotradeformaclaray
definida. Una correcta documentacin permitir la reutilizacin de parte de los programas en otras aplicaciones,
siempreycuandosedesarrollencondiseomodular.
Distinguimostresgrandesdocumentoseneldesarrollodesoftware:

Documentosaelaborarenelprocesodedesarrollodesoftware

Quedan
reflejados:

Aquin
va
dirigido?

GUATCNICA

GUADEUSO

El diseo de la
aplicacin.
La codificacin de los
programas.
Laspruebasrealizadas.

Al personal tcnico
informtica
(analistas
programadores).

en
y

Descripcin de
la funcionalidad
delaaplicacin.
Forma
de
comenzar
a
ejecutar
la
aplicacin.
Ejemplos
de
uso
del
programa.
Requerimientos
software de la
aplicacin.
Solucin de los
posibles
problemas que
se
pueden
presentar.

Alosusuariosquevan
a usar la aplicacin
(clientes).

GUADEINSTALACIN

Todalainformacinnecesariapara:
Puestaenmarcha.
Explotacin.
Seguridaddelsistema.

Alpersonalinformticoresponsablede
la instalacin, en colaboracin con los
usuarios que van a usar la aplicacin
(clientes).

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

29/34

12/12/2016

ED01_Contenidos

GUATCNICA

GUADEUSO

GUADEINSTALACIN

Cules
su
objetivo?

Facilitar
un
correcto
desarrollo,
realizar
correccionesenlosprogramas
y permitir un mantenimiento
futuro.

Dar a los usuarios


finales
toda
la
informacin necesaria
para
utilizar
la
aplicacin.

Dartodalainformacinnecesariapara
garantizar que la implantacin de la
aplicacin se realice de forma segura,
confiableyprecisa.

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

30/34

12/12/2016

ED01_Contenidos

5.8.Explotacin.

Casoprctico

Llega el da de la cita con la cadena hotelera. Ada y Juan se dirigen al hotel sonde se va a instalar y
configurarlaaplicacin.Sitodovabien,seirimplementandoenlosdemshotelesdelacadena.
Adanoquierequeselepaseniundetalle:llevaconsigolaguadeusoylaguadeinstalacin.

Despus de todas las fases anteriores, una vez que las pruebas nos demuestran que el software es fiable, carece
deerroresyhemosdocumentadotodaslasfases,elsiguientepasoeslaexplotacin.
Aunque diversos autores consideran la explotacin y el mantenimiento como la misma etapa, nosotros vamos a
diferenciarlasenbasealmomentoenqueserealizan.
La explotacin es la fase en que los usuarios finales conocen la aplicacin y comienzan a
utilizarla.
La explotacin es la instalacin, puesta a punto y funcionamiento de la
aplicacinenelequipofinaldelcliente.
Enelprocesodeinstalacin,losprogramassontransferidosalcomputadordel
usuarioclienteyposteriormenteconfiguradosyverificados.
Esrecomendablequelosfuturosclientesestnpresentesenestemomentoe
irlescomentandocmosevaplanteandolainstalacin.
Enestemomento,sesuelenllevanacabolasBetaTest, que son las ltimas
pruebas que se realizan en los propios equipos del cliente y bajo cargas
normalesdetrabajo.
Unavezinstalada,pasamosalafasedeconfiguracin.
En ella, asignamos los parmetros de funcionamiento normal de la empresa y probamos que la aplicacin es
operativa.Tambinpuedeocurrirquelaconfiguracinlarealicenlospropiosusuariosfinales,siempreycuandoles
hayamosdadopreviamentelaguadeinstalacin.Ytambin,silaaplicacinesmssencilla,podemosprogramar
la configuracin de manera que se realice automticamente tras instalarla. (Si el software es "a medida", lo ms
aconsejableesquelahaganaquellosquelahanfabricado).
Unavezsehaconfigurado,elsiguienteyltimopasoeslafasedeproduccinnormal.Laaplicacinpasaamanos
delosusuariosfinalesysedacomienzoalaexplotacindelsoftware.

Esmuyimportantetenerlotodopreparadoantesdepresentarleelproductoalcliente:serelmomento
crticodelproyecto.

Reflexiona

Realizasunproyectosoftwareporvezprimeraynotedascuentadedocumentarlo.Consiguesvenderlo
a buen precio a una empresa. Al cabo de un par de meses te piden que actualices algunas de las
funciones, para tener mayor funcionalidad. Ests contento o contenta porque eso significa un ingreso
extra. Te paras un momento...Dnde estn los cdigos? Qu haca exactamente la aplicacin?
Cmo se dise? No lo recuerdas... Probablemente hayas perdido un ingreso extra y unos buenos
clientes.

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

31/34

12/12/2016

ED01_Contenidos

5.9.Mantenimiento.

Casoprctico

Ada rene por ltima vez durante estas semanas a su equipo.


Todos celebran que el proyecto se ha implementado con xito y
quesusclienteshanquedadosatisfechos.
Esto an no ha terminado comenta Ada, nos quedan
muchas cosas por hacer. Esta tarde me reno con los clientes.
Cmovamosagestionarelmantenimientodelaaplicacin?

Seralgicopensarqueconlaentregadenuestraaplicacin(lainstalacinyconfiguracindenuestroproyectoen
losequiposdelcliente)hemosterminadonuestrotrabajo.
Encualquierotrosectorlaboralestoesas,peroelcasodelaconstruccindesoftwareesmuydiferente.
Laetapademantenimientoeslamslargadetodoelciclodevidadelsoftware.
Por su naturaleza, el software es cambiante y deber actualizarse y evolucionar con el tiempo. Deber ir
adaptndose de forma paralela a las mejoras del hardware en el mercado y afrontar situaciones nuevas que no
existancuandoelsoftwareseconstruy.
Adems, siempre surgen errores que habr que ir corrigiendo y nuevas versiones del producto mejores que las
anteriores.
Por todo ello, se pacta con el cliente un servicio de mantenimiento de la aplicacin (que tambin tendr un coste
temporalyeconmico).
Elmantenimientosedefinecomoelprocesodecontrol,mejorayoptimizacindelsoftware.
Su duracin es la mayor en todo el ciclo de vida del software, ya que tambin comprende las actualizaciones y
evolucionesfuturasdelmismo.
Lostiposdecambiosquehacennecesarioelmantenimientodelsoftwaresonlossiguientes:
Perfectivos:Paramejorarlafuncionalidaddelsoftware.
Evolutivos: El cliente tendr en el futuro nuevas necesidades. Por tanto, sern necesarias modificaciones,
expansionesoeliminacionesdecdigo.
Adaptativos: Modificaciones, actualizaciones... para adaptarse a las nuevas tendencias del mercado, a
nuevoscomponenteshardware,etc.
Correctivos:Laaplicacintendrerroresenelfuturo(serautpicopensarlocontrario).

Autoevaluacin

Cules,entuopinin,laetapamsimportantedeldesarrollodesoftware?
Elanlisisderequisitos.
Lacodificacin.
Laspruebasydocumentacin.
Laexplotacinyelmantenimiento.

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

32/34

12/12/2016

ED01_Contenidos

AnexoI.Sentenciasdecontroldelaprogramacin
estructurada.
SENTENCIASSECUENCIALES
Lassentenciassecuencialessonaquellasqueseejecutanunadetrsdelaotra,segnelordenenquehayansido
escritas.
EjemploenlenguajeC:

printf(declaracindevariables);
intnumero_entero;
espacio=espacio_inicio+veloc*tiempo;

SENTENCIASSELECTIVAS(CONDICIONALES)
Sonaquellasenlasqueseevalaunacondicin.Sielresultadodelacondicinesverdadesejecutanunaseriede
accinoaccionesysiesfalsoseejecutanotras.
ifsealalacondicinquesevaaevaluar
then Todaslasaccionesqueseencuentrentrasestapalabrareservadaseejecutarnsilacondicindel if es

cierta(enC,seomiteestapalabra).
else Todaslasaccionesqueseencuentrentrasestaotrapalabrareservadaseejecutarnsilacondicinde if

esfalsa.
EjemploenlenguajeC:

if(a>=b)
c=ab;
else
c=a+b;

SENTENCIASREPETITIVAS(ITERACIONESOBUCLES)
Un bucle iterativo de una serie de acciones harn que stas se repitan mientras o hasta que una determinada
condicinseafalsa(overdadera).
while marcaelcomienzodelbucleyvaseguidodelacondicindeparadadelmismo.
do apartirdeestapalabrareservada,seencontrarntodaslasaccionesaejecutarmientrasseejecuteelbucle

(enC,seomiteestapalabra).
done marcaelfindelasaccionesquesevanarepetirmientrasestemosdentrodelbucle(enC,seomiteesta

palabra).
EjemploenlenguajeC:

intnum;
num=0;
while(num<=10){printf("Repeticinnumero%d\n",num);
num=num+1;
};

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

33/34

12/12/2016

ED01_Contenidos

Anexo.Licenciasderecursos.
LicenciasderecursosutilizadosenlaUnidaddeTrabajo.
Recurso(1)

Datosdelrecurso(1)

Recurso(2)

Autora:ScottSchram.
Licencia:CCby2.0.
Procedencia:
http://www.flickr.com/photos/schram/21742249/

Datosdelrecurso(2

Autora:fsse8info.
Licencia:CCbySA2.0.
Procedencia:
http://www.flickr.com/photo
info/3276664015/

Autora:FranciscoPalacios.
Licencia:CCbyNCND2.0.
Procedencia:
http://www.flickr.com/photos/wizard_/3303810302/

https://www.edu.xunta.es/fpadistancia/pluginfile.php/136244/mod_resource/content/1/ED01/ED01_Web/index.html

34/34

Vous aimerez peut-être aussi