Sunteți pe pagina 1din 10

Unidad I

Tema # 1 Que es el software?



IMPORTANCIA DEL SOFTWARE
--> Por que es importante ?
--> Porque afecta de forma muy cercana todos los aspectos de nuestras vidas y se ha
vuelto omnipresente en el comercio, la cultura y las actividades cotidianas.
--> En la actualidad, el software de computadora es la tecnologa individual ms
importante en el mbito mundial.
A medida que la importancia del software ha crecido, la comunidad del software ha
intentado de manera continua desarrollar tecnologas que hagan ms fcil, ms rpidas y
menos cara la construccin y el mantenimiento de programas de computadoras de alta
calidad.
--> El mantenimiento del software absorbe ms gente y recursos que todo el trabajo
aplicado para la creacin de software nuevo.
Los negocios y gobiernos dependen cada vez del software para la toma de decisiones
estratgicas y tcticas, as como para las operaciones y control cotidiano.
--> Si el software falla, las organizaciones pueden experimentar hasta fallas catastrficas.

SOFTWARE
--> Que es el software?
--> El software de computadora es el producto que los ingenieros de software construyen
y despus mantienen en el largo plazo. Incluye los programas que se ejecutan dentro de
una computadora de cualquier tamao y arquitectura, el contenido (datos) que se
presenta conforme los programas se ejecutan y los documentos, tanto fsicos como
virtuales, que engloban todas las formas de medios electrnicos.


PREGUNTAS RELACIONADAS CON
EL DESARROLLO DEL SOFTWARE
--> En la actualidad una enorme industria del software se ha convertido en un factor
dominante en la economa del mundo industrializado. El programador solitario de la era
inicial ha sido sustituido por equipos de especialistas de software en los que cada uno se
enfoca en una parte de la tecnologa requerido para desarrollar una aplicacin compleja.
Hasta ahora, las preguntas formuladas al programador solitario son las mismas que se
hacen cuando se construyen los sistemas basados en computadoras modernas.


-->Por que tarda tanto la obtencin del software terminado?
-->Por que son tan altos los costos de desarrollo del software?
-->Por que es imposible encontrar todos los errores en el software antes de entregarlo a
los clientes?
-->Por que se gasta tanto tiempo y esfuerzo en el mantenimiento de los programas
existentes?
-->Por que es difcil medir el progreso al desarrollar y darle mantenimiento al software?

Tema # 2
Ingeniera del software
Que es ingeniera?
--> Conjunto de conocimientos y tcnicas cuya aplicacin permite la utilizacin racional de
los recursos naturales mediante invenciones, construcciones u otras realizaciones
provechas para el hombre.
--> La ingeniera del software es una ingeniera que cubre todos los aspectos relativos con
la produccin a software.

La ingeniera de software es el establecimiento y uso se principios slidos de la ingeniera
para obtener econmicamente un software confiable y que funcione de modo eficiente en
maquinas reales. --> Fritz Bauer.

Ingeniera de software: 1) la aplicacin de un enfoque sistemtico, disciplinado y
cuantificable al desarrollo, operacin y mantenimiento del software; es decir la aplicacin
de la ingeniera del software. 2) El estudio de enfoques como en 1).--> IEEE

Cual es la diferencia entre ingeniera del software e ingeniera de sistemas?
--> La ingeniera de sistemas se refiere a todos los aspectos del desarrollo de sistemas
basados en computadoras que incluyen hardware, software e ingeniera de procesos. La
ingeniera del software es parte de este proceso.

Cual es la diferencia entre ingeniera del software y ciencias de la
computacin?
--> La ciencia de la computacin se refiere a los fundamentos y teoras de la informtica;
la ingeniera del software se refiere a los aspectos prcticos del desarrollo y entrega del
software.

LA INGENIERIA DE SOFTWARE, UNA TECNOLOGIA ESTRATIFICADA


