Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Software
Según Pressman, R. 2010 “El software de computadora es el producto que construyen los
programadores profesionales y al que después le dan mantenimiento durante un largo tiempo.
Incluye programas que se ejecutan en una computadora de cualquier tamaño y arquitectura,
contenido que se presenta a medida de que se ejecutan los programas de cómputo
e información descriptiva tanto en una copia dura como en formatos virtuales que engloban
virtualmente a cualesquiera medios electrónicos.
La ingeniería de software está formada por un proceso, un conjunto de métodos (prácticas) y
un arreglo de herramientas que permite a los profesionales elaborar software de cómputo de
alta calidad.”
¿Qué se entiende por Ingeniería del Software?
En esta definición del proceso de desarrollo Software, se introduce como parte inherente del
producto a obtener, la perspectiva de las necesidades de usuario a las que debe dar respuesta:
“Aquellos en los que las necesidades del usuario se traducen en requerimientos, estos se
transforman en diseño y este a su vez se implementa en código que es probado, documentado y
certificado para su uso” - G. Booch, I. Jacobson, y J. Rumbaugh [6]
¿Qué se entiende por Ingeniería del Software?
Y según otra de las definiciones que aporta la IEEE, se introduce el concepto de cuantificación del
proceso:
Esta especialidad manifiesta la actividad del programa, que es la labor fundamental para el
momento de la creación de un software.
La ingeniería de software, también, incorpora el análisis precedente de la situación, el bosquejo
del proyecto, el desarrollo del software, el ensayo necesario para comprobar su funcionamiento
correcto y poner en funcionamiento el sistema.
.
¿Conceptos Básicos de la Ingeniería del Software?
El ingeniero de software se ocupa de toda la gestión del proyecto para que éste pueda
evolucionar en un lapso de tiempo determinado y con los recursos previsto para el proyecto.
Anteriormente no existía un modelo de proceso, pero con el pasar del tiempo fueron
inventado modelos de modo que se permita al desarrollador llevar un orden de desarrollo y
como todo producto tiene un proceso, el software, al ser un producto también lo tiene, en
este apartado estudiaremos el proceso general de un software y el modelo de proceso
prescriptivo cascada.
Proceso del software
Es importante antes de comenzar definir ¿qué es un proceso?; un proceso es una serie de
pasos a seguir, que permite mantener el control, estabilidad y organización para las actividades,
desde el punto de vista técnico el proceso de un software se define como una estructura que
define actividades, métodos y herramientas con el fin de obtener un software de calidad.
Un proceso de software efectivo habilita a la organización a incrementar su productividad al
desarrollar software.
Modelo de proceso general
La ingeniería de software incorpora cinco actividades generales: comunicación, planeación,
modelado, construcción y despliegue, estas actividades están conformadas por actividades
sombrilla; las actividades sombrilla están dentro de las actividades generales y contribuyen al
desarrollo del software, ya que permiten dar seguimiento, control y administración asegurando
así la obtención de un producto de calidad.
El proceso del software tiene las siguiente características:
Modelo de proceso general
El proceso del software tiene las siguientes características:
Flujo de proceso
En el flujo de proceso se describe el orden de cómo se van a ejecutar las actividades y también
se describe el tiempo que va durar cada actividad. Hay tres tipos de flujo de proceso
Flujo de proceso lineal
El flujo de proceso lineal se realiza en una secuencia que empieza desde la comunicación hasta
y termina en el despliegue.
Flujo de proceso iterativo
Dentro del flujo de proceso iterativo se repiten las actividades una y otra vez mientras sea
necesario para avanzar con la siguiente actividad.
Flujo de proceso evolutivo
Las actividades son ejecutadas en forma circular y en cada círculo que realice es
una versión mejorada del producto.
.
Flujo de proceso en paralelo
Ejecuta una o dos actividades en paralelo, es decir al mismo tiempo que se ejecuta otra
actividad
El proceso requiere una metodología con 5 etapas:
3. Diseño y arquitectura: Determinar como funcionará de forma general sin entrar en detalles
incorporando consideraciones de la implementación tecnológica, como el hardware, la red,
etc. Consiste en el diseño de los componentes del sistema que dan respuesta a las
funcionalidades descritas en la segunda etapa también conocidas como las entidades de
negocio. Generalmente se realiza en base a diagramas que permitan describir las
interacciones entre las entidades y su secuenciado.
4. Programación: Se traduce el diseño a código. Es la parte más obvia del trabajo de
ingeniería de software y la primera en que se obtienen resultados «tangibles». No
necesariamente es la etapa más larga ni la más compleja aunque una especificación o
diseño incompletos/ambiguos pueden exigir que, tareas propias de las etapas anteriores se
tengan que realizarse en esta.
• Clara • Verificable
• Correcta • Priorizada
• Consistente • Sin ambigüedades
• Coherente • Trazable
• Comprensible • Origen creíble
• Modificable
Ingeniería de requisitos
El proceso de recogida de información, análisis y documentación sobre los requisitos software
des del cliente, se conoce como ingeniería de requisitos. El objetivo de este tipo de Ingeniería es
el de desarrollar y mantener un documento de especificación de requisitos del sistema de forma
sofisticada y descriptiva.
Proceso de la Ingeniería de requisitos
Es un proceso que consta de cuatro pasos:
Estudio de viabilidad
Recogida de requisitos
Requisitos del Software
Validación de los requisitos de Software
Estudio de viabilidad
Cuando el cliente se acerca a la organización para obtener el producto deseado desarrollado,
expone una idea aproximada de las funciones que el software debe cumplir y qué características
se esperan del mismo.
Refiriéndose a esta información, los analistas elaboran un estudio detallado sobre la viabilidad
del sistema deseado y de sus funcionalidades, para proceder a desarrollarlo.
Este estudio de viabilidad se centra en el objetivo de la organización. El estudio analiza la
materialización práctica del producto software respecto a su implementación, la contribución de
proyecto a la organización, los límites de costes, y según los objetivos y valores de la
organización. Explora aspectos técnicos del proyecto y del producto, como la utilidad, el
mantenimiento, la productividad y la capacidad de integración.
El resultado o output de esta fase debe ser un informe del estudio de viabilidad, conteniendo
comentarios adecuados y recomendaciones para la gestión sobre si se debe tirar adelante o no el
proyecto.
Recogida de requisitos
Si el informe de viabilidad es positivo en relación a tomar el proyecto, la siguiente fase empieza
con la recolección de requisitos por parte del consumidor. Analistas e Ingenieros se comunican
con el cliente y los consumidores para conocer sus ideas sobre qué debe aportar el software y
qué características quieren que incluya éste.
Requisitos del Software
El SRS es un documento creado por los analistas de sistema después de recoger los requisitos.
El SRS define cómo va a interactuar el sofware que quiere crearse con el hardware, las interfaces
externas, la velocidad operativa, el tiempo de respuesta del sistema, la portabilidad del software
en las diversas plataformas, el mantenimiento, la velocidad de reponerse después de
estropearse, su seguridad, calidad, limitaciones, etc.
Los requisitos recibidos por parte del cliente se escriben en lenguaje natural. Es responsabilidad
del analista de sistemas documentar sobre los requisitos en lenguaje tecnológico para que
puedan ser útiles y comprendidos por el equipo de desarrollo de software.
Validación de los requisitos de Software
Después del desarrollo de los requisitos, los que se mencionen en este documento serán
validados. El usuario puede que pida soluciones ilegales y poco prácticas, y los expertos puede
que interpreten los requisitos de forma incorrecta. Estos resultados se incrementan en coste si
no se cortan de raíz. Los requisitos se pueden evaluar en contraste con las siguientes
condiciones:
Si pueden ser implementados de manera práctica.
Si son válidos a nivel de funcionalidad y dominio del software
Si hay alguna ambigüedad
Si se han completado
Si se pueden demostrar
Definición de Requerimientos
Una declaración en un Lenguaje Natural incluye los diagramas de los servicios del
sistema y sus límites operacionales. Escrito para clientes.
Especificación de Requerimientos
Un documento estructurado con descripción o detalle de los servicios del sistema.
Escrito como un contrato entre el cliente y el contratista.
Especificación de Software
Descripción detallada de software, la cual, puede servir como una base para diseño o
implementación. Escrito para desarrolladodres.
Definición de Requerimientos
Especificación de Requerimientos
1.1 El usuario debe proporcionar facilidades para definir el tipo de archivos externos.
1.2 Cada tipo de archivo externo puede tener una herramienta asociada. La cual, será
aplicada para el archivo.
1.3 Cada tipo de archivo externo será representado como un icono específico mostrado al
usuario.
1.4 Las facilidades proporcionadas para la representación del icono en un tipo de archivo
externo será definido por el usuario.
1.5 Cuando un usuario selecciona una representación de icono de un archivo externo, el
efecto de la selección es aplicar las herramientas asociadas con el tipo de archivo ex-
terno al archivo representado por la selección del icono.
Gerencia de Cliente
Definición de Usuarios Finales del Sistema
Requerimientos Ingenieros de Clientes
Gerencia de Contratistas
Arquitectos del Sistema
Definición de Requerimientos
Definir los requerimientos en una forma comprensible para el cliente.
Especificación de Requerimientos
Define los requerimientos en detalle.
Estudio de Análisis de
Factibilidad Requerimientos
Definición de
Reporte de Requerimientos
Factibilidad
Especificación
Modelos del de Requerimientos
Sistema
Definición de
Requerimientos
Documento de
Requerimientos Especificación de
Requerimientos
Es la declaración oficial de lo que es requerido para que el
sistema sea desarrollado.
Incluye la definición y especificación de requerimientos.
No es un documento de diseño. Tanto como sea posible,
es un conjunto de lo que es el sistema y como lo hará.
Especificación de la conducta externa del sistema.
Especificar los límites de la implementación.
Fácil de cambiar.
Sirve como una herramienta de referencia para mantenimiento.
Recuerda el ciclo de vida del sistema, esto es, predice cambios.
Proporciona respuestas características a un evento no esperado.
Introducción.
Describe la necesidad de crear el sistema y cuales son sus objetivos.
Glosario.
Define los términos técnicos usados.
Indice.
Consiste en preguntar al cliente, a los usuarios y a los que están
involucrados en los objetivos del sistema o producto y sean expertos
en los temas, investigar cómo los sistemas o productos se ajustan a
las necesidades del negocio, y finalmente, cómo el sistema o
producto va a ser utilizado en el día a día.
Una relación de necesidades y características
Preguntas de contexto libre : Se enfocan sobre el cliente, los objetivos generales y los
beneficios esperados.
Desarrollo Exploratorio: El objetivo de este enfoque es explorar con el usuario los requisitos
hasta llegar a un sistema final. El desarrollo comienza con las partes que se tiene más claras.
El sistema evoluciona conforme se añaden nuevas características propuestas por el usuario.
Enfoque utilizando prototipos: El objetivo es entender los requisitos del usuario y trabajar
para mejorar la calidad de los requisitos. A diferencia del desarrollo exploratorio, se comienza
por definir los requisitos que no están claros para el usuario y se utiliza un prototipo para
experimentar con ellos. El prototipo ayuda a terminar de definir estos requisitos.
Entre los puntos favorables de este modelo están:
Definición de objetivos: Se definen los objetivos y las restricciones del proceso y del
producto. Se realiza un diseño detallado del plan administrativo. Se identifican los riesgos y se
elaboran estrategias alternativas dependiendo de estos.
Evaluación y reducción de riesgos: Se realiza un análisis detallado de cada riesgo identificado.
Pueden desarrollarse prototipos para disminuir el riesgo de requisitos dudosos. Se llevan a
cabo los pasos para reducir los riesgos.
Desarrollo y validación: Elegir modelo de desarrollo Elegir modelo de desarrollo, algunos
autores lo denominan metamodelo o modelo paramétrico.
Planificación: Se determina si continuar con otro ciclo. Se planea la siguiente fase del
proyecto.
Este modelo a diferencia de los otros toma en consideración explícitamente el riesgo, esta es
una actividad importante en la administración del proyecto.
El ciclo de vida inicia con la definición de los objetivos. De acuerdo a las restricciones se
determinan distintas alternativas. Se identifican los riesgos al sopesar los objetivos contra las
alternativas. Se evalúan los riesgos con actividades como análisis detallado, simulación,
prototipos, etc. Se desarrolla un poco el sistema. Se planifica la siguiente fase.
Se usa un prototipo para dar al usuario una idea concreta de lo que va a hacer el
sistema.
Se aplica cada vez más cuando la rapidez de desarrollo es esencial
Prototipado evolutivo: el prototipo inicial se refina progresivamente hasta
convertirse en versión final
Prototipado desechable: de cada prototipo se extraen ideas buenas que se usan para
hacer el siguiente, pero cada prototipo se tira entero
SECUENCIA DE PASOS
Femenino
León
Datos
Los datos son la mínima unidad semántica, y se corresponden con elementos primarios de información que por
sí solos son irrelevantes como apoyo a la toma de decisiones. También se pueden ver como un conjunto discreto
de valores, que no dicen nada sobre el por qué de las cosas y no son orientativos para la acción.
Un número telefónico o un nombre de una persona, por ejemplo, son datos que, sin un propósito, una utilidad
o un contexto no sirven como base para apoyar la toma de una decisión. Los datos pueden ser una colección de
hechos almacenados en algún lugar físico como un papel, un dispositivo electrónico (CD, DVD, disco duro...), o
la mente de una persona. En este sentido las tecnologías de la información han aportado mucho a recopilación
de datos.
Como cabe suponer, los datos pueden provenir de fuentes externas o internas a la organización, pudiendo ser
de carácter objetivo o subjetivo, o de tipo cualitativo o cuantitativo, etc.
Información
La información se puede definir como un conjunto de datos procesados y que tienen un significado (relevancia,
propósito y contexto), y que por lo tanto son de utilidad para quién debe tomar decisiones, al disminuir su
incertidumbre. Los datos se pueden transforman en información añadiéndoles valor:
• Personas: Un sistema de cómputo involucra una variada gama de personas relacionadas con el mismo,
puesto que su construcción, mantenimiento y uso representan una labor con cierto grado de complejidad. Se
pueden dividir en dos grandes grupos: Los usuarios finales y los especialistas o profesionales.
• Los usuarios finales son aquellos que operan o interaccionan directamente con el sistema a través de una
estación de trabajo o incluso, quienes reciben reportes e información generada por el sistema.
.
• Entre los profesionales se encuentran: Los analistas de los sistemas de información, encargados de idear soluciones cuando
se requiere un nuevo sistema, actualizarlo, modificarlo o reconstruirlo; los programadores, que crean los programas de
cómputo que forman parte de los sistemas de información; los administradores del sistema, encargados de mantener el
sistema en buenas condiciones; los capacitadores, que instruyen y preparan a los usuarios para la utilización del sistema.
• Hardware: Consiste en los equipos, dispositivos y medios necesarios que constituyen la plataforma física mediante la cual,
el sistema de información puede funcionar. Se incluyen aquí, por supuesto, los que permiten las comunicaciones y los
enlaces de red. Estos recursos son, por ejemplo, computadoras, monitores, impresoras, disquetes o componentes de
almacenamiento de información externos, disco óptico, papel de impresión, cableado de red, y otros.
• Software o programas: Son el componente lógico, es decir, los programas, las rutinas e instrucciones que conforman el
sistema de información. Se les suele denominar aplicación de sistema de información. Es así como los sistemas de
información pueden tener aplicaciones particulares, por ejemplo, para el área de ventas, de contabilidad, de personal o de
compras. La aplicación que conforma un sistema de información completo contiene subconjuntos de programas que se
encargan de apoyar las distintas actividades propias de la organización.
.
Clasificación de los 6 tipos de sistemas de información más relevantes
Los tipos de sistemas de la información más populares pueden clasificarse de la siguiente
forma:
Los sistemas de procesamiento de transacciones (TPS por sus siglas en inglés) son los sistemas
empresariales básicos que sirven al nivel operacional de la organización.
Un sistema de procesamiento de transacciones es un sistema computarizado que realiza y
registra las transacciones rutinarias diarias necesarias para el funcionamiento de la empresa. Se
encuentran en el nivel más bajo de la jerarquía organizacional y soportan las actividades
cotidianas del negocio.
2. Sistemas de control de procesos de negocio
Los sistemas de control de procesos de negocio (BPM por sus siglas en inglés) monitorizan y
controlan los procesos industriales o físicos, como puede ser la refinación de petróleo,
generación de energía o los sistemas de producción de acero en una planta siderúrgica.
Los sistemas de colaboración empresarial (ERP por sus siglas en inglés) son uno de los tipos de
sistemas de información más utilizados. Ayudan a los directivos de una empresa a controlar el
flujo de información en sus organizaciones.
Se trata de uno de los tipos de sistemas de información que no son específicos de un nivel
concreto en la organización, sino que proporcionan un soporte importante para una amplia
gama de usuarios. Estos sistemas de información están diseñados para soportar tareas de
oficina como sistemas multimedia, correos electrónicos, videoconferencias y transferencias de
archivos.
4. Sistemas de Información de Gestión
Los sistemas de información de gestión (MIS por sus siglas en inglés) son un tipo de sistemas de
información que recopilan y procesan información de diferentes fuentes para ayudar en la toma de
decisiones en lo referente a la gestión de la organización.
Los sistemas de información de gestión utilizan los datos recogidos por el TPS para proporcionar a los
supervisores los informes de control necesarios. Los sistemas de información de gestión son los tipos de
sistemas de información que toman los datos internos del sistema y los resumen en formatos útiles como
informes de gestión para utilizarlos como apoyo a las actividades de gestión y la toma de decisiones.
5. Sistemas de apoyo a la toma de decisiones
Un sistema de apoyo a la toma de decisiones o de soporte a la decisión (DSS por sus siglas en
inglés) es un sistema basado en ordenadores destinado a ser utilizado por un gerente particular
o por un grupo de gerentes a cualquier nivel organizacional para tomar una decisión en el
proceso de resolver una problemática semiestructurada.
Los sistemas de apoyo a la toma de decisiones están específicamente diseñados para ayudar al
equipo directivo a tomar decisiones en situaciones en las que existe incertidumbre sobre los
posibles resultados o consecuencias. Ayuda a los gerentes a tomar decisiones complejas.
6. Sistemas de Información Ejecutiva
Los sistemas de información ejecutiva (EIS por sus siglas en inglés) proporcionan un acceso
rápido a la información interna y externa, presentada a menudo en formato gráfico, pero con la
capacidad de presentar datos básicos más detallados si es necesario. Los sistemas información
ejecutiva proporcionan información crítica de una amplia variedad de fuentes internas y
externas en formatos fáciles de usar para ejecutivos y gerentes.
Un sistema de información ejecutiva proporciona a los altos directivos un sistema para ayudar a
tomar decisiones estratégicas. Está diseñado para generar información que sea lo
suficientemente abstracta como para presentar toda la operación de la empresa en una versión
simplificada para satisfacer a la alta dirección.
En informática, podemos entender como seguridad la característica de un sistema informático,
(ya sean sistemas operativos, servicios o aplicaciones), que nos indica que está libre de todo
peligro, daño o riesgo, y que es, en cierta manera infalible. Como esta característica, es muy
difícil de conseguir (según la mayoría de los expertos, imposible), se suaviza la definición de
seguridad y se pasa a hablar de fiabilidad, que es la probabilidad de que un sistema se
comporte tal y como se espera de él. Por tanto, se habla de tener sistemas fiables en lugar de
sistemas seguros.
De los sistemas informáticos, se dice que son seguros si cumplen las siguientes características:
Confidencialidad:
Requiere que la información sea accesible únicamente por las entidades autorizadas. De esta
manera, se dice que un documento (o archivo o mensaje) es confidencial si y sólo si puede ser
comprendido por la persona o entidad a quien va dirigida o esté autorizada. En el caso de un
mensaje esto evita que exista una intercepción de este y que pueda ser leído por una persona
no autorizada.
Por ejemplo, si Andrea quiere enviar un mensaje a Bruno y que solo pueda leerlo Bruno,
Andrea cifra el mensaje con una clave (simétrica o asimétrica), de tal modo que solo Bruno
sepa la manera de descifrarlo, así ambos usuarios están seguros de que solo ellos van a poder
leer el mensaje.
Integridad:
No repudio en origen: El emisor no puede negar el envío. La prueba la crea el propio emisor y la
recibe el destinatario.
No repudio en destino: El receptor no puede negar que recibió el mensaje porque el emisor tiene
pruebas de la recepción. En este caso la prueba irrefutable la crea el receptor y la recibe el emisor.
Si la autenticidad prueba quién es el autor o el propietario de un documento y cuál es su
destinatario, el no repudio prueba que el autor envió la comunicación (no repudio en origen) y
que el destinatario la recibió (no repudio en destino).
Al grupo de estos tres objetivos de la seguridad se les conoce como CIDAN, nombre sacado de
la inicial de cada característica. La relación de los mismos se presenta en la figura siguiente:
En la imagen superior se ilustra como se relacionan los diferentes servicios de seguridad,
unos dependen de otros jerárquicamente, así si no existe el de más abajo, no puede aplicarse
el superior. De esta manera, la disponibilidad se convierte en el primer requisito de
seguridad, cuando existe esta, se puede disponer de confidencialidad, que es imprescindible
para conseguir integridad, para poder obtener autenticación es imprescindible la integridad
y por ultimo el no repudio solo se obtiene si se produce previamente la autenticación.
Alta disponibilidad
La alta disponibilidad se refiere a la capacidad de que
aplicaciones y datos se encuentren operativos para los
usuarios autorizados en todo momento y sin
interrupciones, debido principalmente a su carácter
crítico. El objetivo de la misma es mantener nuestros
sistemas funcionando las 24 horas del día, 7 días a la
semana, 365 días al año, manteniéndolos a salvo de
interrupciones.
Existen dos tipos de interrupciones:
Las interrupciones previstas, que se realizan cuando paralizamos el sistema para realizar cambios o
mejoras en nuestro software.
Las interrupciones imprevistas, que suceden por acontecimientos imprevistos (como un apagón, un
error del hardware o del software, problemas de seguridad, un desastre natural, virus, accidentes,
caídas involuntarias del sistema).
Las métricas comúnmente utilizadas para medir la disponibilidad y fiabilidad de un sistema son:
Existen dos tipos de interrupciones:
Las interrupciones previstas, que se realizan cuando paralizamos el sistema para realizar cambios o
mejoras en nuestro software.
Las interrupciones imprevistas, que suceden por acontecimientos imprevistos (como un apagón, un
error del hardware o del software, problemas de seguridad, un desastre natural, virus, accidentes,
caídas involuntarias del sistema).
Existen distintos niveles de disponibilidad del sistema. Según el tiempo aproximado de inactividad
por año se determina el porcentaje de disponibilidad. El mayor nivel de exigencia de alta
disponibilidad acepta 5 minutos de inactividad al año, con lo que se obtiene una disponibilidad de 5
nueves: 99.999%.