Está en la página 1de 24

UNICAH

UNIVERSIDAD CATOLICA DE HONDURAS

“NUESTRA SEÑORA REINA DE LA PAZ”

CAMPUS GLOBAL

CLASE

DESARROLLO DE SOFTWARE

CATEDRATICO

ING. LIZETH ARACELY RODRIGUEZ

TEMA

AVANCE SEMANA 2

ALUMNOS

FERNANDO MENDOZA 0321-2002-00561

FRANCISCO SANTOS 0318-1999-01295

ANGELICA RAMOS 0318-2004-01014

SELVIN MEJÍA 0306-2001-00233

CARLOS MEJÍA 0318-2003-00339

WILSON GOMEZ 0301-2003-01774

SECCIÓN

0802

FECHA DE ENTREGA

28 de enero de 2022
Semana 1 (Creación del Grupo)

Nombre del Equipo: Diáfano Bookstore

Líder del Equipo: Fernando Mendoza, se utilizarán distintos medios de comunicación


para la asignación de actividades y se evaluará a los compañeros en puntualidad,
desempeño personal en las actividades, participación y espíritu de trabajo.

DBMS: SQL Server – SQL Server Management Studio (Selvin Mejía)

DDL: Los proporcionados por nuestro DBMS

DCL: Los proporcionados por nuestro DBMS

DML: Los proporcionados por nuestro DBMS

Respaldo: Servicios en Nube y GitHub asignados a una hora especifica, realizados día
de por medio.

Esquema de Distribución

Investigación tecnológica:
Escáner de Códigos de Barra
Es un dispositivo electrónico que por medio de un láser lee el código de barras y emite
el número que muestra el código de barras, no la imagen. Básicamente, consiste en el
escáner propiamente dicho (que mediante un láser lee el código), un decodificador y un
cable o antena wifi que actúa como interfaz entre el decodificador y el terminal o la
computadora.

La función del escáner es leer el símbolo del código de barras y proporcionar una salida
eléctrica a la computadora, correspondiente a las barras y espacios del código de barras.
Sin embargo, es el decodificador el que reconoce la simbología del código de barras,
analiza el contenido del código de barras leído y transmite dichos datos a la
computadora en un formato de datos tradicional. Tiene varios medios de conexión: los
más modernos por orden de aparición USB, bluetooth, wifi, los más viejos puerto serie,
incluso directamente al puerto PS2 del teclado por medio de un adaptador, cuando se
pasa un código de barras por el escáner es como si se hubiese escrito en el teclado el
número del código de barras.

XML o Web Services o Sincronización para aplicaciones fuera de Línea


Un Web Service es un componente de software que se comunica con otras aplicaciones
codificando los mensaje en XML y enviando estos mensaje a través de protocolos
estándares de Internet tales como el Hypertext Transfer Protocol (HTTP).
Intuitivamente un Web Service es similar a un sitio web que no cuenta con un interfaz
de usuario y que da servicio a las aplicaciones en vez de a las personas. Un Web
Service, en vez de obtener solicitudes desde el navegador y retornar páginas web como
respuesta, lo que hace es recibir solicitudes a través de un mensaje formateado en XML
desde una aplicación, realiza una tarea y devuelve un mensaje de respuesta también
formateado en XML.

Requisitos de un Web Service

 Interoperabilidad
 Amigabilidad con Internet
 Interfaces fuertemente tipadas
 Posibilidad de aprovechar los estándares de Internet existentes
 Soporte para cualquier lenguaje
 Soporte para cualquier infraestructura de componente distribuida
WCF
WCF es un modelo de programación para el desarrollo de aplicaciones con arquitectura
orientada a servicios (SOA). Aplicaciones distribuidas basadas en la comunicación
mediante mensajes.

Principales Características

Una aplicación WCF está compuesta por:

Clientes: Son aplicaciones que inician la comunicación.

Servicios: Son aplicaciones que esperan los mensajes de los clientes y responden a los
mismos.

Los mensajes son enviados entre endpoints. Un endpoint (veremos más adelante un
poco más detallado este concepto ) es un lugar donde un mensaje es enviado, o recibido,
o ambos.

Un servicio expone uno o más application endpoints, y un cliente genera un endpoint


compatible con uno de los endpoints de un servicio dado.

