Você está na página 1de 62

Introduccin a la Programacin y

Computacin 1
Ing. By ro n Rodo lfo Ze peda Arvalo
byron .zepeda.u sac@gmail.com

Conceptos
computacionales

Computadora
Una computadora es un dispositivo electrnico utilizado para procesar informacin y
obtener resultados. Los datos y la informacin se pueden introducir en la computadora
por la entrada (input) y a continuacin se procesan para producir una salida (output,
resultados).
La computadora se puede considerar como una unidad en la que se ponen ciertos datos,
entrada de datos, procesa estos datos y produce unos datos de salida. Los datos de
entrada y los datos de salida pueden ser realmente cualquier cosa, texto, dibujos o sonido.
El sistema ms sencillo de comunicarse una persona con la computadora es esencialmente
mediante un ratn (mouse), un teclado y una pantalla (monitor).
Hoy da existen otros dispositivos muy populares tales como escneres, micrfonos,
altavoces, cmaras de vdeo, cmaras digitales, etc.; de igual manera, mediante mdems, es
posible conectar su computadora con otras computadoras a travs de redes, siendo la
ms importante, la red Internet.

Computadora

Los componentes fsicos que constituyen la computadora, junto con los dispositivos que
realizan las tareas de entrada y salida, se conocen con el trmino hardware.
El conjunto de instrucciones que hacen funcionar a la computadora se denomina
programa, que se encuentra almacenado en su memoria; a la persona que escribe
programas se llama programador y al conjunto de programas escritos para una
computadora se llamasoftware.
Este libro se dedicar casi exclusivamente al software, pero se har una breve revisin del
hardware como recordatorio o introduccin segn sean los conocimientos del lector en
esta materia.

Hardware
Una computadora consta fundamentalmente de tres componentes
principales: unidad central de proceso (UCP) o procesador (compuesto de
la UAL, Unidad Aritmtica y Lgica y la UC, Unidad de Control); la
memoria principal o central; memoria secundaria o externa y el programa.

Hardware (Dispositivos I/O)


Si a la organizacin fsica se le aaden dispositivos para comunicacin con la
computadora, aparece la estructura tpica de un sistema de computadora:
dispositivos de entrada, dispositivos de salida, memoria externa y el
procesador/memoria central con su programa.

Firmware
El firmware es un bloque de instrucciones de mquina para propsitos especficos,
grabado en una memoria, normalmente de lectura/escritura (ROM, EEPROM,
flash, etc.), que establece la lgica de ms bajo nivel que controla los circuitos
electrnicos de un dispositivo de cualquier tipo. Est fuertemente integrado con la
electrnica del dispositivo siendo el software que tiene directa interaccin con el
hardware: es el encargado de controlarlo para ejecutar correctamente las
instrucciones externas.
En resumen, un firmware es un software que maneja fsicamente al hardware.
El programa BIOS de una computadora es un firmware cuyo propsito es activar
una mquina desde su encendido y preparar el entorno para cargar un sistema
operativo en la memoria RAM.

Software
Las operaciones que debe realizar el hardware son especificadas por una lista de
instrucciones, llamadas programas, o software. Un programa de software es un
conjunto de sentencias o instrucciones a la computadora. El proceso de escritura
o codificacin de un programa se denomina programacin y las personas que se
especializan en esta actividad se denominan programadores. Existen dos tipos
importantes de software: software del sistema y software de aplicaciones. Cada
tipo realiza una funcin diferente.
El software del sistema es un conjunto generalizado de programas que gestiona
los recursos de la computadora, tal como el procesador central, enlaces de
comunicaciones y dispositivos perifricos. Los programadores que escriben
software del sistema se llaman programadores de sistemas. El software de
aplicaciones es el conjunto de programas escritos por empresas o usuarios
individuales o en equipo y que instruyen a la computadora para que ejecute una
tarea especfica. Los programadores que escriben software de aplicaciones se
llaman programadores de aplicaciones.

Los dos tipos de software estn relacionados entre s, de modo que los usuarios y los
programadores pueden hacer as un uso eficiente de la computadora. En la Figura se muestra una
vista organizacional de una computadora donde se ven los diferentes tipos de software a modo de
capas de la computadora desde su interior (el hardware) hasta su exterior (usuario). Las diferentes
capas funcionan gracias a las instrucciones especficas (instrucciones mquina) que forman parte del
software del sistema y llegan al software de aplicacin, programado por los programadores de
aplicaciones, que es utilizado por el usuario que no requiere ser un especialista.

