tarea 3 software

27
José Alberto Frías Rosa 2014-2472 Software

Upload: jose-frias

Post on 16-Aug-2015

43 views

Category:

Technology


0 download

TRANSCRIPT

José Alberto Frías Rosa

2014-2472

Software

Software

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.

Considerando esta definición, el concepto de software va más

allá de los programas de computación en sus distintos

estados: código fuente, binario o ejecutable; también su

documentación, los datos a procesar e incluso la información

de usuario forman parte del software: es decir, abarca todo

lo intangible, todo lo «no físico» relacionado.

Software de sistema Su objetivo es desvincular adecuadamente al usuario y al programador de los detalles del sistema informático en particular que se use, aislándolo especialmente del procesamiento referido a las características internas de: memoria, discos, puertos y dispositivos de comunicaciones, impresoras, pantallas, teclados, etc.

El software de sistema le procura al usuario y programador adecuadas interfaces de alto nivel, controladores, herramientas y utilidades de apoyo que permiten el mantenimiento del sistema global. Incluye entre otros:

Sistemas operativos Controladores de dispositivos

Herramientas de diagnóstico

Utilidades

Servidores Herramientas de

Corrección y Optimización

En Mobile

Android

Windows Phone

Software de aplicación Es aquel que permite a los usuarios llevar a cabo una o varias tareas específicas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial énfasis en los negocios. Incluye entre muchos otros:

Aplicaciones para Control de sistemas y automatización industrial

Aplicaciones ofimáticas

Software educativo

Software empresarial

Bases de datos

Telecomunicaciones (por ejemplo Internet y toda su estructura lógica)

Videojuegos

Software médico

Software de cálculo numérico y simbólico.

Software de diseño asistido (CAD)

Software de control numérico (CAM)

En Mobile

Todas las aplicaciones de nuestro celular

Ya se Facebook, Shasam, Whatsapp, etc.

Software de programación Es el conjunto de herramientas que permiten al programador desarrollar programas informáticos, usando diferentes alternativas y lenguajes de programación, de una manera práctica. Incluyen básicamente:

Editores de texto

Compiladores

Intérpretes

Enlazadores

Depuradores

Entornos de Desarrollo Integrados (IDE): (un conjunto de todas las anteriores)

Editores de texto

Compiladores

Intérpretes

Enlazadores

Depuradores

Entornos de Desarrollo Integrados

En Mobile

Cualquier Blog de nota de nuestro celular o

aplicación que permita crear archivos de textos.

Etapas en el desarrollo del software

Captura, análisis y especificación de

requisitos

En palabras simples y básicamente, durante esta fase, se

adquieren, reúnen y especifican las características funcionales y

no funcionales que deberá cumplir el futuro programa o

sistema a desarrollar.

Procesos, modelado y formas de elicitación de

requisitos

A medida que se obtienen los requisitos, normalmente se los va

analizando, el resultado de este análisis, con o sin el cliente, se

plasma en un documento, conocido como ERS o Especificación

de Requisitos Software, cuya estructura puede venir definida

por varios estándares, tales como CMMI.

Clasificación e identificación de requisitos

Se pueden identificar dos formas de requisitos:

Requisitos de usuario: Los requisitos de usuario son frases en

lenguaje natural junto a diagramas con los servicios que el

sistema debe proporcionar, así como las restricciones bajo las

que debe operar.

Requisitos de sistema: Los requisitos de sistema determinan los

servicios del sistema y pero con las restricciones en detalle.

Sirven como contrato.

Es decir, ambos son lo mismo, pero con distinto nivel de detalle.

Se clasifican en tres los tipos de requisitos de sistema:

Requisitos funcionales, describen: Los servicios que proporciona el sistema (funciones). La respuesta del sistema ante determinadas entradas. El comportamiento del sistema en situaciones particulares.

Requisitos no funcionales, son restricciones de los servicios o funciones que ofrece el sistema (ej. Cotas de tiempo, proceso de desarrollo, rendimiento, etc.). Hay tres tipos: Requisitos del producto. Especifican el comportamiento del producto Requisitos organizativos Requisitos externos.

Requisitos del dominio. Los requisitos del dominio se derivan del dominio de la aplicación y reflejan características de dicho dominio. Pueden ser funcionales o no funcionales.

Diseño del sistema

Se basa en la especificación de requisitos producido por el

análisis de los requisitos (fase de análisis), el diseño define cómo

estos requisitos se cumplirán, la estructura que debe darse al

sistema de software para que se haga realidad.

Codificación del software Durante esta etapa se realizan las tareas que comúnmente se

