Upload
jmcd17
View
2.746
Download
5
Embed Size (px)
DESCRIPTION
Plan de tesis
Citation preview
UNIVERSIDAD PRIVADA ANTENOR ORREGO
FACULTAD DE INGENIERÍA
ESCUELA PROFESIONAL DE INGENIERIA DE COMPUTACIÓN
Y SISTEMAS
“SISTEMA WEB PARA LA GESTIÓN DEL SERVICIO DE VENTA DE EQUIPOS DE
COMPUTO PARA LA EMPRESA PROCON S.A, UTILIZANDO LA METODOLOGIA
ICONIX”
PLAN DEL TRABAJO DE HABILITACIÓN PARA OBTENER EL TÍTULO
PROFESIONAL DE INGENIERO DE COMPUTACIÓN Y SISTEMAS
MEDIANTE LA MODALIDAD DE TITULACION PROFESIONAL
AUTOR(ES):
Br. CERNA LOPEZ, ALBERT MANUEL
Br. CRISOLOGO DURAND, JORGE MARTIN
ASESOR:
Ing. JARA GARCIA, CARLOS
TRUJILLO – PERÚ
2008
I. TITULO
Sistema Web para la gestión del servicio de venta de equipos de cómputo para la
empresa Procon S.A, utilizando la metodología iconix.
II. AUTORES
1. Br. Cerna López, Albert Manuel
2. Br. Crisólogo Durand, Jorge Martin
III. ASESOR
1. Ing. Jara García, Carlos
IV. CRONOGRAMA DE ACTIVIDADES
V. PRESUPUESTO
5.1 Bienes S/. 606.50
5.1.1 Material de escritorio S/. 126.50
Naturaleza de
gastoDescripción del bien Cantidad
Precio
Unitario
(S/.)
Precio
Total (S/.)
5.3.11.30 Resaltadores “Faber Castell”
Papel Bond A4 –80 gr “Report”
Lapiceros “Faber Castell”
Lápices “Faber Castell”
Correctores “Faber Castell”
Fólder plástico “VINIFAN”
CD “Princo”
Borradores “Faber Castell”
02 unidades
3 millares
10 unidades
04 unidades
08 unidades
05 unidades
10 unidades
2 unidades
2.00
25.00
1.00
0.50
2.00
1.50
1.00
1.00
4.00
75.00
10.00
2.00
16.00
7.50
10.00
2.00
SUBTOTAL 126.50
5.1.2 Material de Impresión S/. 480.00
Naturaleza de
gasto
Descripción del
bienCantidad
Precio Unitario
(S/.)
Precio Total
(S/.)
5.3.11.30 Tinta de Impresora
“HP”
04 unidades 120 480
SUBTOTAL 480
5.2 Servicios S/. 190.0
5.2.1 Básicos S/. 158.0
Naturaleza de
gasto
Descripción del
servicioCantidad
Costo Unitario
(S/.)
Precio Total
(S/.)
5.3.11.36 Internet 50 horas S/. 1x hora. 50.00
5.3.11.36 Fotocopiado 100 páginas S/.0.5 x pág. 50.00
5.3.11.36 Espiralado 5 espiralados S/. 2.0 x esp. 10.00
5.3.11.36 Telefonía 30 llamadas
(promedio 3 min
cada una)
S/ 0.2 x min 18.00
5.3.11.36 Encuadernado 1 Libro S/.30 x Libro 30.00
SUBTOTAL 158.00
5.2.2 Servicios No Personales (Recursos Propios) S/.0
Naturaleza de gasto
Descripción del
servicioPrecio Total(s/.)
5.3.11.37 Asesor 0.00
SUBTOTAL 0.00
5.3 Pasajes y Viáticos S/. 32.00
Justificación del costo
NOMBRE DEL SERVICIO
CANTIDAD COSTO UNITARIO (S/.)
PRECIO (S/.)
5.3.11.20 Movilidad 40 pasajes S/. 0.80 x psj. 32.00
SUBTOTAL 32.00
5.4 Sofware (Recursos Propios)
5.5 Equipos de Cómputo(Recursos Propios)
Resumen:
Bienes -------------------------------------------------------------------- S/. 606.50
Servicios -------------------------------------------------------------------- S/. 190.00
Total -------------------------------------------------------------------- S/. 796.50
VI. DESCRIPCION GENERAL DEL TRABAJO SUFICIENCIA PROFESIONAL
1. Área Temática
A través del procesamiento de información, una compañía crea valor, en especial si se
trata de una empresa que ofrece servicios. Por lo tanto, en este caso, la información
tiene un valor aun mayor porque ayuda a alcanzar los objetivos de la compañía.
Un sistema de información representa todos los elementos que forman parte de la
administración, el procesamiento, el trasporte y la distribución de la información dentro
de la empresa. Todo ese conjunto de elementos interactúan entre sí para procesar los
datos y la información (incluyendo procesos manuales y automáticos) y distribuirlas de
la manera más adecuada posible en la organización en función de sus objetivos.
Los sistemas de información que logran la automatización de procesos operativos
dentro de una organización, son llamados frecuentemente sistemas transaccionales,
nosotros nos enfocaremos al área de servicio de ventas online, facilitando al cliente una
búsqueda general y detallada de los diferentes equipos de cómputo que más se adopte
a las necesidades del cliente.
Realizando una breve revisión en las bibliotecas de la UPAO, se encontraron las
siguientes tesis relacionadas con nuestro tema:
Saavedra Vega, Vela Altamirano 2001, Desarrollo de una tienda virtual
para la empresa ecosystem. Postgrado Curso, Facultad de Ingeniería,
Escuela de Ingeniería de Computación y Sistemas, Universidad Privada
Antenor Orrego. Este trabajo de investigación nos brinda una óptica de
cómo de realizar aplicaciones Web que permitan hacer compras seguras
por la Internet.
Romero Sifuentes, Vásquez Ganóza 2008, Desarrollo de sistema de
planillas para la gerencia de agricultura la libertad utilizando iconix,
Facultad de Ingeniería, Escuela de Ingeniería de Computación y Sistemas,
Universidad Privada Antenor Orrego. Este proyecto nos sirve de guía para
aplicar la metodología Iconix en nuestro proyecto buscando la integridad de
los procesos que se tienen dentro de la organización.
Méndez Yap, Pérez Vigil 2001, Portal Web para la venta y alquiler de
inmuebles para la empresa editorial comercio. Postgrado Curso, Facultad
de Ingeniería, Escuela de Ingeniería de Computación y Sistemas,
Universidad Privada Antenor Orrego.
Este trabajo nos da una idea de cómo ofertar nuestros productos por la
Web y así poder captar más clientes.
2. Realidad
En la actualidad el proceso directo de venta que realiza la empresa a través de sus
colaboradores, tiene algunas deficiencias con la atención que se merece el cliente.
Dentro de los problemas encontrados se obtuvo que:
No se le brinda al cliente una buena descripción de las características de los
equipos de cómputo al momento de elaborar la proforma de venta.
No se lleva un control eficiente de todas las ventas realizadas, ya que este
registro se lleva a cabo utilizando Excel.
Los clientes no tienen información del estado en que se encuentran sus
pedidos realizados.
3. Formulación
¿Cómo se podría mejorar de manera automatizada y no presencial el proceso de
venta de equipos de cómputo en la empresa Procon s.a utilizando tecnologías de
información?
4. Justificación
Toda la línea de equipos de cómputo estarán disponibles en cualquier
momento del día, los 365 del año para cualquier tipo de cliente en la página
web de ventas de la empresa, facilitando al cliente armar una proforma en línea
de acuerdo a sus necesidades y poder realizar su compra desde la comodidad
de su casa u oficina.
La forma de pago se podrá hacer de manera no presencial desde la página
web de Procon S.A, brindando una mayor facilidad al cliente.
Se podrá llevar un control más eficiente de las ventas realizadas, por parte de
la empresa.
El cliente podrá hacer un seguimiento del estado en que se encuentra su
pedido, una vez concretado la venta.
VII. OBJETIVOS
1. Objetivo General
Diseñar un Sistema Web para la gestión del servicio de venta de equipos de
cómputo para la empresa Procon S.A., utilizando metodología iconix.
2. Objetivos Específicos
- Elaborar la lista de requerimientos necesarios para el diseño del sistema Web.
- Desarrollar los modelos de la metodología Iconix para la solución del problema.
- Diseñar el prototipo de interface de usuario utilizando PHP.
- Realizar el modelado y la implementación de la base de datos utilizando
MySQL
VIII. FUNDAMENTO TEORICO
1. Procon S.A.
2. Sistemas Web
Un sistema Web es un sistema informático que los usuarios utilizan accediendo a un
servidor Web a través de Internet o de una intranet. Las aplicaciones Web son
populares debido a la practicidad del navegador Web como cliente ligero. La facilidad
para actualizar y mantener aplicaciones Web sin distribuir e instalar software en
miles de potenciales clientes es otra razón de su popularidad. Aplicaciones como los
web mails, wikis, weblogs, tiendas en línea y Wikipedia misma son ejemplos bien
conocidos de aplicaciones Web.
1.1 Historia
En los primeros tiempos de la computación cliente-servidor, cada aplicación
tenía su propio programa cliente y su interfaz de usuario, estos tenían que ser
instalados separadamente en cada estación de trabajo de los usuarios. Una
mejora al servidor, como parte de la aplicación, requería típicamente una
mejora de los clientes instalados en cada una de las estaciones de trabajo,
añadiendo un costo de soporte técnico y disminuyendo la eficiencia del
personal.
En contraste, las aplicaciones Web generan dinámicamente una serie de
páginas en un formato estándar, soportado por navegadores Web comunes
como HTML o XHTML. Se utilizan lenguajes interpretados del lado del cliente,
tales como Java Script, para añadir elementos dinámicos a la interfaz de
usuario. Generalmente cada página Web individual es enviada al cliente como
un documento estático, pero la secuencia de páginas provee de una
experiencia interactiva.
2.2 Interfaz
Las interfaces Web tienen ciertas limitaciones en la funcionalidad del cliente.
Métodos comunes en las aplicaciones de escritorio como dibujar en la pantalla
o arrastrar-y-soltar no están soportadas por las tecnologías Web estándar. Los
desarrolladores Web comúnmente utilizan lenguajes interpretados del lado del
cliente para añadir más funcionalidad, especialmente para crear una
experiencia interactiva que no requiera recargar la página cada vez (cosa que
suele molestar a los usuarios). Recientemente se han desarrollado tecnologías
para coordinar estos lenguajes con tecnologías del lado del servidor, como por
ejemplo PHP. AJAX, es una técnica de desarrollo Web que usa una
combinación de varias tecnologías.
2.3 Consideraciones Técnicas
Una ventaja sign es que deberían funcionar igual independientemente de la
versión del sistema operativo instalado en el cliente. En vez de crear clientes
para Windows, Mac OS X, GNU/Linux, y otros sistemas operativos, la
aplicación es escrita una vez y es mostrada casi en todos lados. Sin embargo,
aplicaciones inconsistentes de HTML, CSS, DOM y otras especificaciones de
browsers pueden causar problemas en el desarrollo y soporte de aplicaciones
Web. Adicionalmente, la habilidad de los usuarios a personalizar muchas de las
características de la interfaz (como tamaño y color de fuentes, tipos de fuentes,
inhabilitar Java script) puede interferir con la consistencia de la aplicación Web.
Otra aproximación es utilizar Macromedia Flash o Java applets para producir
parte o toda la interfaz de usuario. Como casi todos los browsers incluyen
soporte para estas tecnologías (usualmente por medio de plug-ins),
aplicaciones basadas en Flash o Java pueden ser implementadas con
aproximadamente la misma facilidad. Como hacen caso omiso de las
configuraciones de los browsers estas tecnologías permiten más control sobre
la interfaz, aunque incompatibilidad entre implementaciones de Flash o Java
puedan traer nuevas complicaciones. Por las similitudes con una arquitectura
cliente-servidor, con un cliente un poco “especializado”, hay disputas sobre si
llamar a estos sistemas “aplicaciones Web”; un término alternativo es
“aplicación enriquecida de Internet”.
2.4 Estructura
Aunque muchas variaciones son posibles, una aplicación Web está
comúnmente estructurada como una aplicación de tres-capas. En su forma
más común, el navegador Web es la primera capa, un motor usando alguna
tecnología Web dinámica (ejemplo: CGI, PHP, Java Servlets o ASP) es la capa
de en medio, y una base de datos como última capa. El navegador Web manda
peticiones a la capa media, que la entrega valiéndose de consultas y
actualizaciones a la base de datos generando una interfaz de usuario.
En tiempos recientes se ha usado la estrategia de generalizar esta arquitectura
mediante la adición de piezas de hardware que permiten balancear la carga de
los servidores Web y de aplicación.
2.5 Uso de Negocios
Una estrategia que está emergiendo para las empresas proveedoras de
software, es proveer acceso vía Web al software. Para aplicaciones
previamente distribuidas como de escritorio, esto puede requerir el desarrollo
de una aplicación totalmente nueva o simplemente adaptar la aplicación para
usar una interfaz Web. Estos programas permiten al usuario pagar una cuota
mensual o anual para usar la aplicación, sin necesidad de instalarla en la
computadora del usuario. Las compañías que siguen esta estrategia son
llamadas Proveedores de Aplicaciones de Servicio (ASP por sus siglas en
inglés), este modelo de negocios está atrayendo la atención de la industria del
software.
2.6 Lenguajes de Programación
Existen numerosos lenguajes de programación empleados para el desarrollo de
Aplicaciones Web, entre los que destacan:
PHP
ASP/ASP.NET
Java, con sus tecnologías Java Servlets y Java Server Pages (JSP)
Perl
Ruby
Python
HTML
XML
3. Software Libre
2.1 Definición:
Según Stallman (2004) define de la siguiente manera:
Es la denominación del software que brinda libertad a los usuarios sobre su
producto adquirido y por tanto, una vez obtenido, puede ser usado, copiado,
estudiado, modificado y redistribuido libremente.
2.2 Libertades del software Libre
Libertad 0:
Ejecutar el programa con cualquier propósito (privado, educativo, público,
comercial, militar, etc.)
Libertad 1:
Estudiar y modificar el programa (para lo cual es necesario poder acceder al
código fuente)
Libertad 2:
Copiar el programa de manera que se pueda ayudar al vecino o a cualquiera.
Libertad 3:
Mejorar el programa y publicar las mejoras.
2.3 Tipos de Licencias
GPL
Una de las más utilizadas es la Licencia Pública General de GNU (GNU
GPL). El autor conserva los derechos de autor (copyright), y permite la
redistribución y modificación bajo términos diseñados para asegurarse de
que todas las versiones modificadas del software permanecen bajo los
términos más restrictivos de la propia GNU GPL. Esto hace que sea
imposible crear un producto con partes no licenciadas 1
Es decir, la licencia GNU GPL posibilita la modificación y redistribución del
software, pero únicamente bajo esa misma licencia. Y añade que si se
reutiliza en un mismo programa código "A" licenciado bajo licencia GNU GPL
y código "B" licenciado bajo otro tipo de licencia libre, el código final "C",
independientemente de la cantidad y calidad de cada uno de los códigos "A"
y "B", debe estar bajo la licencia GNU GPL.
Estilo BSD
Llamadas así porque se utilizan en gran cantidad de software distribuido
junto a los sistemas operativos BSD. El autor, bajo tales licencias, mantiene
la protección de copyright únicamente para la renuncia de garantía y para
requerir la adecuada atribución de la autoría en trabajos derivados, pero
permite la libre redistribución y modificación, incluso si dichos trabajos tienen
propietario. Son muy permisivas, tanto que son fácilmente absorbidas al ser
mezcladas con la licencia GNU GPL con quienes son compatibles. Puede
argumentarse que esta licencia asegura “verdadero” software libre, en el
sentido que el usuario tiene libertad ilimitada con respecto al software, y que
puede decidir incluso redistribuirlo como no libre. Otras opiniones están
1 http://es.wikipedia.org/wiki/C%C3%B3digo_libre
orientadas a destacar que este tipo de licencia no contribuye al desarrollo de
más software libre.
Estilo MPL y derivadas
Esta licencia es de Software Libre y tiene un gran valor porque fue el
instrumento que empleó Netscape Communications Corp. para liberar su
Netscape Communicator 4.0 y empezar ese proyecto tan importante para el
mundo del Software Libre: Mozilla. Se utilizan en gran cantidad de productos
de software libre de uso cotidiano en todo tipo de sistemas operativos. La
MPL es Software Libre y promueve eficazmente la colaboración evitando el
efecto "viral" de la GPL (si usas código licenciado GPL, tu desarrollo final
tiene que estar licenciado GPL). Desde un punto de vista del desarrollador la
GPL presenta un inconveniente en este punto, y lamentablemente mucha
gente se cierra en banda ante el uso de dicho código. No obstante la MPL no
es tan excesivamente permisiva como las licencias tipo BSD. Estas licencias
son denominadas de copyleft débil. La NPL (luego la MPL) fue la primera
licencia nueva después de muchos años, que se encargaba de algunos
puntos que no fueron tenidos en cuenta por las licencias BSD y GNU. En el
espectro de las licencias de software libre se la puede considerar adyacente
a la licencia estilo BSD, pero perfeccionada.2
Copyleft
Hay que hacer constar que el titular de los derechos de autor (copyright) de
un software bajo licencia copyleft puede también realizar una versión
modificada bajo su copyright original, y venderla bajo cualquier licencia que
desee, además de distribuir la versión original como software libre. Esta
técnica ha sido usada como un modelo de negocio por una serie de
empresas que realizan software libre (por ejemplo MySQL); esta práctica no
restringe ninguno de los derechos otorgados a los usuarios de la versión
copyleft. También podría retirar todas las licencias de software libre
anteriormente otorgadas, pero esto obligaría a una indemnización a los
titulares de las licencias en uso. En España, toda obra derivada está tan
protegida como una original, siempre que la obra derivada parta de una
autorización contractual con el autor. En el caso genérico de que el autor
retire las licencias "copyleft", no afectaría de ningún modo a los productos
derivados anteriores a esa retirada, ya que no tiene efecto retroactivo. En
términos legales, el autor no tiene derecho a retirar el permiso de una
2 http://es.wikipedia.org/wiki/C%C3%B3digo_libre
licencia en vigencia. Si así sucediera, el conflicto entre las partes se
resolvería en un pleito convencional.3
3. PHP
3.1 Definición:
Según WELLING(2005) define a PHP come:
Un lenguaje de programación interpretado, diseñado originalmente para la
creación de páginas Web dinámicas. Es usado principalmente en interpretación
del lado del servidor (server-side scripting) pero actualmente puede ser
utilizado desde una interfaz de línea de comandos o en la creación de otros
tipos de programas incluyendo aplicaciones con interfaz gráfica usando las
bibliotecas Qt o GTK+. 4
PHP es un acrónimo recursivo que significa PHP Hypertext Pre-processor
(inicialmente PHP Tools, o, Personal Home Page Tools). Fue creado
originalmente por Rasmus Lerdof en 1994; sin embargo la implementación
principal de PHP es producida ahora por The PHP Group y sirve como el
estándar de facto para PHP al no haber una especificación formal. Publicado
bajo la PHP License, la Free Software Foundation considera esta licencia como
software libre.
3.2 Características
Es un lenguaje multiplataforma.
Capacidad de conexión con la mayoría de los manejadores de base de
datos que se utilizan en la actualidad, destaca su conectividad con MySQL
Capacidad de expandir su potencial utilizando la enorme cantidad de
módulos (llamados ext's o extensiones).
Posee una amplia documentación en su página oficial, entre la cual se
destaca que todas las funciones del sistema están explicadas y
ejemplificadas en un único archivo de ayuda.
Es libre, por lo que se presenta como una alternativa de fácil acceso para
todos.
Permite las técnicas de Programación Orientada a Objetos.
Biblioteca nativa de funciones sumamente amplia e incluida.
No requiere definición de tipos de variables.
4. Ingeniería Web
3 Disponible en: http://es.wikipedia.org/wiki/C%C3%B3digo_libre44 Disponible en: http://es.wikipedia.org/wiki/Php
4.1 Introducción
El crecimiento desenfrenado que esta teniendo la Web esta ocasionando un
impacto en la sociedad y el nuevo manejo que se le esta dando a la
información en las diferentes áreas en que se presenta ha hecho que las
personas tiendan a realizar todas sus actividades por esta vía. Desde que esto
empezó a suceder el Internet se volvió más que una diversión y empezó a ser
mas serio, ya que el aumento de publicaciones y de informaciones hizo que la
Web se volviera como un desafío para los ingenieros del software, a raíz de
esto se crearon enfoques disciplinados, sistemáticos y metodologías donde
tuvieron en cuenta aspectos específicos de este nuevo medio.5
Uno de los aspecto mas tenidos en cuenta, en el desarrollo de sitios Web es
sin duda alguna el diseño gráfico y la organización estructural del contenido. En
la actualidad la Web esta sufriendo grandes cambios, que han obligado a
expertos en el tema a utilizar herramientas y técnicas basadas en la ingeniería
del software, para poder garantizar el buen funcionamiento y administración de
los sitios Web. Ahora para garantizar el buen funcionamiento y mantenimiento
de los sitios Web, este debe contar con ciertos atributos y características que
en conjunto forman un concepto muy importante, para alcanzar el éxito en
cualquier organización, herramienta, y todo aquello que se pueda considerar
como servicio. Dicho concepto es la calidad, que con atributos como,
usabilidad, navegabilidad, seguridad, mantenibilidad, entre otros, hace posible
por un lado la eficiencia del artefacto Web y por ende la satisfacción del usuario
final. Pero para tener artefactos de calidad, a esa misma se le debe planificar,
programar y controlar, es decir la calidad no podrá ser agregada a un artefacto
Web o a cualquier otro producto, al final del proceso de desarrollo, si no que se
deberá implementar durante todo el ciclo de vida del desarrollo. Para finalizar el
resultado de un proceso de calidad, podría arrojar recomendaciones para
introducir mejoras, y la decisión final podría consistir en lanzar una nueva
versión del sitio Web o en modificar algunos atributos ausentes o pobremente
diseñados.
4.2 Definición
La Ingeniería de la Web es la aplicación de metodologías sistemáticas,
disciplinadas y cuantificables al desarrollo eficiente, operación y evolución de
aplicaciones de alta calidad en la World Wide Web6.
Podemos decir que Ingeniería Web es el proceso utilizado para crear, implantar
y mantener aplicaciones y sistemas Web de alta calidad. Esta breve definición
5 Disponible en: http://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_la_Web#cite_note-06 Disponible en: http://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_la_Web#cite_note-0
nos lleva a abordar un aspecto clave de cualquier proyecto como es determinar
que tipo de proceso es más adecuado en función de las características del
mismo.
La Web evoluciona y crece sin diseño alguno. Prácticas tan pobres de calidad
pueden introducir defectos como un juego de niños. Es deber de todos
proporcionar cimientos firmes a una tecnología que “mágicamente” nos permite
acceder a cualquier hora a cualquier punto del planeta para obtener bienes tan
valiosos como son los Servicios y la información.
4.3 Proceso de la Ingeniería Web
Características como inmediatez y evolución y crecimiento continuos, nos
llevan a un proceso incremental y evolutivo, que permite que el usuario se
involucre, facilitando el desarrollo de productos que se ajustan mucho lo que
éste busca y necesita.
Existen algunas actividades importantes y que forman parte el proceso, estas
son: formulación, lanificación análisis, modelización, generación de páginas,
test y evaluación del cliente.
La Formulación identifica objetivos y establece el alcance de la primera
entrega. La Planificación genera a estimación del coste general del proyecto, la
evaluación de riesgos y el calendario del desarrollo y fechas de entrega. El
Análisis especifica los requerimientos e identifica el contenido. La Modelización
se compone de dos secuencias paralelas de tareas.7
Una consiste en el diseño y producción del contenido que forma parte de la
aplicación. La otra, en el diseño de la arquitectura, navegación e interfaz de
usuario. Es importante destacar la importancia del diseño de la interfaz.
Independientemente del valor del contenido y servicios prestados, una buena
interfaz mejora la percepción que el usuario tiene de éstos. En la generación de
páginas se integra contenido, arquitectura, navegación e interfaz para crear
estática o dinámicamente el aspecto más visible de las aplicación, las páginas.
El Test busca errores a todos lo niveles: contenido, funcional, navegacional,
rendimiento, etc.
5. UML
5.1 Definición
7 Disponible en: http://sistemas3.wordpress.com/2007/06/14/proceso-de-la-ingenieria-web/
Es un lenguaje de modelado visual que se usa para especificar, visualizar,
construir y documentar artefactos de un sistema de software. Se usa para
entender, diseñar, configurar, mantener y controlar la información sobre los
sistemas a construir.
UML capta la información sobre la estructura estática y el comportamiento
dinámico de un sistema. Un sistema se modela como una colección de objetos
discretos que interactúan para realizar un trabajo que finalmente beneficia a un
usuario externo.
El lenguaje de modelado pretende unificar la experiencia pasada sobre
técnicas de modelado e incorporar las mejores prácticas actuales en un
acercamiento estándar.
UML no es un lenguaje de programación. Las herramientas pueden ofrecer
generadores de código de UML para una gran variedad de lenguaje de
programación, así como construir modelos por ingeniería inversa a partir de
programas existentes.
Es un lenguaje de propósito general para el modelado orientado a objetos.
UML es también un lenguaje de modelamiento visual que permite una
abstracción del sistema y sus componentes.
Existían diversos métodos y técnicas Orientadas a Objetos, con muchos
aspectos en común pero utilizando distintas notaciones, se presentaban
inconvenientes para el aprendizaje, aplicación, construcción y uso de
herramientas, etc., además de pugnas entre enfoques, lo que genero la
creación del UML como estándar para el modelamiento de sistemas de
software principalmente, pero con posibilidades de ser aplicado a todo tipo de
proyectos. 8
5.2 Objetivos
- UML es un lenguaje de modelado de propósito general que pueden usar
todos los modeladores. No tiene propietario y está basado en el común
acuerdo de gran parte de la comunidad informática.
- UML no pretende ser un método de desarrollo completo. No incluye un
proceso de desarrollo paso a paso. UML incluye todos los conceptos que se
consideran necesarios para utilizar un proceso moderno iterativo, basado en
construir una sólida arquitectura para resolver requisitos dirigidos por casos de
uso.
· Ser tan simple como sea posible pero manteniendo la capacidad de modelar
toda la gama de sistemas que se necesita construir. UML necesita ser lo
suficientemente expresivo para manejar todos los conceptos que se originan en
un sistema moderno, tales como la concurrencia y distribución, así como
8 Disponible en: http://mayi.polanco.googlepages.com/TRABAJODEINGSOFTWAREII.doc
también los mecanismos de la ingeniería de software, como son la
encapsulación y componentes.
· Debe ser un lenguaje universal, como cualquier lenguaje de propósito
general.
· Imponer un estándar mundial.
6. ICONIX
El proceso de ICONIX maneja casos de uso, como el RUP, pero le falta mucho
para llegar al nivel del RUP.
También es relativamente pequeño y firme, como XP, pero no desecha el análisis y
diseño que hace XP. Este proceso también hace uso aerodinámico del UML
mientras guarda un enfoque afilado en el seguimiento de requisitos. Y, el proceso
se queda igual a la visión original de Jacobson del manejo de casos de uso, esto
produce un resultado concreto, específico y casos de uso fácilmente entendible,
que un equipo de un proyecto puede usar para conducir el esfuerzo hacia un
desarrollo real.
La Figura 1 muestra el cuadro del proceso. El diagrama retrata la esencia del
enfoque aerodinámico al desarrollo del software, que incluye un juego mínimo de
diagramas de UML y algunas valiosas técnicas que se toman de los casos del uso
para codificar rápida y eficazmente. El enfoque es flexible y abierto; siempre se
puede seleccionar de los otros aspectos del UML para complementar los materiales
básicos.
Cuadro para manejar Casos de Uso en el modelamiento de Objetos
Nos gustaría señalar tres rasgos significantes de este enfoque.
Primero, es reiterativo e incremental. Las iteraciones múltiples ocurren entre el
desarrollo del modelo del dominio e identificar y analizar los casos de uso. Otras
iteraciones existen también, como los procesos del equipo a través del ciclo de
vida. El modelo estático se refina incrementalmente durante las iteraciones
sucesivas a través del modelo dinámico (compuesto del caso de uso, análisis de
robustez y el diagrama de secuencia). Note sin embargo, que el acercamiento no
requiere hitos formales y la teneduría de muchos libros; más bien, los esfuerzos de
refinamiento producen los hitos naturales como el equipo del proyecto que gana
conocimiento y experiencia.
Segundo, el enfoque ofrece un alto grado de seguimiento. Por el camino, a cada
paso usted consultara de alguna manera los requisitos anteriores. Nunca hay un
punto en que el proceso le permita desviarse lejos de las necesidades del usuario.
Seguimiento se refiere también al hecho que usted puede seguir los objetos paso a
paso como el análisis dentro del diseño.
Tercero, el enfoque ofrece uso aerodinámico del UML. Los pasos que nosotros
describiremos en los siguientes temas representan un mínimo del acercamiento,
ellos comprenden el juego mínimo de pasos que nosotros hemos encontrado para
ser necesarios y suficiente en el desarrollo de un proyecto Orientado a Objetos
exitoso. Enfocando en un subconjunto del grande y pesado UML, un equipo del
proyecto también puede dirigirse fuera de "la parálisis del análisis".
6.1 Las Capacidades de Iconix
La solución de Iconix incluye un ancho rango de ofrecimientos de servicios de
negocios. Las soluciones de negocios de extremo a extremo se concentran en
los servicios en tres áreas primarias, con la estrategia y planeación recubriendo
cada área. La especialización equilibrada en las tres áreas (la experiencia del
usuario, funcionalidad comercial, e infraestructura) contribuye al éxito de las
soluciones que se entrega a los clientes.
6.2 El Dominio del Problema
El modelo del dominio es una parte esencial del proceso de ICONIX.
Construye la porción estática inicial de un modelo que es esencial al manejar
su plan de la aplicación, antes de los casos del uso.
El enfoque de este tema es el modelo del dominio. El término "dominio del
problema" se refiere al área que abarca cosas del mundo real y conceptos
relacionados al problema que el sistema está diseñándose para resolver. El
modelo del dominio es la tarea de descubrir " los objetos " (las clases) estos
representan cosas y conceptos.
Dentro del proceso de ICONIX, el modelo de dominio activado involucra, fuera
de los requisitos de los datos, construir un modelo estático del dominio del
problema pertinente al sistema propuesto.
Figura 1. El Cuadro para manejar Casos de Uso en el modelamiento de Objetos
La Figura 1 ilustra donde el modelo del dominio reside dentro del cuadro para el
proceso de ICONIX.
6.2 Los Elementos importantes del modelo del Dominio
La primera cosa que usted debe hacer cuando este construyendo un modelo
estático de su sistema es el hallazgo de clases apropiadas que con precisión
representan las abstracciones reales de los problemas que se presentan en el
modelo del dominio. Si usted ejecuta bien esta actividad, usted no sólo tendrá
una construcción sólida para construir el sistema, sino también las excelentes
perspectivas para reutilización de sistemas que se diseñarán y se construirán
con el tiempo.
Es probable que los mejores recursos de clases sean la declaración del
problema de alto nivel, los niveles bajos de requisitos y conocimientos del
experto sobre el espacio del problema. Para empezar, ponga las todas las
declaraciones pertinentes de estas áreas (e incluso otros) como pueda
encontrar, y entonces señalas o resaltas, todos los sustantivos de la frase.
Refine las listas gradualmente, los sustantivos de la frases se volverán objetos
y atributos, mientras los verbos se volverán funcionamientos y asociaciones.
Los posesivos ("su"," nuestro " y " suyo ") tienden a indicar que los sustantivos
deben ser los atributos, en lugar de los objetos.
Luego, seleccione de su lista de clases de candidato y elimine los artículos
innecesarios. Busque las clases que son redundantes, no pertinentes,
incorrectas o vagas. Las clases no esenciales también pueden representar los
conceptos fuera del alcance del modelo, o representa las acciones aunque
ellos se expresan como los nombres.
También se debe tomar algunas decisiones de la inicial sobre la generalización
(el " tipo de " o " es un " relación entre las clases) mientras construye su
diagrama de clases. Si se necesita, y es más cómodo para esta fase,
generalice a más de un nivel de subclase. Recuerde buscar tipo de
declaraciones que son verdad en el mundo real. El modelamiento del dominio
también es el área apropiada para las decisiones sobre las agregaciones
("parte de" o " tiene " relaciones entre clases).
Finalmente, tal como muchos diagramas de relación de entidad (ERD), su
modelo del dominio, pone al día para mostrar las asociaciones (las relaciones
estáticas entre los pares de clases) debe ser una verdadera declaración sobre
el espacio del problema, independiente del tiempo (es decir, estática). Este
modelo sirve como la construcción de su modelo de la clase estático.
6.3 Diagrama de Secuencia
La interacción diseñada le permite detallar la conducta de sus objetos y
encuentre las clases apropiadas para los atributos y funcionamientos.
Este tema perfila los errores más comunes, y entonces explica cómo
corregirlos. Este enfoque estará orientado en realizar la interacción del diseño
usando UML y diagramas de secuencias.
Cuando usted termina con planeamiento de dominio y análisis de robustez,
usted habrá encontrado la mayoría de los objetos en el problema y asignara
algunos atributos a ellos. Se habrá definido las relaciones estáticas entre los
objetos en su diagrama de la clase de alto nivel y unas relaciones dinámicas en
sus diagramas de robustez.
6.4 Los Elementos Importantes de los Diagramas de la Secuencia
Usted quiere lograr tres metas primarias durante el diseño de interacción.
Primero, asigne el comportamiento entre los objetos límite, entidad y de
control. Durante el análisis de robustez, usted puede identificar un conjunto de
objetos que pueden lograr la conducta deseada de sus casos del uso. Se
puede también romper esa conducta en las unidades discretas y puede crear
que las guías controlen los objetos para cada una de esas unidades. Entonces
se puede decidir qué objetos son responsables para cierta parte del
comportamiento. Si no se tiene una clara idea de los objetos límite, entidad y
control, es demasiado pronto para estar contemplando cómo usted asignará el
comportamiento. En ese caso, usted necesitará regresara al análisis de
robustez y realizarlo bien.
Segundo, muestre las interacciones detalladas que ocurren entre los objetos
asociados con cada uno de los casos del uso. Los objetos actúan
recíprocamente enviando los mensajes a nosotros. Estos mensajes sirven
como lo que Ivar Jacobson llama los estímulos (es decir, un mensaje estimula a
un objeto para realizar algunas acciones deseadas. Para cada unidad de
comportamiento dentro de un caso de uso, se debe identificar los mensajes y
métodos necesarios.
Tercero, termine la distribución de funcionamientos entre las clases. Se debe
apuntar para tener un 75 a 80 por ciento aproximadamente de sus atributos
definidos dentro del modelo estático, cuando se halla terminado el análisis de
robustez. Sin embargo, no empiece definiendo los funcionamientos durante el
modelo del dominio y análisis de robustez. De hecho, se recomienda que no se
asigne ningún método en este punto, porque no hay bastante información
disponible.
Una vez que se ha conseguido el modelo de interacción, se debe tener
bastante información. Entonces se puede poner el comportamiento detallado
de sus objetos (en los diagramas de secuencia, en el contexto de su caso de
uso) y se puede finalizar encontrando los lugares apropiadas para los atributos
y funcionamientos.
Mientras se hace este modelo dinámico, se estará actualizando y se extenderá
su modelo estático, y esto solidificará su creciente conocimiento de cómo su
nuevo sistema debe trabajar.
El diagrama de secuencia del UML evolucionó de una combinación del
diagrama de interacción de objetos de Jacobson y del diagrama de control de
eventos del OMT. Dentro del enfoque de ICONIX, los diagramas de secuencia
representan el producto de trabajo de un mayor modelo. Se dibuja un diagrama
de secuencia que abarque el camino básico y todos los caminos alternativos
dentro de cada uno de casos de uso. Los resultados forman el centro de su
modelo dinámico (que es la conducta del tiempo de ejecución del sistema,
incluyendo cómo se logrará esa conducta) que se define en gran detalle.
6.5 Cuatro Pasos para Dibujar los Diagramas de Secuencia
Paso 1. Copiar el texto del caso de uso obtenido para especificarlo. Péguelo en
el margen izquierdo de la página. Esto se hace para permitir a ese texto servir
como un recordatorio continuo de lo que usted necesita lograr. El resultado es
que cuando usted está haciendo el diseño, el comportamiento del sistema
requerido siempre está mirándolo fijamente a la cara. Pero si no se tiene todos
los caminos de acción alternativos pertinentes escritos para cada uno de los
casos de uso, no se debe proceder hasta que ellos estén en su lugar.
Por otra parte, los diagramas no cubrirán todos los casos especiales, y usted
no encontrara el comportamiento total del caso de uso. Esto significa que no se
descubrirá todos los métodos necesarios para sus objetos.
Paso 2. Agregue los objetos entidad del diagrama de robustez. Cada uno de
estos objetos es un tipo caso que aparece en el Diagrama de clase que
representa el modelo estático. (Si se olvido de actualizar el diagrama de clase
estático en respuesta a los nuevos objetos que descubrió durante el análisis de
robustez, hágalo ahora).
Estos objetos deben tener la mayoría de sus atributos en sitio. Muchos de ellos
estarán sirviendo de datos a otros objetos. Se puede esperar descubrir los
atributos perdidos para trabajar el diagrama de secuencia. Sea meticuloso
sobre agregarlos al modelo estático; es probable que esto sea su último paso
antes del código.
Paso 3. Agregue los objetos límite del diagrama de robustez. En este punto se
preguntara por qué no mencionamos la adición de los objetos límite al modelo
del dominio. La razón es que estos objetos son parte de la solución.
Respondiendo de los objetos límite de los diagramas de secuencia, usted
empieza ha integrar el modelo detallado.
Si se sigue el enfoque de ICONIX, los primeros tres pasos involucrados dibujan
los diagramas de secuencia, su naturaleza es completamente mecánica.
Paso 4. Ponga los métodos en las clases. Esto involucra convertir los objetos
control del diagrama de robustez en un conjuntos de métodos y mensajes que
incluyen el comportamiento deseado (De vez en cuando, usted puede dejar un
control como un objeto control real). Use su diagrama de robustez como una
lista de control, asegúrese que se tiene todo el comportamiento que el sistema
requiere para los diagramas de secuencia.
Entonces simplemente controle las respuestas de cada objeto control que se
dibuja en los diagramas de secuencia.9
9 Disponible en: http://www.iconix.com
7. MySQL
MySQL10 es un sistema de gestión de base de datos relacional, multihilo y
multiusuario con más de seis millones de instalaciones. MySQL AB desarrolla
MySQL como software libre en un esquema de licenciamiento dual.
Por un lado lo ofrece bajo la GNU GPL11 (Licencia Pública General), pero,
empresas que quieran incorporarlo en productos privativos pueden comprar a la
empresa una licencia que les permita ese uso. Está desarrollado en su mayor parte
en ANSIC. Al contrario de proyectos como el Apache, donde el software es
desarrollado por una comunidad pública, y el copyright del código está en poder del
autor individual, MySQL es propiedad y está patrocinado por una empresa privada,
que posee el copyright de la mayor parte del código.
Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado.
Además de la venta de licencias privativas, la compañía ofrece soporte y servicios.
Para sus operaciones contratan trabajadores alrededor del mundo que colaboran
vía Internet. MySQL AB fue fundado por David Axmark, Allan Larsson, y Michael
Widenius.
7.1 Plataformas
MySQL funciona sobre múltiples plataformas, incluyendo AIX, BSD, FreeBSD,
HP-UX, GNU/Linux, Mac OS X, NetBSD, Novell Netware, OpenBSD, OS/2
Warp, QNX, SGI IRIX, Solaris, SunOS, SCO OpenServer, SCO UnixWare,
Tru64, Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP,
Windows Vista y otras versiones de Windows. También existe MySQL para
OpenVMS.
7.2 Tipos de compilación del Servidor
Hay tres tipos de compilación del servidor MySQL:
Estándar: Los binarios estándares de MySQL son los recomendados para la
mayoría de los usuarios, e incluyen el motor de almacenamiento InnoDB.
Max (No se trata de MaxDB, que es una cooperación con SAP): Los binarios
incluyen características adicionales que no han sido lo bastante probadas o
que normalmente no son necesarias.
10 http://www.mysql-hispano.org/page.php?id=211 http://es.wikipedia.org/wiki/GNU_GPL
MySQL-Debug: Son binarios que han sido compilados con información de
depuración extra. No debe ser usada en sistemas en producción porqué el
código de depuración puede reducir el rendimiento.
7.3 Especificaciones del código fuente
MySQL está escrito en una mezcla de C y C++. Hay un documento que
describe algunas de sus estructuras internas12.
7.4 Que licencia utilizar
La licencia GNU GPL de MySQL obliga a distribuir cualquier producto derivado
(aplicación) bajo esa misma licencia. Si un desarrollador desea incorporar
MySQL en su producto pero no desea distribuirlo bajo licencia GNU GPL,
puede adquirir la licencia comercial de MySQL que le permite hacer justamente
eso.
7.5 Estado Actual
La serie en desarrollo de MySQL Server actualmente, es la 5.1 al cual se
añaden nuevas características en relación a la serie 5.0. La serie de producción
actual de MySQL es 5.0, cuya penúltima versión estable es la 5.0.26 lanzada
en octubre de 2006. Actualmente, se puede descargar la serie 5.0.27. La serie
de producción anterior fue la 4.1, cuya versión estable es 4.1.7 lanzada en
octubre de 2004. A estas versiones de producción sólo se arreglan problemas,
es decir, ya no se añaden nuevas características. Y a las versiones anteriores
solamente se les corrigen bugs críticos.
12 http://dev.mysql.com/doc/internals/en/
IX. MÉTODOS Y HERRAMIENTAS
Métodos:
Para dar solución a este problema se realizará entrevistas, encuestas y observaciones
realizadas a las personas directa e indirectamente involucradas, anotaciones de la información
documental. Se utilizará también los modelos de la metodología ICONIX y UML para el
Modelado Orientado a Objetos.
RUP RESULTADOSFASES DISCIPLINAS DOCUMENTOS MODELOS DIAGRAMA
INICIO
Modelo del negocio
Reglas del negocio.
Especificación de de casos de uso del negocio.
Evaluación del negocio.
Arquitectura del negocio.
Glosario del negocio.
Plan de desarrollo del Software.
Vision.
Modelo del negocio.
Modelo del dominio.
Diagrama del caso de uso del negocio.
Modelo de objetos del negocio.
Modelo del dominio del problema.
RequerimientosEspecificación de los casos de uso.
Modelo de requerimientos.
Diagrama de casos de usos.Diagrama de actividades.
ELABORACIÓN Análisis y diseño
Modelo de análisis.Modelo de diseño.
Diagrama de colaboración.Diagrama de secuencia.Diagrama de estados.Diagrama de clases.Diagrama de datos.
CONSTRUCCIÓN ImplementaciónModelo de implementación.
Diagrama de componentes.Diagrama de despliegue.
TRANSICIÓNPrueba Despliegue
Manual de instalación.Manual de usuario.
Modelo de prueba.
Prueba de caja negra.
Herramientas:
Se utilizará Enterprice Architect como herramienta visual de modelado, MySQL 5.0 como
herramienta de gestión de Base de Datos, y para el diseño del prototipo visual se hará
uso de PHP.
X. REFERENCIAS BIBLIOGRAFICA
1. POLANCO, M., 2007. UML [en línea]. Disponible en
http://mayi.polanco.googlepages.com/TRABAJODEINGSOFTWAREII.doc [accesado el
25 de Agosto 2008].
2. POOLEY, R., 2007. Utilización de Uml en Ingeniería del Software con Objetos y
Componentes, Editorial Pearson educacion , Madrid.
3. DOUG ROSENBERG et al. (2005) Agile Development with ICONIX Process-People,
process and Pragmatism. Apress
4. STALLMAN, R., 2004. Software Libre Para una Sociedad Libre. Madrid.
5. Thompson, I, 2006. El Proceso de Venta[en-línea]. Disponible en:
http://www.promonegocios.net/mercadotecnia/proceso-venta.htm [accesado el 9 de
Setiembre 2008].
6. Thompson, I. 2007. Técnicas de Venta [en-línea]. Disponible en:
http://www.promonegocios.net/venta/tecnicas-venta.html [accesado el 9 de Setiembre
2008].
7. Thompson, I., 2006. Venta [en-línea]. Disponible en:
http://www.promonegocios.net/mercadotecnia/definicion-concepto-venta.htm [accesado
el 9 de Setiembre 2008].
8. Producciones Web, 2007. Mejores practicas digitales en la empresa [en-linea].
Disponible en:
http://www.tenerunsitio.com.ar/sitio/mejorespracticas_notadesarrollada.php?
nota=041120061 [accesado el 15 de setiembre 2008].
9. WELLING, L., 2005. Desarrollo Web con Php Y MySql. 3ª, Grupo Santillana De
Ediciones SL, Madrid.
ACREDITACION DE ASESORIA
TITULO DE TRABAJO DE SUFICIENCIA PROFESIONAL:
“SISTEMA WEB PARA EL SERVICIO DE VENTA DE EQUIPOS DE COMPUTO PARA
LA EMPRESA PROCON S.A APLICANDO METODOLOGIA ICONIX”
Autores:
o Br. Cerna López, Albert Manuel
o Br. Crisologo Durand, Jorge Martin
Viernes, 03 de octubre de 2008
__________________________ ________________________
Br. Crisologo Durand, Jorge Martin Br. Cerna López, Albert Manuel
____________________________
Ing. Jara García, Carlos