Organizacin

Unidad Central de Procesamiento (CPU)


La unidad central de procesamiento (del ingls Central Processing Unit,
CPU), es el hardware dentro de un computador u otros dispositivos
programables, que interpreta las instrucciones de un programa de
ordenador mediante la realizacin de las operaciones bsicas aritmticas,
lgicas y de entrada/salida del sistema.
Dos componentes tpicos de una CPU son la unidad aritmtico lgica
(ALU), que realiza operaciones aritmticas y lgicas, y la unidad de control
(CU), que extrae instrucciones de la memoria, las decodifica y las ejecuta,
llamando a la ALU cuando sea necesario.

Memoria Principal
Memoria primaria (MP), memoria principal, memoria central o memoria interna es
la memoria de la computadora donde se almacenan temporalmente tanto los
datos como los programas que la unidad central de procesamiento (CPU) est
procesando o va a procesar en un determinado momento. Por su funcin, la MP
debe ser inseparable del microprocesador o CPU, con quien se comunica a travs
del bus de datos y el bus de direcciones. El ancho del bus determina la capacidad
que posea el microprocesador para el direccionamiento de direcciones en
memoria.
En algunas oportunidades suele llamarse memoria interna porque a diferencia
de los dispositivos de memoria secundaria, la MP no puede extraerse tan
fcilmente.
Esta clase de memoria es voltil, es decir que cuando se corta la energa elctrica,
se borra toda la informacin que estuviera almacenada en ella.

Memoria Principal
La memoria RAM (Random Access Memory) o simplemente memoria se utiliza
para almacenar, de modo temporal informacin, datos y programas. En general, la
informacin almacenada en memoria puede ser de dos tipos: las instrucciones de
un programa y los datos con los que operan las instrucciones.
La memoria ROM, es una memoria que almacena informacin de modo
permanente en la que no se puede escribir (viene pregrabada grabada por el
fabricante) ya que es una memoria de slo lectura. Los programas almacenados
en ROM no se pierden al apagar la computadora y cuando se enciende, se lee la
informacin almacenada en esta memoria. Al ser esta memoria de slo lectura, los
programas almacenados en los chips ROM no se pueden modificar y suelen
utilizarse para almacenar los programas bsicos que sirven para arrancar la
computadora.

Memoria Secundaria
La memoria secundaria, memoria auxiliar, memoria perifrica o memoria externa,
tambin conocida como almacenamiento secundario, es el conjunto de
dispositivos y soportes de almacenamiento de datos que conforman el subsistema
de memoria de la computadora, junto con la memoria primaria o principal.
Puede denominarse perifrico de almacenamiento o memoria perifrica, en
contraposicin a la memoria central, porque en ocasiones puede considerarse
como perifrico de Entrada/Salida.
La memoria secundaria es un tipo de almacenamiento masivo y permanente (no
voltil) con mayor capacidad para almacenar datos e informacin que la memoria
primaria que es voltil, aunque la memoria secundaria es de menor velocidad.

Memoria Secundaria
Para almacenar informacin se pueden usar los siguientes tipos de tecnologa:
Magntica (ejemplos: disquete, disco duro, cinta magntica).
ptica (ejemplos: CD, DVD, Blu-ray).
Magneto-ptica (ejemplos: Disco Zip, Floptical, Minidisc).
Estado slido (Memoria Flash) (ejemplos: memoria USB o pendrive; tarjetas de
memoria: SD, MiniSD, microSD, MS, MMC, CF, SM).

Dispositivos I/O
Los dispositivos de Entrada/Salida permiten la comunicacin entre la computadora y el
usuario. Los dispositivos de entrada, como su nombre indica, sirven para introducir datos
(informacin) en la computadora para su proceso. Los datos se leen de los dispositivos de
entrada y se almacenan en la memoria central o interna. Los dispositivos de entrada
convierten la informacin de entrada en seales elctricas que se almacenan en la
memoria central.
Dispositivos de entrada tpicos son los teclados; otros son: lectores de tarjetas, lpices
pticos, palancas de mando (joystick), lectores de cdigos de barras, escneres, micrfonos,
etc. Hoy da tal vez el dispositivo de entrada ms popular es el ratn (mouse) que mueve
un puntero electrnico sobre la pantalla que facilita la interaccin usuario-mquina.
Los dispositivos de salida permiten representar los resultados (salida) del proceso de los
datos. El dispositivo de salida tpico es la pantalla (CRT) o monitor. Otros dispositivos de
salida son: impresoras (imprimen resultados en papel), trazadores grficos (plotters),
altavoces, etc.

