SlideShare una empresa de Scribd logo
1 de 7
ARQUITECTURA DE SOFTWARE
En los inicios de la informática, la programación se
consideraba un arte y se desarrollaba como tal
debido a la dificultad que entrañaba para la mayoría
de las personas, pero con el tiempo se han ido
descubriendo y desarrollando formas y guías
generales, con base a las cuales se puedan resolver
los problemas. A estas, se les ha
denominado arquitectura de software, porque, a
semejanza de los planos de un edificio o
construcción, estas indican la estructura, funcionamiento e interacción entre las partes del
software. En el libro "An introduction to Software Architecture", David Garlan y Mary
Shaw definen que la arquitectura es un nivel de diseño que hace foco en aspectos "más allá
de los algoritmos y estructuras de datos de la computación; el diseño y especificación de la
estructura global del sistema es un nuevo tipo de problema".
Generalmente, no es necesario inventar una nueva arquitectura de software para cada
sistema de información. Lo habitual es adoptar una arquitectura conocida en función de sus
ventajas e inconvenientes para cada caso en concreto. Así, las arquitecturas más universales
son:
 Descomposición Modular. Donde el software se estructura en grupos funcionales muy
acoplados.
 Cliente-servidor. Donde el software reparte su carga de cómputo en dos partes
independientes pero sin reparto claro de funciones.
 Arquitectura de tres niveles. Especialización de la arquitectura cliente-servidor donde la
carga se divide en tres partes (o capas) con un reparto claro de funciones: una capa para
la presentación (interfaz de usuario), otra para el cálculo (donde se encuentra modelado
el negocio) y otra para el almacenamiento (persistencia). Una capa solamente tiene
relación con la siguiente.
Otras arquitecturas menos conocidas son:
 Modelo Vista Controlador.
 En pipeline.
 Entre pares.
 En pizarra.
 Orientada a servicios (SOA del inglés Service-Oriented Architecture).
 Arquitectura de microservicios (MSA del inglés MicroServices Architecture). Algunos
consideran que es una especialización de una forma de implementar SOA.
 Dirigida por eventos.
 Máquinas virtuales
SISTEMA OPERATIVO
Un sistema operativo (SO o, frecuentemente, OS —del inglés operating system—) es
el software principal o conjunto de programas de un sistema informático que gestiona los
recursos de hardware y provee servicios a los programas de aplicación de software,
ejecutándose en modo privilegiado respecto de los restantes (aunque puede que parte de él
se ejecute en espacio de usuario).2
Nótese que es un error común muy extendido denominar al conjunto completo de
herramientas sistema operativo,3es decir, la inclusión en el mismo término de programas
como el explorador de ficheros, el navegador web y todo tipo de herramientas que permiten
la interacción con el sistema operativo. Otro ejemplo para comprender esta diferencia se
encuentra en la plataforma Amiga, donde el entorno gráfico de usuario se distribuía por
separado, de modo que, también podía reemplazarse por otro, como era el caso de directory
Opus o incluso manejarlo arrancando con una línea de comandos y el sistema gráfico. De
este modo, comenzaba a funcionar con el propio sistema operativo que llevaba incluido en
una ROM, por lo que era cuestión del usuario decidir si necesitaba un entorno gráfico para
manejar el sistema operativo o simplemente otra aplicación. Uno de los más prominentes
ejemplos de esta diferencia, es el núcleo Linux, usado en las llamadas distribuciones Linux,
ya que al estar también basadas en Unix, proporcionan un sistema de funcionamiento
similar. Este error de precisión, se debe a la modernización de la informática llevada a cabo
a finales de los 80, cuando la filosofía de estructura básica de funcionamiento de los
grandes computadores4 se rediseñó a fin de llevarla a los hogares y facilitar su uso,
cambiando el concepto de computador multiusuario, (muchos usuarios al mismo tiempo)
por un sistema monousuario (únicamente un usuario al mismo tiempo) más sencillo de
gestionar.5 Véase AmigaOS, beOS o Mac OS como los pioneros6 de dicha modernización,
cuando los Amiga fueron bautizados con el sobrenombre de Video Toasters7 por su
capacidad para la Edición de vídeo en entorno multitarea round robin, con gestión de miles
de colores e interfaces intuitivos para diseño en 3D.
En ciertos textos, el sistema operativo es llamado indistintamente como núcleo o kernel,
pero debe tenerse en cuenta que la diferencia entre kernel y sistema operativo solo es
aplicable si el núcleo es monolítico, lo cual fue muy común entre los primeros sistemas. En
caso contrario, es incorrecto llamar al sistema operativo núcleo.
Uno de los propósitos del sistema operativo que gestiona el núcleo intermediario consiste
en gestionar los recursos de localización y protección de acceso del hardware, hecho que
alivia a los programadores de aplicaciones de tener que tratar con estos detalles. La mayoría
de aparatos electrónicos que utilizan microprocesadores para funcionar, llevan incorporado
un sistema operativo (teléfonos móviles, reproductores de DVD, computadoras,
radios, enrutadores, etc.).
CONJUNTO DE LENGUAJE
En matemáticas, lógica y ciencias de la computación, un lenguaje formal es
un lenguaje cuyos símbolos primitivos y reglas para unir esos símbolos están formalmente
especificados.12 Al conjunto de los símbolos primitivos se le llama el alfabeto (o
vocabulario) del lenguaje, y al conjunto de las reglas se lo llama la gramática formal (o
sintaxis). A una cadena de símbolos formada de acuerdo a la gramática se la llama
una fórmula bien formada (o palabra) del lenguaje. Estrictamente hablando, un lenguaje
formal es idéntico al conjunto de todas sus fórmulas bien formadas. A diferencia de lo que
ocurre con el alfabeto (que debe ser un conjunto finito) y con cada fórmula bien formada
(que debe tener una longitud también finita), un lenguaje formal puede estar compuesto por
un número infinito de fórmulas bien formadas.
Por ejemplo, un alfabeto podría ser el conjunto {a,b}, y una gramática podría definir a las
fórmulas bien formadas como aquellas que tienen el mismo número de símbolos a que b.
Entonces, algunas fórmulas bien formadas del lenguaje serían: ab, ba, abab, ababba, etc.; y
el lenguaje formal sería el conjunto de todas esas fórmulas bien formadas.
Para algunos lenguajes formales existe una semántica formal que puede interpretar y dar
significado a las fórmulas bien formadas del lenguaje. Sin embargo, una semántica formal
no es condición necesaria para definir un lenguaje formal, y eso es una diferencia esencial
con los lenguajes naturales.
OPERACIONES
Se pueden utilizar varias operaciones para producir nuevos lenguajes a partir de otros datos.
Supóngase que L1 y L2 son lenguajes sobre un alfabeto común. Entonces:
 La concatenación L1L2 consiste de todas aquellas palabras de la forma vw donde v es
