Software implementation

802516

Una implementación es la instalación de una aplicación informática, realización o la ejecución de un plan, idea, modelo científico, diseño, especificación, estándar, algoritmo o política.

(Distíngase siempre el término implementación de implantación, puesto que una implantación se realiza de forma impuesta u obligatoria al usuario sin importar su opinión; en cambio en la implementación se involucra al usuario en el desarrollo de lo que se está realizando).

En ciencias de la computación, una implementación es la realización de una especificación técnica o algoritmos como un programa, componente software, u otro sistema de cómputo. Muchas implementaciones son dadas según a una especificación o un estándar. Por ejemplo, un navegador web respeta (o debe respetar) en su implementación, las especificaciones recomendadas según el World Wide Web Consortium, y las herramientas de desarrollo del software contienen implementaciones de lenguajes de programación.

La implementación del software lleva acabo la ejecución, método o cualquier diseño, idea, modelo, especificación, estándar para hacer algo. Es la acción que debe seguir preliminarmente el pensamiento en orden de hacer que algo pase. Es aquí donde el código comienza y se empieza a implementar los diseños especificados del programa. Es poner en acción todo lo anteriormente hablado.


Software testing

software-testing

Las pruebas de software son las investigaciones empíricas y técnicas cuyo objetivo es proporcionar información objetiva e independiente sobre la calidad del producto a la parte interesada o stakeholder. Es una actividad más en el proceso de control de calidad.

Las pruebas son básicamente un conjunto de actividades dentro del desarrollo de software. Dependiendo del tipo de pruebas, estas actividades podrán ser implementadas en cualquier momento de dicho proceso de desarrollo. Existen distintos modelos de desarrollo de software, así como modelos de pruebas. A cada uno corresponde un nivel distinto de involucramiento en las actividades de desarrollo.

El software testing es el proceso de ejecutar un programa para encontrar  cualquier bug o error y para comprobar que el software cumple todas las funciones para las que fue hecho. El testing tiene dos tipos de clasificación, estática y dinámica. La estática es examinar el source  code, algo implícito porque los editores de texto checan automáticamente la sintaxis. La dinámica es examinar la ejecución del programa, es usado para verificar que el programa funcione con respecto a los requerimientos funcionales. Algunos ejemplos de acercamientos de testeo de software son: test de unidad(básico), test funcional( checar el output) test de humo, test de regresión(bugs) test de aceptación ( del usuario).


Software design patterns

designpatterns02

Los patrones de diseño son la base para la búsqueda de soluciones a problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.

Un patrón de diseño resulta ser una solución a un problema de diseño. Para que una solución sea considerada un patrón debe poseer ciertas características. Una de ellas es que debe haber comprobado su efectividad resolviendo problemas similares en ocasiones anteriores. Otra es que debe ser reutilizable, lo que significa que es aplicable a diferentes problemas de diseño en distintas circunstancias.

Los patrones del diseño de software es una solución general a un problema común en el diseño del software, es una plantilla general que puede ser usada para resolver problemas comunes.

Los software design patterns son soluciones generales a problemas que salen a la luz comúnmente durante el desarrollo de software, como un template que puede ser usado para diseñar software.

Existen 3 tipos de patrones de diseño: estructura, comportamiento y de creación.


Patrones de diseño de software

Los patrones de diseño son soluciones para problemas típicos y recurrentes que nos podemos encontrar a la hora de desarrollar una aplicación.

Aunque nuestra aplicación sea única, tendrá partes comunes con otras aplicaciones: acceso a datos, creación de objetos, operaciones entre sistemas etc. En lugar de reinventar la rueda, podemos solucionar problemas utilizando algún patrón, ya que son soluciones probadas y documentadas por multitud de programadores.

Patrones de diseño hay muchos. Muchísimos. Y siguen apareciendo patrones nuevos cada poco tiempo. El desarrollo de aplicaciones es una disciplina en constante cambio. Por tanto los problemas a los que nos enfrentamos los desarrolladores también cambian. Así que las herramientas utilizadas, también se van actualizando y mejorando.

Es imposible conocer todos los patrones de diseño. Lo más útil es tener un catalogo de patrones que podamos consultar. A la hora de desarrollar una aplicación, podremos consultar nuestro catálogo buscando patrones que nos ayuden a solucionar problemas de diseño concretos.

Existen diversas maneras de agrupar los patrones de diseño. Quizá la más extendida es agruparlos según su propósito. En este caso tendríamos las siguientes categorías:

  • Patrones creacionales: utilizados para instanciar objetos, y así separar la implementación del cliente de la de los objetos que se utilizan. Con ellos intentamos separar la lógica de creación de objetos y encapsularla.
  • Patrones de comportamiento: se utilizan a la hora de definir como las clases y objetos interaccionan entre ellos.
  • Patrones estructurales: utilizados para crear clases u objetos que incluidos dentro de estructuras más complejas.