Perifricos
Perifrico es la denominacin genrica para designar al aparato o dispositivo auxiliar e independiente conectado
a la unidad central de procesamiento de la computadora.
Se consideran perifricos a las unidades o dispositivos de Hardware a travs de los cuales la computadora se
comunica con el exterior, y tambin a los sistemas que almacenan o archivan la informacin, sirviendo de
memoria auxiliar de la memoria principal.
Se considera perifrico al conjunto de dispositivos que sin pertenecer al ncleo fundamental de la computadora,
formado por la Unidad central de procesamiento (CPU) y la memoria central, permitan realizar operaciones de
entrada/salida (E/S) complementarias al proceso de datos que realiza la CPU. Estas tres unidades bsicas en un
computador, CPU, memoria central y el subsistema de E/S, estn comunicadas entre s por tres buses o canales
de comunicacin:
direcciones, para seleccionar la direccin del dato o del perifrico al que se quiere acceder,
control, bsicamente para seleccionar la operacin a realizar sobre el dato (principalmente lectura, escritura o
modificacin) y
datos, por donde circulan los datos.

Perifricos
Los perifricos pueden clasificarse en las siguientes categoras principales:
Perifricos de entrada: captan y digitalizan los datos de ser necesario, introducidos por el usuario o
por otro dispositivo y los envan al ordenador para ser procesados.
Perifricos de salida: son dispositivos que muestran o proyectan informacin hacia el exterior del
ordenador. La mayora son para informar, alertar, comunicar, proyectar o dar al usuario cierta
informacin, de la misma forma se encargan de convertir los impulsos elctricos en informacin
legible para el usuario. Sin embargo, no todos de este tipo de perifricos es informacin para el
usuario. Un ejemplo: Impresora.
Perifricos de entrada/salida (E/S): sirven bsicamente para la comunicacin de la computadora
con el medio externo.
Perifricos de almacenamiento: son los dispositivos que almacenan datos e informacin por
bastante tiempo. La memoria de acceso aleatorio no puede ser considerada un perifrico de
almacenamiento, ya que su memoria es voltil y temporal. Ejemplos: Disco duro, Memoria flash,
Cinta magntica, Memoria porttil, Disquete, Grabadora o lectora de: CD; DVD; Blu-ray; HDDVD.

Lenguajes de
Programacin

Lenguajes de Programacin
Los lenguajes de programacin se utilizan para escribir programas.
Los programas de las computadoras modernas constan de secuencias de
instrucciones que se codifican como secuencias de dgitos numricos que podrn
entender dichas computadoras. El sistema de codificacin se conoce como
lenguaje mquina que es el lenguaje nativo de una computadora.
Desgraciadamente la escritura de programas en lenguaje mquina es una tarea
tediosa y difcil ya que sus instrucciones son secuencias de 0 y 1 (patrones de bit,
tales como 11110000, 01110011,) que son muy difciles de recordar y
manipular por las personas. En consecuencia, se necesitan lenguajes de
programacin amigables con el programador que permitan escribir los
programas para poder comunicarse con facilidad con las computadoras. Sin
embargo, las computadoras slo entienden las instrucciones en lenguaje mquina,
por lo que ser preciso traducir los programas resultantes a lenguajes de mquina
antes de que puedan ser ejecutadas por ellas.

Lenguajes de Programacin
Cada lenguaje de programacin tiene un conjunto de instrucciones (acciones u
operaciones que debe realizar la mquina) que la computadora podr entender
directamente en su cdigo mquina o bien se traducirn a dicho cdigo mquina.
Las instrucciones bsicas y comunes en casi todos los lenguajes de programacin
son:
Instrucciones de entrada/salida. Instrucciones de transferencia de informacin
entre dispositivos perifricos y la memoria central, tales como "leer de" o bien
"escribir en".
Instrucciones de clculo. Instrucciones para que la computadora pueda realizar
operaciones aritmticas.
Instrucciones de control. Instrucciones que modifican la secuencia de la ejecucin
del programa.