La combinación de un servicio y un cliente compatibles conforman un communication


stack.

Aplicaciones Peer-to-Peer
Una red P2P o 'peer to peer' es un tipo de conexión con una arquitectura destinada a la
comunicación entre aplicaciones. Esto permite a las personas o a los ordenadores
compartir información y archivos de uno a otro sin necesidad de intermediarios. El
origen de esta red tal y como la conocemos hoy en día se remonta a 1999, cuando
Internet comenzaba su expansión y aterrizaba en los hogares. En mayo de ese año, un
programador estadounidense que tenía problemas para encontrar la música que quería,
Shawn Fanning, creó Napster, una aplicación virtual para compartir archivos .mp3 entre
usuarios totalmente independiente de una red física.

WPF
Windows Presentation Foundation (WPF) es una tecnología de Microsoft, presentada
como parte de Windows Vista. Permite el desarrollo de interfaces de interacción en
Windows tomando características de aplicaciones Windows y de aplicaciones web.
WPF ofrece una amplia infraestructura y potencia gráfica con la que es posible
desarrollar aplicaciones visualmente atractivas, con facilidades de interacción que
incluyen animación, vídeo, audio, documentos, navegación o gráficos 3D. Separa, con
el lenguaje declarativo XAML y los lenguajes de programación de .NET, la interfaz de
interacción de la lógica del negocio, propiciando una arquitectura Modelo Vista
Controlador para el desarrollo de las aplicaciones. WPF se incluye a partir de Windows
Vista y también está disponible para Windows XP Service Pack 2 o posterior y
Windows Server 2003, se puede utilizar la tecnología de Microsoft Silverlight es un
subconjunto de WPF que permite crear aplicaciones similares a Flash para web y
móviles, con el mismo modelo de programación que las aplicaciones .NET. No admite
funciones 3D, pero permite XPS y planos basados en vectores

GitHub
En resumen, GitHub es un servicio basado en la nube que aloja un sistema de control de
versiones (VCS) llamado Git. Éste permite a los desarrolladores colaborar y realizar
cambios en proyectos compartidos, a la vez que mantienen un seguimiento detallado de
su progreso.

El control de versiones es un sistema que ayuda a rastrear y gestionar los cambios


realizados en un archivo o conjunto de archivos. Utilizado principalmente por
ingenieros de software para hacer un seguimiento de las modificaciones realizadas en el
código fuente, el sistema de control de versiones les permite analizar todos los cambios
y revertirlos sin repercusiones si se comete un error.

Una de las herramientas más importantes con las que cuenta GitHub son los
repositorios, un repositorio se utiliza normalmente para organizar un solo proyecto. Los
repositorios pueden contener carpetas y archivos, imágenes, vídeos, hojas de cálculo y
conjuntos de datos, cualquier cosa que tu proyecto necesite. A menudo, los repositorios
incluyen un archivo README, un archivo con información sobre tu proyecto. GitHub
hace que sea fácil añadir uno al mismo tiempo que creas tu nuevo repositorio. También
ofrece otras opciones comunes, como un archivo de licencia.

Lenguaje de Programación

Coordinador: Francisco Santos.

El lenguaje de programación escogido para el proyecto es C#


Estándares de Desarrollo
Programación: C#

Base de Datos: SQL Server

Sistema Operativo: Windows 10/Windows 11

Conexión a la Base de Datos

Se utilizará una “Clase” para la conexión la cual contendrá una variable tipo cadena.
Semana 1 (Documento del Proyecto)

Descripción del Proyecto

El proyecto a realizar consta de un sistema destinado para su uso en una librería ubicada
en Siguatepeque, Comayagua. Consta con la capacidad de almacenar y automatizar
diferentes módulos de la biblioteca como ser el Inventario, las Ventas, los Encargos y
las Metas a alcanzar existentes entre el personal de la tienda. La meta principal del
proyecto es facilitar las tareas realizadas a diario en la librería ya que esta no cuenta con
ningún tipo de servicio automatizado.
Descripción de Usuario e Interesados

Por parte de los Stakeholders Internos se puede mencionar al propietario de la tienda, al