una palabra de L1 y w es una palabra de L2
 La intersección L1&L2 consiste en todas aquellas palabras que están contenidas tanto
en L1 como en L2
 La unión L1|L2 consiste en todas aquellas palabras que están contenidas ya sea en L1 o
en L2
 El complemento ~L1 consiste en todas aquellas palabras producibles sobre el alfabeto
de L1 que no están ya contenidas en L1
 El cociente L1/L2 consiste de todas aquellas palabras v para las cuales existe una
palabra w en L2 tales que vw se encuentra en L1
 La estrella L1
*(Llamada también clausura de Kleene del lenguaje L1) consiste de todas
aquellas palabras que pueden ser escritas de la forma W1W2...Wn donde todo Wi se
encuentra en L1 y n ≥ 0. (Nótese que esta definición incluye a λ en cualquier L*)
 La Clausura positiva L1
+ consiste de todas aquellas palabras que pueden ser escritas de
la forma W1W2...Wn donde todo Wi se encuentra en L1 y n > 0. (Difiere de la clausura de
Kleene ya que contiene a λ si y sólo si L1 contiene a λ)
 La intercalación L1*L2 consiste de todas aquellas palabras que pueden ser escritas de la
forma v1w1v2w2...vnwn; son palabras tales que la concatenación v1...vn está en L1, y la
concatenación w1...wn está en L2
Sean los lenguajes, de forma tal que para cada entonces esté formado por
todas las palabras que pueden surgir de concatenar palabras del lenguaje . Por
ejemplo, si , entonces En base al conceptor anterior pueden definirise la
clausuras mencionadas anteriormente:
 La clausura de Kleene se denota formalmente:
 La clausura positiva se denota formalmente:
Por lo tanto se deduce que
Una pregunta que se hace típicamente sobre un determinado lenguaje formal L es cuán
difícil es decidir si incluye o no una determinada palabra v. Este tema es del dominio de
la teoría de la computabilidad y la teoría de la complejidad computacional.
Por contraposición al lenguaje propio de los seres vivos y en especial el lenguaje humano,
considerados lenguajes naturales, se denomina lenguaje formal a los lenguajes «artificiales»
propios de las matemáticas o la informática, los lenguajes artificiales son llamados
lenguajes formales (incluyendo lenguajes de programación). Sin embargo, el lenguaje
humano tiene una característica que no se encuentra en los lenguajes de programación: la
diversidad.
En 1956, Noam Chomsky creó la jerarquía de Chomsky para organizar los distintos tipos
de lenguaje formal.
CONJUNTO DE APLICACIONES DE SOFTARE
Un programa aplicación o software de aplicación (muchas veces abreviado
como app o aplicación) es un tipo de software de computadora diseñado para realizar un
grupo de funciones, tareas o actividades coordinadas para el beneficio del usuario. A modo
de ejemplo, dentro de la aplicación se pueden incluir un procesador de textos, una hoja de
cálculo, una aplicación de contabilidad, un navegador web, un reproductor multimedia,
un simulador de vuelo aeronáutico, una consola de juegos o un editor de fotografías. El
nombre colectivo de software de solicitud hace referencia colectivamente a todas las
aplicaciones.1 Esto contrasta con el software del sistema, que está principalmente
relacionado con la ejecución de la computadora.1
Las aplicaciones pueden ser empaquetadas con el ordenador y su software de sistema o bien
ser publicadas por separado, y asimismo pueden codificarse como proyectos propietarios,
de código abierto o universitarios.2 Las aplicaciones creadas para plataformas móviles se
denominan aplicaciones móviles.
En tecnología de la información, una aplicación es un programa informático diseñado para
ayudar a las personas a realizar una actividad. Por lo tanto, una aplicación difiere de
un sistema operativo (que ejecuta una computadora), una utilidad (que realiza tareas de
mantenimiento o tareas generales) y una herramienta de programación (con los cuales se
crean los programas de computadora). Dependiendo de la actividad para la que fue
diseñado, una aplicación puede manipular texto, números, gráficos o una combinación de
estos elementos. Algunos paquetes de aplicaciones se centran en una sola tarea, como
procesamiento de textos; otros, llamados software integrado, paquete o suit, incluyen varias
aplicaciones.3
El sistema de software escrito "a medida" satisface las necesidades específicas del usuario.
Dicho software escrito por el usuario incluye plantillas de hojas de cálculo, macros de
procesador de textos, simulaciones científicas, gráficos y scripts de animación. Incluso los
filtros de correo electrónico son una especie de software de usuario. Los usuarios crean este
software ellos mismos y muchas veces pasan por alto lo importante que es.
.
CONJUNTO DE HERRAMIENTAS DE SOFTWARE
El desarrollo de software, es una de las ramas de la ingeniería que se en enfoca
principalmente a lo que es la creación de sistemas informáticos… pero ok, todo eso ya lo
sabes, no necesito decirte qué es el desarrollo de software en esta instancia. De hecho está
de más que te explique pues si estás aquí es porque vienes a buscar herramientas de
desarrollo de software y es precisamente lo que vamos a ver a continuación.
El desarrollo de software, también conocido como el ciclo del software, se compone por
diversas etapas que dependen precisamente de qué es lo que se está llevando a cabo, cada
una de esas etapas cuenta con distintas Herramientas de Desarrollo de Software y hoy
vamos a ver cada una de ellas, para que sin importar en que fase de desarrollo te
encuentres, tengas la posibilidad de usar distintas herramientas de software que te faciliten
la vida en gran manera.
Herramientas para Modelado de Software
El modelado de software es el primer paso antes de desarrollar cualquier tipo de sistema.
Normalmente el modelado se basa en la creación de Diagramas que explican el
funcionamiento del software a desarrollar, eso hablando de algún ejemplo
básico. Regularmente se utilizan los diagramas UML, los cuales permiten que mediante un
diseño abstracto, los desarrolladores y el cliente definan el sistema, su funcionamiento y sus
funcionalidades. A continuación, algunas de las herramientas de modelado de software, que
te permitirán crear los famosos diagramas UML.
LA ARQUITECTURA DE SOFTWARE Y SUS GRAFICOS
La arquitectura de software es un concepto fácil de entender y que la mayoría de los
ingenieros aprecian intuitivamente, sobre todo los que tienen un poco de experiencia, pero
resulta difícil definirlo con precisión. En concreto, es difícil dibujar una línea precisa entre
el diseño y la arquitectura, la arquitectura es un aspecto de diseño que se concentra en
algunas características específicas.
En An Introduction to Software Architecture, David Garlan y Mary Shaw sugieren que la
arquitectura es un nivel de diseño que se centra en aspectos: "Beyond the algorithms and
data structures of the computation; designing and specifying the overall system structure
emerges as a new kind of problem. Structural issues include gross organization and global
control structure; protocols for communication, synchronization, and data access;
assignment of functionality to design elements; physical distribution; composition of design
elements; scaling and performance; and selection among design alternatives." (Más allá de
los algoritmos y estructuras de datos de la computación; el diseño y la especificación de la
estructura general del sistema emergen como una clase nueva de problema. Los aspectos
estructurales incluyen la estructura global de control y la organización general; protocolos
de comunicación, sincronización y acceso de datos; asignación de funciones para diseñar
elementos; distribución física, composición de elementos de diseño; ajuste y rendimiento; y
selección entre otras alternativas de diseño). [GAR93]
Pero la arquitectura es algo más que una estructura; el IEEE Working Group on
Architecture la define como "the highest-level concept of a system in its environment" (el
concepto de más alto nivel de un sistema en su entorno) [IEP1471]. También incluye el
"ajuste" con la integridad del sistema, con las restricciones económicas, con las
preocupaciones estéticas y con el estilo. No se limita a un enfoque interior, si no que tiene
en cuenta el sistema en su totalidad dentro del entorno de usuario y el entorno de desarrollo,
un enfoque exterior.
En RUP, la arquitectura de un sistema de software (en un punto determinado) es la
organización o la estructura de los componentes importantes del sistema que interactúan
mediante interfaces, con componentes compuestos de interfaces y componentes cada vez
más pequeños.