Lenguajes de Programacin
Adems de estas instrucciones y dependiendo del procesador y del
lenguaje de programacin existirn otras que conformarn el conjunto de
instrucciones y junto con las reglas de sintaxis permitirn escribir los
programas de las computadoras. Los principales tipos de lenguajes de
programacin son:
Lenguajes mquina.
Lenguajes de bajo nivel (ensambladores).
Lenguajes de alto nivel.

Lenguaje de Mquina
El lenguaje de mquina o cdigo mquina es el sistema de cdigos directamente
interpretable por un circuito microprogramable, como el microprocesador de una
computadora. Este lenguaje est compuesto por un conjunto de instrucciones que
determinan acciones al ser tomadas por la mquina.
Los circuitos microprogramables son sistemas digitales, lo que significa que trabajan con
dos nicos niveles de tensin. Dichos niveles, por abstraccin, se simbolizan con los
nmeros 0 y 1, por eso el lenguaje de mquina slo utiliza dichos signos. Esto permite el
empleo de las teoras del lgebra booleana y del sistema binario en el diseo de este tipo
de circuitos y en su programacin.

Lenguaje de Bajo Nivel


Es aquel en el que sus instrucciones ejercen un control directo sobre el
hardware y estn condicionados por la estructura fsica de la computadora
que lo soporta.

Lenguaje de Alto Nivel


Se caracteriza por expresar los algoritmos de una manera adecuada a la
capacidad cognitiva humana, en lugar de la capacidad ejecutora de las
mquinas.

Paradigmas de Programacin
Un paradigma de programacin representa fundamentalmente enfoques
diferentes para la construccin de soluciones a problemas y por
consiguiente afectan al proceso completo de desarrollo de software.
Los paradigmas de programacin clsicos son: procedimental (o
imperativo), funcional, declarativo y orientado a objetos.

Lenguajes imperativos (procedimentales)


Representa el enfoque o mtodo tradicional de programacin. Un lenguaje
imperativo es un conjunto de instrucciones que se ejecutan una por una,
de principio a fin, de modo secuencial excepto cuando intervienen
instrucciones de salto de secuencia o control. Este paradigma define el
proceso de programacin como el desarrollo de una secuencia de rdenes
(comandos) que manipulan los datos para producir los resultados
deseados.
Los lenguajes de programacin procedimentales, por excelencia, son
FORTRAN, COBOL, Pascal, BASIC, ALGOL, C y Ada (aunque sus ltimas
versiones ya tienen un carcter completamente orientado a objetos).

Lenguajes declarativos
Solicita al programador que describa el problema en lugar de encontrar
una solucin algortmica al problema; es decir, un lenguaje declarativo utiliza
el principio del razonamiento lgico para responder a las preguntas o
cuestiones consultadas. Se basa en la lgica formal y en el clculo de
predicados de primer orden. El razonamiento lgico se basa en la
deduccin. El lenguaje declarativo por excelencia es Prolog.

Lenguajes orientados a objetos


El paradigma orientado a objetos se asocia con el proceso de programacin
llamado programacin orientada a objetos (POO) consistente en un enfoque
totalmente distinto al proceso procedimental. El enfoque orientado a objetos
guarda analoga con la vida real. El desarrollo de software OO se basa en el
diseo y construccin de objetos que se componen a su vez de datos y
operaciones que manipulan esos datos. El programador define en primer lugar los
objetos del problema y a continuacin los datos y operaciones que actuarn
sobre esos datos. Las ventajas de la programacin orientada a objetos se derivan
esencialmente de la estructura modular existente en la vida real y el modo de
respuesta de estos mdulos u objetos a mensajes o eventos que se producen en
cualquier instante.
Est basado en varias tcnicas, incluyendo herencia, cohesin, abstraccin,
polimorfismo, acoplamiento y encapsulamiento.

Resolucin de
Problemas
Computacionales

Concepto de Algoritmo
Es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas
y finitas que permite realizar una actividad mediante pasos sucesivos que
no generen dudas a quien deba realizar dicha actividad. Dados un estado
inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final
y se obtiene una solucin.

Algoritmo
La resolucin de un problema exige el diseo de un algoritmo que resuelva el
problema propuesto.

