domingo, 11 de noviembre de 2012

CICLO DE VIDA DE UN SOFTWARE


El ciclo de vida básico de un software consta de los siguientes procedimientos:

  • Definición de objetivos: definir el resultado del proyecto y su papel en la estrategia global.
  • Análisis de los requisitos y su viabilidad: recopilar, examinar y formular los requisitos del cliente y examinar cualquier restricción que se pueda aplicar.
  • Diseño general: requisitos generales de la arquitectura de la aplicación.
  • Diseño en detalle: definición precisa de cada subconjunto de la aplicación.
  • Programación (programación e implementación): es la implementación de un lenguaje de programación para crear las funciones definidas durante la etapa de diseño.
  • Prueba de unidad: prueba individual de cada subconjunto de la aplicación para garantizar que se implementaron de acuerdo con las especificaciones.
  • Integración: para garantizar que los diferentes módulos se integren con la aplicación. Éste es el propósito de la prueba de integración que está cuidadosamente documentada.
  • Prueba beta (o validación), para garantizar que el software cumple con las especificaciones originales.
  • Documentación: sirve para documentar información necesaria para los usuarios del software y para desarrollos futuros.
  • Implementación
  • Mantenimiento: para todos los procedimientos correctivos (mantenimiento correctivo) y las actualizaciones secundarias del software (mantenimiento continuo).

Metodologías para el desarrollo del software



  • Programación estructurada sol desde 1969
  • Programación estructurada Jackson desde 1975
  • Structured Systems Analysis and Design Methodology (SSADM) desde 1980
  • Structured Analysis and Design Technique (SADT) desde 1980
  • Ingeniería de la información (IE/IEM) desde 1981
  • Rapid application development (RAD) desde 1991.
  • Programación orientada a objetos (OOP) a lo largo de la década de los 90's
  • Virtual finite state machine (VFSM) desde 1990s
  • Dynamic Systems Development Method desarrollado en UK desde 1995.
  • Scrum (desarrollo), en la última parte de los 90's
  • Rational Unified Process (RUP) desde 1999.
  • Extreme Programming(XP) desde 1999
  • Enterprise Unified Process (EUP) extensiones RUP desde 2002
  • Constructionist design methodology (CDM) desde 2004 por Kristinn R. Thórisson
  • Agile Unified Process (AUP) desde 2005 por Scott Ambler

Visión general del Proceso de desarrollo de software

Es proceso es afectado por la creatividad y juicio de las personas  involucradas. En el desarrollo de software hay una serie de desafíos adicionales, relativos esencialmente a la naturaleza del producto obtenido. Un proceso de desarrollo de software tiene como propósito la producción eficaz y eficiente de un producto software que reúna los requisitos del cliente. 

Es actividades requeridas para desarrollar un sistema de software de alta calidad y proporciona el marco de trabajo desde el cual se puede establecer un plan detallado para el desarrollo del software. Actividades: Diseño, validación, evolución, especificación.

ING. DEL SOFWARE

Es toda la información relacionada al desarrollo de software, el estudio de los principios y metodologías para el desarrollo y mantenimiento de sistemas software, la aplicación práctica del conocimiento científico al diseño y construcción de programas de computadora.

FACTORES DE CALIDAD DEL SOFTWARE



  • Fiabilidad: es la capacidad que tiene un software de funcionar incluso en situaciones excepcionales.
  • Modularidad: es la capacidad que tienen los elementos del software para formar parte de otras aplicaciones.
  • Compatibilidad: es la facilidad de combinar un software con otros.
  • Eficiencia: es su capacidad para hacer un buen uso de los recursos del ordenador.
  • Portabilidad: es la facilidad de transferir un software a un entorno tanto hardware como software distintos.
  • Facilidad de uso: cuando el usuario puede comunicarse con el programa de manera cómoda e intuitiva, también cuenta la facilidad de instalación/desinstalación del software.
  • Funcionalidad: el conjunto de posibilidades que proporciona el software.
  • Puntualidad: es la capacidad de entregar un software en los plazos acordados con el contratante.
  • Verificabilidad: es la facilidad de verificación de un software, es decir, probar que el software funcione correctamente y localizar errores durante las fases de validación y operación del mismo.
  • Integridad: es la capacidad del software de proteger sus diversos componentes (programas, datos, etc.) contra modificaciones y accesos no autorizados.
  • Reparabilidad: es la capacidad para facilitar la reparación de los defectos de programación o que aparezcan debido a la interacción con otro software.
  • Economía: es la capacidad que un sistema tiene de completarse con el presupuesto asignado o por debajo del mismo.

Paradigma de Programacion

Es una propuesta tecnológica que es adoptada por una comunidad de programadores cuyo núcleo central es incuestionable  cuanto a que unívocamente trata de resolver uno o varios problemas claramente delimitados.

CUALIDADES DEL SOFTWARE

Las cualidades del software son:Robustez, corrección, eficiencia, amabilidad, extensibilidad, claridad, flexibilidad, mantenibilidad, consistencia, simplicidadcompletud, escalabilidad, encapsulamiento, abstracción, generisidad, reusabilidad,  seguridad, utilidad.

  • Un software es robusto cuando funciona en forma razonable aún en situaciones no anticipadas. 
  • Un software es correcto si se comporta de acuerdo a su especificación El software se comporta de acuerdo con lo esperado por el usuario. 
  • Un software es eficiente si usa sus recursos en forma económica. 
  • Un software es amigable si sus usuarios lo encuentran fácil de utilizar.
  • Un software es extensible cuando pueden incorporarse nuevas características al mismo sin mayor impacto sobre las características actuales.

  • Un software es flexible cuando tiene la capacidad para reflejar cambios percibidos en el dominio de una manera simple y sencilla.
  • Un software es más mantenible cuanto menor esfuerzo requiere para que el sistema siga funcionando en condiciones distintas a las originales e incluso en las originales.
  • Un software es consistente cuando sistema se comportar siempre de la misma manera ante un mismo evento y las tareas similares deben poder realizarse siguiendo pasos similares.
  • Un software es simple cuando tanto como en la interfaz como en la implementación es simple. Es mas importante la simplicidad en la interfaz que en la implementación.
  • Un software es completo cuando cuando contempla todas las posibles situaciones a darse en la práctica.
  • Un software practica el encapsulamiento para poder agrupar unidades funcionales me permite que el sistema sea cohesivo, reduciendo la complejidad del sistema y aumentando en cierta forma su flexibilidad.
  • Un software es con escalabilidad da facilidad de un sistema pensando originalmente  en una carga determinada. Puede ser adaptado para soportar una carga mayor.


 

SOFTWARE

Se conoce al software como la parte lógica de un Sistema Informático, comprende una series de componentes que son necesarios para la realización de tareas en especifico para nosotros los usuarios. En conjunto con el hardware.