gerente y a los empleados, siendo estos dos últimos los principales usuarios del sistema
a desarrollar y además tendrán la ventaja de ver la información de la tienda de forma
más ordenada y rápida ya que la tendrán toda en un mismo lugar. Como Stakeholders
Externos tenemos a los proveedores y a los clientes de la librería, los proveedores
podrán agilizar los procesos de ventas a nuestra librería, por parte de los clientes estos
obtendrán mayor rapidez al momento deber atendidas sus compras y sus encargos.

Alcance del Sistema

El sistema es uno de manejo de almacenamiento de libros de la misma manera que un


sistema de venta para el mismo, de esta manera se está pensado hace un sistema de
inventariado de los libros por código de barra para tener un mejor control de lo que hay
en inventario al igual que un sistema de facturación para las ventas de los mismo, con
un sistema de metas que se usara para ver el crecimiento en ventas que está teniendo la
librería dejando de esta manera un control muy específico de lo que es todo el manejo
de operaciones dentro de la librería y facilitar de esta manera a la emprenderá a manejar
y sabes su situación actual con la que cuenta su empresa.
Resumen Funcional

Lo que se intenta hacer es un sistema de sistema de inventario con las diferentes


categorías de los libros y revistas, gestioná ndolos por medio de có digos de barra
para así tener un mejor control y tener y amplio conocimiento de lo que está en
bodega al mismo tiempo tenerlo bien ordenado para que sea de su fá cil bú squeda,
también lo que es un sistema de inventariado donde se realizaran las ventas de
libro con todos los procesos de descuentos o promociones y también modificando
los libros que sean adquiridos para actualizar lo que está en bodega y llevar un
control del ingreso monetario y saber quién realizo las ventas y en qué hora, y por
ú ltimo se realizara un sistema de metas donde la administradora pondrá metas a
los empleados al mismo tiempo que ellos también pueden solicitar las personales
para así ver la participació n de los empleados y poder ver las ventas generadas por
los mismo y dar incentivos por logras las metas propuestas.
Matriz de posibles riesgos y plan de mitigación.

Daños en equipos fundamentales para la operación. (Riesgo 1)


Fallas en el suministro de servicios públicos. (Riesgo 2)
Problemas personales. (Riesgo 3)
Mala estimación de tiempos. (Riesgo 4)
Confiar demasiado en tecnologías-herramientas no exploradas previamente.(Riesgo 5)
Falta de motivación. (Riesgo 6)
Diseño inadecuado. (Riesgo 7)
Planificación y control inadecuado. (Riesgo 8)
Representación gráfica de todos los riesgos valorados previamente

Frecuente Riesgo 2

Probable Riesgo 5

Ocasional Riesgo 3 Riesgo 8 Riesgo 4

Posibilidad baja Riesgo 6 Riesgo 1


FRECUENCIA
Improbable Riesgo 7

Insignificante Menor moderado Mayor Catastrófico

IMPACTO
Plan de mitigación
 Respaldo en la nube, GitHub en donde todos los integrantes tengan acceso.
(Riesgo 1)
 Dispositivos cargados adecuadamente, movilización a áreas donde no tengan
fallas en el suministro de servicios públicos.(Riesgo 2)
 Buena comunicación entre los integrantes del equipo.(Riesgo 3)
 Coordinar adecuadamente cada actividad. (Riesgo 4)
 Explorar cada tecnología-herramienta nueva que pensemos implementar en
nuestro trabajo. (Riesgo 5)
 Apoyarnos y animarnos unos a otros, cuando se trata de equipos de trabajo, la
motivación es un aspecto crucial a tener en cuenta y cuidar en los miembros de
un equipo, para obtener los mejores resultados posibles.(Riesgo 6)
 Analizar, planificar correctamente que diseño utilizaremos.(Riesgo 7)
 Gestionar y analizar debidamente, para lograr una planificación y control
adecuado.(Riesgo 8)

Glosarios de términos, acrónimos y definiciones

Hosting: Es el servicio que provee almacenamiento de información, imágenes, vídeo, o


cualquier contenido accesible vía Web.

Software: En el mundo de la programación se le conoce como software a cualquier


programa de computadora. Una aplicación móvil, un sistema operativo, una página web,
un programa de escritorio, todo eso se le conoce como software.
Framework: Un framework proporciona una manera estándar de crear aplicaciones.
Consiste de muchas soluciones predefinidas para funcionalidades comunes que son
utilizadas para ayudar a crear aplicaciones de software de manera más rápida y
estandarizada.