Los pasos para la resolucin de un problema son:


1. Diseo del algoritmo que describe la secuencia ordenada de pasos (sin
ambigedades) que conducen a la solucin de un problema dado. (Anlisis del
problema y desarrollo del algoritmo)
2. Expresar el algoritmo como un programa en un lenguaje de programacin
adecuado. (Fase de codificacin)
3. Ejecucin y validacin del programa por la computadora.

Caractersticas de los Algoritmo


Las caractersticas fundamentales que debe cumplir todo algortmico son:
Debe ser preciso e indicar el orden de realizacin de cada paso.
Debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener
el mismo resultado cada vez.
Debe ser finito. Si se sigue un algoritmo, se debe terminar en algn
momento; o sea, debe tener un numero finito de pasos.

Ejemplo de Algoritmo
Un cliente ejecuta un pedido a una fbrica. La fbrica examina en su banco de
datos la ficha del cliente, si el cliente es solvente la empresa acepta el pedido; en
caso contrario, rechazar el pedido. Redactar el algoritmo correspondiente.
Los pasos del algoritmo son:
1. Inicio
2. Leer el pedido
3. Examinar la ficha del cliente
4. Si el cliente es solvente, aceptar pedido; en caso contrario, rechazar pedido
5. Fin

Ejercicio
Se desea disear un algoritmo para saber si un numero en primo o no.
Un numero es primo si slo puede dividirse por si mismo y por la unidad. El algoritmo de resolucin del
problema pasa por dividir sucesivamente el numero por 2, 3, 4, , etc.
1.

Inicio

2.

Poner X igual a 2 (X = 2, X variable que representa a los divisores del numero que se busca N)

3.

Dividir N por X (N/X)

4.

Si el resultado de N/X es entero, entonces no es un numero primo y bifurcar al punto 7; en caso contrario,
continuar el proceso

5.

Suma 1 a X (X = X + 1)

6.

Si X es igual a N, entonces N es un numero primo; en caso contrario, bifurcar al punto 3

7.

Fin

Fase en la Resolucin de Problemas


El proceso de resolucin de un problema con una computadora conduce a la
escritura de un programa y a su ejecucin. Aunque el proceso de disear
programas es un proceso creativo, se puede considerar una serie de fases o pasos
comunes, que generalmente deben seguir todos los programadores.
Las fases de resolucin de un problema son:
Anlisis del problema
Diseo del algoritmo
Codificacin
Compilacin y ejecucin
Verificacin
Depuracin
Mantenimiento
Documentacin

Fase en la Resolucin de Problemas


Constituyen el ciclo de vida del software y las fases o etapas usuales son:
Anlisis. El problema se analiza teniendo presente la especificacin de los
requisitos dados por el cliente de la empresa o por la persona que encarga el
problema.
Diseo. Una vez analizado el problema, se disea una solucin que conducir a
un algoritmo que resuelva el problema.
Codificacin (implementacin). La solucin se escribe en la sintaxis del lenguaje
de alto nivel y se obtiene un programa.
Ejecucin, verificacin y depuracin. El programa se ejecuta, se comprueba
rigurosamente y se eliminan todos los errores que puedan aparecer.

Fase en la Resolucin de Problemas


Mantenimiento. El programa se actualiza y modifica, cada vez que sea
necesario, de modo que se cumplan todas las necesidades de cambio de
sus usuarios.
Documentacin. Escritura de las diferentes fases del ciclo de vida del
software, esencialmente anlisis, diseo y codificacin, unidos a manuales
de usuario y de referencia, as como normas para el mantenimiento.
Las dos primeras fases conducen a un diseo detallado escrito en forma de
algoritmo. Durante la tercera etapa se implementa el algoritmo en un
cdigo escrito en un lenguaje de programacin, reflejando las ideas
desarrolladas en las fases de anlisis y diseo.

Fase en la Resolucin de Problemas


La fase de compilacin y ejecucin traduce y ejecuta el programa. En las
fases de verificacin y depuracin el programador busca errores de las
etapas anteriores y los elimina. Comprobar que mientras mas tiempo se
gaste en la fase de anlisis y diseo, menos se gastara en la depuracin del
programa. Finalmente, se debe realizar la documentacin del programa.