Software Testing

Sandra Alcaraz

Pruebas de software: es el proceso de evaluar un sistema y sus componentes, con el propósito de encontrar otra manera de satisfacer las necesidades de los requerimientos especificados del software. Es ejecutar un sistema en orden para identificar errores o requerimientos faltantes. Son actividades dentro del desarrollo de software.

Los tipos de pruebas de software son:

Unitarias: Se centra en dividir el programa en módulos y mostrar que cada módulo funciona bien y cumple con los requerimientos.

Integración: Es la prueba que combina las partes de la aplicación y determina si estas funcionan correctamente. Este tipo de prueba se puede realizar de dos maneras “Bottom-up Integration Testing” y “Top-down integration testing”.

Sistema: Este tipo prueba al sistema como un conjunto. Una vez que se integra todo el sistema, se verifica que el sistema cumpla con las normas de calidad. Se llevan más pruebas especializadas.

Regresión: Cuando se hace un cambio…

View original post 215 more words


Software implementation

Sandra Alcaraz

Los métodos para la implementación de software son:

Programación estructurada

Es el proceso de programación en el cual escribimos código y las líneas de código aumentan, por lo cual el tamaño del software crece. Si no se tiene muy en mente lo que  hace cada módulo del código, se vuelve difícil recordar todo lo que hacía cada parte y cómo corría esa parte; por esta razón se empieza a volver complicado encontrar los errores del programa.

La solución a esto es la programación estructurada, con esto se intenta que los programadores a usar bucles en lugar de saltos de código. Así el código se vuelve más claro y mejora la eficiencia de la programación, con este orden se reduce el tiempo de programación y se organiza mejor el código.

La programación estructurada usa tres conceptos principales:

Top-down analysis

Modular Programming

Structured Coding

Programación funcional

Es un estilo de lenguaje de…

View original post 357 more words


What is open source software??

Originally posted on Sandra’s Blog

Sandra Alcaraz

Alguna vez escuchas el término de “Open source”, en este blog daré una breve explicación de lo que es.

El término de open source se refiere a algo que las personas pueden modificar y adaptar de acuerdo a sus necesidades; debido a que éste es accesible. Open source es un código  que tiene un recurso para que las personas lo puedan modificar, cualquier persona lo puede hacer. Con un código abierto el usuario lo puede manipular y cambiar cada pieza específica  del software.

En los sistemas en los que el sistema no es de código abierto el usuario no puede modificarlo, tal es el caso de Windows, este sistema operativo ya viene establecido, se pueden hacer ciertas modificaciones mínimas, pero no es tan accesible como un open source. Sólo las compañías que crean este tipo de software pueden modificar, alterar y cambiarlo.

El código abierto es totalmente diferente, los creadores…

View original post 253 more words


Software Architecture

arquitectura

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”.

La arquitectura del software es la fase final del diseño. En esta etapa se define una solución estructurada que cumpla con todos los requerimientos. Se toman una serie de decisiones que envuelve el impacto en la calidad, mantenibilidad y rendimiento. Se da la relación entre todos los elementos y requerimientos del sistema. La Arquitectura del software significa definir lo que queremos que el sistema haga y el diseño de cómo lograremos eso.


What is software design?

SONY DSC

El diseño de software tiene un papel importante en el desarrollo de software, ya que permite que ingenieros de software produzcan modelos distintos que moldean una clase de plano de la solución a ser implementado. Podemos analizar y valorar a estos modelos para determinar cual de estos permitirá o no, cumplir con una gama de requerimientos

También podemos revisar y valorar las soluciones alternativas y los intercambios. Definitivamente, se puede usar los modelos para planear las actividades de desarrollo siguientes, además de usarlos como entrada y punto de partida de la construcción y hacer pruebas.

En el diseño de software decides cuál será la función de tu software, para qué fin y cómo se verá junto con las metodologías que usarás, checando la seguridad de tu programa, compatibilidad con los sistemas actuales que posee la empresa o el cliente y si el rendimiento será adecuado. Se considera también resolver problemas que salgan a lo largo del desarrollo.


Unified Modeling Language

uml_logo

 

Lenguaje unificado de modelado (UML, por sus siglas en inglés, Unified Modeling Language) es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad; está respaldado por el OMG (Object Management Group).

Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema. UML ofrece un estándar para describir un “plano” del sistema (modelo), incluyendo aspectos conceptuales tales como procesos, funciones del sistema, y aspectos concretos como expresiones de lenguajes de programación, esquemas de bases de datos y compuestos reciclados.

En el modelo unificado del lenguaje hay dos tipos de diagramas, los estructurados y los de comportamiento. En los de estructura se representan los conceptos más importantes de un sistema. En el caso de un programa Orientado a Objetos el más común es el que está compuesto por 3 partes, el nombre de la clase, sus atributos y métodos.

Los del comportamiento definen comunicación, secuencia, actividad, interacción etc.