--> La base que soporta la ingeniera del software es un enfoque de calidad. La gestin
de calidad total fomenta una cultura de mejora continua del proceso, y es esta cultura la
que al final conduce al desarrollo de un enfoque muy efectivo para la ingeniera del
software.
--> El proceso define un marco de trabajo que debe establecerse para la entrega efectiva
de la tecnologa de la ingeniera del software.
--> El proceso de software forma la base para el control de la gestin de los proyectos de
software y establece el contexto en el cual se aplican los mtodos tcnicos.
--> Los Mtodos de la ingeniera del software proporcionan los como tcnicos para
construir software. Los mtodos abarcan un amplio espectro de tareas que incluyen la
comunicacin, el anlisis de requisitos, el modelado del diseo, la construccin del
programa , la realizacin de pruebas y el soporte.
Las herramientas de la ingeniera del software proporcionan el soporte automatizado o
semi automatizado para el proceso y mtodos. Cuando las herramientas se integran de
forma que la informacin que cree una de ellas pueda usarla otra, se dice que se ha
establecido un sistema para el soporte del desarrollo de software que con frecuencia se
denomina ingeniera del software asistida por computadora (CASE).

UNIDAD II
ARQUITECTURA DEL SOFTWARE
Tema # 1
Que es la Arquitectura del Software

--> Que es arquitectura?
--> Es el arte y tcnica de proyectar y disear estructuras y espacios que forman el
entorno
humano para el desarrollo de sus actividades.
--> La arquitectura del software son las estructuras que comprende a los componentes del
software, sus propiedades externas visibles y las relaciones entre ellos.

--> La arquitectura del software es una representacin que permite
o 1) analizar la efectividad del diseo para cumplir los requerimientos establecidos.
o 2) considerar alternativas arquitectnicas en una etapa en la que hacer cambios al
diseo todava es relativamente fcil.
o 3) reducir los riesgos asociados con la construccin del software.

--> Componentes del Software
--> Un componente del software puede ser algo tan simple como un modulo de programa
o una clase orientada a objeto, tambin puede ampliarse para que incluya base de datos y
middleware que permitan la configuracin de una red de clientes y servidores.
Las propiedades de los componentes son aquellas caractersticas necesarias para
entender como interactan unos componentes con otros.
--> Las relaciones entre los componentes pueden ser tan simples como una invocacin de
un modulo a otro o tan complejo como un acceso a una base de datos.
--> Un diseo es una instancia de una arquitectura, similar a un objeto es una instancia de
una clase.
--> El diseo de la arquitectura de software considera dos niveles de la pirmide del
diseo.


--> Por qu es importante la arquitectura?
--> Las representaciones de la arquitectura del software permiten la comunicacin entre
las partes participantes en el desarrollo de un sistema.
--> La arquitectura resalta las primeras decisiones que tendrn un efecto profundo en todo
el trabajo de ingeniera de software.
--> Constituye un modelo relativamente pequeo y asequible por la va intelectual sobre
como esta estructurado el sistema y la forma en la que sus componentes se relacionan.

--> Definiciones de Arquitectura del Software
o El Software Engineering Institute de la Universidad de Carnegie Mellon es el principal
concentrador de informacin sobre Arquitectura de Software
.
o Una definicin inicial y abstracta que se puede encontrar es:

o Estructura del sistema en trminos de elementos y relaciones entre dichos elementos.

--> La arquitectura de software sirve como modelo no solo del sistema sino tambin del
proyecto que lo va a desarrollar, pues define las tareas que los equipos de diseo y
desarrollo deben llevar a cabo. Es el punto de partida para garantizar aspectos de calidad
como performance,modificabilidad y seguridad, aspectos muy difciles de conseguir sin
una visin unificada de la arquitectura.

o La arquitectura de software es un conjunto de patrones o principios
que guan el diseo de cada uno de los elementos de un sistema de
software.

o La arquitectura de software es el marco necesario para soportar el
cambio.

--> Una definicin ms formal
o La arquitectura de software de un sistema de computacin es la estructura o estructuras
del sistema, que comprenden elementos de software, las propiedades externamente
visibles de esos elementos, y las relaciones entre ellos.

o Estructuras del sistema
o Estticas: organizacin en tiempo de diseo.
o Dinmicas: organizacin en tiempo de ejecucin.
o Propiedades externamente visibles
o Qu hace el sistema?
o Cmo lo hace?
o Relaciones entre ambas
o El comportamiento visible del sistema est determinado por la combinacin del
comportamiento de sus elementos internos.
o Las propiedades de calidad del sistema provienen de las propiedades de calidad de sus
elementos internos.

--> Qu define la Arquitectura de Software?
o La estructura global del sistema.
o Decisiones tempranas de diseo, costosas de modificar
posteriormente.
o Tareas que deben ser llevadas a cabo para disear e implementar el sistema.
o Tcnicas de diseo e implementacin que deben ser respetadas para garantizar
aspectos de calidad y requerimientos no funcionales.