Herramientas de Programacin
Las dos herramientas mas utilizadas comnmente para disear algoritmos
son:
diagramas de flujo
Seudocdigos

Diagramas de Flujo
Es una representacin grafica de un algoritmo. Los smbolos utilizados han
sido normalizados por el Instituto Norteamericano de Normalizacin
(ANSI) .
En Lenguaje Unificado de Modelado (UML), un diagrama de actividades
representa los flujos de trabajo paso a paso de negocio y operacionales de
los componentes en un sistema. Un diagrama de actividades muestra el
flujo de control general.
Estos diagramas utilizan smbolos con significados definidos que representan
los pasos del algoritmo, y representan el flujo de ejecucin mediante flechas
que conectan los puntos de inicio y de fin de proceso.

Diagramas de Flujo

Ejemplo
Calcular la paga neta de un trabajador conociendo el numero de horas
trabajadas, la tarifa horaria y la tasa de impuestos.

Pseudocdigo
Es una herramienta de programacin en la que las instrucciones se
escriben en palabras similares al ingls o espaol, que facilitan tanto la
escritura como la lectura de programas. En esencia, el seudocdigo se
puede definir como un lenguaje de especificaciones de algoritmos.

Ejemplo 1

Ejemplo 1

Ejemplo 2

Ejemplo 3

Ejemplo 3

Ejemplo 4

Ejemplo 4

Ejercicio 1

El ciclo de vida del


Software

El Ciclo de Vida del Software


El desarrollo de un buen sistema de software se realiza durante el ciclo de
vida que es el periodo de tiempo que se extiende desde la concepcin
inicial del sistema hasta su eventual retirada de la comercializacin o uso
del mismo.

El Ciclo de Vida del Software


El ciclo de vida del software es un proceso iterativo, de modo que se
modificarn las sucesivas etapas en funcin de la modificacin de las
especificaciones de los requisitos producidos en la fase de diseo o
implementacin, o bien una vez que el sistema se ha implementado, y
probado, pueden aparecer errores que ser necesario corregir y depurar, y
la repeticin de etapas anteriores.

Anlisis
La primera etapa en la produccin de un sistema de software es decidir exactamente qu se supone
que ha de hacer el sistema. Esta etapa se conoce tambin como anlisis de requisitos o
especificaciones y por esta circunstancia muchos tratadistas suelen subdividir la etapa en otras dos:
Anlisis y definicin del problema.
Especificacin de requisitos.
La parte ms difcil en la tarea de crear un sistema de software es definir cul es el problema, y a
continuacin especificar lo que se necesita para resolverlo. Normalmente la definicin del problema
comienza analizando los requisitos del usuario pero estos requisitos, con frecuencia, suelen ser
imprecisos y dif- ciles de describir. Se deben especificar todos los aspectos del problema, pero
habitualmente las personas que describen el problema no son programadores y eso hace imprecisa
la definicin. La fase de especificacin requiere normalmente la comunicacin entre los
programadores y los futuros usuarios del sistema e iterar la especificacin hasta que tanto el
especificador como los usuarios estn satisfechos con las especificaciones y hayan resuelto el
problema normalmente.

Anlisis
Tenga presente que el usuario final, normalmente, no conoce exactamente lo que desea que haga el sistema. Por
consiguiente, el analista de software o programador, en su caso, debe interactuar con el usuario para encontrar lo
que el usuario desear que haga el sistema. En esta etapa se debe responder a preguntas tales como:
Cules son los datos de entrada?
Qu datos son vlidos y qu datos no son vlidos?
Quin utilizar el sistema: especialistas cualificados o usuarios cualesquiera (sin formacin)?
Qu interfaces de usuario se utilizarn?
Cules son los mensajes de error y de deteccin de errores deseables? Cmo debe actuar el sistema
cuando el usuario cometa un error en la entrada?
Qu hiptesis son posibles?
Existen casos especiales?
Cul es el formato de la salida?
Qu documentacin es necesaria?
Qu mejoras se introducirn probablemente al programa en el futuro?
Cmo debe ser de rpido el sistema?
Cada cuanto tiempo ha de cambiarse el sistema despus que se haya entregado?
El resultado final de la fase de anlisis es una especificacin de los requisitos del software.