CRUD: Son las iniciales de Create, Read, Update, Delete que en español significan
Crear, Leer, Actualizar, Eliminar. CRUD es un Paradigma usado en la mayoría de
procesos de una aplicación.

Scrum: Es una metodología de desarrollo ágil. Durante un sprint (o iteración), los


miembros del equipo se auto-organizan para realizar las tareas que les corresponde. Al
finalizar el sprint, los miembros del equipo revisan las tareas finalizadas y definen las
tareas que se deben de hacer en la siguiente iteración.

Desrrollador Front-End: El desarrollador Front-End hace todo lo que el usuario ve en


la página.Le da el diseño a las páginas web a través de herramientas como HTML y
CSS. Con estas herramientas ellos pueden modificar el color de fondo, los tipos de
fuente, el color de las letras o la estructura de texto en una página.
Desarrollador Back-End: A diferencia del Front-End, el desarrollador Back-End crea
todos los procesos de código de una página que el usuario no puede ver. Los
desarrolladores Back-End manejan la base de datos de las páginas y la lógica de una
página web.

Desarrollador Full-Stack: Los desarrolladores Full-Stack son perfiles híbridos que


conocen las herramientas que usa el programador Front-End y Back-End. Pueden hacer
desde el diseño de una página web hasta manejar la base de datos y procesos de la
página.

Desarrollador Móvil: Los desarrolladores móviles crean apps para celulares o tablets
para sistemas operativos como Android o iOS. Los desarrolladores de aplicaciones para
iOS trabajan con el lenguaje de programación Swift. Mientras que los desarrolladores
móviles para Android trabajan con Kotlin o Java.

Tester: El Tester o QA (Quality Assurance): planifica y lleva a cabo pruebas de


software para comprobar si un programa de computadora funciona correctamente.
Buscan riesgos de sufrir errores de un software, detectan incidencias y los comunican al
equipo de programadores. Evalúan el funcionamiento general del software y sugieren
formas de mejorarlo.

SysAdmin: Son responsables del mantenimiento, la configuración y el funcionamiento


confiable de los sistemas y servidores informáticos. Instalan hardware y software y
participan en la investigación y el desarrollo para mejorar continuamente y mantenerse
al día con las necesidades comerciales de TI de su organización.

Administrador de base de datos o DBA (Database Administrator): El


Administrador de Base de Datos es el encargado de crear una base de datos en la que las
empresas puedan guardar toda la información que generan.

Analista de Sistemas o Business Analyst: El Analista de Sistemas es la conexión entre


el cliente que solicita un programa y el equipo de tecnología que lo va a desarrollar.
Analiza el programa que el cliente solicita, determina si el proyecto es viable con las
tecnologías disponibles y le comunica al equipo de desarrollo los requerimientos con los
que debe cumplir el programa. Además se asegura que el programa alcance las
expectativas del cliente.

Bootstrap: Es un framework web front-end de código abierto gratuito para diseñar


sitios web y aplicaciones web. Hace que crear sitios web sea muy fácil, empodera a los
diseñadores para seleccionar de una gran colección de elementos pre-creados,
comportamientos y atajos. El objetivo es unificar el diseño y permitirles a los
diseñadores no técnicos y técnicos mejorar la calidad de su diseño.

Testing Pruebas de software: Las pruebas de software son un conjunto de procesos


con los que se pretende probar un sistema o aplicación en diferentes momentos para
comprobar su correcto funcionamiento

GitHub: Es un servicio de alojamiento popular de Git. Es usado principalmente para


programar. Además de Git, proporciona varias características de colaboración tales
como seguimiento de errores, solicitudes de funciones, gestión de tareas y wikis.
Servidor de automatización: Ayuda a automatizar la parte no humana del proceso de
desarrollo de software con integración continua y facilitando aspectos técnicos de
entrega continua. Ejemplos: Jenkins, Bamboo o TeamCity.

Integración continua: La integración continua es una práctica de desarrollo de


software mediante la cual los desarrolladores combinan los cambios en el código en un
repositorio central de forma periódica, tras lo cual se ejecutan versiones y pruebas
automáticas.

Multiplataforma: Es un atributo que se le confiere a programas informáticos o


