Documentos de Académico
Documentos de Profesional
Documentos de Cultura
>CARACTERÍSTICAS
El software es elemento de un sistema lógico y no de uno físico. Por lo tanto tiene
características que lo hacen diferente respecto a otros productos o hardware.
SOFTWARE Y HARDWARE
Aunque hay similitudes entre el desarrollo del Software y la fabricación del Hardware,
son actividades diferentes.
- En ambas, la alta calidad se logra a través de un buen diseño, pero la fase de
fabricación del Hardware introduce problemas de calidad que no existen en el
Software.
- Ambas dependen de personas, pero la relación entre los individuos y el trabajo
logrado es diferente por completo.
- Los costos del software se concentran en la ingeniería. (Los proyectos no se
administran como si fueran proyectos de manufactura.)
2) El Software no se desgasta.
SOFTWARE Y HARDWARE
- Con el paso del tiempo el Hardware se empieza a degastar (suciedad, vibración, uso
intensivo, etc.)
- El Software no es susceptible a los problemas ambientales que hacen que el
Hardware se desgaste. Pero si se deteriora.
-El Software se deteriora como consecuencia del cambio. Con el tiempo el Software
sufrirá cambios, lo que pueden generar fallas.
- Los componentes desgastados de los Hardware se arreglan o reemplazan. Pero no
hay refacciones para el Software.
3) Aunque la industria se mueve hacia la construcción basada en componentes, la
mayor parte del software se construye para un uso individualizado.
SOFTWARE Y HARDWARE
-En el Hardware la reutilización de los componentes es natural.
-En el Software apenas se ha empezado a hacer a gran escala.
-Un componente del Software debe diseñarse e implementarse de modo que pueda
volver a usarse en muchos programas diferentes.
>CATEGORIAS
Hay 7 grandes categorías.
1) Software de sistemas: Conjunto de programas escritos para dar servicio a otros
programas. Algunos procesan estructuras de información compleja pero determinista
(compiladores, editores, etc.); otros procesan datos indeterminados (componentes de
SO, software de redes).
Deterministas: Si se puede predecir el orden y momento de las entradas, el
procesamiento y las salidas.
No deterministas: Si no pueden predecirse el orden y momento en que
ocurren éstos.
Características:
- Gran interacción con el hardware de la computadora.
- Uso intensivo por parte de múltiples usuarios.
- Operaciones concurrentes que requieren secuenciación.
- Recursos compartidos y administración de procesos.
- Manejo de estructuras complejas de datos y múltiples interfaces externas.
4) Software incrustado:
>PROCESOS
Existen cuatro actividades fundamentales comunes a todos los procesos de software:
>DESARROLLO ITERATIVO:
MODELO INCREMENTAL
Se basa en la idea de diseñar una implementación inicial, exponer ésta al
comentario del usuario, y luego desarrollarla en sus diversas versiones hasta producir
un sistema adecuado. Las actividades de especificación, desarrollo y validación están
entrelazadas en vez de separadas, con rápida retroalimentación a través de las
actividades.
Los primeros incrementos incluyen la función más importante o la más urgente. Esto
significa que el cliente puede evaluar el desarrollo del sistema en una etapa
relativamente temprana, para constatar si se entrega lo que se requiere.
Ventajas: -Es iterativo: Con cada incremento se entrega al cliente un
producto operacional, que se puede evaluar.
-Personal: Permite variar el personal asignado a cada
iteración.
-Gestión riesgos técnicos: Por ejemplo, disponibilidad de
hardware específico.
CONCLUCIÓN
La diferencia principal entre el modelo en espiral con otros modelos de
proceso es su reconocimiento explícito del riesgo.
>DESARROLLO EVOLUTIVO
MODELO DE PROTOTIPO
Un prototipo es una versión inicial de un sistema de software que se usa
para demostrar conceptos, tratar opciones de diseño y encontrar más sobre el
problema y sus posibles soluciones. El rápido desarrollo iterativo del prototipo es
esencial, de modo que se controlen los costos, y los interesados en el sistema
experimenten por anticipado durante el proceso de software.
Opciones de prototipos: No tienen que ser ejecutables para ser útiles. Los modelos
en papel de la interfaz de usuario del sistema pueden ser efectivos para ayudar a los
usuarios a refinar un diseño de interfaz y trabajar a través de escenarios de uso. Su
desarrollo es muy económico y suelen construirse en pocos días.
Una extensión de esta técnica es un prototipo de Mago de Oz, donde sólo se
desarrolle la interfaz del usuario. Los usuarios interactúan con esta interfaz, pero sus
solicitudes pasan a una persona que los interpreta y les devuelve la respuesta
adecuada.
Ventajas: - Permite identificar los requisitos incrementalmente.
- Permite probar alternativas a los desarrolladores.
- Tiene una alta visibilidad -> tanto clientes como
desarrolladores ven resultados rápidamente.
Inconvenientes: - El cliente no entiende porque hay que desechar el primer
prototipo, si simplemente ha pedido unos ajustes.
Riesgo de software de baja calidad: Compromisos de
implementación para que el prototipo funcione rápidamente y que al final son parte
integral del sistema. Ej: Utilizar un sistema operativo o lenguaje de programación
inadecuado pero que ya es conocido.
>DESARROLLO FORMAL
MODELO DE MÉTODOS FORMALES
Agrupa actividades que llevan a la especificación matemática formal del software. Los
métodos formales permiten especificar, desarrollar y verificar sistemas por medio del
empleo de una notación matemática rigurosa.
El Proceso de Requerimientos
Los REQUERIMIENTOS para un sistema son descripciones de lo que el sistema debe
hacer.
USUARIO
Son enunciados, en un lenguaje natural junto con una serie de diagramas,
acerca de qué servicios esperan los usuarios del sistema, y de las restricciones
con las cuales éste debe operar.
SISTEMA
Son descripciones más detalladas de las funciones, los servicios y las restricciones
operacionales del sistema. El documento de requerimientos del sistema
(especificación funcional) tiene que definir con exactitud de que se implementará.
Puede formar parte del contrato entre el comprador del sistema y los desarrolladores
del software.
Los requerimientos del sistema no sólo detallan los servicios o las características que
se requieren del mismo, sino también especifican la funcionalidad necesaria para
asegurar que estos servicios y características se entreguen de manera adecuada.
ANALISIS COMPLETO DE UN EJEMPLO
Los diferentes niveles de requerimientos son útiles debido a que informan sobre el
sistema a distintos tipos de lectores. La figura que veremos a continuación, refleja la
diferencia entre los requerimientos del usuario y del sistema.
R. de usuario:
1- El MHC-PMS elaborará mensualmente informes administrativos que revelen
el costo de los medicamentos prescriptos para cada clínica durante ese mes.
Se observa que el req. de USUARIO es muy general. Los del SISTEMA ofrecen
información más específica sobre los servicios y las funciones del sistema que se
implementará.
LECTORES de los requerimientos
Es necesario escribir los requerimientos con diferentes niveles de detalle, ya que,
varios lectores los usarán de distintas formas.
USUARIOS: Gerentes del clientes – Usuarios finales del sistema – Ingenieros del
clientes – Gerentes de los contratistas – Arquitectos del sistema.
SISTEMA: Usuarios finales del sistema – Ingenieros del cliente – Arquitectos del
sistema – Desarrolladores de software.
>ESPECIFICACIONES ESTRUCTURADAS
Este lenguaje es una manera de escribir requerimientos del sistema, donde
está limitada la libertad del escritor y se escribe de forma estándar.
Aunque este enfoque conserva la mayoría de la expresividad y comprensibilidad del
lenguaje natural, asegura que haya cierta uniformidad sobre la especificación.
- Emplean plantillas para especificar requerimientos del sistema.
- Utiliza construcciones de lenguaje de programación para mostrar alternativas
e iteración.
-Destaca elementos clave con el uso de sombreado o de fuentes distintas.
- Hay que definir una o más plantillas estándar para requerimientos, y
representar dichas plantillas como formas estructuradas.
Se debe incluir la siguiente información:
1. Una descripción de la función o entidad a especificar.
2. Una descripción de sus entradas y sus procedencias.
3. Una descripción de sus salidas y a dónde se dirigen.
4. Información sobre los datos requeridos para el cálculo u otras entidades en
el sistema que se utilizan.
5. Una descripción de la acción que se va a tomar.
6. Si se usa un enfoque funcional, una precondición establece lo que debe ser
verdadero antes de llamar a la función, y una post condición especifica lo que es
verdadero después de llamar a la función.
7. Una descripción de los efectos colaterales de la operación.
> EL DOCUMENTO DE REQUERIMIENTOS DE SOFTWARE O SRS
Es un comunicado oficial de lo que deben implementar los desarrolladores del
sistema. Incluye tanto los requerimientos del usuario para un sistema, como una
especificación detallada de los requerimientos del sistema.
Opiniones encontradas:
Los métodos de desarrollo tradicionales, sostienen que los documentos de
requerimientos son muy importantes.
Los métodos de desarrollo ágiles, argumentan que los requerimientos
cambian tan rápidamente que un documento de requerimientos se vuelve obsoleto
tan pronto como se escribe, así que el esfuerzo se desperdicia en gran medida.
En lugar de un documento formal, los enfoques como la programación extrema
recopilan de manera incremental requerimientos del usuario y los escriben en
tarjetas como historias de usuario. De esa manera, el usuario da prioridad a los
requerimientos para su implementación en el siguiente incremento del sistema.
Usuarios del documento:
El documento de requerimientos tienen un conjunto variado de usuarios,
desde el administrador ejecutivo de la organización que paga por el sistema, hasta
los ingenieros responsables del desarrollo del software. La figura que veremos a
continuación, muestra a los posibles usuarios del documento y cómo lo utilizan.
La diversidad de posibles usuarios significa que el documento de
requerimientos debe ser un compromiso entre: la comunicación de los
requerimientos a los clientes, la definición de los requerimientos con detalle preciso
para desarrolladores, y la inclusión de información sobre la posible evolución del
sistema.
>NIVEL DE DETALLE
El nivel de detalle que se incluya en un documento de requerimientos depende del
tipo de sistema a diseñar y el proceso de desarrollo utilizado:
- Los sistemas críticos necesitan tener requerimientos detallados.
- Cuando el sistema lo desarrolla una compañía independiente, deben
detallarse y precisarse las especificaciones del sistema.
- Si se utiliza un proceso de desarrollo iterativo interno, entonces el
documento de requerimientos suele ser mucho menos detallado y cualquier
ambigüedad puede resolver durante el desarrollo del sistema.
> ESTRUCTURA DEL DOCUMENTO
La organización para un documento de requerimientos se basa en un estándar del
IEEE para documentos de requerimientos. Este estándar es genérico y se adapta a
usos específicos. En este caso, el estándar se extendió para incluir información de la
evolución prevista del sistema. Esta información ayuda a los encargados del sistema y
permite a los diseñadores incluir soporte para características futuras del sistema.
Prefacio: Debe definir el número esperado de lectores del documento, así como
describir su historia de versiones, incluidas las causas para la creación de una nueva
versión y un resumen de los cambios realizados en cada versión.
Introducción: Describe la necesidad para el sistema. Debe detallar brevemente las
funciones del sistema y explicar cómo funcionará con otros sistemas. También tienen
que indicar cómo se ajusta el sistema en los objetivos empresariales o estratégicos
globales de la organización que encargó el desarrollo.
Glosario: Define los términos técnicos usados en el documento. No debe hacer
conjeturas sobre la experiencia o la habilidad del lector.
Definición de requerimientos del usuario: Aquí se representan los servicios que
ofrecen al usuario. También, se describen los requerimientos no funcionales del
sistema. Se puede usar el lenguaje natural, diagramas, etc.
Arquitectura del sistema: Este capítulo presenta un panorama de alto nivel de la
arquitectura anticipada del sistema, que muestra la distribución de funciones a través
de los módulos del sistema. Hay que destacar los componentes arquitectónicos que
sean de reutilización.
Especificación de requerimientos del sistema: Debe representar los requerimientos
funcionales y no funcionales con más detalle. Si es preciso, también pueden
detallarse más los requerimientos no funcionales. Pueden definirse las interfaces a
otros sistemas.
Modelos del sistema: Pueden incluir modelos gráficos del sistema que muestren las
relaciones entre componentes del sistema, el sistema y su entorno.
Evolución del sistema: Describe los supuestos fundamentales sobre los que se basa el
sistema, y cualquier cambio anticipado debido a evolución de hardware, cambio en
las necesidades del usuario, etc.
Apéndices: Brindan información específica y detallada que se relaciona con la
aplicación a desarrollar.
Índice: Pueden incluirse en el documento varios índices.
> UN ESTÁNDAR PARA EL DOCUMENTO
El estándar IEEE 830-1998 para el SRS es un conjunto de recomendaciones para la
especificación de los requerimientos o requisitos de software el cual tiene como
producto final la documentación de los acuerdos entre el cliente y el grupo de
desarrollo para así cumplir con la totalidad de exigencias estipuladas.
Teoría 11
Tema: Calidad a nivel proceso y producto en el desarrollo del software. Modelos de
calidad del software.
Introducción
Según David Garvin, sugiere que “la calidad es un concepto complejo y de
facetas múltiples” que se puede describir desde cinco puntos de vista diferentes:
- El punto de vista trascendental: dice que la calidad es algo que se reconoce
de inmediato, pero que no es posible definir explícitamente.
- El punto de vista del usuario: Concibe la calidad en términos de las metas
específicas del usuario final. Si un producto las satisface, tiene calidad.
- El punto de vista del fabricante: La define en términos de las especificaciones
originales del producto. Si éste las cumple, tiene calidad.
- El punto de vista del producto: Sugiere que la calidad tiene que ver con las
características inherentes (funciones y características) de un producto.
- El punto de vista basado en el valor: La mide de acuerdo con lo que un
cliente está dispuesto a pagar por un producto.
Calidad de un software: “Proceso eficaz de software que se aplica de manera que crea
un producto útil que proporciona valor medible a quienes lo producen y a quienes lo
utilizan”
Y ésta enfatiza tres puntos importantes:
1. Un proceso eficaz de software establece la infraestructura para la
elaboración de un producto de software de alta calidad.
Diapo 16
La calidad subjetiva de un sistema de software se basa principalmente en sus
características no funcionales. Por consiguiente, la calidad del software no sólo se
trata de si la funcionalidad de éste se implementó correctamente, sino también
depende de los atributos no funcionales del sistema.
WhatsApp es una forma rápida, segura y confiable para que las empresas lleguen a sus clientes
de todo el mundo. En esta guía, se describe cómo las empresas pueden usar la API de
WhatsApp Business para interactuar con los clientes.
Esta versión de la API usa una arquitectura de REST con formatos de datos JSON. La API usa el
intercambio estándar de solicitud y respuesta HTTP.
Nodo Descripción
Contacts Permite verificar los números de teléfono de los clientes para generar identificadores de What
Messages Permite enviar texto, contenido multimedia, plantillas de mensajes y mensajes grupales
Nodo Descripción