--> El alcance de la arquitectura suele restringirse a la definicin de tecnologas a utilizar.
o Los responsables de la arquitectura de software suelen trabajar solo en etapas previas
al comienzo del desarrollo
o con una definicin vaga de la arquitectura.
--> Por qu esta visin de la arquitectura no suele ser adecuada para aplicaciones de
tipo Enterprise?
o La definicin de la arquitectura no solo debe abarcar tecnologa sino tambin
definiciones conceptuales y, principalmente, pautas de uso de la arquitectura y de las
herramientas y frameworks elegidos.
o El trabajo del equipo de arquitectura no concluye en la definicin, sino que incluye una
implementacin (plataforma de desarrollo) y ms an, acompaamiento a lo largo del
desarrollo.

--> En aplicaciones pequeas puede afectar, pero en aplicaciones
enterprise puede ser la causa del fracaso del proyecto:
o Poco reso
o Baja productividad
o Alto acoplamiento a tecnologas
o Dificultad de mantenimiento y extensin
--> Las consecuencias suelen ser:
o Retrasos en los tiempos de entrega acordados
o Gastos por encima del presupuesto otorgado
o Producto con un nivel de calidad pobre.

--> Requerimientos no funcionales
o Son de particular importancia ya que influyen notoriamente
en la calidad del sistema.
o Tienen un gran impacto en el desarrollo y mantenimiento del sistema, su operatividad y
el uso que ste haga de los recursos.
o Se suelen denominar tambin atributos de calidad, ya que el trmino requerimiento no
funcional implicara que tal requerimiento no existe.

o Se pueden clasificar los atributos de calidad en dos:
o Observables va ejecucin: aquellos atributos que se determinan del comportamiento
del sistema en tiempo de ejecucin.
o No observables va ejecucin: aquellos atributos que se establecen
durante el desarrollo del sistema.

UNIDAD III
INTRODUCCION A LA
PROGRAMACION WEB
Tema # 1
Aplicaciones Web
Arquitectura monoltica
_ Cada programa se ejecuta en una solo maquina.
_ Es una arquitectura rgida de programacin en un solo computador.

_ La mayora de las veces se debe ejecutar el programa en varias maquinas diferentes
(pero accediendo a la misma base de datos).
_ Puede haber tantas maquinas como se requiera.

_ Arquitectura cliente servidor

En esta arquitectura la BD esta en una mquina y las otras acceden a ella para recuperar
los datos.
Se llama servidor a la mquina que tiene la BD y clientes a las mquinas que acceden al
servidor para obtener un servicio o respuesta.



Esta arquitectura consiste bsicamente en un cliente que realiza peticiones a otro
programa (servidor) que le enva una respuesta.
_ Tanto el servidor como el cliente pueden tener cdigo.
_ Ahora el programa se ha partido en dos. La parte que esta en el cliente y la parte que
esta en el servidor.
_ Pueden llamarse tambin cliente y servidor respectivamente.

Aplicaciones Web

En esta arquitectura el programa cliente es un "browser" y recibe HTML del servidor. La
red puede ser mediante Internet o una Intranet.
Los clientes pueden ser muchos. Sin embargo, a partir de ahora slo se dibujar un
cliente por falta de espacio y porque todos los otros clientes su comportamiento son
iguales.
El cliente es el navegador de Internet ("browser"). El servidor recibe peticiones HTTP y
devuelve HTML que despus el browser traduce en una pgina Web, que es la que ve el
cliente.
El servidor genera HTML que crea la pgina Web en el "browser". El navegador, a partir
del HTML dibuja la pgina.
_ En la programacin para la Web, el cliente no hay que programarlo, sino que ya viene
dado, es el navegador ("browser").
_ Solo hay que programar el servidor, pero este debe ser compatible con el cliente
("browser"), que ya esta definido.
_ Para que sea compatible, debe hablar el lenguaje que el browser entiende, el cual es
HTML.
_ Escribir HTML se puede hacer con cualquier editor, como el Bloc de notas o Notepad
++.
_ Un proyecto de programacin web consta de archivos java junto con archivos HTML.
_ En esta asignatura usaremos el mismo entorno para escribir java y para desplegar
HTML.
_ De esta forma tendremos todo el proyecto en un nico entorno y en una nica ubicacin
en disco.