Diseo
La especificacin de un sistema indica lo que el sistema debe hacer. La etapa de
diseo del sistema indica cmo ha de hacerse. Para un sistema pequeo, la etapa
de diseo puede ser tan sencilla como escribir un algoritmo en pseudocdigo.
Para un sistema grande, esta etapa incluye tambin la fase de diseo de algoritmos,
pero incluye el diseo e interaccin de un nmero de algoritmos diferentes, con
frecuencia slo bosquejados, as como una estrategia para cumplir todos los
detalles y producir el cdigo correspondiente.
Es preciso determinar si se pueden utilizar programas o subprogramas que ya
existen o es preciso construirlos totalmente. El proyecto se ha de dividir en
mdulos utilizando los principios de diseo descendente. A continuacin se debe
indicar la interaccin entre mdulos; un diagrama de estructuras proporciona un
esquema claro de estas relaciones.

Implementacin (codificacin)
La etapa de implementacin (codificacin) traduce los algoritmos del diseo en
un programa escrito en un lenguaje de programacin. Los algoritmos y las
estructuras de datos realizadas en pseudocdigo han de traducirse codificados en
un lenguaje que entiende la computadora: Pascal, FORTRAN, COBOL, C, C++,
C# o JAVA.
Cuando un problema se divide en subproblemas, los algoritmos que resuelven
cada subproblema (tarea o mdulo) deben ser codificados, depurados y probados
independientemente.
Es relativamente fcil encontrar un error en un procedimiento pequeo. Es casi
imposible encontrar todos los errores de un programa grande, que se codific y
comprob como una sola unidad en lugar de como una coleccin de mdulos
(procedimientos) bien definidos.

Pruebas e integracin
Cuando los diferentes componentes de un programa se han implementado y
comprobado individualmente, el sistema completo se ensambla y se integra.
La fase de pruebas es una parte esencial de un proyecto de programacin.
Durante la fase de pruebas se necesita eliminar tantos errores lgicos como se
pueda. En primer lugar, se debe probar el programa con datos de entrada vlidos
que conduzcan a una solucin conocida. Si ciertos datos deben estar dentro de
un rango, se deben incluir los valores en los extremos finales del rango. Por
ejemplo, si el valor de entrada de n cae en el rango de 1 a 10, se ha de asegurar
incluir casos de prueba en los que n est entre 1 y 10. Tambin se deben incluir
datos no vlidos para comprobar la capacidad de deteccin de errores del
programa. Se han de probar tambin algunos datos aleatorios y, por ltimo,
intentar algunos datos reales.

Verificacin
Si se descubre un error durante el proceso de verificacin, se debe corregir
su algoritmo y posiblemente se han de modificar las especificaciones del
problema. Un mtodo es utilizar invariantes (condiciones siempre
verdaderas en un punto especfico de un algoritmo) lo que probablemente
har que su algoritmo contenga pocos errores antes de que comience la
codificacin. Como resultado se gastar menos tiempo en la depuracin de
su programa.

Mantenimiento
Cuando el producto software (el programa) se ha terminado, se distribuye entre los posibles usuarios, se instala
en las computadoras y se utiliza (produccin). Sin embargo, y aunque a priori, el programa funcione
correctamente, el software debe ser mantenido y actualizado. De hecho, el coste tpico del mantenimiento
excede con creces el coste de produccin del sistema original.
Un sistema de software producir errores que sern detectados, casi con seguridad, por los usuarios del sistema
y que no se descubrieron durante la fase de prueba. La correccin de estos errores es parte del mantenimiento
del software. Otro aspecto de la fase de mantenimiento es la mejora del software aadiendo ms caractersticas
o modificando partes existentes que se adapten mejor a los usuarios.
Otras causas que obligarn a revisar el sistema de software en la etapa de mantenimiento son las siguientes: 1)
Cuando un nuevo hardware se introduce, el sistema puede ser modificado para ejecutarlo en un nuevo entorno;
2) Si cambian las necesidades del usuario suele ser menos caro y ms rpido modificar el sistema existente que
producir un sistema totalmente nuevo. La mayor parte del tiempo de los programadores de un sistema se gasta
en el mantenimiento de los sistemas existentes y no en el diseo de sistemas totalmente nuevos. Por esta causa,
entre otras, se ha de tratar siempre de disear programas de modo que sean fciles de comprender y entender
(legibles) y fciles de cambiar.

Você também pode gostar