Guia TI 8A Gestión de Software
Guia TI 8A Gestión de Software
Guia TI 8A Gestión de Software
DOCENTE
GESTIÓN DE SOFTWARE
NIVEL: OCTAVO
CARRERA: TECNOLOGÍAS
DE LA INFORMACIÓN
2021 – IS
UNIVERSIDAD TÉCNICA LUIS VARGAS TORRES DE
ESMERALDAS SEDE SANTO DOMINGO DE LOS TSÁCHILAS –
LA CONCORDIA
GUIA DIDÁCTICA DOCENTE DE PROGRAMACIÓN IV
PERIODO ACADÉMICO: 2020 – 1S (AGOSTO 2020 – DICIEMBRE 2020)
DATOS INFORMATIVOS
Facultad: Ingenierías. Carrera: Tecnologías de la información
Asignatura: Gestión de Software Código: TICSI223837
Nivel académico: Octavo Profesor: Ing. Javier Mendoza Loor, Mgs.
Email: [email protected] Contacto telefónico: 0993991076
INDICE DE CONTENIDOS
DETALLE DEL CONTENIDO Y METODOLOGÍA DE CONSTRUCCIÓN DE LA GUÍA 1
INTRODUCCIÓN.......................................................................................................................1
OBJETIVO GENERAL...............................................................................................................2
Conocer los conceptos de gestión de software para llevar a cabo las actividades de
planificación, organización de las aplicaciones, componentes de software, ejecución y control
del desarrollo de proyectos software............................................................................................2
UNIDAD I: Componentes de la gestión de Software...................................................................2
1.1 Introducción.............................................................................................................2
1.2 Clasificación del Software........................................................................................3
1.2.1 Software de sistema..............................................................................................3
1.2.2 Software de aplicación..........................................................................................4
1.2.3 Software de programación....................................................................................5
1.3 Gestión de Inventario de Software............................................................................6
1.3.1 ¿Por qué hacer un inventario de software?...........................................................6
1.3.2 ¿Cómo hacer un inventario de software?..............................................................7
1.3.3 Contrastar la información de los inventarios.........................................................8
1.3.4 Recopilar la información de los derechos de uso..................................................9
1.3.5 Información complementaria para conformar el inventario..................................9
1.4 Gestión de licencias y parches................................................................................10
1.4.1 Gestión de licencias de software.........................................................................11
1.4.2 Gestión de parches para sistemas operativos......................................................11
1.4.3 ¿Por qué es tan importante la gestión de licencias y parches?.............................12
1.4.4 ¿Cómo es un proceso de Gestión de Parches eficaz?..........................................13
1.4.5 Mejores prácticas de gestión de parches.............................................................15
1.5 Software como servicio (SaaS)...............................................................................16
1.5.1 ¿Qué es Software as a Service?..........................................................................16
1.5.2 Requisitos, Costo – Beneficios...........................................................................16
1.5.3 Soluciones de tecnologías SaaS..........................................................................17
INTRODUCCIÓN
La asignatura corresponde a la unidad de formación profesionalizante, al campo de
formación de la praxis profesional, de carácter teórico – práctico, para los estudiantes
de la carrera de Tecnologías de la Información, tiene como propósito conocer la
gestión de Software, planificación, organización de las aplicaciones y componentes de
software disponibles en la infraestructura de TI. Esto incluye, la planificación de
proyectos de software, mediciones en producto y proceso de software, aseguramiento
de la calidad del software.
Conocer los conceptos de gestión de software para llevar a cabo las actividades de
planificación, organización de las aplicaciones, componentes de software, ejecución y
control del desarrollo de proyectos software.
1.1 Introducción
Demasiadas cosas que hacer y poco tiempo. Esa es la típica jornada de trabajo de
un responsable de TI. El control inteligente del software aumenta su
productividad y eficiencia y ahorra tiempo al automatizar los procesos y
estandarizar los flujos de trabajo. Los resultados de las tareas terminadas
pueden documentarse fácilmente.
Es aquel que permite a los usuarios llevar a cabo una o varias tareas específicas,
en cualquier campo de actividad susceptible de ser automatizado o asistido, con
especial énfasis en los negocios. (Tecnologia e Informatica, 2021) Incluye entre
otros:
Aplicaciones ofimáticas (Office, OpenOffice)
Software educativo (Hot Potatoes, Jclic, Moodle, Dokeos, Prezi)
Software empresarial (ERP, CRM)
Bases de datos (Oracle, Mysql, sqlserver)
Telecomunicaciones (por ejemplo Internet y toda su estructura lógica,
Skype, Messenger)
Software médico (Historia Clinica Digital)
Software de Cálculo Numérico y simbólico (Matlab, Matematica)
Software de Diseño Asistido (Corel, AutoCad,PhotoShop)
Aplicaciones para Control de sistemas y automatización industrial
Software de Control Numérico (CAM)
A medida que la demanda de una gestión de parches eficaz sigue siendo más
integral, los MSP necesitan mejorar sus propios procesos y ofertas o se arriesgan
a quedarse atrás. Aquí hay tres claves para que los MSP ofrezcan servicios de
gestión de parches más inteligentes, más eficientes y más eficaces en 2021.
1) Automatice todo lo posible
La aplicación de parches es un juego en el que es muy fácil quedarse atrás, sobre
todo si todavía depende de la identificación, evaluación e implementación de
parches de forma manual. El software de gestión de parches automatizado y
basado en la nube software de gestión de parches permite a los MSP programar
escaneos de actualización regulares y garantizar que los parches se apliquen en
condiciones específicas o de forma automática.
2) Mitigar la necesidad de validar constantemente el despliegue de parches
A pesar de que la automatización de parches es cada vez más popular,
lamentablemente los MSP no siempre pueden dar por sentado que las
soluciones de parches automatizadas funcionan como se promete. Esto implica
una validación manual que requiere mucho tiempo. Desarrollar scripts o
procesos para
aliviar esa carga (o mejor aún, utilizar soluciones que no requieran una doble
comprobación) es una inversión que merece la pena.
3) Agilizar los informes
Todo lo que haga como MSP debe comunicarse como valor añadido a sus
clientes. La gestión de parches no debería ser una excepción, pero la entrega de
informes de auditoría de gestión de parches debería ser una excepción, pero la
entrega de informes de auditoría de gestión de parches debería ser los más
automática posible. Al fin y al cabo, cuanto más tiempo le lleve la elaboración de
informes, menos tiempo tendrá para ofrecer servicios adicionales y hacer crecer
su negocio.
Beneficios Requisito
Las aplicaciones de SaaS están disponibles desde cualquier equipo o dispositivo,
en cualquier momento y lugar, mediante la Cloud Computing de SaaS. Si se tiene
disponibilidad de Internet en todas partes, las plataformas de SaaS tienden a
tener altos índices de adopción, junto con prácticamente ninguna necesidad de
capacitación.
Costo
Las plataformas de SaaS tienen menores costos iniciales en comparación con el
software tradicional. Como se basan en suscripción, los costos son mucho
menores. Cuando los proveedores de SaaS administran la infraestructura de TI,
disminuyen los costos tanto de hardware y software como de mano de obra.
Beneficios
Los sistemas de SaaS permiten a las empresas regular el cumplimiento de los
requisitos de software continuamente, según sus necesidades comerciales y la
demanda de los clientes. Muchos proveedores de SaaS también ofrecen
personalización para que cada empresa pueda satisfacer necesidades
individuales. Además, muchas proporcionan interfaces para programación de
aplicaciones (API, por sus siglas en inglés), lo que permite la integración con las
aplicaciones existentes.
Dado que el proveedor gestiona todas las actualizaciones, las plataformas de
SaaS eliminan la necesidad de descargar e instalar la aplicación. El proveedor de
SaaS también se ocupa de la disponibilidad, de manera que los clientes no deban
agregar hardware, software ni ancho de banda a medida que la base de usuarios
crece.
Con el modelo de Software como Servicio, las empresas obtienen los avances y
las funciones de los modelos tradicionales de software, sin el mantenimiento
continuo ni los grandes costos iniciales (los costos de licencias son más bajos o
gratuitos). Además, el SaaS ya está instalado y configurado, lo que significa que
las empresas pueden comenzar a operar más rápidamente.
Con el SaaS, los desarrolladores pueden dar servicio de asistencia a una gran
cantidad de clientes con una única versión de un producto. Este enfoque permite
a las empresas crecer con la rapidez necesaria sin reemplazar infraestructura
costosa ni agregar personal de TI. Asimismo, el precio del SaaS basado en
suscripciones puede ayudar a mantener los costos de presupuesto de TI al
mínimo en comparación con un software local o empaquetado. Dado que
simplifica procesos y disminuye los costos de adquisición de clientes, la
popularidad del SaaS ha crecido y es probable que continúe así.
Si ha utilizado un servicio de correo electrónico basado en web, como Outlook,
Hotmail o Yahoo! Mail, entonces ya ha usado una forma de SaaS. Con estos
servicios, usted inicia sesión en su cuenta a través de Internet, a menudo desde
un explorador web. El software de correo electrónico se encuentra en la red del
proveedor de servicios, donde también se almacenan los mensajes. Puede
obtener acceso a su correo electrónico y a los mensajes almacenados desde un
explorador web en cualquier equipo o dispositivo conectado a Internet.
Los ejemplos anteriores son servicios gratuitos para uso personal. Para el uso en
una organización, puede alquilar aplicaciones de productividad, como correo
electrónico, colaboración y calendario; y aplicaciones empresariales sofisticadas,
como CRM (administración de las relaciones con el cliente), ERP (planeamiento
de recursos empresariales) y administración de documentos. Usted paga por el
uso que hace de estas aplicaciones a través de una suscripción o conforme al
nivel de uso. (Azure, 2021)
Hoy en día, Git es, con diferencia, el sistema de control de versiones moderno
más utilizado del mundo. Git es un proyecto de código abierto maduro y con un
mantenimiento activo que desarrolló originalmente Linus Torvalds, el famoso
creador del kernel del sistema operativo Linux, en 2005. Un asombroso número
de proyectos de software dependen de Git para el control de versiones, incluidos
proyectos comerciales y de código abierto. Los desarrolladores que han
trabajado con Git cuentan con una buena representación en la base de talentos
disponibles para el desarrollo de software, y este sistema funciona a la
perfección en una amplia variedad de sistemas operativos e IDE (entornos de
desarrollo integrados).
Git, que presenta una arquitectura distribuida, es un ejemplo de DVCS (sistema
de control de versiones distribuido, por sus siglas en inglés). En lugar de tener un
único espacio para todo el historial de versiones del software, como sucede de
manera habitual en los sistemas de control de versiones antaño populares, como
CVS o Subversion (también conocido como SVN), en Git, la copia de trabajo del
código de cada desarrollador es también un repositorio que puede albergar el
historial completo de todos los cambios. (Atlassian, 2020)
QGit Es una Git GUI gratuita para Linux que puede mostrar gráficamente
diferentes ramas y te permite ver el contenido del parche y los cambios en los
archivos. Con esta herramienta, puedes ver árboles de archivo, historiales de
archivos, revisiones y diferencias.
También puedes comparar archivos y cambiar visualmente el contenido
modificado con QGit. Así mismo, es posible aplicar o formatear series de parches
a partir de confirmaciones seleccionadas y mover confirmaciones entre dos
instancias de QGit.
Puedes usar la misma semántica de confirmaciones de Git para crear nuevos
parches e implementar comandos comunes de StGit. Los scripts y las secuencias
de comandos y secuencias de comandos se pueden conectar a una acción
personalizada.
Gitg La interfaz de usuario de Gitg es fácil de usar. Puedes abrir repositorios Git
existentes guardados en tu computadora. Puedes descargar el software de forma
gratuita y tiene una licencia GPLv2. Los repositorios remotos también se pueden
ver usando Gitg.
Gitg te permite realizar operaciones Git comunes, examinar confirmaciones y
obtener una vista previa de los archivos. Puedes ver mensajes de confirmación,
confirmaciones sin seguimiento y sin etapas a través de la vista de confirmación.
La desventaja de esta herramienta es que los archivos grandes tienden a
cargarse más lentamente y no muestra el historial de un proyecto.
Git Force Es una herramienta visual frontal para Git que se ejecuta tanto en Linux
como en Windows, y es de descarga gratuita. Este software ayudará a los
principiantes ya que la interfaz es intuitiva con una función de arrastrar y soltar,
y se puede usar sin llamar a una herramienta Git de línea de comandos.
Puedes crear múltiples repositorios y ramas de Git, administrándolos todos con
Git Force. La herramienta puede soportar uno o más repositorios remotos y
puede escanear rápidamente los puntos locales.
El trabajo que realices en un repositorio de git será recogido por Git Force en la
primera actualización. Sin embargo, solo funciona con los comandos Git más
comunes y, por eso, no guarda información de estado detallada.
El Despliegue de software son todas las actividades que hacen que un sistema de
software esté disponible para su uso.
El proceso de implementación general consiste en varias actividades
interrelacionadas con posibles transiciones entre ellas. Estas actividades pueden
ocurrir en el lado del desarrollador de software o en el lado del consumidor o en
ambos. Debido a que cada sistema de software es único, los procesos o
procedimientos precisos dentro de cada actividad difícilmente pueden definirse.
Por lo tanto, la "implementación" debe interpretarse como un proceso general
que debe personalizarse de acuerdo con los requisitos o características
específicos
TEMAS DE EXPOSICIÓN
2.1 Introducción
El jefe de proyecto y el cliente y/o usuario negocian los compromisos mutuos, los
cuales se establecen sobre la base de los requerimientos del producto de
software y objetivos del proyecto.
Los problemas más comunes que enfrentan hoy en día los proyectos de
desarrollo de software, tales como: retrasos en la entrega del producto final,
aumento de los costos de desarrollo y mantenimiento y escasa calidad del
software, se deben principalmente a una mala o escasa planificación. Las
principales causas de las fallas en la planificación de proyectos de desarrollo de
Software son las siguientes:
Inadecuada definición del proyecto.
Comprensión errónea del problema.
Desconocimiento o inexperiencia de cómo planificar.
Incumplimiento del ciclo de planificación.
Escasa negociación de compromisos con el usuario al inicio del proyecto
Definición incompleta de los requerimientos.
Estimaciones optimistas.
Supuestos y restricciones del proyecto inválidos o no verificados.
Aplicación errónea o no-utilización de la información histórica de la
organización.
Mala administración del proyecto.
Fallas en el uso de los planes.
Carencia de control de cambios.
Escasa motivación.
Estilo erróneo de liderazgo.
Carencia de control y gestión.
Organización errónea del grupo de trabajo.
Esta fase trata de aclarar qué es lo que un sistema debe de hacer. Describe la
función y el rendimiento del sistema y las restricciones que gobernarán su
desarrollo. También describe la información (control y datos) que sirve de
entrada y salida al sistema. Es evidente que, en esta etapa, el sistema objetivo
está sujeto a muchos cambios antes de que sea realmente implantado.
Las especificaciones del proceso y los productos “se crean para”, “se usan en”,
“son afectadas por” y “son modificadas durante” cada fase en particular. Las
fases de acuerdo al modelo adoptado son: necesidades del Software,
requerimientos del cliente, requerimientos del diseñador, diseño del Software y
construcción. Se pueden incluir otras fases: verificación y validación, integración,
mantenimiento y entrenamiento.
Propósito y Contexto.
La especificación describe todas las características importantes de un producto o
proceso particular en algún formato. Las características deseables, así como el
formato adecuado para representarlas, están determinadas por el propósito y
contexto del tipo dentro del proyecto de desarrollo de Software.
Tipo de Aplicación.
El tipo de aplicación tiene un fuerte impacto en los productos y procesos que
necesitan ser especificados. Las posibles clasificaciones son basadas en las
características de los flujos de control del Software (secuencial, concurrente,
tiempo real), o basadas en la aplicación (comercial, sistemas, control de
procesos, científica, integrada).
Requerimientos de calidad.
Estas características tienen impactos en los aspectos que deben ser especificados
y en sus atributos. Algunas características posibles son: confiabilidad, correctitud,
tolerancia a fallas, mantenibilidad, portabilidad, amigabilidad, disponibilidad.
vida Comunicación.
La existencia de las especificaciones permite que los miembros del equipo
alcancen un consenso acerca de sus roles, haciendo explícitos los objetivos,
contexto y procedimientos del proyecto. Son un medio para enseñar y entrenar
al personal.
Creación de productos.
Muchas de las tareas de un proyecto están orientadas a crear, en una forma
trazable, instancias de un tipo de producto en otro (por ejemplo, un producto del
diseño a partir de los requerimientos del Diseñador). Las especificaciones
explícitas para los tipos de productos y los procesos creativos, ayudan a guiar y
controlar las tareas. Si todas las especificaciones son completas y formales, el
producto deseado puede ser creado automáticamente.
Contenido.
El contenido se caracteriza por aquellos aspectos y atributos necesarios para el
producto o proceso.
Aspectos especiales.
Se requieren algunas definiciones previas para caracterizar el contenido tanto del
producto como del proceso.
Dinámica. Característica relativa al uso. En un proceso pueden ser
capturadas durante su ejecución, por ejemplo, el conjunto de decisiones
tomadas por el diseñador o datos históricos sobre la cantidad de tiempo
requerida para el diseño en proyectos pasados.
Estática. Características de un objeto relativo a su representación. Las
características estáticas de un proceso tienen que hacerse durante su
especificación (los pasos en un proceso de Diseño) Los aspectos estáticos
en un producto se describen en el producto en sí y en sus
especificaciones (estructura de datos o estructuras de control
algorítmicas).
Funcionales. Características de un objeto de cualquier tipo relativo a sus
requerimientos de funcionamiento. (funciones como almacenar y
recuperar).
No funcionales. Se identifican al analizar cómo son provistos los servicios
por el objeto (una de las funciones del producto debe ser provista en un
tiempo menor que “t”, el producto del diseño debe ser obtenido para un
determinado proceso dentro de un lapso de tiempo y presupuesto dado).
Externa. Característica de un objeto visto como caja negra.
Interna. Característica de un objeto visto como caja blanca.
Se utilizarán estas definiciones para caracterizar y explicar aspectos del producto
o proceso que se desean establecer en las especificaciones.
Comportamiento (externo, dinámico): La respuesta externa observable
del producto o proceso frente a un estímulo estando en uso real. Puede
incluir estados externos observables, salidas o condiciones de borde en la
validez de entradas y estados.
Interfaces (externa, estática): La estructura de la frontera entre el
producto o proceso y su ambiente.
Flujo (interno, dinámico): La dinámica interna de un producto o proceso
en uso. Esto puede incluir los flujos de control, data, e información entre
las unidades estructurales del producto o proceso.
Estructura (interna, estática): La organización de un producto o proceso
en partes interactuantes. Incluye la descomposición en unidades básicas.
La estructura de datos, algorítmico, o de arquitectura, así como las
interfaces internas entre superestructuras, es de interés.
Atributos.
En general cada uno de los aspectos anteriores puede ser representado en una
variedad de formas. El propósito y contexto del producto o tipo de proceso de
interés, requieren una forma adecuada para mostrar ciertos atributos. Por
ejemplo, si el flujo de datos de un producto de diseño necesita ser validado, se
puede especificar que su representación necesita exhibir los atributos de
consistente y ejecutable.
Representación.
Ciertos aspectos del Software deben ser representados de manera de exhibir
los atributos deseados. El formato de representación usado se basa en modelos y
lenguajes. Los modelos permiten la formulación de aspectos de interés. Los
lenguajes permiten un reflejo fiel de esos modelos en una forma tal que muestra
los atributos deseados. Algunos modelos son:
Modelos funcionales.
Input - output, algebraicos, axiomáticos.
Modelos de estado finito.
Cartas de estado.
Modelos de estímulo repuesta.
Modelos de redes de Petri.
Modelos de estructura de datos.
Modelos de flujo de información.
Modelos de estructura de datos.
Modelos entidad relación.
Modelos relacionales.
Lenguajes.
Se distinguen entre Formales, semiformales e informales. Hay diferentes
paradigmas de lenguajes: imperativo, declarativo u orientado a los datos. La
elección del lenguaje se acota con el problema, las habilidades del equipo de
desarrollo y los requerimientos específicos del cliente.
Soporte.
Es necesario tener un soporte eficaz para crear las especificaciones.
UNIDAD III: Mediciones en producto y proceso de Software.
3.1 Introducción
Investigar
Laboratorio de la Unidad 3:
4.1 Introducción
Laboratorio Unidad
.
Puntualidad
Entrega en el plazo
Excelente (2 puntos) Avanzado (1,5 puntos) Aceptable (1 punto) Mejorable (0,5 punto)
El trabajo se entrega en la El trabajo se entrega un El trabajo se presenta El trabajo no se presenta.
fecha y hora establecida, poco más tarde respecto a fuera de fecha.
incluso antes. la fecha y hora
establecida.
Rúbrica 2: Para evaluar actividad de laboratorio
Rúbrica: Evaluación de actividad de laboratorio Valor: 10 puntos
Estructura
Estructura y modelado
Excelente (2 puntos) Aceptable (1,5 puntos) Suficiente (1 punto) Mejorable (0,5 punto)
El laboratorio contiene El laboratorio contiene la El laboratorio se aleja El laboratorio no
la estructura y el estructura y el modelado de la estructura y el contiene la estructura
modelado solicitados solicitados por el tutor, modelado solicitados por ni el modelado
por el tutor, además no presenta mejoras. el tutor, se presumen solicitados por el tutor.
presenta mejoras mejoras. No hay mejoras
Funcionalidad
Ejecución y funcionamiento
Excelente (2 puntos) Aceptable (1,5 puntos) Suficiente (1 punto) Mejorable (0,5 punto)
El laboratorio funciona El laboratorio funciona El laboratorio El laboratorio no
correctamente, no correctamente, presenta funciona funciona correctamente,
contiene errores en la pocos errores en la parcialmente, presenta presenta muchos errores
ejecución, cumple con ejecución, cumple con pocos errores en la en la ejecución, no
el el ejecución, cumple
objetivo de la objetivo de la medianamente el objetivo cumple el objetivo de la
misma. misma.
de la misma.
misma.
Código ordenado y entendible Programación
Excelente (2 puntos) Aceptable (1,5 puntos) Suficiente (1 punto) Mejorable (0,5 punto)
Desarrolla un código Desarrolla un código Desarrolla un código poco Desarrolla un código
ordenado, utiliza buenas bastante ordenado, utiliza ordenado, no utiliza desordenado, no utiliza
prácticas de programación, pocas prácticas de prácticas de programación, prácticas de
es de fácil entendimiento. programación, es de es de mediano programación, es de
fácil entendimiento. difícil entendimiento.
entendimiento.
Diseño
Originalidad en el diseño
Excelente (2 puntos) Aceptable (1,5 puntos) Suficiente (1 punto) Mejorable (0,5 punto)
Nivel adecuado de El diseño se presenta de El trabajo es copia de El trabajo es similar o
originalidad en el forma original, en su otro diseño, es de poca idéntico a otros trabajos
diseño, tiene gran mayoría de elaboración propia. No presentados.
elaboración propia. No elaboración propia. No es similar a otros
es similar a otros es similar a otros trabajos presentados.
trabajos presentados. trabajos presentados.
Puntualidad
Entrega en el plazo
Excelente (2 puntos) Avanzado (1,5 puntos) Aceptable (1 punto) Mejorable (0,5 punto)
El Laboratorio se entrega El Laboratorio se entrega El Laboratorio se presenta El Laboratorio no se
en la fecha y hora un poco más tarde fuera de fecha. presenta.
establecida, incluso antes. respecto a la fecha y hora
establecida.
Rúbrica 3: Para evaluar actividades grupales.
Rúbrica: Trabajos grupales Valor: 10 punto
Secuencia
nte (2 puntos) Aceptable (1,5 puntos)Suficiente (1 punto)Mejorable (0,5 pu
as principales y secundarias Las
del ideas
grupo,principales
están presentadas
Las
y secundarias
ideas en
principales
undel
orden
grupo,
yLas
lógico.
están
ideaspresentadas
princ secundarias
en undel grupo,secundaria presentan poca secuencia carecen
ntos)Suficiente (1 punto) Presenta un organizadorPresenta un organizadorPresenta un organi de texto y gráfico original de texto y gráfico algode texto y
e innovador.innovador y armónico.or
Calidad de la info
Excelente (2 p
El Laborato en la fec estab
La Concordia, 2021/08/30
Ing. Javier Mendoza, Mgs. Ing. Miguel Boné, Mgs. Dr. Jorge Puyol, Msc.
DOCENTE ASIGNATURA RESPONSABLE DE DIRECTOR DE
CARRERA EXTENSIÓN