Académique Documents
Professionnel Documents
Culture Documents
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
Descripcindelaimagen
Alolargodeestaprimeraunidadvasaaprenderlosconceptosfundamentalesdesoftwareylasfasesdelllamado
ciclodevidadeunaaplicacininformtica.
Tambinaprendersadistinguirlosdiferenteslenguajesdeprogramacinylosprocesosqueocurrenhastaqueel
programafuncionayrealizalaaccindeseada.
Parasaberms
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
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:
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
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
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.
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.
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
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
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
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.
Generacindecdigoejecutable.
Autoevaluacin
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
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
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
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.
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
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