IS1

Apuntes y ejercicios referidos a la materia (No se si estan de la mejor manera).


Project maintained by Fabian-Martinez-Rincon Hosted on GitHub Pages — Theme by mattgraham

Resumen Teorico

Qué es un proceso de software?

Es un conjunto de actividades y resultados asociados que producen un producto de software

Actividades fundamentales de los procesos

Los IS son los responsables de realizar estas actividades

Qué es un modelo de proceso de software

Es una descripción simplificada de un proceso de software que presenta una visión de ese proceso. Estos modelos pueden incluir actividades que son partes de los procesos y productos de software, y el papel de las personas involucradas.

La mayoría de los modelos de proceso de software se basan en uno de los siguientes modelos generales o paradigmas

Cuáles son los atributos de un buen software?

Los productos de software tiene un cierto número de atributos asociados que reflejan su calidad. Estos atributos reflejan su comportamiento durante su ejecución y la estructura y organización de los programas fuentes en la documentación asociada

Los atributos básicos son


Requerimientos

Un requerimiento (o requisito) es una característica del sistema o una descripción de algo que el sistema es capaz de hacer con el objeto de satisfacer el propósito del sistema

Impacto de los errores en la etapa de requerimientos

El software resultante puede no satisfacer a los usuarios. Las interpretaciones múltiples de los requerimientos pueden causar desacuerdos entre clientes y desarrolladores. Puede gastarse tiempo y dinero construyendo el sistema erróneo


Tipos de Requerimientos

Requerimientos Funcionales

Requerimientos no funcionales

Describen una restricción sobre el sistema que limita nuestras elecciones en la construcción de una solución al problema


Ingeniería de Requerimientos

La ingeniería de requerimientos es la disciplina para desarrollar una especificación completa, consistente y no ambigua, la cual servirá como base para acuerdos comunes entre todas las partes involucradas y en donde se describen las funciones que realizará el sistema

Ingeniería de requerimientos es el proceso por el cual se transforman los requerimientos declarados por los clientes, ya sean hablados o escritos, a especificaciones precisas, no ambiguas, consistentes y completas del comportamiento del sistema, incluyendo funciones, interfaces, rendimiento y limitaciones

También es el proceso mediante el cual se intercambian diferentes puntos de vista para recopilar y modelar lo que el sistema va a realizar. Este proceso utiliza una combinación de métodos, herramientas y actores, cuyo producto es un modelo del cual se genera un documento de requerimientos.”

“Ingeniería de requerimientos” es un enfoque sistémico para recolectar, organizar y documentar los requerimientos del sistema; es también el proceso que establece y mantiene acuerdos sobre los cambios de requerimientos, entre los clientes y el equipo del proyecto”

Importancia


Estudio de Viabilidad

Principalmente para sistemas nuevos

A partir de una descripción resumida del sistema se elabora un informe que recomienda la conveniencia o no de realizar el proceso de desarrollo

Responde a las siguientes preguntas:

Una vez que se ha recopilado toda la información necesaria para contestar las preguntas anteriores se debería hablar con las fuentes de información para responder nuevas preguntas y luego se redacta el informe, donde debería hacerse una recomendación sobre si debe continuar o no el desarrollo.


Obtención y Análisis de Requerimientos

Propiedades de los Requerimientos


Especificación de Requerimientos

Objetivos

Mas caracteristicas

Tipos de Documentos

Aspectos básicos de una especificación de requerimientos


Validación de Requerimientos

Es el proceso de certificar la corrección del modelo de requerimientos contra las intenciones del usuario.

Trata de mostrar que los requerimientos definidos son los que estipula el sistema. Se describe el ambiente en el que debe operar el sistema.

Es importante, porque los errores en los requerimientos pueden conducir a grandes costos si se descubren más tarde

Definición de la IEEE

Sobre estas definiciones:

¿Es suficiente validar después del desarrollo del software?

¿Contra qué se verifican los requerimientos?

Comprenden

Técnicas de validación