INTRODUCCION A HTML
_ Es un lenguaje que se escribe en archivos de texto (llamados documentos HTML) y
tiene marcas o etiquetas (tags) que indican cuales son los elementos de la pgina Web.
_ Un elemento de la pgina Web se escriben entre dos etiquetas: una de inicio y una de
final. La de inicio se escribe <ELEMENTO> y la del final se escribe </ELEMENTO>.
_ As, por ejemplo, un documento HTML comienza con <HTML> ("inicio de HTML") y
acaba con _ </HTML> ("fin de HTML").

_ Formularios.
_ Una pgina Web donde hay uno o varios controles de introduccin de datos y un botn
para enviarlos al servidor se dice que contiene un formulario.
_ Adems de cuadros de texto pueden haber otros controles de introduccin, como
botones de radio, etc.
_ Los formularios son la forma que tiene HTML para que el usuario introduzca datos.
_ Dicho de otra forma, un formulario es un fragmento de una pgina Web que sirve para
introducir datos y enviarlos al servidor.
_ Consta de controles de introduccin de datos (sobre todo, cuadros de texto) para
introducir los datos (uno o varios) y botones para enviarlos al servidor.
_ Llamaremos elementos del formulario tanto a los controles de introduccin de datos
como a los botones.

Para los controles de introduccin de datos,
distinguiremos entre:
El Nombre. Es el nombre de ese control.
ElTexto. Son las palabras que se ven por pgina de ese control.
El Valor. Son los datos que se envan al servidor, para ser procesados por el programa.

Estos tres pueden ser el mismo o diferentes.
_ Cdigo HTML para un elemento de formulario.
_ Si el elemento es texto, se escribe el texto sin ms.
_ Si es un cuadro de texto el cdigo es el siguiente:
<INPUT TYPE="TEXT" NAME="NombreDelCuadro">
_ Si el botn es para enviar el formulario, el cdigo es el siguiente:
<INPUT TYPE="SUBMIT" VALUE="TextoDelBoton">
_ Si el botn es para restablecer el formulario a los valores por
defecto:
<INPUT TYPE="RESET" VALUE="TextoDelBoton">
_ Casillas de verificacin.
_ Son casillas que indican opciones que pueden seleccionarse o no. Cada casilla puede
seleccionarse o no de forma independiente de las otras.

Se obtienen con el siguiente cdigo:
<INPUT TYPE= "CHECKBOX" NAME="NombreDeLaCasilla">
Si se desea que la casilla salga seleccionada por defecto, se coloca CHECKED antes del
>.
_ Botones de radio.
_ Como las casillas de verificacin, son casillas en las que se puede seleccionar
opciones. Pero, a diferencia de stas, se dan en grupos y solo se puede seleccionar un
botn de cada
grupo.

<INPUT TYPE="RADIO" NAME="NombreGrupo" VALUE="NombreBoton">
Si se desea que aparezca el botn seleccionado por defecto, se

Listas.
_ Controles de introduccin de datos en los que se elige un valor de una lista
predeterminada.

LISTA SIMPLE

<SELECTED NAME="NombreLista">
<OPTION VALUE="ValorOpcin1">TextoOpcin1
<OPTION VALUE="ValorOpcin2">TextoOpcin2
.
<OPTION VALUE="ValorOpcinn">TextoOpcinn
</SELECTED>

UNIDAD IV
SERVIDOR DE APLICACIONES
Tema # 1
Que es un Servidor Web
_ Servidor - conceptos
_Un servidor es un software que brinda un servicio a otros dispositivos,
denominados clientes.
o Servidores de archivos.
o Servidores de aplicaciones.
o Servidores de correo.
o Servidores de Base de Datos.
o Servidores Web.
Un servidor Web, es un servidor, encargado de alojar sitios y/o aplicaciones, que son
accedidos por los clientes utilizando un navegador Web.
_ La comunicacin entre un cliente Web y un servidor Web, se realiza mediante el uso del
protocolo de comunicacin HTTP.
_ Un servidor Web contiene un intrprete HTTP que se mantiene a la espera de
peticiones de clientes y responde dicha peticin con el contenido necesario.
_ Genera la respuesta del pedido (HTML) y lo enva al cliente.
_ El cliente, una vez recibida la respuesta, interpreta el archivo y lo muestra en pantalla.