métodos y conceptos de cómputos que son implementados o interoperan en múltiples
plataformas informáticas. Puede dividirse en dos tipos: uno de ellos requiere una
compilación individual para cada plataforma que le de soporte y el otro puede ejecutarse
directamente desde cualquier plataforma sin ningún tipo de preparación especial. Una
plataforma de software puede ser un sistema operativo o un entorno de programación,
pero por norma general se trata de una combinación de ambos. Algunos ejemplos de
plataforma software pueden ser Android, Linux, iOS, etc.

Acrónimos
Diseñador UI/UX:Para entender este perfil, primero debemos de entender qué
significan sus acrónimos. UI significa User Interface (o Interfaz de usuario), es lo que el
usuario puede ver en una aplicación. Mientras que UX es User Experience (o
Experiencia de Usuario) y es lo que el usuario siente cuando usa una aplicación. Un UI
Designer diseña cómo se va a ver la página web o app en todos los dispositivos como
computadora, celular y tablet. Son perfiles con bases fuertes en diseño, hacen que la
aplicación se vea bien. Ellos deciden dónde va a ir la barra de búsqueda, donde van a
estar los botones, el color de fondo de una sección, los iconos que se van a usar en la
página, el color de los enlaces, entre otros elementos de diseño.
GUI: Es la abreviatura de Graphic User Interface o interfaz gráfica de usuario.Es
cualquier artefacto gráfico que permite a los usuarios interaccionar con una aplicación
usando iconos, botones, indicadores visuales, etc. en contraste con las interfaces más
tradicionales basadas en texto, o las más avanzadas actualmente basadas en la voz o en
la interacción mediante movimientos.