Construcción de prototipos

Generación de casos de prueba


Técnicas de Especificación de Requerimientos

Estáticas

Se describe el sistema a través de las entidades u objetos, sus atributos y sus relaciones con otros. No describe como las relaciones cambian con el tiempo.

Cuando el tiempo no es un factor mayor en la operación del sistema, es una descripción útil y adecuada.


Referencia indirecta (ecuaciones implícitas)


Relaciones de recurrencia


Definición axiomática


Expresiones regulares

Se define un alfabeto y las combinaciones permitidas. Cuando un sistema procesa un conjunto de cadenas de datos, permite definir las cadenas de datos aceptables

Alfabeto

Se definen las combinaciones válidas


Abstracciones de datos


Dinámicas


Tablas de Decisión

Es una herramienta que permite presentar de forma concisa las reglas lógicas que hay que utilizar para decidir acciones a ejecutar en función de las condiciones y la lógica de decisión de un problema específico

Describe el sistema como un conjunto de:

Construiremos las tablas con:

¿Cómo se llena la tabla?

Modelizar el problema de remisión de mercadería con las siguientes consideraciones

Si el comprador no es cliente se imprime un mensaje de aviso y no se remite. Si no hay stock y el comprador es cliente no se remite. Si hay stock y el comprador es cliente se remite

Identificar las condiciones y las acciones

Redundancia y Contradicción

Reducción de Complejidad (Redundancia)

image

image

Historias de Usuario

Generalmente se espera que la estimación de tiempo de cada historia de usuario se sitúe entre unas 10 horas y un par de semanas

Al momento de implementar las historias, los desarrolladores deben tener la posibilidad de discutirlas con los clientes. Si bien el estilo puede ser libre, la historia de usuario debe responder a tres preguntas:

Ejemplos

Características


Casos de Uso

Beneficios


Elementos del Modelo de Casos de Uso

Diagrama de Casos de Uso

Ilustra las interacciones entre el sistema y los actores

Escenarios (narración del CU)

Descripción de la interacción entre el actor y el sistema para realizar la funcionalidad

Elementos del Diagrama de Casos de Uso

Escenarios (narración del CU)


Proceso de modelado


Identificar a los actores

Dónde buscar actores potenciales

Responder a

Deberán nombrase con un sustantivo o frase sustantiva


Identificar los CU para los requerimientos

Responder a


Conceptos importantes


Maquinas de estado finito

Describe al sistema como un conjunto de estados donde el sistema reacciona a ciertos eventos posibles (externos o internos).

Al estar en el estado Si, la ocurrencia de la condición Cj hace que el sistema cambie al estado Sk

Definición formal


DTE

Construcción de un DTE

1) Identificar los estados

2) Si hay un estado complejo se puede explotar

No es necesario

3) Desde el estado inicial, se identifican los cambios de estado con flechas

En este caso, el sistema inicia al colocarse la pila y pasaría al estado visualizando hora

4) Se analizan las condiciones y las acciones para pasar de un estado a otro

Visualizando Hora

Visualizando Fecha

Configurando Hora y Fecha

Continuar con todos los estados

..

5) Se verifica la consistencia:


Funciones


Redes de Petri

EVENTOS o ACCIONES y ESTADOS o CONDICIONES

Caso más simple:

Se requieren varios eventos para pasar de un estado a otro. Los eventos NO ocurren en un orden determinado.

Se requieren varios eventos para habilitar el paso del estado a otros varios estados que se ejecutan en paralelo.

Definición Formal Una estructura de Red de Petri es una 4-upla

Multigrafo (de un nodo puede partir más de un arco), bipartito, dirigido

Definiciones

image

Otro ejemplo

Explicación del ejemplo

Transiciones

Paralelismo

Sincronización

Para que varios procesos colaboren en la solución de un problema es necesario que compartan información y recursos pero esto debe ser controlado para asegurar la integridad y correcta operación del sistema.

Expresión de exclusión mutua

Productor - Consumidor

Condición de bloqueo