Más contenido relacionado

La actualidad más candente

Lenguajes informáticos sistema operativo
Lenguajes informáticos   sistema operativoLenguajes informáticos   sistema operativo
Lenguajes informáticos sistema operativo48721377
 
Grupo 12-objetos-compuestos
Grupo 12-objetos-compuestosGrupo 12-objetos-compuestos
Grupo 12-objetos-compuestoszeta2015
 
Lenguaje de programacion c#
Lenguaje de programacion c#Lenguaje de programacion c#
Lenguaje de programacion c#XM Filial de ISA
 
10 lenguajes de-marcado
10 lenguajes de-marcado10 lenguajes de-marcado
10 lenguajes de-marcadoJuan Cohen
 
Tutorial de visual c++
Tutorial de visual c++Tutorial de visual c++
Tutorial de visual c++oscar020615
 
Dn13 u3 a28_poe
Dn13 u3 a28_poeDn13 u3 a28_poe
Dn13 u3 a28_poeelisoyyo
 
Lengiajes de programacion valeria loaiza zuleta
Lengiajes de programacion valeria loaiza zuletaLengiajes de programacion valeria loaiza zuleta
Lengiajes de programacion valeria loaiza zuletaOnce Redes
 
Unidad vi sistemas mecanizados ii
Unidad vi sistemas mecanizados iiUnidad vi sistemas mecanizados ii
Unidad vi sistemas mecanizados iinestorgarcia250
 
Introduccion al xml
Introduccion al  xmlIntroduccion al  xml
Introduccion al xmllongojose
 
Manual de el lenguaje de programacion c# ( español spanish) x richy
Manual de el lenguaje de programacion c# ( español spanish) x richyManual de el lenguaje de programacion c# ( español spanish) x richy
Manual de el lenguaje de programacion c# ( español spanish) x richyRoberto Lll
 

La actualidad más candente (17)

Xml
XmlXml
Xml
 
Lenguajes informáticos sistema operativo
Lenguajes informáticos   sistema operativoLenguajes informáticos   sistema operativo
Lenguajes informáticos sistema operativo
 
Grupo 12-objetos-compuestos
Grupo 12-objetos-compuestosGrupo 12-objetos-compuestos
Grupo 12-objetos-compuestos
 
Lenguaje de programacion c#
Lenguaje de programacion c#Lenguaje de programacion c#
Lenguaje de programacion c#
 
Programazion
ProgramazionProgramazion
Programazion
 
10 lenguajes de-marcado
10 lenguajes de-marcado10 lenguajes de-marcado
10 lenguajes de-marcado
 
La web semantica
La web semanticaLa web semantica
La web semantica
 
Tutorial de visual c++
Tutorial de visual c++Tutorial de visual c++
Tutorial de visual c++
 
Dn13 u3 a28_poe
Dn13 u3 a28_poeDn13 u3 a28_poe
Dn13 u3 a28_poe
 
Csharp
CsharpCsharp
Csharp
 
Lengiajes de programacion valeria loaiza zuleta
Lengiajes de programacion valeria loaiza zuletaLengiajes de programacion valeria loaiza zuleta
Lengiajes de programacion valeria loaiza zuleta
 
Unidad vi sistemas mecanizados ii
Unidad vi sistemas mecanizados iiUnidad vi sistemas mecanizados ii
Unidad vi sistemas mecanizados ii
 
Introduccion al xml
Introduccion al  xmlIntroduccion al  xml
Introduccion al xml
 
Manual de el lenguaje de programacion c# ( español spanish) x richy
Manual de el lenguaje de programacion c# ( español spanish) x richyManual de el lenguaje de programacion c# ( español spanish) x richy
Manual de el lenguaje de programacion c# ( español spanish) x richy
 
Diccionario 1
Diccionario 1Diccionario 1
Diccionario 1
 
El lenguaje XML y su uso
El lenguaje XML y su usoEl lenguaje XML y su uso
El lenguaje XML y su uso
 
Luis silva diapositiva
Luis silva  diapositivaLuis silva  diapositiva
Luis silva diapositiva
 

Similar a ArqSoft-40

Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programaciónOscar Delgado
 
Libro2 - PROGRAMACION2
Libro2 - PROGRAMACION2Libro2 - PROGRAMACION2
Libro2 - PROGRAMACION2gabrielalija10
 