_ Protocolo HTTP conceptos
_HTTP (HypertextTransfer Protocol Protocolo de Transferencia de Hipertexto).
o Es el lenguaje de comunicacin que se utiliza en la Web.
o Permite el intercambio de informacin entre clientes yservidores.
o Define la sintaxis y la semntica que utilizan los clientes y servidores para comunicarse.

Protocolo HTTP Mensajes
_Cada transaccin HTTP es una comunicacin distinta. En cada una de ellas hay un
intercambio de mensajes.
_Un mensaje es la unidad bsica de la comunicacin HTTP y consiste en una estructura
secuencial, ordenada, con formato vlido y transmitido por la conexin.

_Tipos de mensajes:
o Request, es el mensaje de peticin o solicitud que enva el cliente hacia el servidor.
o Response, es el mensaje de respuesta que enva el servidor hacia el cliente, asociado
al pedido realizado.

_ HTTP Request
_GET. Se utiliza para pedirle al servidor que devuelva el recurso especificado.
_POST. Indica al servidor que recibir informacin del cliente. Usado para enviar
informacin desde formularios.
_HEAD. El servidor slo devuelve la cabecera del mensaje.
_PUT. El cliente enva un recurso al servidor.
_DELETE. El cliente solicita al servidor borrar un recurso.

Para poner una pgina Web en la Internet se necesita un servidorWeb.
_ Servidor Web: Hardware y Software que permite enviar (servir) pginas Web a un
cliente externo mediante internet.
_ Un servidorWeb consta de:
_ Hardware. Una mquina conectada a la internet.
_ Software. Un programa que sirva pginasWeb.

_ Un Servidor Web enva HTML
Solo hay un Servidor Web, pero puede haber tantos clientes como se necesite.
El servidor enva HTML, el browser del cliente dibuja la pgina Web.

_ Se tienen dos opciones.
1. Contratar un servicio de alojamiento en internet. Esto permitira colocar nuestras
pginas en internet.
2. Implementar nuestro propio servidor Web. Lo que se har en la asignatura.
_La maquina conectada a internet ya se tiene.
_Se necesita un programa para un servidor Web.
_ Se necesita un programa que haga de servidor Web.
_ Cualquier programa?
_ En este caso, necesitamos que este servidor soporte tambin Java. As, cuando
empecemos a programar Java para la Web se podrn ejecutar los programas.
_ A un programa servidor Web que soporta Java, se
le llama servidor de servlets.
_ Servidores de servlets
_ De cdigo abierto:
_ Apache Tomcat. http://tomcat.apache.org/
_ JBoss. http://www.jboss.org/
_ Jetty. http://www.eclipse.org/jetty/
_ Glassfish. https://glassfish.java.net/

_ Criterios para escoger un servidor de servlets.
_ Que sea extendido y lo mas estndar posible. Existe una comunidad que sirve para
resolver dudas.
_ Que sea gratuito. Por razones que todos conocemos.
_ Que sea de cdigo abierto. Mas fiable. Sin problemas de continuidad.
_ Que sea potente (soporte un alto nivel de concurrencia).
_ Que sea sencillo de instalar, configurar y usar.

Por lo tanto el que se usar en la asignatura es?
_ Tomcat es parte del proyecto Jakarta de la
fundacin Apache. Es prcticamente el estndar en cuanto a servidor de servlets.
_ Es gratuito, de cdigo abierto, potente y sencillo.

_ Recordando
_ Se necesita un servidor Web para colocar nuestras pginas HTML en la internet.
_ Se necesita que soporte Java.
_ Se necesitan dos cosas
_Una maquina conectada a Internet.
_Un programa servidor de servlets. Por lo que tenemos a Apache Tomcat.

_ Fases en la vida de una aplicacin Web.
1. Desarrollo. Mientras programamos la aplicacin, solo nosotros tenemos acceso.
2. Produccin. La aplicacin esta terminada y la ponemos en Internet para que todo el
mundo tenga acceso.
_ Dos tipos de Tomcat.
_ Tomcat en Eclipse servir en la fase de desarrollo, es decir, mientras estamos
programando la aplicacin web.
_ Para colocar la aplicacin web en Internet (fase de produccin), se usa un servidor de
aplicaciones (otra maquina) con una instalacin de Apache Tomcat Standalone o
independiente.

S-ar putea să vă placă și