Actividades de contextualización
¿Que es algoritmo?
Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solución a un problema específico.
Tipos de algoritmos
Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras.
Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del proceso.
Tipos de lenguajes algorítmicos: Un Lenguaje algorítmico es una serie de símbolos y reglas que
se utilizan para describir de manera explícita un proceso.
1.Gráficos: Es la representación gráfica
de las operaciones que realiza un
algoritmo (diagrama de flujo). Dfd
Caracteristicas de un diagrama de flujo:
De uso, permite facilitar su empleo.
De destino, permite la correcta identificación de actividades.
De comprensión e interpretación, permite simplificar su comprensión.
De interpretación, permite el acercamiento y coordinación.
De simbología, disminuye la complejidad y accesibilidad.
De diagramación, se elabora con rapidez y no requiere de recursos sofisticados.
2.No Gráficos: Representa en forma descriptiva las operaciones que debe realizar un algoritmo (pseudocodigo).
ejemplo:
lpp:
entero num1,num2,result
inicio
escriba "algoritmo para sumar dos numeros"
llamar nueva_linea
escriba "digite el primer numero"
lea num1
llamar nueva_linea
escriba "digite el segundo numero"
lea num2
result<- num1+num2
escriba 2 la suma es...", result
fin
Características de los algoritmos:
-Finitos: Debe acabar en algún momento.
-Eficientes: Deben ocupar la mínima memoria y minimizar el tiempo de ejecución.
- Legibles: El texto que lo describe debe ser claro, tal que permita entenderlo y leerlo fácilmente.
- Modificables: Estarán diseñados de modo que sus posteriores modificaciones sean fáciles de realizar, incluso por programadores diferentes a sus propios autores.
- Modulares: La filosofía utilizada para su diseño debe favorecer la división del problema en
módulos pequeños
Tipos de datos
Los tipos de datos nos permiten representar los diferentes datos que son necesarios a la hora de implementar un programa.
constante:Una constante es un dato cuyo valor no puede cambiar durante la ejecución del programa.
variable: Una variable es un nombre asociado a un elemento de datos que está situado en posiciones contiguas de la memoria principal osea un espacio de memoria.
características de variable:
- No se admiten símbolos especiales como guiones,comas,comillas.
- La variable debe ser diferente a otras para no confundirse a la hora de ejecutar el programa
- No se admiten nombres de variables con espacios en blanco
Clasificación de variables por uso:
Lógica
Alfanúmericas
Númericas
Clasificación por uso:
Contadores
Acumuladores
De trabajo
Operadores:
(+) suma
(-) resta
(*) multiplicación
(/) divición
(^) exponencial
(-) resta
(*) multiplicación
(/) divición
(^) exponencial
Relación comparación:
><, >=, <=,< >
Lógicos:
AND,OR,NOT
Estructuras algorítmicas:
*Secuenciales
*Condiciónale: simples,dobles y compuestos
*Ciclos
Resumen Ingeniería del Software
Capitulo II
Partes Fundamentales de La Ingeniería del Software
4.1 La Difícil Tarea De Determinar Que Se Debe Hacer
En un hospital muy importante de España hace unos años ocurrió algo que produjo comentarios sarcásticos sobre la falta de habilidades y capacidades para llevar a cabo un desarrollo de software de nivel profesional.
Todo eso comenzó cuando un novato consultor recién titulado fue enviado por una compañía de software a su medida, a la unidad de cuidados intensivos de un hospital.
Se le encargo estudiar e investigar la forma de trabajo del personal de dicho hospital, para el desarrollo de un sistema informático integral que mejoraría la capacidad en el trámite o encargo de la unidad.
Después de un tiempo, la mayoría del personal se ofreció a colaborar con la investigación del consultor, el cual estaba todos los días puntual tomando nota y averiguando a los médicos como desempeñaban y/o desarrollaban su trabajo, el aseguro que el trabajo de investigación concluiría en más o menos unos dos meses.
Una persona que está familiarizada con la consulta y obtención de los requisitos para un software de tal complicación sabría que eso no puede ser trabajo de un par de meses.
Luego de su predicción el trabajo de investigación se prolongó por más de seis meses, el proyecto finalmente fue considerado inviable por lo cual un día dejo de ir al hospital y jamás volvió.
Este caso deja ver uno de los problemas más vistos en la ingeniería del software, la complicación para determinar precisamente cuáles son los requisitos de un sistema informático.
Hay que tener en cuenta: funcionalidad, capacidad, rendimiento, cuestione legales, seguridad, portabilidad, calidad de uso, etc.
y lo más importante y por eso complicado: especificar claramente que no se debe incluir ene le sistemas ya sea porque no ha sido incluido en el contrato o porque esta fuera del alcance del sistemas a desarrollar.
Hay que tener en cuenta que los requisitos cambian a lo largo del desarrollo del sistema, o simplemente aparecen otros nuevos.
4.2 Objetivos
El objetivo general es presentar los conceptos, conocimientos y técnicas asociadas con la obtención, especificación, análisis y validación de los requisitos de un sistema de software.
º Comprender la importancia de obtener los requisitos de un sistema de software
º Conocer y distinguir los conceptos fundamentales relacionados con los requisitos de un sistema de software
º Diferenciar los distintos tipos de requisitos y ser capaz de clasificarlos
º Conocer las técnicas más relevantes en la captura y especificación de los requisitos de un sistema
º Reconocer las notaciones de las diferentes actividades de requisitos
4.3 Introducción
La obtención y gestión de los requisitos resulta crítico. se deben documentar los requisitos para desarrollar el sistema y luego analizarlo respondiendo a la pregunta ¿Qué debe hacerse?
un proyecto de software consiste básicamente en la transformación de un conjunto de requisitos en un sistema informático.
Algo que hay que tener en cuenta es que si la descripción de los requisitos no es la adecuada o se desvía de lo que lo que el cliente o los usuarios finalmente desean es evidente que dicho sistema no satisfará las expectativas del cliente, entonces el proyecto habrá fracasado
establecer con exactitud los requisitos de un sistemas de información es un principio importante para llevar a cabo con éxito un desarrollo de software.
En dicho proceso es necesario e importante tener en cuenta la influencia de distintos factores, que a veces tiene un impacto en el desarrollo del proceso en sí.
º hay que tener en cuenta la complejidad del problema a resolver (desarrollo del software)
º Identificar los requisitos por parte del cliente
º Tener comunicación y conocimiento claro de lo que se quiere obtener entre desarrolladores y usuarios
º Tener en cuenta el cambio en los requisitos a lo largo del proceso de desarrollo
4.4 Definiciones preliminares y características
Se debe tener en cuenta las actividades que conlleva a la gestión de los requisitos y los actores que participan en los mismos.
4.4.1 El concepto de requisito
º Un requisito de software es la capacidad que debe alcanzar o poseer un sistema o componente de un sistema para satisfacer un contrato
º Un requisito de software es la propiedad que un software desarrollado o adaptado debe tener para resolver un problema concreto
Un requisito de software consiste en dar soporte a procesos de negocio de la organización que ha pedido el software. Cuando se especifican los requisitos, se guarda información sobre los mismos lo cual permite gestionarlos e interpretarlos esto se conoce como atributos.
Atributo: Es cualquier información complementaria que se utiliza para su gestión y que se incluye en su especificación
4.4.2 Actividades de requisitos
Es la obtención, análisis, especificaciones y validación de requisitos del software
Se debe realizar un conjunto de objetivos preguntando que hay que hacer y porque, luego se lleva a cabo una explicación precisa de necesidades, esto será la base para el análisis de los requerimientos y la validación del desarrollo del software. En este proceso se debe definir exactamente que se va a construir para que se comprueba que el sistema construido y entregado cumple con lo especificado.
º La obtención de requisitos, consiste en conocer el propósito y funcionalidades del sistema desde la perspectiva del usuario.
º EL análisis de requisitos es el proceso de estudiar las necesidades del usuario para obtener una definición detallada de los requisitos.
º La especificación de los requisitos es el proceso de documentar el comportamiento requerido de un sistema software, a menudo utilizando una notación de modelado u otro lenguaje de especificación
º La Validación de requisitos consiste en examinar los requisitos para asegurarse de que definen el sistema que el cliente y los usuarios desean
Nota: No debe confundirse validación de requisitos con verificación de requisitos, pues esta última no forma parte de las actividades de los requisitos y consiste en comprobar el correcto funcionamiento de un requisito en el sistema desarrollado-
4.4.3 Actores
Los roles de las personas involucradas en el proceso de requisitos no son siempre los mismos y por lo tanto varían de un proyecto a otro
Actor: Es un rol que define lo que una persona desempeña en el proceso de requisitos
Los actores más comunes en los proyectos de desarrollo de software son:
Usuarios: Es el grupo de personas que operan el software
Clientes: Son aquellos que están interesados en adquirir el software
Analistas de mercado: Es cuando no existe un cliente definido y un grupo de personas especializadas que buscan las necesidades del mercado a través de los potenciales clientes
Reguladores: Son la perdonas encargadas de verificar que el software este ajustado por lo establecido por las entidades reguladoras
Ingenieros de software: Son los que tienen interés en la reutilización ciertos componentes software para otros proyectos.
4.4.4 características de los requisitos
La característica principal de todo es que tal sea verificable esto permitirá comprobar que el software da cumplimiento al requisito tal y como fue especificado.
La verificabilidad es una propiedad propia de un requisito, por lo cual es posible comprobar que el sistema es un conjunto, o alguno de sus componentes, satisface el requisito tal y como fue especificado.
Existen otras propiedades no esenciales, externas a los requisitos, los cuales son:
º Priorización
º Seguimiento
º Identificación única
º Cuantificabilidad
4.4.5 El documento de especificación de requisitos
Contiene un conjunto completo y preciso de requisitos modelados en un lenguaje de especificaciones y validados, los cuales sirven como contrato entre lo que desea el cliente y lo que los desarrolladores se comprometen a construir.
4.5 Tipos de requisitos
Son dos tipos de requisitos: Requisitos funcionales y Requisitos no funcionales. Los primeros definen aquellas funciones que el sistema o alguno de sus componentes debería ser capaz de hacer. Los segundos, describen restricciones y exigencias de calidad del sistema o de los procesos realizados por el mismo.
Algunas restricciones o limitaciones a las que se enfrentan los desarrolladores son: sistema operativo del entorno del usuario, el hardware, las limitaciones puestas por el usuario entre otras
Por otra parte, algunos requisitos representan propiedades emergentes, lo cual es el modo en el que el sistema funciona. La velocidad de ejecución, la complejidad o la facilidad de mantenimiento del sistema.
4.5.1 Requisitos Funcionales
Es el comportamiento del sistema que se va a desarrollar, incluye los procesos fundamentales que el software llevara a cabo, los requisitos funcionales vienen de un requisito de usuario.
Es importante, hacer un documento completo con los requisitos funcionales es necesario familiarizarse con el sistema y analizar los requisitos más obvios para ir descubriendo los menos evidentes este documento debe ser completo incluyendo todos los servicios solicitados por el usuario y que este esté sin contradicciones.
4.5.2 Requisitos No Funcionales
Estos están relacionados con las restricciones y exigencias de la calidad del sistema entre estos se encuentran los requisitos de rendimiento la facilidad de mantenimiento, interfaces externas, seguridad, capacidad de almacenamiento, etc.
Los no funcionales son difíciles de validar, y su evaluación se lleva a cabo de manera subjetiva. Un ejemplo de requisitos no funcionales es:
º El sistema debe estar disponible al menos el 95% de cada periodo de 24 horas.
Una clasificación completa de los requisitos no funcionales permite identificar tres categorías:
º Requisitos del producto: los que detallan limitaciones exigidos al producto resultante del desarrollo
º Requisitos de la organización: son los relacionados con la normativa de funcionamiento de la organización que lleva a cabo el desarrollo, los procedimientos y las políticas.
º Requisitos externos: cubren aspectos externos al sistema y a su proceso de desarrollo.
Por otro lado, los requisitos de ejecución donde se define como de bien se comporta el sistema en un aspecto determinado. Estos requisitos proporcionan valor al usuario e introducen elementos diferenciales con otros sistemas similares en términos competitivos en corto plazo. En esta categoría se encuentra los siguientes tipos de requisitos:
__ Usabilidad: facilidad de uso
__ Facilidad de configuración y de soporte
__ Corrección Confiabilidad y disponibilidad
__ Requisitos del entorno de ejecución
__ Requisitos de calidad de servicios
__ Seguridad
__ Descripciones de negocio.
Luego tenemos los requisitos de desarrollo estos proporcionan valor de negocio por lo cual influyen en la competitividad al largo plazo del producto software desarrollado.
Por último, se propone evaluar la facilidad de uso de un software a partir del tiempo que un usuario medio tarda en obtener un cierto nivel de capacitación.
4.5.3 Otras clasificaciones de los requisitos
__ Requisitos Según su nivel de detalle
Son explicaciones inexactas, generalmente en lenguaje natural, de las funciones que espera que lleve a cabo el sistema.
Los requisitos de usuario son:
⦁ Debe imprimir un informe mensual por cliente que contenga información detallada de las herramientas usadas
⦁ El número disponible de una herramienta se actualizara tras cada operación de compra o alquiler.
Por otro lado los requisitos del sistema son especificaciones que fijan con precisión que debe hacer el sistema. Estos requisitos son de carácter <<contractual>> entre los desarrolladores y el cliente. Los requisitos del sistema es algo más general que engloba los requisitos de usuario.
Requisitos según su objetivo
Otra manera de organizar los requisitos es la identificación del objetivo de cada requisito en sí, existen dos tipos de requisitos:
• Requisitos sobre el producto (software) que va a desarrollar se puede realizar. Ej. Un cliente no puede realizar otro alquiler si tiene algún pago pendiente de negocios de alquiler u de otros aspectos anteriores.
• Requisitos sobre el proceso, se materializan en restricciones sobre el proceso de desarrollo.
Ej. El lenguaje de programación que se usara será Java.
Algunos requisitos sobre el producto, generan requisitos sobre el sistema de forma comprendida.
4.6 Las actividades de requisitos
Son las actividades que se llevan a cabo para la obtención, análisis, especificación y validación de requisitos, estos deben ser hechos de acuerdo a un proceso claramente definido. En este proceso participan actores, cada uno desempeña un papel diferente de acuerdo a las actividades a realizar.
4.6.1 Obtención de requisitos
Se llama también “Obtención de requisitos” o “Elicitación de requisitos” es la primera actividad a realizar donde el objetivo principal es determinar cuáles son los requisitos del sistema que se va a desarrollar para tener el conocimiento suficiente del problema que se va a resolver.
En esta actividad el equipo de desarrolladores trabaja a fin con los clientes, usuarios y otros actores involucrados, por lo tanto tener una comunicación clara es importante para el proyecto llegue a buen término. Se debe investigar las fuentes de información de las que se entenderán los requisitos.
Unas de las fuentes de información son:
° Los objetivos generales o de alto nivel del software
° El dominio del problema
° Los propios involucrados o actores del proceso y sus distintas ideas
° El entorno donde se ejecutara el software
° El entorno de la organización, este debe adaptarse al software
Se deben establecer las técnicas de obtención de requisitos que se van a utilizar Se debe obtener la información sobre los requisitos de todos los actores involucrados, las cosas no son tan encillas como sentarse y anotar lo que los clientes digan. El desarrollador de software debe hacer unas preguntas precisas e investigar todos los puntos a favor y en contra, para esto se utilizan varias técnicas entre las más utilizadas:
• Entrevistas
• Escenarios
• Prototipos
• Reuniones de grupo
• Observaciones
• Estudio de documentos o formulario actualmente en uso
La entrevistas es una de las técnicas más utilizadas para la obtención de requisitos, pero para esto deben ser antes planeadas y preparadas. Las fases para una entrevista son:
1. Planificación: Se debe tener en claro cuáles son los datos que se desean obtener
2. Preparación: se debe investigar información externa que sea útil y apoye las preguntas que se van a realizar.
Se debe llevar una agenda de la entrevista es decir, un inicio, desarrollo, cierre y conclusiones. las preguntas deben ser diversas y deben estar clasificadas de la siguiente manera:
- preguntas sobre detalles claros y específicos
- preguntas sobre la visión de futuro del software
- preguntas sobre ideas alternativas
- preguntas sobre soluciones a posibles problemas, durante el desarrollo
- preguntas acerca de fuentes de información
Después de esto, se debe realizar el análisis de la información recaudada y la opinión de o las personas entrevistadas.
4.6.2 Análisis de requisitos
Esto sirve para especificar lo que debe llevarse a cabo para analizar los requisitos con el fin de tener en claro y definir cada uno de ellos. Se trata fundamentalmente de:
• Detectar y resolver los conflictos entre requisitos
• Determinar el software y establecer con que elementos externos interacciona
• Elabora los requisitos del sistema para obtener los requisitos del software a desarrollar
Se debe hacer un análisis de los requisitos muy extensa, donde se realice un modelado conceptual de los requisitos. Aunque el modelado es importante, esto no es la única tarea a realizar. La clasificación de requisitos, el diseño de la arquitectura del sistema y la situación de los requisitos de la misma, esto también es importante.
Clasificación de los requisitos: se basa en establecer en ordenar un conjunto de categorías y situar cada requisito en ellas. Se pueden clasificar de diferentes maneras: en funcionales o no funcionales, del proceso o del producto, por prioridad, derivados, por su ámbito, etc.
en cuanto a la priorización, debe determinarse la importancia relativa de cada requisito en relación con los demás.
Modelado conceptual: su objetivo principal es facilitar interpretación de los requisitos mediante una representación en un lenguaje. El modelado no hace parte de la elaboración de una solución se trata de una representación que permite comprender el problema.
Un modelo conceptual puede enfocarse desde diferentes perspectivas, cada una dará información de aspectos diferentes.
Situación de los requisitos en la arquitectura del sistema
En cierto momento del desarrollo debe establecerse que elementos del sistema software van a ser los responsables de satisfacer las demandas planteadas por los distintos requisitos.
A eso es a lo que se llama situación de los requisitos en la arquitectura del sistema, luego de esto se tendrá que analizar cada requisito especifico.
Negociación de los requisitos
Es también llamada análisis y negociación de requisitos esto porque en el periodo de análisis los requisitos surgen muy a menudo conflictos de interés, entre las distintas partes involucradas. Se debe definir de manera concreta cuales son los límites del sistema y como debe interaccionar con su entorno. La resolución de conflictos tiene que ver con la eliminación de los problemas entre las diferentes necesidades que están plasmadas en requisitos, funcionales y no funcionales.
Técnicas de detección y resolución de conflictos
Hay muchas técnicas para solucionar los posibles conflictos en los requisitos, las cuales tienen en cuenta aspectos sociales y psicológicos útiles en el proceso de negociación. Cualquier técnica que ayude a descubrir problemas con los requisitos y facilite el proceso, será de gran ayuda.
Al final de esta actividad se obtiene un conjunto de requisitos aceptados, los cuales deberán especificarse con detalle y documentarse, este documento se supone debe ser totalmente concreto como para poder ser utilizado como base del proceso de desarrollo, pero no por esto el documento permanecerá inalterable durante el proceso de desarrollo, puede que evolucione y se vayan incorporando o modificando algunos requisitos.
Durante el análisis de los requisitos y la búsqueda de conflictos, la técnica de matrices o tablas de doble entrada es una de las más utilizadas. Este método consiste en ordenar los identificadores de los requisitos en filas y columnas, comparando cada requisito con cada uno de los restantes y poniendo en la celda correspondiente un valor entero.
Ejemplo
- Si hay conflicto poner 1
- Si hay solapamiento poner 1.000
- Si hay independencia poner 0
Luego de completada la tabla, se suman los valores de filas y columnas y se divide cada suma entre 1.oooo. El resto de dicha división indica el número de conflictos para el requisito en cuestión, mientras que el cociente nos da el número de solapamientos de dicho requisito. En el ejemplo podemos observar que:
- R1 y R4 se solapan
- R2 y R3 se solapan
- R2 presenta conflictos con R1 y con R4
- R5 es independiente
Esta técnica se considera útil si el número de requisitos es inferior a doscientos. Si no es así, es preferible dividir el total de requerimientos en grupos funcionales homogéneos y aplicar la técnica separadamente a cada grupo.
4.6.3 Especificación de requisitos
Consiste en la completa descripción de los requisitos del sistema a desarrollar, para esto a cada requisito se le debe incluir información complementaria que permite tramitar y analizar información que se denomina <<atributos de requisitos>>
Se elabora un documento que por lo general incluye el documento de requisitos, uno o varios modelos, un prototipo, una estimación de esfuerzo y plazo y un presupuesto, esto facilita la elaboración de costes y tiempo.
Según el estándar 830-1998 de IEEE para la especificación de requisitos del software una especificación debe ser: completa, verificable, consistente, modificable, susceptible de permitir seguimientos, utilizable durante las fases de operación y mantenimiento, además, no debe tener ambigüedades.
Documento de definición del sistema
Es también llamado documento de requisitos del usuario, los requisitos de alto nivel del sistema son plasmados allí desde el punto de vista del dominio del problema. Los cuales están dirigidos a los que van a usar el sistema (usuarios y clientes) se detallan los requisitos de acuerdo a los objetivos que se quieren lograr. Incluye requisitos funcionales y no funcionales, las limitaciones que deben tenerse en cuenta, la definición de los principales conceptos del sistema. También puede incluir modelos conceptuales que permitan comprender el entorno del sistema.
Documento de requisitos del sistema
Sus principales objetivos consisten en proporcionar una aproximación al contexto, alcance y capacidades del sistema especificar las interfaces del mismo y los requisitos, documentando cualquier mejora futura. Sirve también para especificar estimaciones de coste y complejidad del software a desarrollar, las diferencias entre un documento de requisitos del sistema. Y el documento de especificaciones de requisitos del software son: funcionalidades del sistema, especificaciones de rendimiento, requisitos de seguridad, definición de la interfaz del usuario, especificación de que tareas serán llevadas a cabo por el software y cuales por el software y cuales por el hardware, según sea necesario.
Documento de especificaciones de requisitos del software (SRS)
Es lo que el software debe realizar, así como las especificaciones que debe tener el futuro sistema. También debe incluir todo lo que el software no debería realizar. Sirviendo como acuerdo formal de entre los clientes y los proveedores del software. Se recomienda completar el documento con un modelo utilizando notaciones como UML.
El estándar IEEE 830-1998 Para la elaboración de documentos de especificación de requisitos recomienda tratar los siguientes puntos:
• Capacidades fundamentales: ¿Qué debería hacer el software?
• Interfaces: ¿Cómo interacciona el software con los usuarios, con el hardware sobre el que funcionara y con software y hardware externos?
• Niveles de rendimiento: ¿Qué se requiere en términos de velocidad, disponibilidad, tiempo de respuesta, recuperación ante fallos Etc.?
• Atributos: ¿Qué consideraciones de seguridad, fiabilidad, protección de datos, privacidad y calidad, deben tenerse en cuenta?
• Restricciones y limitaciones de diseño: ¿existen estándares u otras especificaciones que deban seguirse durante el desarrollo? ¿Qué políticas sobre integridad de la base de datos, lenguajes de implementación. etc.?
Este documento debe permitir el seguimiento de los requisitos, ser correcto, ser completo y consistente, estar ordenado por importancia por importancia y/o estabilidad ser modificable y verificable. A La hora de realizar el documento de especificación de requisitos siempre surgen dudas como ¿por dónde empezar? ¿Cómo estructurar la información? Para comenzar el proyecto con confianza. Es recomendable utilizar una plantilla, junto con un método para enlazar los requisitos con las fuentes que lo originaron y una matriz de seguimiento.
• Plantilla para un SRS según el estándar IEEE 830-1998
La importancia de una correcta especificación
El documento de especificación de requisitos del software sirve como contrato entre el cliente que solicita el software y los desarrolladores del mismo, este representa un acuerdo, incluye condiciones, acuerdos, detalle del o los productos a entregar, las normas de desarrollo y las fechas de entrega. Cualquier cosa que no se contemple y haga parte del conjunto de funciones solicitadas, podrá ser demandada por el cliente como un incumplimiento del contrato.
Se recomienda no incluir en el SRS detalles sobre costes, plazos de entrega, procedimientos de generación y publicación de informes, método de desarrollo del software, criterios de aceptación y validación, y procedimientos de aceptación. Dado que se pueden presentar inconvenientes como: entrega de un producto inadecuado o incompleto, errores del software, falta de cobertura de los requisitos de usuario, retrasos en la entrega y sobre costes.
Los requisitos cambian. Ej. El cliente tiende a entender que quería una cosa cuando en realidad pidió algo distinto, porque realmente no entendió lo que se estableció en el contrato o porque se detectan necesidades a lo largo del proyecto que no fueron incluidas en el contrato, por lo tanto si son necesarias deben ser incluidas. Si es aprobado por el cliente, el desarrollador procede a una modificación del contrato.
4.6.4 Validación de requisitos
Consiste en examinar si los documentos de requisitos cumplen y definen el software que los usuarios esperan. Los requisitos están bajo procesos de validación y verificación para comprobar que el desarrollador ha comprendido y entendido claramente los requisitos y que estos están comprensibles y completos.
Los métodos más usados para la validación de requisitos son:
• Revisión de requisitos: Se revisan los documentos en busca de malentendidos, puntos poco claros, conflictos entre requisitos entre otros problemas que se puedan presentar. En esto hacen parte los desarrolladores y el cliente.
• Prototipado: Esto permite mostrar el funcionamiento de los requisitos, lo cual sirve de ayuda para encontrar problemas en los mismos y aclarar puntos que no estén claros.
• Validación del modelo: Esto es para verificar si el modelo es consistente y si refleja adecuadamente los requisitos reales del sistema.
Pruebas de aceptación: Consiste en la elaboración de un plan que establece como deben ser verificados los diferentes requisitos. Este proceso es útil para detectar problemas y a su vez proporciona ideas para la solución de dichos problemas.
Revisión de los requisitos
Esta técnica de revisión de requisitos, se lleva a cabo por un grupo de revisores que cuenta con representación de todos los actores o al menos los más importantes, cada uno presenta una tabla con un análisis acerca de los requisitos. El objetivo principal de este grupo es encontrar errores y contradicciones en los requisitos, descripciones poco claras y desviaciones de las prácticas estándar. Para esto se llenara una tabla como la siguiente.
La valorización de requisitos generalmente se realiza de acuerdo a un cuestionario estandarizado que comparten todos los miembros del equipo y que les sirve de apoyo a la hora de validar los requisitos. La siguiente tabla por ejemplo:
Uso de prototipos
Es la elaboración de un sistema que se construye para evaluar mejor los requisitos. Se muestra un modelo o prototipo de la interfaz del sistema que se planea construir.
Prototipo: es un modelo fácilmente ampliable y modificable de un sistema software donde se muestran su interfaz y las funcionalidades de entrada-salida más relevantes.
Existen varias formas de clasificar los requisitos, una de esas, dividen los prototipos según la cobertura del sistema, en globales y locales; según el objeto con el que han sido creados, en exploratorios, operacionales y experimentales; y según el siguiente modelo, en verticales y horizontales.
Las dimensiones del prototipo son:
⦁ Capacidad de ejecución: Indica si el prototipo es ejecutable o no. Si es afirmativo deberá especificarse de que tipo de prototipo se trata:
• Prototipo Guiado: versión en papel de la interfaz, muestra como respondería el sistema a la interacción EJ: <<SI HACE CLIC AQUÍ, APARECERA ESTA PANTALLA>>
• Animación: Demostración de lo que hace, diapositiva a diapositiva
• Interactivo: Prototipo que se ejecuta en una computadora y responde a las entradas del usuario en tiempo real
• Funcional: Realiza algunos de los cómputos esperados
⦁Madurez: Indica en qué estado de desarrollo con respecto al sistema final, se encuentra.
⦁ Representación: Se refiere a la fidelidad que alcanzara el prototipo con respecto al componente o sistema a construir.
⦁Alcance: Determina las áreas de funcionalidad a las que se limita el prototipo.
El uso de prototipos durante las actividades de requisitos es útil para descubrir nuevos requisitos para el sistema y para validar y verificar los mismos.
Mapa de procesos
El mapa de procesos es una representación gráfica que nos ayuda a visualizar todos los procesos que existen en una empresa y su interrelación entre ellos. Antes de realizar el mapa de procesos habrá que identificar todos los procesos.
LOS PASOS PARA HACER UN MAPA DE PROCESOS SERÍAN LOS SIGUIENTES:
1) Identificar a los actores
Clientes, proveedores y otras organizaciones de su entorno
2) Identificar la línea operativa
La línea operativa de nuestra organización está formada por la secuencia encadenada de procesos que llevamos a cabo para realizar nuestro producto
3) Añadir los procesos de soporte a la línea operativa y los de Dirección
Dirección, mejora continua, estrategia, o lo que queramos
4) Añadir los procesos que afectan a todo el sistema
Gestión de reclamaciones, recursos humanos, auditorías internas
En resumen tenemos tres tipos de procesos:
⦁ Estratégicos
⦁ Clave
⦁ Apoyo
El Mapa de Procesos es la representación gráfica de los procesos que están presentes en una organización, mostrando la relación entre ellos y sus relaciones con el exterior. A su vez, los procesos pueden ser agrupados en Macroprocesos en función de las macroactividades llevadas a cabo.
Una organización que pretenda una gestión sólida y bien orientada hacia sus objetivos estratégicos y sus resultados clave, requiere de una perspectiva global y transversal que sólo puede darse mediante una visión de procesos. En un mapa de procesos, los procesos pueden ser clasificados en:
⦁ Procesos Clave o Operativos. Corresponderían a los procesos centrales (actividades primarias o procesos de negocio) Son los que en mayor medida gestionan las actividades que desembocan en la entrega del producto / servicio al cliente. Afectan de modo directo la prestación del servicio / satisfacción del cliente-ciudadano externo de la organización. Están por tanto directamente relacionados con la misión de la organización, y en general consumen la mayor parte de los recursos del mismo.
⦁ Procesos de Soporte. Proporcionan recursos / apoyo a los procesos clave. Aquí suelen incluirse la mayor parte de los procesos internos no pertenecientes a los otros grupos. Estos procesos, si bien sus resultados no son obtenidos directamente por el cliente interno, son fundamentales para que los procesos clave operen correctamente.
⦁ Procesos Estratégicos. Son aquellos procesos que gestionan la relación de la organización con el entorno y la forma en que se toman decisiones sobre planificación y mejoras de la organización.
El mapa de procesos constituye una buena herramienta para efectuar la clasificación anterior así como para observar cómo se relacionan unos con otros y tener una perspectiva clara de la organización como un sistema.
http://www.aiteco.com/origen-del-mapa-de-procesos/
Conceptos
*Hardware Concepto y Tipos
*Software Concepto y Tipos
*Sistemas Operativos: Definición, Tipos.
*Dato, Información: Diferencia
*Sistema
*Sistema de Información: Concepto Tipos, Características, Principios.
*TGS (Teoría General de Sistemas)
*Base de Datos
*Campo, Registro, Archivo.
*Sistema Gestor de Base de Datos: Conceptos, Tipos, características.
*Fuentes de Información, Tipos.
*Técnicas de Recolección de Información
*Instrumentos de recolección de información
Hardware
El hardware es la parte física de un ordenador o sistema informático, está formado por los componentes eléctricos, electrónicos, electromecánicos y mecánicos, tales como circuitos de cables y circuitos de luz, placas, utensilios, cadenas y cualquier otro material, en estado físico, que sea necesario para hacer que el equipo funcione. El término viene del inglés, significa partes duras.
Tipos
El Hardware Básico: son las piezas fundamentales e imprescindibles para que la computadora funcione como son: Placa base, monitor, teclado y ratón.El Hardware Complementario: son todos aquellos dispositivos adicionales no esenciales como pueden ser: impresora, escáner, cámara de vídeo digital, webcam, etc.
Software
Es el equipamiento lógico o soporte lógico de una computadora digital; comprende el conjunto de los componentes lógicos necesarios que hacen posible la realización de tareas específicas. Los componentes lógicos incluyen, entre muchos otros, aplicaciones informáticas; tales como el procesador de textos, o el software de sistema, tal como el sistema operativo, que, básicamente, permite al resto de los programas funcionar adecuadamente, facilitando la interacción con los componentes físicos y con el resto de las aplicaciones, proporcionando también una interfaz para el usuario.
Tipos
Software de sistema
Es el software que nos permite tener una interacción con nuestro hardware, es decir, es el sistema operativo. Dicho sistema es un conjunto de programas que administran los recursos del hardware y proporciona una interfaz al usuario. Es el software esencial para una computadora, sin el no podría funcionar, como ejemplo tenemos a Windows, Linux, Mac OS X. Se clasifica en:
⦁ Sistemas operativos
⦁ Controladores de dispositivo
⦁ Herramientas de diagnóstico
⦁ Herramientas de Corrección y Optimización
⦁ Servidores
⦁ Utilidades
Software de Programación: Es un conjunto de aplicaciones que permiten a un programador desarrollar sus propios programas informáticos haciendo uso de sus conocimientos lógicos y lenguajes de programación. Algunos ejemplos:
⦁ Editores de texto
⦁ Compiladores
⦁ Intérpretes
⦁ Enlazadores
⦁ Depuradores
⦁ Entornos de Desarrollo Integrados (IDE)
Software de Aplicación: Son los programas que nos permiten realizar tareas específicas en nuestro sistema. A diferencia del software de sistema, el software de aplicación está enfocada en un área específica para su utilización. La mayoría de los programas que utilizamos diariamente pertenecen a este tipo de software, ya que nos permiten realizar diversos tipos de tareas en nuestro sistema.
Ejemplos:
> Procesadores de texto. (Bloc de Notas)
> Editores. (Photoshop para el Diseño Gráfico)
> Hojas de Cálculo. (MS Excel)
> Sistemas gestores de bases de datos. (MySQL)
> Programas de comunicaciones. (MSN Messenger)
> Paquetes integrados. (Ofimática: Word, Excel, PowerPoint…)
> Programas de diseño asistido por computador. (AutoCAD)
Los clasificamos en:
⦁ Aplicaciones de Sistema de control y automatización industrial
⦁ Aplicaciones ofimáticas
⦁ Software educativo
⦁ Software médico
⦁ Software de Cálculo Numérico
⦁ Software de Diseño Asistido (CAD)
⦁ Software de Control Numérico (CAM)
Sistema Operativo
Es el Conjunto de órdenes y programas que controlan los procesos básicos de una computadora y permiten el funcionamiento de otros programasSu objetivo es desvincular adecuadamente al usuario y al programador de los detalles de la computadora en particular que se use, aislándolo especialmente del procesamiento referido a las características internas de: memoria, discos, puertos y dispositivos de comunicaciones, impresoras, pantallas, teclados, etc. El software de sistema le procura al usuario y programador adecuadas interfaces de alto nivel, herramientas y utilidades de apoyo que permiten su mantenimiento.
Tipos
Sistemas competitivos: Varios procesos utilizan unos recursos del sistema que son limitados y, por tanto, la utilización por parte de unos procesos provoca la espera de otros a que estén libres.
Sistemas cooperativos:en un sistema distribuido se presenta en función de la integración y comunicación que existe entre los diferentes elementos que la componen.
Sistemas que modifican el estilo de operación del negocio
Los sistemas operativos más usados y conocidos universalmente son Windows, Linux y el Mac OS X.
El Windows es el más usado por diferencia, al ser económico. Además lo traen precargado la mayoría de ordenadores nuevos.
El Mac OS X pertenece a la empresa Apple, caracterizándose por su diseño gráfico y apariencia. Es el más caro.
Linux es una familia de sistemas operativos de código libre, lo que significa que cualquiera puede instalarlo sin necesidad de pagar a una empresa privada como Microsoft o Apple.
1) DOS: El famoso DOS, que quiere decir Disk Operating System (sistema operativo de disco), es más conocido por los nombres de PC-DOS y MS-DOS. MS-DOS fue hecho por la compañía de software Microsoft y es en esencia el mismo SO que el PC-DOS.
La razón de su continua popularidad se debe al aplastante volumen de software disponible y a la base instalada de computadoras con procesador Intel.
Cuando Intel liberó el 80286, DOS se hizo tan popular y firme en el mercado que DOS y las aplicaciones DOS representaron la mayoría del mercado de software para PC. En aquel tiempo, la compatibilidad IBM, fue una necesidad para que los productos tuvieran éxito, y la "compatibilidad IBM" significaba computadoras que corrieran DOS tan bien como las computadoras IBM lo hacían.
Aún con los nuevos sistemas operativos que han salido al mercado, todavía el DOS es un sólido contendiente en la guerra de los SO.
2) Windows 3.1: Microsoft tomo una decisión, hacer un sistema operativo que tuviera una interfaz gráfica amigable para el usuario, y como resultado obtuvo Windows. Este sistema muestra íconos en la pantalla que representan diferentes archivos o programas, a los cuales se puede accesar al darles doble click con el puntero del mouse. Todas las aplicaciones elaboradas para Windows se parecen, por lo que es muy fácil aprender a usar nuevo software una vez aprendido las bases.
4) Windows NT: Esta versión de Windows se especializa en las redes y servidores. Con este SO se puede interactuar de forma eficaz entre dos o más computadoras.
5) OS/2: Este SO fue hecho por IBM. Tiene soporte de 32 bits y su interfaz es muy buena. El problema que presenta este sistema operativo es que no se le ha dad el apoyo que se merece en cuanto a aplicaciones se refiere. Es decir, no se han creado muchas aplicaciones que aprovechen las características de el SO, ya que la mayoría del mercado de software ha sido monopolizado por Windows.
6) Mac OS: Las computadoras Macintosh no serían tan populares como lo son si no tuvieran el Mac OS como sistema operativo de planta. Este sistema operativo es tan amigable para el usuario que cualquier persona puede aprender a usarlo en muy poco tiempo. Por otro lado, es muy bueno para organizar archivos y usarlos de manera eficaz. Este fue creado por Apple Computer, Inc.
7) UNIX: El sistema operativo UNIX fue creado por los laboratorios Bell de AT&T en 1969 y es ahora usado como una de las bases para la supercarretera de la información. Unix es un SO multiusuario y multitarea, que corre en diferentes computadoras, desde supercomputadoras, Mainframes, Minicomputadoras, computadoras personales y estaciones de trabajo. Esto quiere decir que muchos usuarios puede estar usando una misma computadora por medio de terminales o usar muchas de ellas.
Dato
Es el elemento primario de la información conformado por símbolos (letras, números, dibujos, señas, gestos) que reunidos pueden cobrar significación. Solo o aislado el dato no posee relevancia, pero utilizado en las premisas de un razonamiento puede llevarnos a una conclusión. Surgen de la observación o la experiencia. Vemos la altura de un terreno y lo medimos, y así obtenemos un dato. Pedimos la identificación de una persona, y así obtenemos datos sobre su nombre y apellido y sobre la fecha de su nacimiento. Hacemos un censo, y obtenemos datos sobre el número de habitantes de un lugar o su nivel de instrucción.
Información
La información está constituida por un grupo de datos ya supervisados y ordenados, que sirven para construir un mensaje basado en un cierto fenómeno o ente. La información permite resolver problemas y tomar decisiones, ya que su aprovechamiento racional es la base del conocimiento.
La diferencia de datos a información,es que la información tiene significado. no solo puede formar potencialmente al que recibe,sino que esta organizada con algún propoito.Los datos se convierten en información cuando su creador les añade significado, trasformamos datos en información añadiéndoles valor en varios sentidos.
Sistema
Un sistema es un conjunto de partes o elementos organizadas y relacionadas
que interactúan entre sí para lograr un objetivo. Los sistemas reciben (entrada) datos, energía o materia del ambiente y proveen (salida) información, energía o materia
Sistema de información
Un sistema de información es un conjunto de elementos relacionados entre sí, que se encarga de procesar manual y/o automáticamente datos, en función de determinados objetivos.
Tipos
*Sistemas de procesamiento de transacciones.
*Sistemas de información gerencial.
*Sistemas de apoyo a decisiones.
*Sistemas expertos e inteligencia artificial.
*Sistemas de apoyo a decisiones de grupo.
*Sistemas de apoyo a ejecutivos.
SISTEMA DE PROCESAMIENTO DE TRANSACCIONES: cuando un sistema recopila, almacena y altera la información creada a partir de transacciones llevadas a cabo dentro de una organización se denomina sistema de procesamiento de transacciones. Tiene como finalidad procesar las transacciones diarias de una empresa, acumulando toda la información recibida en una base de datos para su posterior consulta.
SISTEMA DE INFORMACIÓN GERENCIAL: un sistema de información gerencial es aquel utilizado por la empresa para solventar inconvenientes en la misma. Es decir, el objetivo del mismo es la suministración de información para la resolución de problemas a través de la interacción entre tecnologías y personas.
Los datos aportados por el sistema deben disponer de cuatro cualidades elementales: calidad, oportunidad, cantidad y relevancia.
SISTEMA DE SOPORTE A DECISIONES: este sistema se basa en el estudio y la comparación entre un conjunto de variables con el objeto de contribuir a la toma de decisiones dentro de una empresa. El apoyo dado por el sistema involucra la estimación, valoración y balance entre alternativas. Al igual que el sistema de información gerencial, esta tecnología interacciona con personas en el filtrado de información que permite optar por la decisión mas acertada.
SISTEMA DE INFORMACION EJECUTIVA: esta tecnología es utilizada por los gerentes de una empresa, ya que permite acceder a la información interna y externa de la misma, disponiendo de los datos que puedan llegar a afectar su buen rendimiento.
De esta manera, el ejecutivo podrá conocer el estado de todos los indicadores, incluso aquellos que no cumplan con las expectativas y a partir de esto, tomar las medidas que considere adecuadas.
Caracteristicas
*Relevancia: proporción de datos necesarios para la aplicación.
*Facilidad: obtención fácil de los valores de los datos.
*Claridad: términos claramente definidos.
*Totalidad: inclusión de todos los elementos de datos necesarios.
*Esencialidad: exclusión de los elementos de datos innecesarios.
*Precisión: dominio de valores suficientemente grande para soportar aplicaciones.
*Identificación: facilidad de identificación de las entidades.
*Robustez: vista suficientemente amplia como para no requerir cambios periódicos.
*Flexibilidad: facilidad para la modificación.
*Homogeneidad: definición de los tipos de entidad con los atributos necesarios.
TGS
La T.G.S. establece que un sistema es una totalidad y que sus objetos (o componentes) y sus atributos (o propiedades) sólo pueden comprenderse como funciones del sistema total. Un sistema no es una colección aleatoria de componentes, sino una organización interdependiente en la que la conducta y expresión de cada uno influye y es influida por todos los otros.
El interés de la T.G.S. reside en los procesos transaccionales que ocurren entre los componentes de un sistema y entre sus propiedades. Dicho de otro modo, es imposible comprender un sistema mediante el solo estudio de sus partes componentes y "sumando" la impresión que uno recibe de éstas.
Base de datos
Una base de datos es una colección de información organizada de forma que un programa de ordenador pueda seleccionar rápidamente los fragmentos de datos que necesite. Una base de datos es un sistema de archivos electrónico.
Las bases de datos tradicionales se organizan por campos, registros y archivos. Un campoes una pieza única de información; un registro es un sistema completo de campos; y unarchivo es una colección de registros. Por ejemplo, una guía de teléfono es análoga a un archivo. Contiene una lista de registros, cada uno de los cuales consiste en tres campos: nombre, dirección, y número de teléfono.
Campo
Es un espacio de almacenamiento para un dato en particular. En las base de datos un campo es la mínima unidad de información a la que se puede acceder; un campo o un conjunto de ellos forman un registro, donde pueden existir campos en blanco, siendo éste un error del sistema operativo. En las hojas de cálculo (como los programas de Excel) los campos son llamados celdas.
La mayoría de los campos tienen atributos asociados a ellos. Por ejemplo, algunos campos son numéricos mientras otros almacenan texto, también varía el tamaño de estos.
Un campo puede ser:
—Texto En este tipo de campo se puede almacenar texto o combinaciones de texto y números, así como números que no requieran cálculos, como los números de teléfono o códigos postales.
—Alfanuméricos: Contiene cifras y letras.
—Numérico: Se utiliza para almacenar datos numéricos que pueden ser utilizados en todo tipo de operaciones matemáticas, excepto operaciones monetarias(para este tipo de operaciones se utiliza el tipo de campo Monetario).
Si/No: Son campos que solo contienen uno de dos valores, como: Si/No, Verdadero/Falso, Activado/Desactivado
Registro
Un registro es un conjunto de campos que contienen datos que pertenecen a una misma repetición de una entidad.
Representa un objeto único de datos implícitamente estructurado en una tabla.
La estructura implícita de un registro y el significado de los valores de sus campos exige que dicho registro se a entendido como una sucesión de datos, uno en cada columna de la tabla.
Archivo
Un Archivo es identificado por un nombre y la descripción de la carpeta o directorio que lo contiene.
Son los equivalentes digitales de los archivos en tarjetas, papel o microfichas del entorno de oficina tradicional, facilitan una manera de organizar los recursos usados para almacenar permanentemente datos en un sistema informático.
Sistema Gestor de Base de Dato
Es una colección de programas cuyo objetivo es servir de interfaz entre la base de datos, el usuario y las aplicaciones. Se compone de un lenguaje de definición de datos, de un lenguaje de manipulación de datos y de un lenguaje de consulta. Un SGBD permiten definir los datos a distintos niveles de abstracción y manipular dichos datos, garantizando la seguridad e integridad de los mismos.
*Algunos ejemplos de SGBD son Oracle, DB2, PostgreSQL, MySQL, MS SQL Server, etc.
Un SGBD debe permitir:
• Definir una base de datos: especificar tipos, estructuras y restricciones de datos.
• Construir la base de datos: guardar los datos en algún medio controlado por el mismo SGBD
• Manipular la base de datos: realizar consultas, actualizarla, generar informes.
Caracteristicas
*Independencia
*Redundancia minima
*Concistencia
*Seguridad
*Integridad
*Respaldo y recuperacion
*Control de la concurrencia
Tipos
• Relacionales
• En Red
• Jerárquicos
• Orientados a objetos
Fuentes de información
Los datos estadísticos necesarios para la comprensión de los hechos pueden obtenerse a través de fuentes primarias y fuentes secundarias.
Tipos
Fuentes primarias: Son las publicaciones y trabajos hechos por personas o instituciones que han recolectado directamente los datos.
Fuentes secundarias: Son las publicaciones y trabajos hechos por
personas o entidades que no han recolectado directamente la información.
Técnicas de Recolección de Información
Entrevistas: Conversación que tiene una estructura y un propósito
Encuestas: Se trata de requerir información a un grupo socialmente significativo de personas acerca de los problemas en estudio para luego, mediante un análisis de tipo cuantitativo sacar las conclusiones que se correspondan con los datos corregidos.
Observación: Cociste en el registro sistemático valido y confiable de comportamientos o conductas manifiesta.
Experimento: Este hace parte del método de investigación y es un proceso planificado de observaciones.
Instrumentos de recolección de información
Cuestionarios,guías de entrevistas,formatos de registros,cuadernos de registro,guía de observación,lista de chequeo y formularios de encuesta.
https://prezi.com/fa4ivm4cpe50/conceptos/
http://www.taringa.net/post/apuntes-monografias/8717309/Conceptos-Fundamentales-de-Programacion.html
http://www.tiposde.org/informatica/12-tipos-de-software/#ixzz494UXubBA
http://es.slideshare.net/kevinsegura/valientes-1973630
http://informaticaxp.net/clasificacion-y-tipos-de-software#
http://www.informaticamoderna.com/Infodat.htm
http://es.slideshare.net/abetancur/guia-tecnica-para-evaluacin-de-software
http://www.tiposde.org/informatica/89-tipos-de-sistemas-de-informacion/#ixzz4AF6Htstp
http://izamorar.com/cual-es-la-diferencia-entre-dato-e-informacion/
http://www.alegsa.com.ar/Dic/sistema.php
http://jms.caos.cl/si/si01.html
http://www.alegsa.com.ar/Dic/sistema.php
http://www.tiposde.org/informatica/89-tipos-de-sistemas-de-informacion/































No hay comentarios:
Publicar un comentario