Libro 2 - ORIGENES DE LA PROGRAMACION
Libro 2 - ORIGENES DE LA PROGRAMACIONLibro 2 - ORIGENES DE LA PROGRAMACION
Libro 2 - ORIGENES DE LA PROGRAMACIONGabriel Alija
 
Presentación Lenguajes de Programación y Utilerias
Presentación Lenguajes de Programación y UtileriasPresentación Lenguajes de Programación y Utilerias
Presentación Lenguajes de Programación y UtileriasPetros Peña Vallejo
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacionandrearincon56
 
Evolucion historica del lenguaje de programacion
Evolucion historica del lenguaje de programacionEvolucion historica del lenguaje de programacion
Evolucion historica del lenguaje de programacionSergio Maidana
 
Programación de computadores
Programación de computadoresProgramación de computadores
Programación de computadores947369
 
Lenguaje de programacion de c++
Lenguaje de programacion de c++Lenguaje de programacion de c++
Lenguaje de programacion de c++zoymar graterol
 
Unidad v sistemas mecanizados ii
Unidad v sistemas mecanizados iiUnidad v sistemas mecanizados ii
Unidad v sistemas mecanizados iinestorgarcia250
 
Unidad v sistemas mecanizados ii
Unidad v sistemas mecanizados iiUnidad v sistemas mecanizados ii
Unidad v sistemas mecanizados iinestorgarcia250
 
Mariana precesntacion 2
Mariana precesntacion 2Mariana precesntacion 2
Mariana precesntacion 2esveidi_27
 
Cuestionario2
Cuestionario2Cuestionario2
Cuestionario2hoppii
 

Similar a ArqSoft-40 (20)

Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programación
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Libro2 - PROGRAMACION2
Libro2 - PROGRAMACION2Libro2 - PROGRAMACION2
Libro2 - PROGRAMACION2
 
Libro 2 - ORIGENES DE LA PROGRAMACION
Libro 2 - ORIGENES DE LA PROGRAMACIONLibro 2 - ORIGENES DE LA PROGRAMACION
Libro 2 - ORIGENES DE LA PROGRAMACION
 
Cuaderno2
Cuaderno2Cuaderno2
Cuaderno2
 
Presentación Lenguajes de Programación y Utilerias
Presentación Lenguajes de Programación y UtileriasPresentación Lenguajes de Programación y Utilerias
Presentación Lenguajes de Programación y Utilerias
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Victor hugo software
Victor hugo  softwareVictor hugo  software
Victor hugo software
 
Victor hugo software
Victor hugo  softwareVictor hugo  software
Victor hugo software
 
Victor hugo software
Victor hugo  softwareVictor hugo  software
Victor hugo software
 
Evolucion historica del lenguaje de programacion
Evolucion historica del lenguaje de programacionEvolucion historica del lenguaje de programacion
Evolucion historica del lenguaje de programacion
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Programación de computadores
Programación de computadoresProgramación de computadores
Programación de computadores
 
El estudio de los lenguajes de programacion
El estudio de los lenguajes de programacionEl estudio de los lenguajes de programacion
El estudio de los lenguajes de programacion
 
Int a la computacion
Int a la computacionInt a la computacion
Int a la computacion
 
Lenguaje de programacion de c++
Lenguaje de programacion de c++Lenguaje de programacion de c++
Lenguaje de programacion de c++
 
Unidad v sistemas mecanizados ii
Unidad v sistemas mecanizados iiUnidad v sistemas mecanizados ii
Unidad v sistemas mecanizados ii
 
Unidad v sistemas mecanizados ii
Unidad v sistemas mecanizados iiUnidad v sistemas mecanizados ii
Unidad v sistemas mecanizados ii
 
Mariana precesntacion 2
Mariana precesntacion 2Mariana precesntacion 2
Mariana precesntacion 2
 
Cuestionario2
Cuestionario2Cuestionario2
Cuestionario2
 

Último

Las redes sociales en el mercado digital
Las redes sociales en el mercado digitalLas redes sociales en el mercado digital
Las redes sociales en el mercado digitalNayaniJulietaRamosRa
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdfedwinmelgarschlink2
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfisrael garcia
 
Unidad V. Disoluciones quimica de las disoluciones
Unidad V. Disoluciones quimica de las disolucionesUnidad V. Disoluciones quimica de las disoluciones
Unidad V. Disoluciones quimica de las disolucioneschorantina325
 
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señorkkte210207
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdflauradbernals
 

Último (6)

Las redes sociales en el mercado digital
Las redes sociales en el mercado digitalLas redes sociales en el mercado digital
Las redes sociales en el mercado digital
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
 
Unidad V. Disoluciones quimica de las disoluciones
Unidad V. Disoluciones quimica de las disolucionesUnidad V. Disoluciones quimica de las disoluciones
Unidad V. Disoluciones quimica de las disoluciones
 
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdf
 