WYSIWYG: Este se utiliza para describir cualquier sistema que permite crear algún
contenido viendo al mismo tiempo cómo va a quedar cuando esté funcionando. El caso
más habitual es un editor de texto enriquecido en el cual, a medida que escribimos,
vemos exactamente cómo quedará el resultado final cuando lo vayamos a imprimir o
convertir a un formato transportable. Un buen ejemplo sería un editor como Microsoft
Word o Google Documents.Su significado es "What You See is What You Get" ("Lo
que ves es lo que obtienes", en español), y se pronuncia "guaysigüij".
API: Se refiere a las interfaces de programación de aplicaciones o Application
Programming Interfaces. Es cualquier conjunto de funciones y métodos que se exponen
por parte de un programador para que lo utilicen otros programadores, bien
referenciando directamente una biblioteca o bien exponiéndolo a través de algún
protocolo (por ejemplo HTTP para acceder a través de internet), etc...Una característica
importante de una API es que es independiente de la implementación que haya debajo.
Es decir, una API es como una caja negra para el programador que la usa, de modo que
mientras no cambie la parte expuesta, lo que se haga por debajo y cómo se haga es
indiferente.

IDE: Un Entorno Integrado de Desarrollo o IDE (del inglés Integrated Development


Environment) es una aplicación para desarrollar aplicaciones y que va mucho más allá
de lo que ofrece un simple editor. Ofrece muchas herramientas avanzadas para
ayudarnos en nuestro trabajo, tales como depuradores, diseño visual, análisis de
rendimiento, testeo de aplicaciones, herramientas de colaboración, inspectores de
objetos y de clases, integración con otras herramientas…
SDK: Un SDK es un Kit de Desarrollo de Software (Software Development Kit). Se
trata de un conjunto de APIs (ver antes), ejemplos de código y documentación que los
fabricantes de software entregan a otros programadores para que puedan desarrollar
para alguna plataforma. Por regla general los SDKs se lanzan para un sistema operativo
(Windows, iOS, Android...), una plataforma de desarrollo (como .NET, Java) o una
consola de juegos (XBox), por poner ejemplos comunes.

OOP o POO: Este es uno de los pocos acrónimos que se traducen y se usan en su
versión en español. Se trata de la Programación Orientada a Objetos (POO) o en inglés
Object Oriented Programming (OOP). Es necesario conocer ambos pues se usan
habitualmente.Se refiere a un paradigma de programación en el que el código se crea
definiendo "objetos" que simulan objetos reales y su comportamiento e interaccionan
con otros objetos.La POO se basa en varios principios que todo lenguaje debe cumplir
para trabajar con objetos, como son la encapsulación, la herencia y el polimorfismo.La
mayoría de los lenguajes de programación modernos incluyen la POO entre los
paradigmas que soportan.
SCM o VCS: Ningún programador que se precie debería trabajar sin usar un sistema de
control de código fuente o Source Control Management, también conocido por Version
Control System (sistema de control de versiones). Verás por ahí que se utilizan
indistintamente los dos términos, pero en ambos casos se refieren a lo mismo. Se trata
de un sistema que permite almacenar el código fuente de los programas así como
cualquier otro archivo relacionado que utilicemos, y monitoriza y guarda todos los
cambios y versiones diferentes de cada archivo que se hayan guardado explícitamente.

TDD: Este término se refiere al desarrollo guiado por pruebas o Test Driven
Development.Un desarrollo guiado por pruebas implica testear/probar todo el código
que escribes para asegurar que funciona, que cubre todos los casos y que no interfiere
con otras partes de la aplicación que en principio puede que no hubieras tenido en
cuenta.
UX: Es un término utilizado para el nivel de satisfacción del usuario cuando utiliza un
producto o sistema, así como su interacción con el mismo. Tradicionalmente, este
término se aplicaba a los sistemas informáticos y en particular al diseño de páginas web
pero hoy en día se ha visto ampliada a otros campos.
Los elementos que participan en la UX (Experiencia del Usuario) son el diseño visual,
el diseño de la interfaz, diseño de la navegación, diseño de la información, diseño de la
interacción, la arquitectura de la información, las especificaciones funcionales los
requerimientos de contenidos, las necesidades del usuario y los objetivos del sitio.
Exposición de la problemática que busca resolverse

El problema que se busca a resolver en este desarrollo de software para una biblioteca
es:
 Que se tenga un mayor control en la biblioteca.
 Saber la cantidad de “x” libros en stock.
 Involucrar la tecnología hoy en día para una biblioteca.
 Facilitar la búsqueda de los libros y saber su estado.
 Que el SO sea eficiente y no tarde en cargar la información.
 Trabajar con método de pago en línea.
 Facilitar los libros no disponibles en la ciudad local.

Lista preliminar de requerimientos funcionales.

Los requerimientos funcionales de un sistema, son aquellos que describen cualquier


actividad que este deba realizar, en otras palabras, el comportamiento o función
particular de un sistema o software cuando se cumplen ciertas condiciones.

 Descripciones de los datos a ser ingresados en el sistema: El campo de monto


acepta únicamente valores numéricos con dos decimales, al igual, en los campos
que son de tipo carácter, no se permite información de tipo numérico.
 El sistema controlará el acceso Este permitirá solamente a usuarios autorizados.
Los usuarios deben ingresar al sistema con un nombre de usuario y contraseña.
 La pantalla de registro de pago puede imprimir los datos en pantalla a la
impresora.
 El software podrá ser utilizado en el sistema operativo Windows.
 El proceso de alquiler de libros en el sistema abarcará los siguientes pasos:
Ingreso de pedido de alquiler, emisión de orden de entrega y llegada, facturación
y cobranza.
 Al seleccionar un ítem, se mostrará su descripción y su precio. Se podrán
realizar búsquedas por nombre o código.
Prioridades del usuario

Un usuario dentro de una labor tiene prioridades que le ayudarían a su rendimiento,


unas de esas prioridades serian:
 Facilidad De Manejo: Que su manejo sea fácil, sin tantas complicaciones al
momento de buscar o sacar información.
 Recursos Al Dia: Que la información se mantenga actualizada, que no haya
recursos que sean viejos y sin utilidad en el programa.
 Actualizaciones Necesarias: Que el software se actualice según sea necesario,
siempre y cuando sea para mejorar su uso.
 Interfaz Agradable: La interfaz agradable es que no este muy saturada de
iconos de información la ventana donde se encuentre el usuario, que sea
agradable a la vista.
 Información Real: La información que se encuentre en el software tiene que ser
real, que todo esté en ley, que no haya ningún plagio de información.
 Usuario Según Su Rol En La Empresa: A esto nos referimos al momento del
Login, obviamente el administrador el podrá tener acceso a todo lo del software,
mediante que los empleados normales su manipulación del software será
restringida.
Ayudas de Memoria o Actas de Reuniones

También podría gustarte