jueves, 8 de noviembre de 2012

Software


Se conoce como software al equipamiento lógico o soporte lógico de un sistema informático.
El software es un plan de funcionamiento para un tipo especial de máquina, una máquina ``virtual'' o ``abstracta''. Una vez escrito mediante algún lenguaje de programación, el software se hace funcionar en ordenadores, que temporalmente se convierten en esa máquina para la que el programa sirve de plan. El software permite poner en relación al ser humano y a la máquina y también a las máquinas entre sí. 
Existen varias definiciones similares aceptadas para software, pero probablemente la más formal sea la siguiente:
Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados que forman parte de las operaciones de un sistema de computación.


Extraído del estándar 729 del IEEE

Cualidades del software.


Las cualidades de un software pueden ser nombrados:

Correcto: Un software es correcto si se comporta de acuerdo a su especificación.

Confiable: El software se comporta de acuerdo con lo esperado por el usuario.

Robusto: Un software es robusto si se comporta en forma razonable aun en situaciones no anticipadas.

Eficiencia: Es eficiente si usa recursos en forma económica.

Amigable: si el usuario lo encuentra fácil de usar.

Verificable: si sus propiedades pueden ser comprobadas.

Reusable: ya desarrollado  se use con pocos o ningún cambio.

Portables: si pueden usarse y ejecutarse en distintos  ambientes.

Interoperable: si puede coexistir y cooperar con otros sistemas.

Factores de calidad del software.


En los factores que podemos nombrar para que el cliente sienta satisfacción en todas sus necesidades en la presencia del software ya desarrollado serian;

Corrección.

Fiabilidad

Eficiencia

Seguridad

Facilidad

Ingeniería del software


Es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento de software o podemos citar a Zelkovitz, el cual dice que es el estudio de los principios y metodologías para el desarrollo y mantenimiento de sistemas software.
Pero en fin solo se busca el desarrollo de un software rentable y estable para coda uso en el área de trabajo.

Participantes en el proceso de desarrollo de software.

Pues el software libre lo puede desarrollar cualquier persona o equipo de trabajo claro siempre y cuando sepan hacerlo y pues no tenga un propietario ya que al ser de licencia libre se pueda descargar y distribuirlo a las personas que se quiera sin que tenga ninguna restricción de cualquier tipo.

Los que trabajan desarrollando software saben que cada unos de las personas que están involucradas en el proceso de desarrollo tienen particularidades y su manera de pensar, por lo cual se maneja de la forma Project manager, marketing manager, auditor.


Ciclo de vida del software.


El término ciclo de vida del software describe el desarrollo de software, desde la fase inicial hasta la fase final. El propósito de este programa es definir las distintas fases intermedias que se requieren para validar el desarrollo de la aplicación, es decir, para garantizar que el software cumpla los requisitos para la aplicación y verificación de los procedimientos de desarrollo: se asegura de que los métodos utilizados son apropiados.

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


FUNDAMENTACION TEORICA


Paradigmas de Programación:


El término paradigma significa «ejemplo» o «modelo». En todo el ámbito científico, religioso u otro. 
Un paradigma de programación es una propuesta tecnológica que es adoptada por una comunidad de programadores, Un paradigma de programación está delimitado en el tiempo en cuanto a aceptación y uso.





Metodologías o procesos de desarrollo de software.


Es un  framework  o marco de trabajo usado para estructurar, planificar y controlar el proceso de desarrollo en sistemas de información y consiste en:
§  Una filosofía de desarrollo de programas de computación con el enfoque del proceso de desarrollo de software
§  Herramientas, modelos y métodos para asistir al proceso de desarrollo de software
Estos frameworks son a menudo vinculados a algún tipo de organización, que además desarrolla, apoya el uso y promueve la metodología.
Algunas metodologías;
1970s
§  Programación estructurada sol desde 1969
§  Programación estructurada Jackson desde 1975
1980s
§  Structured Systems Analysis and Design Methodology (SSADM) des de 1980
§  Structured Analysis and Design Technique (SADT) des de 1980
§  Ingeniería de la información (IE/IEM) desde 1981
1990s
§  Rapid application development (RAD) des de 1991.
§  Programación orientada a objetos (OOP) a lo largo de la década de los 90's
§  Virtual finite state machine (VFSM) des de 1990s
§  Dynamic Systems Development Method desarrollado en UK des de 1995.
§  Scrum (desarrollo), en la última parte de los 90's
§  Rational Unified Process (RUP) des de 1999.
Nuevo milenio
§  Extreme Programming(XP) desde 1999
§  Enterprise Unified Process (EUP) extensiones RUP desde 2002
§  Constructionist design methodology (CDM) des de 2004 por Kristinn R. Thórisson
§  Agile Unified Process (AUP) des de 2005 por Scott Ambler.