conocen como programación; que consiste, esencialmente, en llevar a código fuente, en el lenguaje de programación elegido, todo lo diseñado en la fase anterior. Esta tarea la realiza el programador, siguiendo por completo los lineamientos impuestos en el diseño y en consideración siempre a los requisitos funcionales y no funcionales (ERS) especificados en la primera etapa.

Mientras se programa la aplicación, sistema, o software en general, se realizan también tareas de depuración, esto es la labor de ir liberando al código de los errores factibles de ser hallados en esta fase (de semántica, sintáctica y lógica).

Pruebas (unitarias y de integración) Entre las diversas pruebas que se le efectúan al software se pueden distinguir principalmente:

Prueba unitarias: Consisten en probar o testear piezas de software pequeñas; a nivel de secciones, procedimientos, funciones y módulos; aquellas que tengan funcionalidades específicas. Dichas pruebas se utilizan para asegurar el correcto funcionamiento de secciones de código, mucho más reducidas que el conjunto, y que tienen funciones concretas con cierto grado de independencia.

Pruebas de integración: Se realizan una vez que las pruebas unitarias fueron concluidas exitosamente; con éstas se intenta asegurar que el sistema completo, incluso los subsistemas que componen las piezas individuales grandes del software funcionen correctamente al operar e inteoperar en conjunto.

Instalación y paso a producción

La instalación del software es el proceso por el cual los

programas desarrollados son transferidos apropiadamente al

computador destino, inicializados, y, eventualmente,

configurados; todo ello con el propósito de ser ya utilizados

por el usuario final. Constituye la etapa final en el desarrollo

propiamente dicho del software. Luego de ésta el producto

entrará en la fase de funcionamiento y producción

(operatividad), , para el que fuera diseñado.

Mantenimiento

Es el proceso de control, mejora y optimización del software

ya desarrollado e instalado, que también incluye depuración

de errores y defectos que puedan haberse filtrado de la fase

de pruebas de control y beta test. Esta fase es la última (antes

de iterar, según el modelo empleado) que se aplica al ciclo de

vida del desarrollo de software.

El período de la fase de mantenimiento es normalmente el

mayor en todo el ciclo de vida. Esta fase involucra también

actualizaciones y evoluciones del software; no

necesariamente implica que el sistema tuvo errores.

Tipos de licencias en el software Según los derechos que cada autor se reserva sobre su obra

Licencia de software de código abierto permisivas

Se puede crear una obra derivada sin que ésta tenga obligación de protección alguna. Muchas licencias pertenecen a esta clase.

Licencias de software de código abierto robustas fuertes

Las licencias de software de código abierto robustas fuertes o con copyleft fuerte, contienen una cláusula que obliga a que las obras derivadas o modificaciones que se realicen al software original se deban licenciar bajo los mismos términos y condiciones de la licencia original.

Licencias de software de código abierto robustas débiles

Las licencias de software de código abierto robustas débiles, con copyleft débil/suave o híbridas, contienen una cláusula que obliga a que las modificaciones que se realicen al software original se deban licenciar bajo los mismos términos y condiciones de la licencia original, pero que las obras derivadas que se puedan realizar de él puedan ser licenciadas bajo otros términos y condiciones distintas.

Licencia de software de código cerrado

Estas licencias también se conocen con el nombre de software propietario o privativo. En ellas los propietarios establecen los derechos de uso, distribución, redistribución, copia, modificación, cesión y en general cualquier otra consideración que se estime necesaria

Software de dominio público (sin licencia)

Se permite uso, copia, modificación o redistribución con o sin fines de lucro.

Según su destinatario

Licencia de Usuario Final

En este tipo de contrato, el dueño de los derechos de un producto insta al usuario final de éste a que reconozca tener conocimiento de las restricciones de uso, de los derechos del autor (copyright), de las patentes, etc. y que acepte de conformidad.

Licencia de distribuidores

En este tipo de contrato, se le asigna derechos restringidos a un comerciante de tipo comisionario para que venda el producto(software) dando una remesa o comisión al fabricante

Maquina virtual.

Es un software que simula a una computadora y puede

ejecutar programas como si fuese una computadora real.

Uno de los usos domésticos más extendidos de las máquinas

virtuales es ejecutar sistemas operativos para "probarlos". De

esta forma podemos ejecutar un sistema operativo que

queramos probar (GNU/Linux, Mac OS X, Ubuntu, otros)

desde nuestro sistema operativo habitual (Windows, por

ejemplo) sin necesidad de instalarlo directamente en nuestra

computadora y sin miedo a que se desconfigure el sistema

operativo primario.

Virtual Box 2.0.4 en Ubuntu 8.10, ejecutando Fedora 10

Gracias por su tiempo

Bye bye!

José Alberto Frías Rosa