ArqSoft-40

  • 1. ARQUITECTURA DE SOFTWARE En los inicios de la informática, la programación se consideraba un arte y se desarrollaba como tal debido a la dificultad que entrañaba para la mayoría de las personas, pero con el tiempo se han ido descubriendo y desarrollando formas y guías generales, con base a las cuales se puedan resolver los problemas. A estas, se les ha denominado arquitectura de software, porque, a semejanza de los planos de un edificio o construcción, estas indican la estructura, funcionamiento e interacción entre las partes del software. En el libro "An introduction to Software Architecture", David Garlan y Mary Shaw definen que la arquitectura es un nivel de diseño que hace foco en aspectos "más allá de los algoritmos y estructuras de datos de la computación; el diseño y especificación de la estructura global del sistema es un nuevo tipo de problema". Generalmente, no es necesario inventar una nueva arquitectura de software para cada sistema de información. Lo habitual es adoptar una arquitectura conocida en función de sus ventajas e inconvenientes para cada caso en concreto. Así, las arquitecturas más universales son:  Descomposición Modular. Donde el software se estructura en grupos funcionales muy acoplados.  Cliente-servidor. Donde el software reparte su carga de cómputo en dos partes independientes pero sin reparto claro de funciones.  Arquitectura de tres niveles. Especialización de la arquitectura cliente-servidor donde la carga se divide en tres partes (o capas) con un reparto claro de funciones: una capa para la presentación (interfaz de usuario), otra para el cálculo (donde se encuentra modelado el negocio) y otra para el almacenamiento (persistencia). Una capa solamente tiene relación con la siguiente. Otras arquitecturas menos conocidas son:  Modelo Vista Controlador.  En pipeline.  Entre pares.  En pizarra.  Orientada a servicios (SOA del inglés Service-Oriented Architecture).  Arquitectura de microservicios (MSA del inglés MicroServices Architecture). Algunos consideran que es una especialización de una forma de implementar SOA.  Dirigida por eventos.  Máquinas virtuales
  • 2. SISTEMA OPERATIVO Un sistema operativo (SO o, frecuentemente, OS —del inglés operating system—) es el software principal o conjunto de programas de un sistema informático que gestiona los recursos de hardware y provee servicios a los programas de aplicación de software, ejecutándose en modo privilegiado respecto de los restantes (aunque puede que parte de él se ejecute en espacio de usuario).2 Nótese que es un error común muy extendido denominar al conjunto completo de herramientas sistema operativo,3es decir, la inclusión en el mismo término de programas como el explorador de ficheros, el navegador web y todo tipo de herramientas que permiten la interacción con el sistema operativo. Otro ejemplo para comprender esta diferencia se encuentra en la plataforma Amiga, donde el entorno gráfico de usuario se distribuía por separado, de modo que, también podía reemplazarse por otro, como era el caso de directory Opus o incluso manejarlo arrancando con una línea de comandos y el sistema gráfico. De este modo, comenzaba a funcionar con el propio sistema operativo que llevaba incluido en una ROM, por lo que era cuestión del usuario decidir si necesitaba un entorno gráfico para manejar el sistema operativo o simplemente otra aplicación. Uno de los más prominentes ejemplos de esta diferencia, es el núcleo Linux, usado en las llamadas distribuciones Linux, ya que al estar también basadas en Unix, proporcionan un sistema de funcionamiento similar. Este error de precisión, se debe a la modernización de la informática llevada a cabo a finales de los 80, cuando la filosofía de estructura básica de funcionamiento de los grandes computadores4 se rediseñó a fin de llevarla a los hogares y facilitar su uso, cambiando el concepto de computador multiusuario, (muchos usuarios al mismo tiempo) por un sistema monousuario (únicamente un usuario al mismo tiempo) más sencillo de gestionar.5 Véase AmigaOS, beOS o Mac OS como los pioneros6 de dicha modernización, cuando los Amiga fueron bautizados con el sobrenombre de Video Toasters7 por su capacidad para la Edición de vídeo en entorno multitarea round robin, con gestión de miles de colores e interfaces intuitivos para diseño en 3D. En ciertos textos, el sistema operativo es llamado indistintamente como núcleo o kernel, pero debe tenerse en cuenta que la diferencia entre kernel y sistema operativo solo es aplicable si el núcleo es monolítico, lo cual fue muy común entre los primeros sistemas. En caso contrario, es incorrecto llamar al sistema operativo núcleo. Uno de los propósitos del sistema operativo que gestiona el núcleo intermediario consiste en gestionar los recursos de localización y protección de acceso del hardware, hecho que alivia a los programadores de aplicaciones de tener que tratar con estos detalles. La mayoría de aparatos electrónicos que utilizan microprocesadores para funcionar, llevan incorporado un sistema operativo (teléfonos móviles, reproductores de DVD, computadoras, radios, enrutadores, etc.).
  • 3. CONJUNTO DE LENGUAJE En matemáticas, lógica y ciencias de la computación, un lenguaje formal es un lenguaje cuyos símbolos primitivos y reglas para unir esos símbolos están formalmente especificados.12 Al conjunto de los símbolos primitivos se le llama el alfabeto (o vocabulario) del lenguaje, y al conjunto de las reglas se lo llama la gramática formal (o sintaxis). A una cadena de símbolos formada de acuerdo a la gramática se la llama una fórmula bien formada (o palabra) del lenguaje. Estrictamente hablando, un lenguaje formal es idéntico al conjunto de todas sus fórmulas bien formadas. A diferencia de lo que ocurre con el alfabeto (que debe ser un conjunto finito) y con cada fórmula bien formada (que debe tener una longitud también finita), un lenguaje formal puede estar compuesto por un número infinito de fórmulas bien formadas. Por ejemplo, un alfabeto podría ser el conjunto {a,b}, y una gramática podría definir a las fórmulas bien formadas como aquellas que tienen el mismo número de símbolos a que b. Entonces, algunas fórmulas bien formadas del lenguaje serían: ab, ba, abab, ababba, etc.; y el lenguaje formal sería el conjunto de todas esas fórmulas bien formadas. Para algunos lenguajes formales existe una semántica formal que puede interpretar y dar significado a las fórmulas bien formadas del lenguaje. Sin embargo, una semántica formal no es condición necesaria para definir un lenguaje formal, y eso es una diferencia esencial con los lenguajes naturales. OPERACIONES Se pueden utilizar varias operaciones para producir nuevos lenguajes a partir de otros datos. Supóngase que L1 y L2 son lenguajes sobre un alfabeto común. Entonces:  La concatenación L1L2 consiste de todas aquellas palabras de la forma vw donde v es una palabra de L1 y w es una palabra de L2  La intersección L1&L2 consiste en todas aquellas palabras que están contenidas tanto en L1 como en L2  La unión L1|L2 consiste en todas aquellas palabras que están contenidas ya sea en L1 o en L2  El complemento ~L1 consiste en todas aquellas palabras producibles sobre el alfabeto de L1 que no están ya contenidas en L1  El cociente L1/L2 consiste de todas aquellas palabras v para las cuales existe una palabra w en L2 tales que vw se encuentra en L1  La estrella L1 *(Llamada también clausura de Kleene del lenguaje L1) consiste de todas aquellas palabras que pueden ser escritas de la forma W1W2...Wn donde todo Wi se encuentra en L1 y n ≥ 0. (Nótese que esta definición incluye a λ en cualquier L*)  La Clausura positiva L1 + consiste de todas aquellas palabras que pueden ser escritas de la forma W1W2...Wn donde todo Wi se encuentra en L1 y n > 0. (Difiere de la clausura de Kleene ya que contiene a λ si y sólo si L1 contiene a λ)  La intercalación L1*L2 consiste de todas aquellas palabras que pueden ser escritas de la forma v1w1v2w2...vnwn; son palabras tales que la concatenación v1...vn está en L1, y la concatenación w1...wn está en L2
  • 4. Sean los lenguajes, de forma tal que para cada entonces esté formado por todas las palabras que pueden surgir de concatenar palabras del lenguaje . Por ejemplo, si , entonces En base al conceptor anterior pueden definirise la clausuras mencionadas anteriormente:  La clausura de Kleene se denota formalmente:  La clausura positiva se denota formalmente: Por lo tanto se deduce que Una pregunta que se hace típicamente sobre un determinado lenguaje formal L es cuán difícil es decidir si incluye o no una determinada palabra v. Este tema es del dominio de la teoría de la computabilidad y la teoría de la complejidad computacional. Por contraposición al lenguaje propio de los seres vivos y en especial el lenguaje humano, considerados lenguajes naturales, se denomina lenguaje formal a los lenguajes «artificiales» propios de las matemáticas o la informática, los lenguajes artificiales son llamados lenguajes formales (incluyendo lenguajes de programación). Sin embargo, el lenguaje humano tiene una característica que no se encuentra en los lenguajes de programación: la diversidad. En 1956, Noam Chomsky creó la jerarquía de Chomsky para organizar los distintos tipos de lenguaje formal.
  • 5. CONJUNTO DE APLICACIONES DE SOFTARE Un programa aplicación o software de aplicación (muchas veces abreviado como app o aplicación) es un tipo de software de computadora diseñado para realizar un grupo de funciones, tareas o actividades coordinadas para el beneficio del usuario. A modo de ejemplo, dentro de la aplicación se pueden incluir un procesador de textos, una hoja de cálculo, una aplicación de contabilidad, un navegador web, un reproductor multimedia, un simulador de vuelo aeronáutico, una consola de juegos o un editor de fotografías. El nombre colectivo de software de solicitud hace referencia colectivamente a todas las aplicaciones.1 Esto contrasta con el software del sistema, que está principalmente relacionado con la ejecución de la computadora.1 Las aplicaciones pueden ser empaquetadas con el ordenador y su software de sistema o bien ser publicadas por separado, y asimismo pueden codificarse como proyectos propietarios, de código abierto o universitarios.2 Las aplicaciones creadas para plataformas móviles se denominan aplicaciones móviles. En tecnología de la información, una aplicación es un programa informático diseñado para ayudar a las personas a realizar una actividad. Por lo tanto, una aplicación difiere de un sistema operativo (que ejecuta una computadora), una utilidad (que realiza tareas de mantenimiento o tareas generales) y una herramienta de programación (con los cuales se crean los programas de computadora). Dependiendo de la actividad para la que fue diseñado, una aplicación puede manipular texto, números, gráficos o una combinación de estos elementos. Algunos paquetes de aplicaciones se centran en una sola tarea, como procesamiento de textos; otros, llamados software integrado, paquete o suit, incluyen varias aplicaciones.3 El sistema de software escrito "a medida" satisface las necesidades específicas del usuario. Dicho software escrito por el usuario incluye plantillas de hojas de cálculo, macros de procesador de textos, simulaciones científicas, gráficos y scripts de animación. Incluso los filtros de correo electrónico son una especie de software de usuario. Los usuarios crean este software ellos mismos y muchas veces pasan por alto lo importante que es. .
  • 6. CONJUNTO DE HERRAMIENTAS DE SOFTWARE El desarrollo de software, es una de las ramas de la ingeniería que se en enfoca principalmente a lo que es la creación de sistemas informáticos… pero ok, todo eso ya lo sabes, no necesito decirte qué es el desarrollo de software en esta instancia. De hecho está de más que te explique pues si estás aquí es porque vienes a buscar herramientas de desarrollo de software y es precisamente lo que vamos a ver a continuación. El desarrollo de software, también conocido como el ciclo del software, se compone por diversas etapas que dependen precisamente de qué es lo que se está llevando a cabo, cada una de esas etapas cuenta con distintas Herramientas de Desarrollo de Software y hoy vamos a ver cada una de ellas, para que sin importar en que fase de desarrollo te encuentres, tengas la posibilidad de usar distintas herramientas de software que te faciliten la vida en gran manera. Herramientas para Modelado de Software El modelado de software es el primer paso antes de desarrollar cualquier tipo de sistema. Normalmente el modelado se basa en la creación de Diagramas que explican el funcionamiento del software a desarrollar, eso hablando de algún ejemplo básico. Regularmente se utilizan los diagramas UML, los cuales permiten que mediante un diseño abstracto, los desarrolladores y el cliente definan el sistema, su funcionamiento y sus funcionalidades. A continuación, algunas de las herramientas de modelado de software, que te permitirán crear los famosos diagramas UML.
  • 7. LA ARQUITECTURA DE SOFTWARE Y SUS GRAFICOS La arquitectura de software es un concepto fácil de entender y que la mayoría de los ingenieros aprecian intuitivamente, sobre todo los que tienen un poco de experiencia, pero resulta difícil definirlo con precisión. En concreto, es difícil dibujar una línea precisa entre el diseño y la arquitectura, la arquitectura es un aspecto de diseño que se concentra en algunas características específicas. En An Introduction to Software Architecture, David Garlan y Mary Shaw sugieren que la arquitectura es un nivel de diseño que se centra en aspectos: "Beyond the algorithms and data structures of the computation; designing and specifying the overall system structure emerges as a new kind of problem. Structural issues include gross organization and global control structure; protocols for communication, synchronization, and data access; assignment of functionality to design elements; physical distribution; composition of design elements; scaling and performance; and selection among design alternatives." (Más allá de los algoritmos y estructuras de datos de la computación; el diseño y la especificación de la estructura general del sistema emergen como una clase nueva de problema. Los aspectos estructurales incluyen la estructura global de control y la organización general; protocolos de comunicación, sincronización y acceso de datos; asignación de funciones para diseñar elementos; distribución física, composición de elementos de diseño; ajuste y rendimiento; y selección entre otras alternativas de diseño). [GAR93] Pero la arquitectura es algo más que una estructura; el IEEE Working Group on Architecture la define como "the highest-level concept of a system in its environment" (el concepto de más alto nivel de un sistema en su entorno) [IEP1471]. También incluye el "ajuste" con la integridad del sistema, con las restricciones económicas, con las preocupaciones estéticas y con el estilo. No se limita a un enfoque interior, si no que tiene en cuenta el sistema en su totalidad dentro del entorno de usuario y el entorno de desarrollo, un enfoque exterior. En RUP, la arquitectura de un sistema de software (en un punto determinado) es la organización o la estructura de los componentes importantes del sistema que interactúan mediante interfaces, con componentes compuestos de interfaces y componentes cada vez más pequeños.