En el idioma científico una proposición se refiere a un enunciado que puede ser verdadera o falsa.
Una preposición lógica es una expresión enunciativa a la que puede atribuirse un sentido o función lógica de verdad o falsedad. Aunque existen lógicas polivalentes o en orden a la claridad del concepto, aquí consideramos únicamente el valor de verdad o falsedad. Otro tipo de expresión que se utiliza en computación que también está asociado a dos opciones, es lo que se conoce como expresiones booleanas. Un enunciado lingüístico generalmente en la forma gramatical de una oración enunciativa puede ser como proposición lógica cuando es susceptible de ser verdadero o falso.
16/6/10
PREPOSICIONES
3<5 = preposiciones lógicas.
×+2-1 = preposiciones indeterminadas.
Buenos días = preposiciones indeterminadas.
Los elefantes vuelan=preposiciones lógica.
Esto es mentira = preposiciones indeterminadas.
El 8 de mayo de 1910 fue lunes = preposiciones lógicas.
2+3=y = preposiciones abiertas.
El mundial de futbol 2010 será en México = preposiciones lógicas.
Hoy hace calor = preposiciones indeterminadas.
La tierra es cuadrada = preposiciones lógicas.
Ayer llovió = preposiciones indeterminadas.
Mi carro es azul = preposiciones lógicas.
En Jamaica se habla español = preposiciones lógicas.
Buenas noches = preposiciones indeterminadas.
El 25 de junio nació Juan = preposiciones indeterminadas.
El metro hoy no funciona = preposiones lógicas.
Mi carro se descompuso = preposiciones lógicas.
Ayer fue jueves = preposiciones indeterminadas.
La película del cine estuvo mala = preposiciones indeterminadas.
2+3=5 = preposiciones abiertas.
A +b+c+d+e= n = preposiciónes abiertas.
Ya termine = preposiciones indeterminadas.
No reprobare la materia de lógica = preposiciones lógicas.
×+2-1 = preposiciones indeterminadas.
Buenos días = preposiciones indeterminadas.
Los elefantes vuelan=preposiciones lógica.
Esto es mentira = preposiciones indeterminadas.
El 8 de mayo de 1910 fue lunes = preposiciones lógicas.
2+3=y = preposiciones abiertas.
El mundial de futbol 2010 será en México = preposiciones lógicas.
Hoy hace calor = preposiciones indeterminadas.
La tierra es cuadrada = preposiciones lógicas.
Ayer llovió = preposiciones indeterminadas.
Mi carro es azul = preposiciones lógicas.
En Jamaica se habla español = preposiciones lógicas.
Buenas noches = preposiciones indeterminadas.
El 25 de junio nació Juan = preposiciones indeterminadas.
El metro hoy no funciona = preposiones lógicas.
Mi carro se descompuso = preposiciones lógicas.
Ayer fue jueves = preposiciones indeterminadas.
La película del cine estuvo mala = preposiciones indeterminadas.
2+3=5 = preposiciones abiertas.
A +b+c+d+e= n = preposiciónes abiertas.
Ya termine = preposiciones indeterminadas.
No reprobare la materia de lógica = preposiciones lógicas.
NOT
Algunos peces pueden nadar. Ningunos peces pueden nadar.
El agua es transparente. El agua no es transparente.
México está en América. México no está en América.
La mesa es azul. La mesa no es azul.
Todos los días hace calor. Ningún día hace calor.
Ningún oso polar tiene frio. Algunos osos polares tienen frio.
Algún sabio no tomo café. Ningún sabio no tomo café.
Las niñas hablan mucho. Las niñas no hablan mucho.
El carro funciona muy bien. El carro no funciona muy bien.
Yo pase la materia de lógica. Yo no pase la materia de lógica.
El agua es transparente. El agua no es transparente.
México está en América. México no está en América.
La mesa es azul. La mesa no es azul.
Todos los días hace calor. Ningún día hace calor.
Ningún oso polar tiene frio. Algunos osos polares tienen frio.
Algún sabio no tomo café. Ningún sabio no tomo café.
Las niñas hablan mucho. Las niñas no hablan mucho.
El carro funciona muy bien. El carro no funciona muy bien.
Yo pase la materia de lógica. Yo no pase la materia de lógica.
CONEXIONES LOGICAS
Hay que saber matemáticas, para ser feliz. P → q
Si no hace frio, iremos de día de campo. P → q
Hoy es sábado o mañana será lunes y me voy a la playa. P ѵ p Λ r
Pedro pasó el examen y juanita no. P ѵ q
Sebastián tuvo un accidente porque un conductor iba ebrio. P ↔ q
Julia no fue de compras porque maría no le hablo para confirmar la hora. P ↔ q
Juan fue a comer y María llego tarde porque había mucho tráfico. P Λ q → r
Hoy es lunes o mañana será sábado. P V q
El no es rico ni feliz. P Λ q
Si encuentra un producto mejor cómprelo. P → q
Juan presento el examen y lo paso. P → q
Un número distinto a cero es positivo o negativo. P V q
Si no hace frio, iremos de día de campo. P → q
Hoy es sábado o mañana será lunes y me voy a la playa. P ѵ p Λ r
Pedro pasó el examen y juanita no. P ѵ q
Sebastián tuvo un accidente porque un conductor iba ebrio. P ↔ q
Julia no fue de compras porque maría no le hablo para confirmar la hora. P ↔ q
Juan fue a comer y María llego tarde porque había mucho tráfico. P Λ q → r
Hoy es lunes o mañana será sábado. P V q
El no es rico ni feliz. P Λ q
Si encuentra un producto mejor cómprelo. P → q
Juan presento el examen y lo paso. P → q
Un número distinto a cero es positivo o negativo. P V q
15/6/10
C.L.BINARIAS
COPULATIVAS
Conjunciones: Y, E, NI
Significado: Al significado de una proposición se le suma el significado de la otra u otras ( copula = suma)
Ejemplos:
Corre y salta
María canta e Isabel baila
DISYUNTIVAS
Conjunciones: O, U, YA ... YA, BIEN... BIEN, ORA ... ORA
Significado: Se escoge entre dos o más posibilidades. Y el cumplimiento de una proposición excluye el cumplimiento de las demás
Ejemplos:
O vienes a mi casa o me llamas por teléfono
Ya se está riendo abiertamente, ya se muere de pena.
ADVERSATIVAS
Conjunciones: PERO, MAS, SINO, SALVO, SIN EMBARGO, NO OBSTANTE
Significado: Lo dicho en una proposición se opone, total o parcialmente, a lo dicho en otra.
Ejemplos:
Lee, pero no entiende.
Le advertí, mas no me hizo caso
C
Conjunciones: Y, E, NI
Significado: Al significado de una proposición se le suma el significado de la otra u otras ( copula = suma)
Ejemplos:
Corre y salta
María canta e Isabel baila
DISYUNTIVAS
Conjunciones: O, U, YA ... YA, BIEN... BIEN, ORA ... ORA
Significado: Se escoge entre dos o más posibilidades. Y el cumplimiento de una proposición excluye el cumplimiento de las demás
Ejemplos:
O vienes a mi casa o me llamas por teléfono
Ya se está riendo abiertamente, ya se muere de pena.
ADVERSATIVAS
Conjunciones: PERO, MAS, SINO, SALVO, SIN EMBARGO, NO OBSTANTE
Significado: Lo dicho en una proposición se opone, total o parcialmente, a lo dicho en otra.
Ejemplos:
Lee, pero no entiende.
Le advertí, mas no me hizo caso
C
CONEXIONES LOGICAS
Es un proceso discursivo que sujeto a reglas o preceptos se desarrolla en dos o tres pasos y cumple con la finalidad de obtener una proposición de la cual se llega a saber, con certeza absoluta, si es verdadera ó falsa. Además cada razonamiento es autónomo de los demás y toda conclusión obtenida es infalible e inmutable.
Pasos y preceptos del razonamiento:
El primer paso: Consiste en formular una implicación lógica con dos premisas o proposiciones [P] y [Q] relacionadas en la forma {SI(=IF) [P] ENTONCES [Q]}.
Preceptos del primer paso: La implicación lógica que se formule será válida, siempre y cuando se cumpla con los dos preceptos siguientes:
1) Que la premisa antecedente [P], la premisa consecuente [Q] y la implicación lógica {SI(=IF) [P] ENTONCES [Q]} posean, por sí mismas, significado y sentido.
2) Que la implicación lógica {SI(=IF) [P] ENTONCES [Q]} sea de la forma DEDUCTIVA, lo cual únicamente ocurre si la premisa antecedente [P] implica (lleva en si misma ó contiene) a la premisa consecuente [Q], y ésta a su vez es implicada (contenida en forma total) por la primera.
Observación: La implicación lógica será inválido si la premisa antecedente no implica a la consecuente, aunque ésta implique a la primera (implicación de forma INDUCTIVA).
Pasos y preceptos del razonamiento:
El primer paso: Consiste en formular una implicación lógica con dos premisas o proposiciones [P] y [Q] relacionadas en la forma {SI(=IF) [P] ENTONCES [Q]}.
Preceptos del primer paso: La implicación lógica que se formule será válida, siempre y cuando se cumpla con los dos preceptos siguientes:
1) Que la premisa antecedente [P], la premisa consecuente [Q] y la implicación lógica {SI(=IF) [P] ENTONCES [Q]} posean, por sí mismas, significado y sentido.
2) Que la implicación lógica {SI(=IF) [P] ENTONCES [Q]} sea de la forma DEDUCTIVA, lo cual únicamente ocurre si la premisa antecedente [P] implica (lleva en si misma ó contiene) a la premisa consecuente [Q], y ésta a su vez es implicada (contenida en forma total) por la primera.
Observación: La implicación lógica será inválido si la premisa antecedente no implica a la consecuente, aunque ésta implique a la primera (implicación de forma INDUCTIVA).
CONSTANTE Y GERARQUIA DE OPERADORES
Para resolver una expresión aritmética hay una serie de reglas que se deben seguir:
• Primero se resuelven las expresiones que se encuentran entre paréntesis.
• Se aplica la jerarquía de operadores (primero las potencias, después multiplicación o división, y por ultimo suma y resta.
• Al evaluar una expresión, si hay dos operadores con la misma jerarquía, se evalúa de izquierda a derecha.
• Si hay expresiones relacionales, se resuelven primero paréntesis, luego se encuentran los valores y por último se aplica la jerarquía de operadores. En caso de ser de igual jerarquía, proceder de izquierda a d Combinación de sumas y diferencias.9 - 7 + 5 + 2 -6 + 8 - 4 = Comenzando por la izquierda, vamos efectuando las operaciones según aparecen. = 9 - 7 + 5 + 2 -6 + 8 - 4 = 7.
Combinación de sumas, restas, productos y divisiones.
10: 2 + 5 • 3 + 4 - 5 • 2 - 8 + 4 • 2 - 16: 4 =
Realizamos los productos y cocientes en el orden en el que los encontramos porque las dos operaciones tienen la misma prioridad.
= 5 + 15 + 4 - 10 - 8 + 8 - 4 = Efectuamos las sumas y restas.
= 5 + 15 + 4 - 10 - 8 + 8 - 4 = 10
Combinación de sumas, restas, productos, divisiones y potencias.
23 + 10: 2 + 5 • 3 + 4 - 5 • 2 - 8 + 4 • 22 - 16: 4 =Realizamos en primer lugar las potencias por tener mayor prioridad.
= 8 + 10: 2 + 5 • 3 + 4 - 5 • 2 - 8 + 4 • 4 - 16: 4 =
Seguimos con los productos y cocientes.
= 8 + 5 + 15 + 4 - 10 - 8 + 16 - 4 =
CONSTANTE
Seguimos con los productos y cocientes en general, una constante es un valor de tipo permanente, que no puede modificarse, al menos no dentro del contexto o situación para el cual está previsto. Suele relacionarse y usarse en combinación con las variables, que sí admiten modificación en sus valores...
• Primero se resuelven las expresiones que se encuentran entre paréntesis.
• Se aplica la jerarquía de operadores (primero las potencias, después multiplicación o división, y por ultimo suma y resta.
• Al evaluar una expresión, si hay dos operadores con la misma jerarquía, se evalúa de izquierda a derecha.
• Si hay expresiones relacionales, se resuelven primero paréntesis, luego se encuentran los valores y por último se aplica la jerarquía de operadores. En caso de ser de igual jerarquía, proceder de izquierda a d Combinación de sumas y diferencias.9 - 7 + 5 + 2 -6 + 8 - 4 = Comenzando por la izquierda, vamos efectuando las operaciones según aparecen. = 9 - 7 + 5 + 2 -6 + 8 - 4 = 7.
Combinación de sumas, restas, productos y divisiones.
10: 2 + 5 • 3 + 4 - 5 • 2 - 8 + 4 • 2 - 16: 4 =
Realizamos los productos y cocientes en el orden en el que los encontramos porque las dos operaciones tienen la misma prioridad.
= 5 + 15 + 4 - 10 - 8 + 8 - 4 = Efectuamos las sumas y restas.
= 5 + 15 + 4 - 10 - 8 + 8 - 4 = 10
Combinación de sumas, restas, productos, divisiones y potencias.
23 + 10: 2 + 5 • 3 + 4 - 5 • 2 - 8 + 4 • 22 - 16: 4 =Realizamos en primer lugar las potencias por tener mayor prioridad.
= 8 + 10: 2 + 5 • 3 + 4 - 5 • 2 - 8 + 4 • 4 - 16: 4 =
Seguimos con los productos y cocientes.
= 8 + 5 + 15 + 4 - 10 - 8 + 16 - 4 =
CONSTANTE
Seguimos con los productos y cocientes en general, una constante es un valor de tipo permanente, que no puede modificarse, al menos no dentro del contexto o situación para el cual está previsto. Suele relacionarse y usarse en combinación con las variables, que sí admiten modificación en sus valores...
Etiquetas:
CONSTANTE Y GERARQUIA DE OPERADORES
LOGICA FORMAL,BIT Y VARIABLE
La lógica formal es la parte de la lógica que, a diferencia de la lógica informal, se dedica al estudio de la inferencia mediante la construcción de lenguajes formales, sistemas deductivos y semánticas formales. La idea es que estas construcciones capturen las características esenciales de las inferencias válidas en los lenguajes naturales, pero que al ser estructuras formales y susceptibles de análisis matemático, permiten realizar demostraciones rigurosas sobre ellas.
La lógica formal no debe ser confundida con la lógica matemática, antes llamada lógica simbólica, que es una subdisciplina de la lógica formal. Se acostumbra a definir la lógica formal como aquella ciencia que estudia los razonamientos desde el punto del análisis formal, es decir, desde el punto de vista de su validez o no validez. Esto significa que se desentiende del contenido empírico de los razonamientos para sólo considerar la "forma" (estructura sin materia). Dado el siguiente silogismo: Los insectos son artrópodos; los dípteros son insectos; por tanto, los dípteros son artrópodos; al lógico sólo le interesa su validez o corrección (que es formal) expresada en la estructura vacía de contenido Todo A es B; todo C es A; por tanto, todo C es B. El que los dípteros sean o no sean artrópodos es una cuestión empírica que interesará en cualquier caso al zoólogo, pero de ninguna manera al lógico. El fundador de la lógica formal fue Aristóteles. Esta disciplina se fue perfeccionando con la introducción, a lo largo del siglo XIX y XX, de todo un potente formalismo matemático (Jorge Boole, Gottlob Frege, Beltrán Russell, etc.). Resulta ya un lugar común equiparar la lógica formal a la lógica matemática, por lo que actualmente constituyen expresiones prácticamente sinónimas. El materialismo formalista rectifica este planteamiento sosteniendo la imposibilidad de una ciencia "no material". La lógica formal posee referenciales fisicalistas y es tan material como cualquier otra disciplina científica, ya que toda ciencia es material. Por otra parte, no resulta aceptable la existencia de formas puras hipostasiadas exentas de contenidos materiales
BIT
Bit es el acrónimo de Binary digit. (dígito binario). Un bit es un dígito del sistema de numeración binario.
Mientras que en el sistema de numeración decimal se usan diez dígitos, en el binario se usan sólo dos dígitos, el 0 y el 1. Un bit o dígito binario puede representar uno de esos dos valores, 0 ó 1.
Se puede imaginar un bit, como una bombilla que puede estar en uno de los siguientes dos estados: apagado encendido.
Memoria de computadora de 1980 donde se pueden ver los bits físicos. Este conjunto de unos 4x4 cm. corresponden a 512 bytes.
El bit es la unidad mínima de información empleada en informática, en cualquier dispositivo digital, o en la teoría de la información. Con él, podemos representar dos valores cuales quiera, como verdadero o falso, abierto o cerrado, blanco o negro, norte o sur, masculino o femenino, rojo o azul, etc. Basta con asignar uno de esos valores al estado de "apagado" (0), y el otro al estado de "encendido" (1). Un bit es una señal electrónica que puede estar encendida (1) o apagada (0). Es la unidad más pequeña de información que utiliza un ordenador. Son necesarios 8 bits para crear un byte.
VARIABLE
Una variable es aquello que varía o puede variar. Se trata de algo inestable, inconstante y mudable. En otras palabras, una variable es un símbolo que representa un elemento no especificado de un conjunto dado. Este conjunto es denominado conjunto universal de la variable o universo de la variable, y cada elemento del conjunto es un valor de la variable.
Por ejemplo: x es una variable del universo {2, 4, 6, 8}. Por lo tanto, x puede tener cualquiera de dichos valores, es decir que puede ser reemplazada por cualquier número par menor a 9.
Una variable es un elemento de una fórmula, proposición o algoritmo, que puede ser sustituido o puede adquirir un valor cualquiera dentro de su universo. Los valores de una variable pueden definirse dentro de un rango o estar limitados por condiciones de pertenencia.
Puede hablarse de distintos tipos de variable: las variables dependientes, que son aquellas que dependen del valor que asuman otros fenómenos o variables; las variables independientes, cuyos cambios en los valores determinan cambios en los valores de otra; variables cualitativas, que expresan distintas cualidades, características o modalidades; y variables cuantitativas, que se enuncian mediante cantidades numéricas, entre otras.
En el ámbito de la programación (informática), las variables son estructuras de datos que pueden cambiar de contenido a lo largo de la ejecución de un programa. Estas estructuras corresponden a un área reservada en la memoria principal de la computadora .
La lógica formal no debe ser confundida con la lógica matemática, antes llamada lógica simbólica, que es una subdisciplina de la lógica formal. Se acostumbra a definir la lógica formal como aquella ciencia que estudia los razonamientos desde el punto del análisis formal, es decir, desde el punto de vista de su validez o no validez. Esto significa que se desentiende del contenido empírico de los razonamientos para sólo considerar la "forma" (estructura sin materia). Dado el siguiente silogismo: Los insectos son artrópodos; los dípteros son insectos; por tanto, los dípteros son artrópodos; al lógico sólo le interesa su validez o corrección (que es formal) expresada en la estructura vacía de contenido Todo A es B; todo C es A; por tanto, todo C es B. El que los dípteros sean o no sean artrópodos es una cuestión empírica que interesará en cualquier caso al zoólogo, pero de ninguna manera al lógico. El fundador de la lógica formal fue Aristóteles. Esta disciplina se fue perfeccionando con la introducción, a lo largo del siglo XIX y XX, de todo un potente formalismo matemático (Jorge Boole, Gottlob Frege, Beltrán Russell, etc.). Resulta ya un lugar común equiparar la lógica formal a la lógica matemática, por lo que actualmente constituyen expresiones prácticamente sinónimas. El materialismo formalista rectifica este planteamiento sosteniendo la imposibilidad de una ciencia "no material". La lógica formal posee referenciales fisicalistas y es tan material como cualquier otra disciplina científica, ya que toda ciencia es material. Por otra parte, no resulta aceptable la existencia de formas puras hipostasiadas exentas de contenidos materiales
BIT
Bit es el acrónimo de Binary digit. (dígito binario). Un bit es un dígito del sistema de numeración binario.
Mientras que en el sistema de numeración decimal se usan diez dígitos, en el binario se usan sólo dos dígitos, el 0 y el 1. Un bit o dígito binario puede representar uno de esos dos valores, 0 ó 1.
Se puede imaginar un bit, como una bombilla que puede estar en uno de los siguientes dos estados: apagado encendido.
Memoria de computadora de 1980 donde se pueden ver los bits físicos. Este conjunto de unos 4x4 cm. corresponden a 512 bytes.
El bit es la unidad mínima de información empleada en informática, en cualquier dispositivo digital, o en la teoría de la información. Con él, podemos representar dos valores cuales quiera, como verdadero o falso, abierto o cerrado, blanco o negro, norte o sur, masculino o femenino, rojo o azul, etc. Basta con asignar uno de esos valores al estado de "apagado" (0), y el otro al estado de "encendido" (1). Un bit es una señal electrónica que puede estar encendida (1) o apagada (0). Es la unidad más pequeña de información que utiliza un ordenador. Son necesarios 8 bits para crear un byte.
VARIABLE
Una variable es aquello que varía o puede variar. Se trata de algo inestable, inconstante y mudable. En otras palabras, una variable es un símbolo que representa un elemento no especificado de un conjunto dado. Este conjunto es denominado conjunto universal de la variable o universo de la variable, y cada elemento del conjunto es un valor de la variable.
Por ejemplo: x es una variable del universo {2, 4, 6, 8}. Por lo tanto, x puede tener cualquiera de dichos valores, es decir que puede ser reemplazada por cualquier número par menor a 9.
Una variable es un elemento de una fórmula, proposición o algoritmo, que puede ser sustituido o puede adquirir un valor cualquiera dentro de su universo. Los valores de una variable pueden definirse dentro de un rango o estar limitados por condiciones de pertenencia.
Puede hablarse de distintos tipos de variable: las variables dependientes, que son aquellas que dependen del valor que asuman otros fenómenos o variables; las variables independientes, cuyos cambios en los valores determinan cambios en los valores de otra; variables cualitativas, que expresan distintas cualidades, características o modalidades; y variables cuantitativas, que se enuncian mediante cantidades numéricas, entre otras.
En el ámbito de la programación (informática), las variables son estructuras de datos que pueden cambiar de contenido a lo largo de la ejecución de un programa. Estas estructuras corresponden a un área reservada en la memoria principal de la computadora .
MATEMATICAS
Álgebra de Boole (también llamada Retículas booleanas) en informática y matemática, es una estructura algebraica que vigorizan las operaciones lógicas Y, O y NO, así como el conjunto de operaciones unión, intersección y complemento.
Se denomina así en honor a George Boole, (2 de noviembre de 1815 a 8 de diciembre de 1864), matemático inglés que fue el primero en definirla como parte de un sistema lógico a mediados del siglo XIX. El álgebra de Boole fue un intento de utilizar las técnicas algebraicas para tratar expresiones de la lógica proposicional. En la actualidad, el álgebra de Boole se aplica de forma generalizada en el ámbito del diseño electrónico. Claude Shannon fue el primero en aplicarla. Constituyen un área de las matemáticas que ha pasado a ocupar un lugar prominente con el advenimiento de la computadora digital. Son usadas ampliamente en el diseño de circuitos de distribución y computadoras, y sus aplicaciones van en aumento en muchas otras áreas. En el nivel de lógica digital de una computadora, lo que comúnmente se llama hardware, y que está formado por los componentes electrónicos de la máquina, se trabaja con diferencias de tensión, las cuales generan funciones que son calculadas por los circuitos que forman el nivel. Éstas funciones, en la etapa de diseña del hardware, son interpretadas como funciones de viole... El álgebra booleana es un sistema matemático deductivo centrado en los valores cero y uno (falso y verdadero). Un operador binario " º " definido en éste juego de valores acepta un par de entradas y produce un solo valor booleano, por ejemplo, el operador booleano AND acepta dos entradas booleanas y produce una sola salida booleana
Se denomina así en honor a George Boole, (2 de noviembre de 1815 a 8 de diciembre de 1864), matemático inglés que fue el primero en definirla como parte de un sistema lógico a mediados del siglo XIX. El álgebra de Boole fue un intento de utilizar las técnicas algebraicas para tratar expresiones de la lógica proposicional. En la actualidad, el álgebra de Boole se aplica de forma generalizada en el ámbito del diseño electrónico. Claude Shannon fue el primero en aplicarla. Constituyen un área de las matemáticas que ha pasado a ocupar un lugar prominente con el advenimiento de la computadora digital. Son usadas ampliamente en el diseño de circuitos de distribución y computadoras, y sus aplicaciones van en aumento en muchas otras áreas. En el nivel de lógica digital de una computadora, lo que comúnmente se llama hardware, y que está formado por los componentes electrónicos de la máquina, se trabaja con diferencias de tensión, las cuales generan funciones que son calculadas por los circuitos que forman el nivel. Éstas funciones, en la etapa de diseña del hardware, son interpretadas como funciones de viole... El álgebra booleana es un sistema matemático deductivo centrado en los valores cero y uno (falso y verdadero). Un operador binario " º " definido en éste juego de valores acepta un par de entradas y produce un solo valor booleano, por ejemplo, el operador booleano AND acepta dos entradas booleanas y produce una sola salida booleana
ALGEBRA DE BOOLE
Álgebra de Boole
(También llamada Retículas booleanas) en informática y matemática, es una estructura algebraica que vigorizan las operaciones lógicas Y, O y NO, así como el conjunto de operaciones unión, intersección y complemento.
Se denomina así en honor a George Boole, (2 de noviembre de 1815 a 8 de diciembre de 1864), matemático inglés que fue el primero en definirla como parte de un sistema lógico a mediados del siglo XIX. El álgebra de Boole fue un intento de utilizar las técnicas algebraicas para tratar expresiones de la lógica proposicional. En la actualidad, el álgebra de Boole se aplica de forma generalizada en el ámbito del diseño electrónico. Claude Shannon fue el primero en aplicarla en el diseño de circuitos de conmutación eléctrica visitables, en 1948. El Álgebra de Boole es una estructura algebraica que puede ser considerada desde distintos puntos de vista matemáticos:
Como retículo
El álgebra de Boole es un retículo (A, 1,0, , +), donde el conjunto A = {1,0}, como retículo presenta las siguientes propiedades, las leyes principales son estas:
1. Ley de Idempotencia:
2. Ley de Asociatividad:
3. Ley de Conmutatividad:
4. Ley de Cancelativo
(También llamada Retículas booleanas) en informática y matemática, es una estructura algebraica que vigorizan las operaciones lógicas Y, O y NO, así como el conjunto de operaciones unión, intersección y complemento.
Se denomina así en honor a George Boole, (2 de noviembre de 1815 a 8 de diciembre de 1864), matemático inglés que fue el primero en definirla como parte de un sistema lógico a mediados del siglo XIX. El álgebra de Boole fue un intento de utilizar las técnicas algebraicas para tratar expresiones de la lógica proposicional. En la actualidad, el álgebra de Boole se aplica de forma generalizada en el ámbito del diseño electrónico. Claude Shannon fue el primero en aplicarla en el diseño de circuitos de conmutación eléctrica visitables, en 1948. El Álgebra de Boole es una estructura algebraica que puede ser considerada desde distintos puntos de vista matemáticos:
Como retículo
El álgebra de Boole es un retículo (A, 1,0, , +), donde el conjunto A = {1,0}, como retículo presenta las siguientes propiedades, las leyes principales son estas:
1. Ley de Idempotencia:
2. Ley de Asociatividad:
3. Ley de Conmutatividad:
4. Ley de Cancelativo
LOGICA DE PRIMER ORDEN
Un predicado es «lo que se afirma del sujeto en una proposición»
(D.R.A.E.). Esta definición es incompleta, porque en lógica también se llama predicado a lo que se afirma sobre dos o más sujetos, es decir a una relación entre ellos. Hay predicados unarios (o monódicos), predicados binarios, etc. Los predicados unarios son afirmaciones sobre propiedades (relaciones de grado 1), los binarios, sobre relaciones de grado 2, etc.
4. La lógica de predicados nos permite entrar en contenido de las proposiciones. Enunciados como «Juan es padre de Luis» y «Luis es hijo de Juan» en lógica de proposiciones sólo pueden representarse como variables proposicionales, y no es posible representar un conocimiento tan simple como que si x es padre de y entonces y es hijo de x.
5. Con la lógica de predicados podemos representar conceptuaciones que contienen relaciones entre objetos (como las relaciones «padre» e «hijo»). Ahora bien, a veces la conceptuación también expresa relaciones entre relaciones, o propiedades (relaciones de grado 1) de relaciones. Por ejemplo, «padre es una relación familiar». A la lógica que sólo permite representar relaciones entre objetos se le llama de primer orden, la que permite relaciones entre relaciones, de segundo orden, y así sucesivamente.
(D.R.A.E.). Esta definición es incompleta, porque en lógica también se llama predicado a lo que se afirma sobre dos o más sujetos, es decir a una relación entre ellos. Hay predicados unarios (o monódicos), predicados binarios, etc. Los predicados unarios son afirmaciones sobre propiedades (relaciones de grado 1), los binarios, sobre relaciones de grado 2, etc.
4. La lógica de predicados nos permite entrar en contenido de las proposiciones. Enunciados como «Juan es padre de Luis» y «Luis es hijo de Juan» en lógica de proposiciones sólo pueden representarse como variables proposicionales, y no es posible representar un conocimiento tan simple como que si x es padre de y entonces y es hijo de x.
5. Con la lógica de predicados podemos representar conceptuaciones que contienen relaciones entre objetos (como las relaciones «padre» e «hijo»). Ahora bien, a veces la conceptuación también expresa relaciones entre relaciones, o propiedades (relaciones de grado 1) de relaciones. Por ejemplo, «padre es una relación familiar». A la lógica que sólo permite representar relaciones entre objetos se le llama de primer orden, la que permite relaciones entre relaciones, de segundo orden, y así sucesivamente.
LOGICA PROPOSICIONAL
Lógica proposicional
En lógica y matemática, la lógica proposicional es un sistema formal diseñado para analizar ciertos tipos de argumentos. En la lógica proposicional, las fórmulas representan proposiciones y las constantes lógicas son operaciones sobre las fórmulas que producen otras fórmulas de mayor complejidad.1 Como otros sistemas lógicos, la lógica proposicional intenta esclarecer nuestra comprensión de la noción de consecuencia lógica para el rango de argumentos que analiza.
Considérese el siguiente argumento:
1. Mañana es miércoles o mañana es jueves.
2. Mañana no es jueves.
3. Por lo tanto, mañana es miércoles.
Este es un argumento válido. Quiere decir que es imposible que las premisas sean verdaderas y la conclusión falsa. Esto no quiere decir que la conclusión sea verdadera. Si las premisas son falsas, entonces la conclusión también podría serlo. Pero si las premisas son verdaderas, entonces la conclusión también lo es. La validez de este argumento no se debe al significado de las expresiones "mañana es miércoles" y "mañana es jueves", porque éstas podrían cambiarse por otras y el argumento permanecer válida. Por ejemplo:
1. Está soleado o está nublado.
2. No está nublado.
3. Por lo tanto, está soleado.
En cambio, la validez de estos dos argumentos depende del significado de las expresiones "o" y "no". Si alguna de estas expresiones se cambiara por otra, entonces podría ser que los argumentos dejaran de ser válidos. Por ejemplo:
1. Ni está soleado ni está nublado.
2. No está nublado.
3. Por lo tanto, está soleado.
Las expresiones de las que depende la validez de los argumentos se llaman constantes lógicas. La lógica proposicional estudia el comportamiento de una variedad de estas expresiones. En cuanto a las expresiones como "está nublado" o "mañana es jueves", lo único que importa de ellas es que tengan un valor de verdad. Es por esto que se las reemplaza por simples letras, cuya intención es simbolizar una expresión con valor de verdad cualquiera. A estas letras se las llama variables proposicionales, y en general se toman del alfabeto latino, empezando por la letra p, luego q, r, s, etc. Así, los dos primeros argumentos de esta sección podrían reescribirse así:
1. p o q
2. No q
3. Por lo tanto, p
Y el tercer argumento, a pesar de no ser válido, puede reescribirse así:
1. Ni p ni q
2. No q
3. Por lo tanto, p
En lógica y matemática, la lógica proposicional es un sistema formal diseñado para analizar ciertos tipos de argumentos. En la lógica proposicional, las fórmulas representan proposiciones y las constantes lógicas son operaciones sobre las fórmulas que producen otras fórmulas de mayor complejidad.1 Como otros sistemas lógicos, la lógica proposicional intenta esclarecer nuestra comprensión de la noción de consecuencia lógica para el rango de argumentos que analiza.
Considérese el siguiente argumento:
1. Mañana es miércoles o mañana es jueves.
2. Mañana no es jueves.
3. Por lo tanto, mañana es miércoles.
Este es un argumento válido. Quiere decir que es imposible que las premisas sean verdaderas y la conclusión falsa. Esto no quiere decir que la conclusión sea verdadera. Si las premisas son falsas, entonces la conclusión también podría serlo. Pero si las premisas son verdaderas, entonces la conclusión también lo es. La validez de este argumento no se debe al significado de las expresiones "mañana es miércoles" y "mañana es jueves", porque éstas podrían cambiarse por otras y el argumento permanecer válida. Por ejemplo:
1. Está soleado o está nublado.
2. No está nublado.
3. Por lo tanto, está soleado.
En cambio, la validez de estos dos argumentos depende del significado de las expresiones "o" y "no". Si alguna de estas expresiones se cambiara por otra, entonces podría ser que los argumentos dejaran de ser válidos. Por ejemplo:
1. Ni está soleado ni está nublado.
2. No está nublado.
3. Por lo tanto, está soleado.
Las expresiones de las que depende la validez de los argumentos se llaman constantes lógicas. La lógica proposicional estudia el comportamiento de una variedad de estas expresiones. En cuanto a las expresiones como "está nublado" o "mañana es jueves", lo único que importa de ellas es que tengan un valor de verdad. Es por esto que se las reemplaza por simples letras, cuya intención es simbolizar una expresión con valor de verdad cualquiera. A estas letras se las llama variables proposicionales, y en general se toman del alfabeto latino, empezando por la letra p, luego q, r, s, etc. Así, los dos primeros argumentos de esta sección podrían reescribirse así:
1. p o q
2. No q
3. Por lo tanto, p
Y el tercer argumento, a pesar de no ser válido, puede reescribirse así:
1. Ni p ni q
2. No q
3. Por lo tanto, p
PROPIEDADES CARACTERISTICAS Y REGLAS DE UN ALGORITMO
*Inicio y fin *Preciso e indicar el orden de realizacion de cada paso
*Secuencia *Debe estar definido.
*Resultado *Debe ser finito.
*Desarrollo *Entrado proceso y salida.
ALGORITMO PARA CAMBIAR LA LLANTA DE UN AUTOMOVIL
1 Abro la cajuela y apago el auto.
2 Saco herramienta necesaria para cambiar la llanta. Con el gato hidraulico levanto el auto y con las llaves de gruz quito las tuercas y retiro la llanta ponchada, luego saco la llanta de refaccio y la coloco. despues vuelvo a poner las tuercas con la llave de cruz las aprieto, luego bajo el auto y quito el gato lo guardo con la herramienta y la llanta ponchada. al final me subo al carro, lo prendo y sigo mi destino.
ALGORITMO PARA ABRIR WORD
Primero prendo la computadora doy clip en el boton inicio de la barra de tareas de windos, selecciono la opcion programas, le doy clip en el icono de word se muestra la pantalla de precentacion microsoft word.
EFICIENCIA DE UN ALGORITMO
CUAL ES EL MEJOR
1 Menos pasos, que este bien detallado.
2 Calidad del algoritmo(orden, del mismo resultado)
3Comprobando resultado a travez de la velocidad de resolución.
QUE ES UNA VARIABLE: su valor siempre cambia
QUE ES UNA CONSTANTE:su valor siempre se mantiene.
Algoritmo para un programa dados por el usuario y el resultado lo multiplique en pantalla el valor final obtenido
inicio
1 declarar variables a,x,y z
2 pedir el valor a
3 pedir el valor x
4 realizar la operacion y=a,z
5 aplicar el resultado de la operacion
6 desplegar el resultado en pantalla..
*Secuencia *Debe estar definido.
*Resultado *Debe ser finito.
*Desarrollo *Entrado proceso y salida.
ALGORITMO PARA CAMBIAR LA LLANTA DE UN AUTOMOVIL
1 Abro la cajuela y apago el auto.
2 Saco herramienta necesaria para cambiar la llanta. Con el gato hidraulico levanto el auto y con las llaves de gruz quito las tuercas y retiro la llanta ponchada, luego saco la llanta de refaccio y la coloco. despues vuelvo a poner las tuercas con la llave de cruz las aprieto, luego bajo el auto y quito el gato lo guardo con la herramienta y la llanta ponchada. al final me subo al carro, lo prendo y sigo mi destino.
ALGORITMO PARA ABRIR WORD
Primero prendo la computadora doy clip en el boton inicio de la barra de tareas de windos, selecciono la opcion programas, le doy clip en el icono de word se muestra la pantalla de precentacion microsoft word.
EFICIENCIA DE UN ALGORITMO
CUAL ES EL MEJOR
1 Menos pasos, que este bien detallado.
2 Calidad del algoritmo(orden, del mismo resultado)
3Comprobando resultado a travez de la velocidad de resolución.
QUE ES UNA VARIABLE: su valor siempre cambia
QUE ES UNA CONSTANTE:su valor siempre se mantiene.
Algoritmo para un programa dados por el usuario y el resultado lo multiplique en pantalla el valor final obtenido
inicio
1 declarar variables a,x,y z
2 pedir el valor a
3 pedir el valor x
4 realizar la operacion y=a,z
5 aplicar el resultado de la operacion
6 desplegar el resultado en pantalla..
JERARQUIA DE OPERADORES
Para resolver una expresión aritmética hay una serie de reglas que se deben seguir:
· Primero se resuelven las expresiones que se encuentran entre paréntesis.
· Se aplica la jerarquía de operadores (primero las potencias, despues multiplicacion o division, y por ultimo suma y resta.
· Al evaluar una expresión, si hay dos operadores con la misma jerarquía, se evalua de izquierda a derecha.
· Si hay expresiones relacionales, se resuelven primero paréntesis, luego se encuentran los valores y por último se aplica la jerarquía de operadores. En caso de ser de igual jerarquia, proceder de izquierda a derecha.
Nota:
Las calculadoras tradicionales o normales no respetan la jerarquia de operaciones, pero las cientificas si.
· Primero se resuelven las expresiones que se encuentran entre paréntesis.
· Se aplica la jerarquía de operadores (primero las potencias, despues multiplicacion o division, y por ultimo suma y resta.
· Al evaluar una expresión, si hay dos operadores con la misma jerarquía, se evalua de izquierda a derecha.
· Si hay expresiones relacionales, se resuelven primero paréntesis, luego se encuentran los valores y por último se aplica la jerarquía de operadores. En caso de ser de igual jerarquia, proceder de izquierda a derecha.
Nota:
Las calculadoras tradicionales o normales no respetan la jerarquia de operaciones, pero las cientificas si.
ALGORITMO PARA IR AL CINE
TE ARREGLAS
- TE LAVAS LOS DIENTES
- TE APLICAS PERFUME
- LLAMAS A TU AMIGA
- LA LLAMAS PARA CONFIRMAR EL ENCUENTRO EN E CINE
- COGES LAS LLAVES
- SALES DE LA CASA
- CAMINAS HACIA LA CALLE DONDE COJES EL BUS
- ESPERAS EL BUS
- DIVISAS EL BUS
- PARAS EL BUS
- TE SUBES
- TE SIENTAS
- MIRAS POR LA VENTANA
- ESPERAS A QUE LLEGUE AL CINE
- DIVISAS EL CINE
- TE LEVANTAS
- CAMINAS HACIA LA PUERTA
- PARAS EL BUS
- TE BAJAS DEL BUS
- CAMINAS HACIA EL CINE
- TE ENCUENTRAS CON TU AMIGA EN LA PUERTA
- SALUDAS A TU AMIGA
- SE DIRIGEN AMBOS A DONDE COMPRAR LAS ENTRADAS
- DEBATEN ENTRE LOS DOS KE PELICULA VAN A VER
- ESCOGEN UNA
- HACEN LA FILA
- COMPRAN LAS ENTRADAS
- SE DIRIGEN A LA PARTE DE COMIDAS
- COMPRAN PALOMITAS Y GASEOSA
- CONVERSAS CON TU AMIGA
- PAGAN
- SE DIRIGEN A LA SALA
- ENTREGAN EL TIKETE EN LA ENTRADA
- BUSCAN EL PUESTO KE LES TOCO
- SE SIENTAN
- ESPERAN A KE EMPIECE A PELICULA
- HABLAS CON TU AMIGA
- EMPIEZA LA PELICULA
- VEN LA PELICULA
- COMEN
- LE PONES EL BRAZO EN LOS HOMBROS DE ELLA
- LA MIRAS CON PICARDIA
- ACERCAS TU ROSTRO AL DE ELLA
- ELLA TAMBIEN
- SE DAN UN BESO
- SIGUEN MIRANDO LA PELICULA
- COMEN
- SE TERMINA LA PELICULA
- LE PREGUNTAS SI LE GUSTO LA PELICULA
- CAMINAN HACIA LA SALIDA
- LA INVITAS A OTRO LUGAR..
-
- TE LAVAS LOS DIENTES
- TE APLICAS PERFUME
- LLAMAS A TU AMIGA
- LA LLAMAS PARA CONFIRMAR EL ENCUENTRO EN E CINE
- COGES LAS LLAVES
- SALES DE LA CASA
- CAMINAS HACIA LA CALLE DONDE COJES EL BUS
- ESPERAS EL BUS
- DIVISAS EL BUS
- PARAS EL BUS
- TE SUBES
- TE SIENTAS
- MIRAS POR LA VENTANA
- ESPERAS A QUE LLEGUE AL CINE
- DIVISAS EL CINE
- TE LEVANTAS
- CAMINAS HACIA LA PUERTA
- PARAS EL BUS
- TE BAJAS DEL BUS
- CAMINAS HACIA EL CINE
- TE ENCUENTRAS CON TU AMIGA EN LA PUERTA
- SALUDAS A TU AMIGA
- SE DIRIGEN AMBOS A DONDE COMPRAR LAS ENTRADAS
- DEBATEN ENTRE LOS DOS KE PELICULA VAN A VER
- ESCOGEN UNA
- HACEN LA FILA
- COMPRAN LAS ENTRADAS
- SE DIRIGEN A LA PARTE DE COMIDAS
- COMPRAN PALOMITAS Y GASEOSA
- CONVERSAS CON TU AMIGA
- PAGAN
- SE DIRIGEN A LA SALA
- ENTREGAN EL TIKETE EN LA ENTRADA
- BUSCAN EL PUESTO KE LES TOCO
- SE SIENTAN
- ESPERAN A KE EMPIECE A PELICULA
- HABLAS CON TU AMIGA
- EMPIEZA LA PELICULA
- VEN LA PELICULA
- COMEN
- LE PONES EL BRAZO EN LOS HOMBROS DE ELLA
- LA MIRAS CON PICARDIA
- ACERCAS TU ROSTRO AL DE ELLA
- ELLA TAMBIEN
- SE DAN UN BESO
- SIGUEN MIRANDO LA PELICULA
- COMEN
- SE TERMINA LA PELICULA
- LE PREGUNTAS SI LE GUSTO LA PELICULA
- CAMINAN HACIA LA SALIDA
- LA INVITAS A OTRO LUGAR..
-
QUE ES UN PSEUDOCODIGO
En programación, lenguaje artificial e informal útil para programadores para el desarrollo de algoritmos. No es un lenguaje de programación verdadero y, por lo tanto, no puede ser compilado y ejecutado.
En pseudocódigo se describen los algoritmos utilizando una mezcla de lenguaje común, con instrucciones de programación, palabras claves, etc. El objetivo es que el programador se centre en la solución lógica del algoritmo y no en la implementación en un lenguaje de programación concreto (con las posibles complicaciones en las reglas sintácticas), o en otras palabras, sólo ayudan a "pensar" un programa antes de escribirlo en un lenguaje de programación formal.
En pseudocódigo se describen los algoritmos utilizando una mezcla de lenguaje común, con instrucciones de programación, palabras claves, etc. El objetivo es que el programador se centre en la solución lógica del algoritmo y no en la implementación en un lenguaje de programación concreto (con las posibles complicaciones en las reglas sintácticas), o en otras palabras, sólo ayudan a "pensar" un programa antes de escribirlo en un lenguaje de programación formal.
QUE ES UN DIAGRAMA DE FLUO
Los diagramas de flujo (o flujogramas) son diagramas que emplean símbolos gráficos para representar los pasos o etapas de un proceso. También permiten describir la secuencia de los distintos pasos o etapas y su interacción. Las personas que no están directamente involucradas en los procesos de realización del producto o servicio, tienen imágenes idealizadas de los mismos, que pocas veces coinciden con la realidad. La creación del diagrama de flujo es una actividad que agrega valor, pues el proceso que representa está ahora disponible para ser analizado, no sólo por quienes lo llevan a cabo, sino también por todas las partes interesadas que aportarán nuevas ideas para cambiarlo y mejorarlo
QUE ES UN ALGORITMO
Un algoritmo es un conjunto finito de instrucciones o pasos que sirven para ejecutar una tarea o resolver un problema. La palabra algoritmo deriva del nombre del matemático árabe Al-KhwarizmI..
Generalmente los algoritmos se presentan a diario con las diversas vivencias de las personas,todo lo que nos rodea es siempre una secuencia de pasos que nos llevan a realizar nuestras labores en ocaciones ordenadamente.
En la vida cotidiana empleamos algoritmos en multitud de ocasiones para resolver diversos problemas, como por ejemplo para poner una lavadora (conjunto de instrucciones pegadas en la tapa de la máquina), para tocar música (partituras), para construir un aeroplano a escala (expresados en las instrucciones), para hacer trucos de magia (pasos para hacer el truco) o, incluso, para hacer recetas de cocina (pasos de la receta). Otros ejemplos, como el algoritmo de la división para calcular el cociente de dos números o el algoritmo de Euclides para calcular el máximo común divisor de dos enteros positivos pertenecen al ámbito de las matemáticas. Obsérvese que todos estos ejemplos de algoritmos se hacen desde la noción de programación imperativa; sin embargo, existen otros paradigmas como el de la programación funcional en las cuales los ejemplos de algoritmos y la implementación de los mismos puede cambiar.
Los programas son algoritmos codificados con un lenguaje no ambiguo cuya sintaxis y semántica "entiende" el ordenador. Hay muchos lenguajes de programación de ordenadores, entre ellos, Lexico, Fortran, Pascal, C.
Así pues, si queremos que un ordenador efectúe una tarea, primero debemos descubrir un algoritmo para llevarla a cabo; programar el algoritmo en la máquina consiste en representar ese algoritmo de modo que se pueda comunicar a una máquina. En otras palabras, debemos transformar el algoritmo conceptual en un conjunto de instrucciones y representar estas últimas en un lenguaje sin ambigüedad.
Gracias a la capacidad para comunicar nuestros pensamientos mediante algoritmos, podemos construir máquinas cuyo comportamiento simula, en alguna medida, la inteligencia. El nivel de inteligencia que simula la máquina está limitado por la inteligencia que podamos comunicarle por medio de algoritmos. Las máquinas sólo pueden realizar tareas algorítmicas. Si encontramos un algoritmo para dirigir la ejecución de una tarea, podemos construir una máquina para llevarla a cabo siempre que la tecnología haya avanzado lo suficiente. Si no encontramos un algoritmo, es posible que la ejecución esté fuera de las capacidades de las máquinas.
Generalmente los algoritmos se presentan a diario con las diversas vivencias de las personas,todo lo que nos rodea es siempre una secuencia de pasos que nos llevan a realizar nuestras labores en ocaciones ordenadamente.
En la vida cotidiana empleamos algoritmos en multitud de ocasiones para resolver diversos problemas, como por ejemplo para poner una lavadora (conjunto de instrucciones pegadas en la tapa de la máquina), para tocar música (partituras), para construir un aeroplano a escala (expresados en las instrucciones), para hacer trucos de magia (pasos para hacer el truco) o, incluso, para hacer recetas de cocina (pasos de la receta). Otros ejemplos, como el algoritmo de la división para calcular el cociente de dos números o el algoritmo de Euclides para calcular el máximo común divisor de dos enteros positivos pertenecen al ámbito de las matemáticas. Obsérvese que todos estos ejemplos de algoritmos se hacen desde la noción de programación imperativa; sin embargo, existen otros paradigmas como el de la programación funcional en las cuales los ejemplos de algoritmos y la implementación de los mismos puede cambiar.
Los programas son algoritmos codificados con un lenguaje no ambiguo cuya sintaxis y semántica "entiende" el ordenador. Hay muchos lenguajes de programación de ordenadores, entre ellos, Lexico, Fortran, Pascal, C.
Así pues, si queremos que un ordenador efectúe una tarea, primero debemos descubrir un algoritmo para llevarla a cabo; programar el algoritmo en la máquina consiste en representar ese algoritmo de modo que se pueda comunicar a una máquina. En otras palabras, debemos transformar el algoritmo conceptual en un conjunto de instrucciones y representar estas últimas en un lenguaje sin ambigüedad.
Gracias a la capacidad para comunicar nuestros pensamientos mediante algoritmos, podemos construir máquinas cuyo comportamiento simula, en alguna medida, la inteligencia. El nivel de inteligencia que simula la máquina está limitado por la inteligencia que podamos comunicarle por medio de algoritmos. Las máquinas sólo pueden realizar tareas algorítmicas. Si encontramos un algoritmo para dirigir la ejecución de una tarea, podemos construir una máquina para llevarla a cabo siempre que la tecnología haya avanzado lo suficiente. Si no encontramos un algoritmo, es posible que la ejecución esté fuera de las capacidades de las máquinas.
ALGORITMOS
1 Dada una cantidad en pesos (dad por el usuario) obtener su equivalencia en dólares, asumiendo que el tipo de cambio es un dato variable, debemos preguntarle cuánto vale el dólar, calcular el valor y desplegar el resultado en pantalla. Preguntar al final si desea que realice de nuevo el programa.
Datos:
Cantidad en pesos v m1
Tipo de cambio v m2
Inicio
1 int _cantidad en pesos, _tipo de cambio.
2 declarar variables: m1, m2, r.
3 pedir cantidad en pesos.
4 preguntar cuánto vale el dólar.
5 realizar la operación: r=m1*m2.
6 desplegar r en pantalla.
7 preguntar si quieres que realice de nuevo el programa si es así ir al paso 1 y si no fin.
2 Pedirle al usuario su nombre, y preguntarle si trabaja, si la respuesta es sí, el usuario nos dirá en que trabaja, desplegar los datos en pantalla y terminar el programa, si la respuesta es no terminar el programa.
Datos:
Nombre v nom
Inicio
1 String _ nom
2 pedir nom.
3 preguntar si trabaja si es así ir al paso 4 y si no ir al paso 6.
4 el usuario es artista.
5 desplegar datos en patalla.
Fin
3 se desea resolver la siguiente operación matemática: x=3y+2z.El usuario nos dirá los valores de y z, calcular el valor de x, y, desplegar el resultado en pantalla y preguntar si desea realizar de nuevo la operación si no, terminar el programa.
Datos:
3 v n1
Y c n2
2 v n3
Z c n4
Valor z v n2
Inicio
1 int _n2,n4.
2 y=n2, z=n4.
3 realizar r=x=3y+2z.
4 desplegar resultado en pantalla
5 preguntar si desea realizar de nuevo la operación, si es asi ir al paso 3 si no fin.
4 Pedir el nombre al usuario, preguntarle si está bien el nombre, si no, pedírselo de nuevo si la respuesta es sí pasar a preguntarle cuál es tu dirección, preguntarle si está bien la dirección, si la respuesta es sí, desplegar en pantalla sus datos (nombre y dirección) y terminar el programa, si la respuesta es no volver a preguntarle los datos.
Datos:
Nombre v nom
Dirección v direc
Inicio
1 string _ nom.
2 pedir nombre.
3 preguntarle si está bien su nombre, si no pedírselo de nuevo, si la respuesta es sí, ir al paso 4.
4 preguntarle su dirección
5 preguntar, si está bien la dirección, si la respuesta es sí ir al paso 6, sino ir al paso 2.
6 desplegar en pantalla sus datos.
Fin
5 A un empleado de fabrica le han incrementado el salario en un 15%, calcular cual es su nuevo salario, desplegarlo en pantalla y preguntarle si desea calcular otro salario. El usuario nos otorgara su salario anterior.
Datos:
Salario 15% c mz
Salario anterior v mp
Inicio
1 int _ mp.
2 declarar constante mz.
3 declarar variable mp.
4 realizar la operación r=[(mp×15)÷100].
5 desplegar resultado en pantalla.
6 desea calcular otro salario?, si es así ir al paso 4 si no
Fin
6 preguntarle al usuario su nombre, preguntarle si está bien su nombre, si la respuesta es no, preguntarle de nuevo su nombre, si la respuesta es sí pasar y pedirle su apellido paterno, preguntarle su edad, si es mayor de edad, desplegar sus datos y terminar el programa, si no es mayor de edad, desplegar un mensaje que diga Aun eres menor de edad y terminar el programa.
Datos:
Nombre v nom
Apellido paterno v ap
Edad v ed
Inicio
1 string _ nom, ap.
2 pedir nombre nom
3 tu nombre es nom, si es incorrecto preguntarlo de nuevo y si la respuesta es correcta ir al paso 4.
4 pedir apellido paterno ap.
5 tu apellido es correcto? Si no preguntarlo de nuevo, si la respuesta es sí ir al paso 6.
6 pedir su edad, si es mayor de edad, desplegar sus datos si no es mayor de edad ir al paso 7.
Desplegar un mensaje Aun eres menor de edad.
Fin
Datos:
Cantidad en pesos v m1
Tipo de cambio v m2
Inicio
1 int _cantidad en pesos, _tipo de cambio.
2 declarar variables: m1, m2, r.
3 pedir cantidad en pesos.
4 preguntar cuánto vale el dólar.
5 realizar la operación: r=m1*m2.
6 desplegar r en pantalla.
7 preguntar si quieres que realice de nuevo el programa si es así ir al paso 1 y si no fin.
2 Pedirle al usuario su nombre, y preguntarle si trabaja, si la respuesta es sí, el usuario nos dirá en que trabaja, desplegar los datos en pantalla y terminar el programa, si la respuesta es no terminar el programa.
Datos:
Nombre v nom
Inicio
1 String _ nom
2 pedir nom.
3 preguntar si trabaja si es así ir al paso 4 y si no ir al paso 6.
4 el usuario es artista.
5 desplegar datos en patalla.
Fin
3 se desea resolver la siguiente operación matemática: x=3y+2z.El usuario nos dirá los valores de y z, calcular el valor de x, y, desplegar el resultado en pantalla y preguntar si desea realizar de nuevo la operación si no, terminar el programa.
Datos:
3 v n1
Y c n2
2 v n3
Z c n4
Valor z v n2
Inicio
1 int _n2,n4.
2 y=n2, z=n4.
3 realizar r=x=3y+2z.
4 desplegar resultado en pantalla
5 preguntar si desea realizar de nuevo la operación, si es asi ir al paso 3 si no fin.
4 Pedir el nombre al usuario, preguntarle si está bien el nombre, si no, pedírselo de nuevo si la respuesta es sí pasar a preguntarle cuál es tu dirección, preguntarle si está bien la dirección, si la respuesta es sí, desplegar en pantalla sus datos (nombre y dirección) y terminar el programa, si la respuesta es no volver a preguntarle los datos.
Datos:
Nombre v nom
Dirección v direc
Inicio
1 string _ nom.
2 pedir nombre.
3 preguntarle si está bien su nombre, si no pedírselo de nuevo, si la respuesta es sí, ir al paso 4.
4 preguntarle su dirección
5 preguntar, si está bien la dirección, si la respuesta es sí ir al paso 6, sino ir al paso 2.
6 desplegar en pantalla sus datos.
Fin
5 A un empleado de fabrica le han incrementado el salario en un 15%, calcular cual es su nuevo salario, desplegarlo en pantalla y preguntarle si desea calcular otro salario. El usuario nos otorgara su salario anterior.
Datos:
Salario 15% c mz
Salario anterior v mp
Inicio
1 int _ mp.
2 declarar constante mz.
3 declarar variable mp.
4 realizar la operación r=[(mp×15)÷100].
5 desplegar resultado en pantalla.
6 desea calcular otro salario?, si es así ir al paso 4 si no
Fin
6 preguntarle al usuario su nombre, preguntarle si está bien su nombre, si la respuesta es no, preguntarle de nuevo su nombre, si la respuesta es sí pasar y pedirle su apellido paterno, preguntarle su edad, si es mayor de edad, desplegar sus datos y terminar el programa, si no es mayor de edad, desplegar un mensaje que diga Aun eres menor de edad y terminar el programa.
Datos:
Nombre v nom
Apellido paterno v ap
Edad v ed
Inicio
1 string _ nom, ap.
2 pedir nombre nom
3 tu nombre es nom, si es incorrecto preguntarlo de nuevo y si la respuesta es correcta ir al paso 4.
4 pedir apellido paterno ap.
5 tu apellido es correcto? Si no preguntarlo de nuevo, si la respuesta es sí ir al paso 6.
6 pedir su edad, si es mayor de edad, desplegar sus datos si no es mayor de edad ir al paso 7.
Desplegar un mensaje Aun eres menor de edad.
Fin
CICLO DE VIDA
Un modelo de ciclo de vida define el estado de las fases a través de las cuales se mueve un proyecto de desarrollo de software.
El primer ciclo de vida del software, "Cascada", fue definido por Winston Royce a fines del 70. Desde entonces muchos equipos de desarrollo han seguido este modelo. Sin embargo, ya desde 10 a 15 años atrás, el modelo cascada ha sido sujeto a numerosas críticas, debido a que es restrictivo y rígido, lo cual dificulta el desarrollo de proyectos de software moderno. En su lugar, muchos modelos nuevos de ciclo de vida han sido propuestos, incluyendo modelos que pretenden desarrollar software más rápidamente, o más incrementalmente o de una forma más evolutiva, o precediendo el desarrollo a escala total con algún conjunto de prototipos rápidos.
Definición de un Modelo de Ciclo de Vida
Un modelo de ciclo de vida de software es una vista de las actividades que ocurren durante el desarrollo de software, intenta determinar el orden de las etapas involucradas y los criterios de transición asociadas entre estas etapas.
Un modelo de ciclo de vida del software:
• Describe las fases principales de desarrollo de software.
• Define las fases primarias esperadas de ser ejecutadas durante esas fases.
• Ayuda a administrar el progreso del desarrollo, y
• Provee un espacio de trabajo para la definición de un detallado proceso de desarrollo de software.
Así, los modelos por una parte suministran una guía para los ingenieros de software con el fin de ordenar las diversas actividades técnicas en el proyecto, por otra parte suministran un marco para la administración del desarrollo y el mantenimiento, en el sentido en que permiten estimar recursos, definir puntos de control intermedios, monitorear el avance, etc.
Alternativas de Modelos de Ciclo de Vida
Modelo Cascada
Este es el más básico de todos los modelos, y sirve como bloque de construcción para los demás modelos de ciclo de vida. La visión del modelo cascada del desarrollo de software es muy simple; dice que el desarrollo de software puede ser a través de una secuencia simple de fases. Cada fase tiene un conjunto de metas bien definidas, y las actividades dentro de una fase contribuye a la satisfacción de metas de esa fase o quizás a una subsecuencia de metas de la fase. Las flechas muestran el flujo de información entre las fases. La flecha de avance muestra el flujo normal. Las flechas hacia atrás representan la retroalimentación.
El modelo de ciclo de vida cascada, captura algunos principios básicos:
• Planear un proyecto antes de embarcarse en él.
• Definir el comportamiento externo deseado del sistema antes de diseñar su arquitectura interna.
• Documentar los resultados de cada actividad.
• Diseñar un sistema antes de codificarlo.
• Testear un sistema después de construirlo.
Una de las contribuciones más importantes del modelo cascada es para los administradores, posibilitándoles avanzar en el desarrollo, aunque en una escala muy bruta.
Modelo De Desarrollo Incremental
Los riesgos asociados con el desarrollo de sistemas largos y complejos son enormes. Una forma de reducir los riesgos es construir sólo una parte del sistema, reservando otros aspectos para niveles posteriores. El desarrollo incremental es el proceso de construcción siempre incrementando subconjuntos de requerimientos del sistema. Típicamente, un documento de requerimientos es escrito al capturar todos los requerimientos para el sistema completo.
Note que el desarrollo incremental es 100% compatible con el modelo cascada. El desarrollo incremental no demanda una forma específica de observar el desarrollo de algún otro incremento. Así, el modelo cascada puede ser usado para administrar cada esfuerzo de desarrollo, como se muestra en la figura.
El modelo de desarrollo incremental provee algunos beneficios significativos para los proyectos:
• Construir un sistema pequeño es siempre menos riesgoso que construir un sistema grande.
• Al ir desarrollando parte de las funcionalidades, es más fácil determinar si los requerimientos planeados para los niveles subsiguientes son correctos.
• Si un error importante es realizado, sólo la última iteración necesita ser descartada.
• Reduciendo el tiempo de desarrollo de un sistema (en este caso en incremento del sistema) decrecen las probabilidades que esos requerimientos de usuarios puedan cambiar durante el desarrollo.
• Si un error importante es realizado, el incremento previo puede ser usado.
• Los errores de desarrollo realizados en un incremento, pueden ser arreglados antes del comienzo del próximo incremento.
Modelo De Desarrollo Evolutivo
Como el modelo de desarrollo incremental, el modelo de desarrollo evolutivo (algunas veces denominado como prototipado evolutivo) construye una serie de grandes versiones sucesivas de un producto. Sin embargo, mientras que la aproximación incremental presupone que el conjunto completo de requerimientos es conocido al comenzar, el modelo evolutivo asume que los requerimientos no son completamente conocidos al inicio del proyecto.
En el modelo evolutivo, los requerimientos son cuidadosamente examinados, y sólo esos que son bien comprendidos son seleccionados para el primer incremento. Los desarrolladores construyen una implementación parcial del sistema que recibe sólo estos requerimientos.
El sistema es entonces desarrollado, los usuarios lo usan, y proveen retroalimentación a los desarrolladores. Basada en esta retroalimentación, la especificación de requerimientos es actualizada, y una segunda versión del producto es desarrollada y desplegada. El proceso se repite indefinidamente.
Note que el desarrollo evolutivo es 100% compatible con el modelo cascada. El desarrollo evolutivo no demanda una forma específica de observar el desarrollo de algún incremento. Así, el modelo cascada puede ser usado para administrar cada esfuerzo de desarrollo. Obviamente, el desarrollo incremental y evolutivo puede ser combinado también.
Todo lo que uno tiene que hacer es construir un subconjunto de requerimientos conocidos (incremental), y comprender al principio que muchos nuevos requerimientos es probable que aparezcan cuando el sistema sea desplegado o desarrollado.
El desarrollo de software en forma evolutiva requiere un especial cuidado en la manipulación de documentos, programas, datos de test, etc. desarrollados para distintas versiones del software. Cada paso debe ser registrado, la documentación debe ser recuperada con facilidad, los cambios deben ser efectuados de una manera controlada.
Modelo de Prototipado de Requerimientos.-
El prototipado de requerimientos es la creación de una implementación parcial de un sistema, para el propósito explícito de aprender sobre los requerimientos del sistema. Un prototipo es construido de una manera rápida tal como sea posible. Esto es dado a los usuarios, clientes o representantes de ellos, posibilitando que ellos experimenten con el prototipo. Estos individuos luego proveen la retroalimentación sobre lo que a ellos les gustó y no les gustó acerca del prototipo proporcionado, quienes capturan en la documentación actual de la especificación de requerimientos la información entregada por los usuarios para el desarrollo del sistema real. El prototipado puede ser usado como parte de la fase de requerimientos (determinar requerimientos) o justo antes de la fase de requerimientos (como predecesor de requerimientos). En otro caso, el prototipado puede servir su papel inmediatamente antes de algún o todo el desarrollo incremental en modelos incremental o evolutivo.
El Prototipado ha sido usado frecuentemente en los 90, porque la especificación de requerimientos para sistemas complejos tienden a ser relativamente dificultoso de cursar. Muchos usuarios y clientes encuentran que es mucho más fácil proveer retroalimentación convenientemente basado en la manipulación, desde un prototipo, en vez de leer una especificación de requerimientos potencialmente ambigua y extensa.
Diferente del modelo evolutivo donde los requerimientos mejor entendidos están incorporados, un prototipo generalmente se construye con los requerimientos entendidos más pobremente.
En caso que ustedes construyan requerimientos bien entendidos, el cliente podría responder con "sí, así es", y nada podría ser aprendido de la experiencia.
Modelo Espiral
El modelo espiral de los procesos software es un modelo del ciclo de meta-vida. En este modelo, el esfuerzo de desarrollo es iterativo. Tan pronto como uno completa un esfuerzo de desarrollo, otro comienza. Además, en cada desarrollo ejecutado, puedes seguir estos cuatros pasos:
• Determinar qué quieres lograr.
• Determinar las rutas alternativas que puedes tomar para lograr estas metas. Por cada una, analizar los riesgos y resultados finales, y seleccionar la mejor.
• Seguir la alternativa seleccionada en el paso 2.
• Establecer qué tienes terminado.
La dimensión radial en la figura refleja costos acumulativos incurridos en el proyecto.
Observemos un escenario particular. Digamos que en este proyecto, nosotros viajaremos a resolver un conjunto particular de problemas del cliente. Durante el primer viaje alrededor de la espiral, analizamos la situación y determinamos que los mayores riesgos son la interfaz del usuario. Después de un cuidadoso análisis de las formas alternativas de direccionar esto (por ejemplo, construir un sistema y esperar lo mejor, escribir una especificación de requerimientos y esperar que el cliente lo entienda, y construir un prototipo), determinamos que el mejor curso de acción es construir un prototipo.
Lo realizamos. Luego proveemos el prototipo al cliente quien nos provee con retroalimentación útil. Ahora, comenzamos el segundo viaje alrededor de la espiral. Este tiempo decidimos que el mayor riesgo es ese miedo a que muchos nuevos requerimientos comiencen a aparecer sólo después de que el sistema sea desplegado. Analicemos las rutas alternativas, y decidimos que la mejor aproximación es construir un incremento del sistema que satisfaga sólo los requerimientos mejor entendidos. Hagámoslo ya. Después del despliegue, el cliente nos provee de retroalimentación que dirá si estamos correctos con esos requerimientos, pero 50 nuevos requerimientos ahora se originarán en las cabezas de los clientes. Y el tercer viaje alrededor de la espiral comienza.
El modelo espiral captura algunos principios básicos:
• Decidir qué problema se quiere resolver antes de viajar a resolverlo.
• Examinar tus múltiples alternativas de acción y elegir una de las más convenientes.
• Evaluar qué tienes hecho y qué tienes que haber aprendido después de hacer algo.
• No ser tan ingenuo para pensar que el sistema que estás construyendo será "EL" sistema que el cliente necesita, y
• Conocer (comprender) los niveles de riesgo, que tendrás que tolerar.
El modelo espiral no es una alternativa del modelo cascada, ellos son completamente compatible.
Modelo Concurrente
Como el modelo espiral, el modelo concurrente provee una meta-descripción del proceso software. Mientras que la contribución primaria del modelo espiral es en realidad que esas actividades del software ocurran repetidamente, la contribución del modelo concurrente es su capacidad de describir las múltiples actividades del software ocurriendo simultáneamente.
Esto no sorprende a nadie que ha estado involucrado con las diversas actividades que ocurren en algún tiempo del proceso de desarrollo de software. Discutamos un poco tales casos:
Los requerimientos son usualmente "líneas de base", cuando una mayoría de los requerimientos comienzan a ser bien entendidos, en este tiempo se dedica un esfuerzo considerable al diseño. Sin embargo, una vez que comienza el diseño, cambios a los requerimientos son comunes y frecuentes (después de todo, los problemas reales cambian, y nuestro entendimiento de los problemas desarrollados también). Es desaconsejado detener el diseño en este camino cuando los requerimientos cambian; en su lugar, existe una necesidad de modificar y rehacer líneas de base de los requerimientos mientras progresa el diseño. Por supuesto, dependiendo del impacto de los cambios de los requerimientos el diseño puede no ser afectado, medianamente afectado o se requerirá comenzar todo de nuevo.
Durante el diseño de arquitectura, es posible que algunos componentes comiencen a ser bien definidos antes que la arquitectura completa sea estabilizada. En tales casos, puede ser posible comenzar el diseño detallado en esos componentes estables. Similarmente, durante el diseño detallado, puede ser posible proceder con la codificación y quizás regular testeando en forma unitaria o realizando testeo de integración previo a llevar a cabo el diseño detallado de todos los componentes.
En algunos proyectos, múltiples etapas de un producto se han desarrollado concurrentemente. Por ejemplo, no es inusual estar haciendo mantención de la etapa 1 de un producto, y al mismo tiempo estar haciendo mantención sobre un componente 2, mientras que se está haciendo codificación sobre un componente 3, mientras se realiza diseño sobre una etapa 4, y especificación de requisitos sobre un componente 5.
En todos estos casos, diversas actividades están ocurriendo simultáneamente. Eligiendo seguir un proyecto usando técnicas de modelación concurrente, se posibilita el conocimiento del estado verdadero en el que se encuentra el proyecto.
Code and fix
codificar y corregir (code-and-fix) es un modelo poco útil pero bastante común. Y así es, a punto de concluir el año 2003 sorprende ver la forma de trabajar en ciertas empresas dedicadas al desarrollo de software donde se consideran las fases de análisis y diseño como etapas prescindibles en un proyecto, algo que no es trabajo sino más bien una pérdida de tiempo y que por tanto ha de omitirse. Sí, a estas alturas aún hay quien piensa que la forma más rápida y eficaz de desarrollar aplicaciones informáticas consiste en situarse frente al teclado y comenzar a programar directamente, sea cual sea la complejidad del proyecto (consecuentemente estas personas, para quienes el desarrollo de software conlleva exclusivamente tareas de programación, sólo conocen la figura del programador). Al fin y al cabo algo como un gráfico con el modelo conceptual de una base de datos le dice poco o nada a un cliente; sí, unos dibujos muy estéticos de rectángulos unidos por líneas, pero lo que pide es una aplicación, un programa que funcione y resuelva determinadas necesidades de su empresa, de manera que es fácil caer en la tentación de pensar que todo trabajo que no sea teclear el código de ese programa es inútil.
El primer ciclo de vida del software, "Cascada", fue definido por Winston Royce a fines del 70. Desde entonces muchos equipos de desarrollo han seguido este modelo. Sin embargo, ya desde 10 a 15 años atrás, el modelo cascada ha sido sujeto a numerosas críticas, debido a que es restrictivo y rígido, lo cual dificulta el desarrollo de proyectos de software moderno. En su lugar, muchos modelos nuevos de ciclo de vida han sido propuestos, incluyendo modelos que pretenden desarrollar software más rápidamente, o más incrementalmente o de una forma más evolutiva, o precediendo el desarrollo a escala total con algún conjunto de prototipos rápidos.
Definición de un Modelo de Ciclo de Vida
Un modelo de ciclo de vida de software es una vista de las actividades que ocurren durante el desarrollo de software, intenta determinar el orden de las etapas involucradas y los criterios de transición asociadas entre estas etapas.
Un modelo de ciclo de vida del software:
• Describe las fases principales de desarrollo de software.
• Define las fases primarias esperadas de ser ejecutadas durante esas fases.
• Ayuda a administrar el progreso del desarrollo, y
• Provee un espacio de trabajo para la definición de un detallado proceso de desarrollo de software.
Así, los modelos por una parte suministran una guía para los ingenieros de software con el fin de ordenar las diversas actividades técnicas en el proyecto, por otra parte suministran un marco para la administración del desarrollo y el mantenimiento, en el sentido en que permiten estimar recursos, definir puntos de control intermedios, monitorear el avance, etc.
Alternativas de Modelos de Ciclo de Vida
Modelo Cascada
Este es el más básico de todos los modelos, y sirve como bloque de construcción para los demás modelos de ciclo de vida. La visión del modelo cascada del desarrollo de software es muy simple; dice que el desarrollo de software puede ser a través de una secuencia simple de fases. Cada fase tiene un conjunto de metas bien definidas, y las actividades dentro de una fase contribuye a la satisfacción de metas de esa fase o quizás a una subsecuencia de metas de la fase. Las flechas muestran el flujo de información entre las fases. La flecha de avance muestra el flujo normal. Las flechas hacia atrás representan la retroalimentación.
El modelo de ciclo de vida cascada, captura algunos principios básicos:
• Planear un proyecto antes de embarcarse en él.
• Definir el comportamiento externo deseado del sistema antes de diseñar su arquitectura interna.
• Documentar los resultados de cada actividad.
• Diseñar un sistema antes de codificarlo.
• Testear un sistema después de construirlo.
Una de las contribuciones más importantes del modelo cascada es para los administradores, posibilitándoles avanzar en el desarrollo, aunque en una escala muy bruta.
Modelo De Desarrollo Incremental
Los riesgos asociados con el desarrollo de sistemas largos y complejos son enormes. Una forma de reducir los riesgos es construir sólo una parte del sistema, reservando otros aspectos para niveles posteriores. El desarrollo incremental es el proceso de construcción siempre incrementando subconjuntos de requerimientos del sistema. Típicamente, un documento de requerimientos es escrito al capturar todos los requerimientos para el sistema completo.
Note que el desarrollo incremental es 100% compatible con el modelo cascada. El desarrollo incremental no demanda una forma específica de observar el desarrollo de algún otro incremento. Así, el modelo cascada puede ser usado para administrar cada esfuerzo de desarrollo, como se muestra en la figura.
El modelo de desarrollo incremental provee algunos beneficios significativos para los proyectos:
• Construir un sistema pequeño es siempre menos riesgoso que construir un sistema grande.
• Al ir desarrollando parte de las funcionalidades, es más fácil determinar si los requerimientos planeados para los niveles subsiguientes son correctos.
• Si un error importante es realizado, sólo la última iteración necesita ser descartada.
• Reduciendo el tiempo de desarrollo de un sistema (en este caso en incremento del sistema) decrecen las probabilidades que esos requerimientos de usuarios puedan cambiar durante el desarrollo.
• Si un error importante es realizado, el incremento previo puede ser usado.
• Los errores de desarrollo realizados en un incremento, pueden ser arreglados antes del comienzo del próximo incremento.
Modelo De Desarrollo Evolutivo
Como el modelo de desarrollo incremental, el modelo de desarrollo evolutivo (algunas veces denominado como prototipado evolutivo) construye una serie de grandes versiones sucesivas de un producto. Sin embargo, mientras que la aproximación incremental presupone que el conjunto completo de requerimientos es conocido al comenzar, el modelo evolutivo asume que los requerimientos no son completamente conocidos al inicio del proyecto.
En el modelo evolutivo, los requerimientos son cuidadosamente examinados, y sólo esos que son bien comprendidos son seleccionados para el primer incremento. Los desarrolladores construyen una implementación parcial del sistema que recibe sólo estos requerimientos.
El sistema es entonces desarrollado, los usuarios lo usan, y proveen retroalimentación a los desarrolladores. Basada en esta retroalimentación, la especificación de requerimientos es actualizada, y una segunda versión del producto es desarrollada y desplegada. El proceso se repite indefinidamente.
Note que el desarrollo evolutivo es 100% compatible con el modelo cascada. El desarrollo evolutivo no demanda una forma específica de observar el desarrollo de algún incremento. Así, el modelo cascada puede ser usado para administrar cada esfuerzo de desarrollo. Obviamente, el desarrollo incremental y evolutivo puede ser combinado también.
Todo lo que uno tiene que hacer es construir un subconjunto de requerimientos conocidos (incremental), y comprender al principio que muchos nuevos requerimientos es probable que aparezcan cuando el sistema sea desplegado o desarrollado.
El desarrollo de software en forma evolutiva requiere un especial cuidado en la manipulación de documentos, programas, datos de test, etc. desarrollados para distintas versiones del software. Cada paso debe ser registrado, la documentación debe ser recuperada con facilidad, los cambios deben ser efectuados de una manera controlada.
Modelo de Prototipado de Requerimientos.-
El prototipado de requerimientos es la creación de una implementación parcial de un sistema, para el propósito explícito de aprender sobre los requerimientos del sistema. Un prototipo es construido de una manera rápida tal como sea posible. Esto es dado a los usuarios, clientes o representantes de ellos, posibilitando que ellos experimenten con el prototipo. Estos individuos luego proveen la retroalimentación sobre lo que a ellos les gustó y no les gustó acerca del prototipo proporcionado, quienes capturan en la documentación actual de la especificación de requerimientos la información entregada por los usuarios para el desarrollo del sistema real. El prototipado puede ser usado como parte de la fase de requerimientos (determinar requerimientos) o justo antes de la fase de requerimientos (como predecesor de requerimientos). En otro caso, el prototipado puede servir su papel inmediatamente antes de algún o todo el desarrollo incremental en modelos incremental o evolutivo.
El Prototipado ha sido usado frecuentemente en los 90, porque la especificación de requerimientos para sistemas complejos tienden a ser relativamente dificultoso de cursar. Muchos usuarios y clientes encuentran que es mucho más fácil proveer retroalimentación convenientemente basado en la manipulación, desde un prototipo, en vez de leer una especificación de requerimientos potencialmente ambigua y extensa.
Diferente del modelo evolutivo donde los requerimientos mejor entendidos están incorporados, un prototipo generalmente se construye con los requerimientos entendidos más pobremente.
En caso que ustedes construyan requerimientos bien entendidos, el cliente podría responder con "sí, así es", y nada podría ser aprendido de la experiencia.
Modelo Espiral
El modelo espiral de los procesos software es un modelo del ciclo de meta-vida. En este modelo, el esfuerzo de desarrollo es iterativo. Tan pronto como uno completa un esfuerzo de desarrollo, otro comienza. Además, en cada desarrollo ejecutado, puedes seguir estos cuatros pasos:
• Determinar qué quieres lograr.
• Determinar las rutas alternativas que puedes tomar para lograr estas metas. Por cada una, analizar los riesgos y resultados finales, y seleccionar la mejor.
• Seguir la alternativa seleccionada en el paso 2.
• Establecer qué tienes terminado.
La dimensión radial en la figura refleja costos acumulativos incurridos en el proyecto.
Observemos un escenario particular. Digamos que en este proyecto, nosotros viajaremos a resolver un conjunto particular de problemas del cliente. Durante el primer viaje alrededor de la espiral, analizamos la situación y determinamos que los mayores riesgos son la interfaz del usuario. Después de un cuidadoso análisis de las formas alternativas de direccionar esto (por ejemplo, construir un sistema y esperar lo mejor, escribir una especificación de requerimientos y esperar que el cliente lo entienda, y construir un prototipo), determinamos que el mejor curso de acción es construir un prototipo.
Lo realizamos. Luego proveemos el prototipo al cliente quien nos provee con retroalimentación útil. Ahora, comenzamos el segundo viaje alrededor de la espiral. Este tiempo decidimos que el mayor riesgo es ese miedo a que muchos nuevos requerimientos comiencen a aparecer sólo después de que el sistema sea desplegado. Analicemos las rutas alternativas, y decidimos que la mejor aproximación es construir un incremento del sistema que satisfaga sólo los requerimientos mejor entendidos. Hagámoslo ya. Después del despliegue, el cliente nos provee de retroalimentación que dirá si estamos correctos con esos requerimientos, pero 50 nuevos requerimientos ahora se originarán en las cabezas de los clientes. Y el tercer viaje alrededor de la espiral comienza.
El modelo espiral captura algunos principios básicos:
• Decidir qué problema se quiere resolver antes de viajar a resolverlo.
• Examinar tus múltiples alternativas de acción y elegir una de las más convenientes.
• Evaluar qué tienes hecho y qué tienes que haber aprendido después de hacer algo.
• No ser tan ingenuo para pensar que el sistema que estás construyendo será "EL" sistema que el cliente necesita, y
• Conocer (comprender) los niveles de riesgo, que tendrás que tolerar.
El modelo espiral no es una alternativa del modelo cascada, ellos son completamente compatible.
Modelo Concurrente
Como el modelo espiral, el modelo concurrente provee una meta-descripción del proceso software. Mientras que la contribución primaria del modelo espiral es en realidad que esas actividades del software ocurran repetidamente, la contribución del modelo concurrente es su capacidad de describir las múltiples actividades del software ocurriendo simultáneamente.
Esto no sorprende a nadie que ha estado involucrado con las diversas actividades que ocurren en algún tiempo del proceso de desarrollo de software. Discutamos un poco tales casos:
Los requerimientos son usualmente "líneas de base", cuando una mayoría de los requerimientos comienzan a ser bien entendidos, en este tiempo se dedica un esfuerzo considerable al diseño. Sin embargo, una vez que comienza el diseño, cambios a los requerimientos son comunes y frecuentes (después de todo, los problemas reales cambian, y nuestro entendimiento de los problemas desarrollados también). Es desaconsejado detener el diseño en este camino cuando los requerimientos cambian; en su lugar, existe una necesidad de modificar y rehacer líneas de base de los requerimientos mientras progresa el diseño. Por supuesto, dependiendo del impacto de los cambios de los requerimientos el diseño puede no ser afectado, medianamente afectado o se requerirá comenzar todo de nuevo.
Durante el diseño de arquitectura, es posible que algunos componentes comiencen a ser bien definidos antes que la arquitectura completa sea estabilizada. En tales casos, puede ser posible comenzar el diseño detallado en esos componentes estables. Similarmente, durante el diseño detallado, puede ser posible proceder con la codificación y quizás regular testeando en forma unitaria o realizando testeo de integración previo a llevar a cabo el diseño detallado de todos los componentes.
En algunos proyectos, múltiples etapas de un producto se han desarrollado concurrentemente. Por ejemplo, no es inusual estar haciendo mantención de la etapa 1 de un producto, y al mismo tiempo estar haciendo mantención sobre un componente 2, mientras que se está haciendo codificación sobre un componente 3, mientras se realiza diseño sobre una etapa 4, y especificación de requisitos sobre un componente 5.
En todos estos casos, diversas actividades están ocurriendo simultáneamente. Eligiendo seguir un proyecto usando técnicas de modelación concurrente, se posibilita el conocimiento del estado verdadero en el que se encuentra el proyecto.
Code and fix
codificar y corregir (code-and-fix) es un modelo poco útil pero bastante común. Y así es, a punto de concluir el año 2003 sorprende ver la forma de trabajar en ciertas empresas dedicadas al desarrollo de software donde se consideran las fases de análisis y diseño como etapas prescindibles en un proyecto, algo que no es trabajo sino más bien una pérdida de tiempo y que por tanto ha de omitirse. Sí, a estas alturas aún hay quien piensa que la forma más rápida y eficaz de desarrollar aplicaciones informáticas consiste en situarse frente al teclado y comenzar a programar directamente, sea cual sea la complejidad del proyecto (consecuentemente estas personas, para quienes el desarrollo de software conlleva exclusivamente tareas de programación, sólo conocen la figura del programador). Al fin y al cabo algo como un gráfico con el modelo conceptual de una base de datos le dice poco o nada a un cliente; sí, unos dibujos muy estéticos de rectángulos unidos por líneas, pero lo que pide es una aplicación, un programa que funcione y resuelva determinadas necesidades de su empresa, de manera que es fácil caer en la tentación de pensar que todo trabajo que no sea teclear el código de ese programa es inútil.
BIBLIOGRAFIA
Nacido en Febrero de 1934 en Winterthur, Suiza, se graduó en Ingeniería Electrónica en el Instituto Federal Suizo de Tecnología en Zurich en 1959. Posteriormente obtuvo un master por la Universidad de Laval, en Canadá, en 1960 y el título de Doctor por la Universidad de California en Berkeley en 1963.
Fue Profesor Asociado en el Departamento de Informática de la Universidad de Standford entre los años 1963 y 1967, pasando a ser Catedrático en 1968 en el Instituto Federal Suizo de Tecnología en Zurich. Lleva retirado desde 1999.
Wirth fue el jefe diseñador de los lenguajes de programación Algol W, Pascal, Modula, Modula-2 y Oberon. También colaboró activamente en la implementación de los sistemas operativos Lilith y Oberon, además del sistema de diseño y simulación Lola.
Fue Profesor Asociado en el Departamento de Informática de la Universidad de Standford entre los años 1963 y 1967, pasando a ser Catedrático en 1968 en el Instituto Federal Suizo de Tecnología en Zurich. Lleva retirado desde 1999.
Wirth fue el jefe diseñador de los lenguajes de programación Algol W, Pascal, Modula, Modula-2 y Oberon. También colaboró activamente en la implementación de los sistemas operativos Lilith y Oberon, además del sistema de diseño y simulación Lola.
NOTICIA
El equipo de desarrollo ha liberado la alfa 2 de xoops 2.5 la nueva versión de xoops que incorpora importantes novedades como el uso de manejo y entre otros espectaculares.
Esta versión es para pruebas y para reportar errores. Es importante depurarla bien para que el resultado final sea estable..
Esta versión es para pruebas y para reportar errores. Es importante depurarla bien para que el resultado final sea estable..
ESTRUCTURAS DE UN COMPUTADOR
Con el desarrollo de la microelectrónica, varias unidades pueden estar en un mismo módulo físico, en una misma tarjeta de circuitos integrados o en un mismo circuito integrado). Un computador se compone de las siguientes unidades funcionales: Unidad de Entrada
Es el dispositivo por donde se introducen en el computador los datos e instrucciones. En estas unidades se transforman las informaciones de entrada en señales binarias de naturaleza eléctrica. Un mismo computador puede tener distintas unidades de entrada: teclado, lectora de tarjeta de crédito, scanner...
Unidad de Salida
Es un dispositivo por donde se obtienen los resultados de los programas ejecutados en el computador. Suelen transformar las señales eléctricas binarias en caracteres escritos o visualizados. Son dispositivos de salida: pantalla, impresora, plotter...
Memoria (M)
Es la unidad donde se almacenan tanto los datos como las instrucciones. Existen dos tipos básicos de memoria, que se diferencian sobre todo por su velocidad de acceso:
1 Memoria principal, central o interna: es la memoria que actúa con mayor velocidad y está ligada directamente a las unidades más rápidas del computador (UC y ALU).
2 Memoria auxiliar, secundaria o externa: La memoria principal no tiene gran capacidad para almacenar información, por lo que es necesario utilizar otros tipos de memoria, tales como discos y cintas magnéticas, discos ópticos...
Unidad Aritmético-lógica (ALU - Aritmética Logic Unit).
Esta unidad contiene los circuitos electrónicos con los que se hacen las operaciones de tipo aritmético (sumas, restas, etc...) y de tipo lógico (comparar dos números, hacer operaciones del Álgebra de Boole binaria - and, or, not, xor, ...- , etc...).
Unidad de Control (UC)
Detecta señales de estado procedentes de las distintas unidades, indicando su situación. Capta de la memoria una a una las instrucciones del programa y genera, de acuerdo con el código de operación de la instrucción captada y con las señales de estado, señales de control dirigidas a todas las unidades, controlando así las operaciones que implican la ejecución de la
Registro de instrucción (RI): contiene la instrucción que se está ejecutando en cada momento. Esta instrucción llevará consigo el código de operación (CO)
3.4. Periféricos.
Definición: Se denominan periféricos tanto a las unidades o dispositivos a través de los cuales la CPU se comunica con el mundo exterior, como a los sistemas que almacenan o archivan información, sirviendo de memoria auxiliar de la memoria principal.
Están constituidos, por tanto, por unidades de entrada, de salida y unidades de memoria masiva.
Es el dispositivo por donde se introducen en el computador los datos e instrucciones. En estas unidades se transforman las informaciones de entrada en señales binarias de naturaleza eléctrica. Un mismo computador puede tener distintas unidades de entrada: teclado, lectora de tarjeta de crédito, scanner...
Unidad de Salida
Es un dispositivo por donde se obtienen los resultados de los programas ejecutados en el computador. Suelen transformar las señales eléctricas binarias en caracteres escritos o visualizados. Son dispositivos de salida: pantalla, impresora, plotter...
Memoria (M)
Es la unidad donde se almacenan tanto los datos como las instrucciones. Existen dos tipos básicos de memoria, que se diferencian sobre todo por su velocidad de acceso:
1 Memoria principal, central o interna: es la memoria que actúa con mayor velocidad y está ligada directamente a las unidades más rápidas del computador (UC y ALU).
2 Memoria auxiliar, secundaria o externa: La memoria principal no tiene gran capacidad para almacenar información, por lo que es necesario utilizar otros tipos de memoria, tales como discos y cintas magnéticas, discos ópticos...
Unidad Aritmético-lógica (ALU - Aritmética Logic Unit).
Esta unidad contiene los circuitos electrónicos con los que se hacen las operaciones de tipo aritmético (sumas, restas, etc...) y de tipo lógico (comparar dos números, hacer operaciones del Álgebra de Boole binaria - and, or, not, xor, ...- , etc...).
Unidad de Control (UC)
Detecta señales de estado procedentes de las distintas unidades, indicando su situación. Capta de la memoria una a una las instrucciones del programa y genera, de acuerdo con el código de operación de la instrucción captada y con las señales de estado, señales de control dirigidas a todas las unidades, controlando así las operaciones que implican la ejecución de la
Registro de instrucción (RI): contiene la instrucción que se está ejecutando en cada momento. Esta instrucción llevará consigo el código de operación (CO)
3.4. Periféricos.
Definición: Se denominan periféricos tanto a las unidades o dispositivos a través de los cuales la CPU se comunica con el mundo exterior, como a los sistemas que almacenan o archivan información, sirviendo de memoria auxiliar de la memoria principal.
Están constituidos, por tanto, por unidades de entrada, de salida y unidades de memoria masiva.
POR QUE ES IMPORTANTE LA CREATIVIDAD PARA UN PROGRAMADOR
La creatividad es un factor muy importante en todos los aspectos que realizamos en la vida. La creatividad es un recurso necesario, sabemos que todos somos creativos solo que algunas personas son mas consientes que otras de su creatividad, y la explotan de mejor manera. Hablando de la carrera de programador de software es muy importante compartir ideas, sugerencias para organizar todos los trabajos sobre todo para llevar una mejor calidad de estudiante ya que esta es esencial para la solución de problemas.
Las personas creativas tienen gran curiosidad intelectual, tienen su mente con amplia información, demuestra empatía hacia la gente, posee de gran capacidad de análisis y síntesis algunas de las características que para mí son mas importante para poder ser creativos pues no solo es aplicar técnicas atractivas o ingeniosas por sí mismas, desarrollar la creatividad implica incidir sobre varios aspectos para esto es fundamental tener organización, responsabilidad, fluidez. Mas sin embargo a veces pensamos o más bien se queda en ya es suficiente, así y si quiere, o la típica flojera, estos conformismos nunca dejan nada bueno.
La creatividad habla mucho de nosotros como seres humanos, para todo hay tiempo aunque cueste un poco mas realmente vale la pena un gran esfuerzo. En mi ejemplo me considero una persona responsable y sé que tengo lo que se necesita para tener creatividad esta manera de ser me ha funcionado bastante al pensar positivamente que va mas allá de cualquier obstáculo.
Sé que llevando una creatividad en la carrera se facilitara la atención tanto maestros como alumnos, me he dado cuenta que la sociedad le atrae más los anuncios que aporten mas espectáculo, en pocas palabras por decirlo así que hayan mas dibujos y menos texto pero tenemos pensar que la lectura es muy importante, nos purifica la mente y nos facilita la expresión del habla.
Las personas creativas tienen gran curiosidad intelectual, tienen su mente con amplia información, demuestra empatía hacia la gente, posee de gran capacidad de análisis y síntesis algunas de las características que para mí son mas importante para poder ser creativos pues no solo es aplicar técnicas atractivas o ingeniosas por sí mismas, desarrollar la creatividad implica incidir sobre varios aspectos para esto es fundamental tener organización, responsabilidad, fluidez. Mas sin embargo a veces pensamos o más bien se queda en ya es suficiente, así y si quiere, o la típica flojera, estos conformismos nunca dejan nada bueno.
La creatividad habla mucho de nosotros como seres humanos, para todo hay tiempo aunque cueste un poco mas realmente vale la pena un gran esfuerzo. En mi ejemplo me considero una persona responsable y sé que tengo lo que se necesita para tener creatividad esta manera de ser me ha funcionado bastante al pensar positivamente que va mas allá de cualquier obstáculo.
Sé que llevando una creatividad en la carrera se facilitara la atención tanto maestros como alumnos, me he dado cuenta que la sociedad le atrae más los anuncios que aporten mas espectáculo, en pocas palabras por decirlo así que hayan mas dibujos y menos texto pero tenemos pensar que la lectura es muy importante, nos purifica la mente y nos facilita la expresión del habla.
QUE ESPERO DE MI CARRERA
Antes que nada espero mejorar en todas las materias, llevar un orden y obtener buenas calificaciones. Me gustaría aprender a programar porque la verdad no se mucho de esto. Me gustaría trabajar en un lugar en un lugar donde el ambiente sea agradable. Me comprometo a llevar un tiempo adecuado para aprender sobre los programas.
Es importante, tener conocimientos de computación y de ingles, aparte que el idioma se me hace muy interesante. Programador de software es una buena base para lograr mis metas. Quisiera que en un futuro tuviera un trabajo estable. En la actualidad para tener un trabajo bueno es importante tener lo básico de estos conocimientos por eso seleccione esta carrera.
Es importante, tener conocimientos de computación y de ingles, aparte que el idioma se me hace muy interesante. Programador de software es una buena base para lograr mis metas. Quisiera que en un futuro tuviera un trabajo estable. En la actualidad para tener un trabajo bueno es importante tener lo básico de estos conocimientos por eso seleccione esta carrera.
Suscribirse a:
Entradas (Atom)