Está en la página 1de 12

Software

El Software es el soporte lgico e inmaterial que permite que la computadora pueda desempear tareas inteligentes, dirigiendo a los componentes fsicos o hardware con instrucciones y datos a travs de diferentes tipos de programas.
al equipamiento lgico o soporte lgico de una computadora digital; comprende el conjunto de los componentes lgicos necesarios que hacen posible la realizacin de tareas especficas

El Software son los programas de aplicacin y los sistemas operativos, que segn las funciones que realizan pueden ser clasificados en:

Software de Sistema Software de Aplicacin Software de Programacin

SOFTWARE DE SISTEMA
Se llama Software de Sistema o Software de Base al conjunto de programas que sirven para interactuar con el sistema, confiriendo control sobre el hardware, adems de dar soporte a otros programas. El Software de Sistema se divide en:

Sistema Operativo Controladores de Dispositivos Programas Utilitarios


Sistema operativo

El Sistema Operativo es un conjunto de programas que administran los recursos de la computadora y controlan su funcionamiento. Un Sistema Operativo realiza cinco funciones bsicas: Suministro de Interfaz al Usuario, Administracin de Recursos, Administracin de Archivos, Administracin de Tareas y Servicio de Soporte. 1. Suministro de interfaz al usuario: Permite al usuario comunicarse con la computadora por medio de interfaces que se basan en comandos, interfaces que utilizan mens, e interfaces grficas de usuario. 2. Administracin de recursos: Administran los recursos del hardware como la CPU, memoria, dispositivos de almacenamiento secundario y perifricos de entrada y de salida. 3. Administracin de archivos: Controla la creacin, borrado, copiado y acceso de archivos de datos y de programas. 4. Administracin de tareas: Administra la informacin sobre los programas y procesos que se estn ejecutando en la computadora. Puede cambiar la prioridad

entre procesos, concluirlos y comprobar el uso de estos en la CPU, as como terminar programas. 5. Servicio de soporte: Los Servicios de Soporte de cada sistema operativo dependen de las implementaciones aadidas a este, y pueden consistir en inclusin de utilidades nuevas, actualizacin de versiones, mejoras de seguridad, controladores de nuevos perifricos, o correccin de errores de software.

Controladores de Dispositivos
Los Controladores de Dispositivos son programas que permiten a otros programa de mayor nivel como un sistema operativo interactuar con un dispositivo de hardware.

Programas Utilitarios
Los Programas Utilitarios realizan diversas funciones para resolver problemas especficos, adems de realizar tareas en general y de mantenimiento. Algunos se incluyen en el sistema operativo.

SOFTWARE DE APLICACIN
El Software de Aplicacin son los programas diseados para o por los usuarios para facilitar la realizacin de tareas especficas en la computadora, como pueden ser las aplicaciones ofimticas (procesador de texto, hoja de clculo, programa de presentacin, sistema de gestin de base de datos...), u otros tipos de software especializados como software mdico, software educativo, editores de msica, programas de contabilidad, etc.

Incluye entre otros: o Editores de texto o Compiladores o Intrpretes o Enlazadores o Depuradores o Entornos de Desarrollo Integrados (IDE): Agrupan las anteriores herramientas, usualmente en un entorno visual, de forma tal que el programador no necesite introducir mltiples comandos para compilar, interpretar, depurar, etc. Habitualmente cuentan con una avanzada interfaz grfica de usuario (GUI).

SOFTWARE DE PROGRAMACIN
El Software de Programacin es el conjunto de herramientas que permiten al desarrollador informtico escribir programas usando diferentes alternativas y lenguajes de programacin.

Este tipo de software incluye principalmente compiladores, intrpretes, ensambladores, enlazadores, depuradores, editores de texto y un entorno de desarrollo integrado que contiene las herramientas anteriores, y normalmente cuenta una avanzada interfaz grfica de usuario (GUI).

Incluye entre otros: o Aplicaciones para Control de sistemas y automatizacin industrial o Aplicaciones ofimticas o Software educativo o Software empresarial

DEFINICIN DE SOFTWARE
Es el conjunto de los programas de cmputo, procedimientos, reglas, documentacin y datos asociados que forman parte de las operaciones de un sistema de computacin. El concepto de software va ms all de los programas de computacin en sus distintos estados: cdigo fuente, binario o ejecutable; tambin su documentacin

PROCESO DE CREACIN DEL SOFTWARE


Son los pasos a seguir para llegar a la solucin de un problema u obtencin de un producto, , para lograr la obtencin de un producto software que resuelva un problema. El proceso puede llegar a ser muy complejo, dependiendo de su porte, caractersticas y criticidad del mismo.. Es as que normalmente se dividen en tres categoras segn su tamao (lneas de cdigo) o costo: de Pequeo, Mediano y Gran porte. Existen varias metodologas para estimarlo, una de las ms populares es el sistema COCOMO. Se deben seguir ciertas etapas que son necesarias para la construccin del software. Tales etapas, son flexibles en su forma de aplicacin, de acuerdo a la metodologa o Proceso de Desarrollo escogido y utilizado Los procesos de desarrollo de software poseen reglas preestablecidas, y deben ser aplicados en la creacin del software de mediano y gran porte. Entre tales procesos los hay giles o livianos pesados y lentos y variantes intermedias; y normalmente se aplican de acuerdo al tipo y porte del software a desarrollar. Cualquiera sea el proceso utilizado y aplicado al desarrollo del software , siempre se debe aplicar un modelo de ciclo de vida.6

Etapas mnimas

Captura, Elicitacin8 , Especificacin y Anlisis de requisitos (ERS) Diseo Codificacin Pruebas (unitarias y de integracin) Instalacin y paso a Produccin Mantenimiento

MODELOS DE PROCESO O CICLO DE VIDA


define el orden para las tareas o actividades involucradas6 tambin definen la coordinacin entre ellas, enlace y realimentacin entre las mencionadas etapas. Se puede mencionar:

Modelo cascada
modelo clsico, modelo tradicional o modelo lineal secuencial. El modelo en cascada puro difcilmente se utilice tal cual, pues esto implicara un previo y absoluto conocimiento de los requisitos, la no volatilidad de los mismos (o rigidez) y etapas subsiguientes libres de errores; ello slo podra ser aplicable a escasos y pequeos desarrollos de sistemas.

En algunas de sus variantes es uno de los actualmente ms utilizados , por su eficacia y simplicidad, siempre se produce alguna realimentacin entre etapas; esto da oportunidad al desarrollo de productos software en los cuales hay ciertas incertezas, cambios o evoluciones durante el ciclo de vida.. Lo normal en el modelo cascada ser entonces la aplicacin del mismo con sus etapas realimentadas de alguna forma, permitiendo retroceder de una a la anterior

Desventajas del modelo cascada:


Los cambios introducidos durante el desarrollo pueden confundir al equipo profesional No es frecuente que el cliente o usuario final explicite clara y completamente los requisitos y el modelo lineal lo requiere El cliente debe tener paciencia ya que el software no estar disponible hasta muy avanzado el proyecto.

Modelos evolutivos
. Los requisitos del usuario y del producto suelen cambiar conforme se desarrolla el mismo. Las fechas de mercado y la competencia hacen que no sea posible esperar a poner en el mercado un producto absolutamente completo. En esas u otras situaciones similares los desarrolladores necesitan modelos de progreso que estn diseados para acomodarse a una evolucin temporal o progresiva Los evolutivos son modelos iterativos, permiten desarrollar versiones cada vez ms completas y complejas, hasta llegar al objetivo final deseado

Modelo iterativo incremental


La Descripcin del Sistema es esencial para especificar y confeccionar los distintos incrementos hasta llegar al Producto global y final.

Permite la entrega de versiones parciales a medida que se va construyendo el producto final.. Cada versin emitida incorpora a los anteriores incrementos las funcionalidades y requisitos que fueron analizados como necesarios.

Existen actividades de desarrollo que son realizadas en paralelo o concurrentemente. Bajo este modelo se entrega software por partes funcionales ms pequeas, pero reutilizables, llamadas incrementos. En general cada incremento se construye sobre aquel que ya fue entregado.

El cliente utiliza inicialmente ese sistema bsico intertanto, el resultado de su uso y evaluacin puede aportar al plan para el desarrollo del/los siguientes. Luego de cada integracin se entrega un producto con mayor funcionalidad que el previo. El proceso se repite hasta alcanzar el software final completo. Siendo iterativo, con el modelo incremental se entrega un producto parcial pero completamente operacional en cada incremento,

Modelo espiral
El modelo espiral fue propuesto inicialmente por Barry Boehm. Es un modelo evolutivo que conjuga la naturaleza iterativa del modelo MCP con los aspectos controlados y sistemticos del Modelo Cascada. Proporciona potencial para desarrollo rpido de versiones incrementales. El modelo se divide en un nmero de Actividades de marco de trabajo, llamadas regiones de tareas.

Las regiones definidas en el modelo de la figura son:


Regin 1 - Tareas requeridas para establecer la comunicacin entre el cliente y el desarrollador. Regin 2 - Tareas inherentes a la definicin de los recursos, tiempo y otra informacin relacionada con el proyecto. Regin 3 - Tareas necesarias para evaluar los riesgos tcnicos y de gestin del proyecto. Regin 4 - Tareas para construir una o ms representaciones de la aplicacin software. Regin 5 - Tareas para construir la aplicacin, instalarla, probarla y proporcionar soporte al usuario o cliente (Ej. documentacin y prctica). Regin 6 - Tareas para obtener la reaccin del cliente, segn la evaluacin de lo creado e instalado en los ciclos anteriores.

Las actividades enunciadas para el marco de trabajo son generales y se aplican a cualquier proyecto, grande, mediano o pequeo, complejo o no.Comprenden un conjunto de tareas Proyectos pequeos requieren baja cantidad de tareas y tambin de formalidad. Cada paso por la regin de planificacin provoca ajustes en el plan del proyecto; el coste y planificacin se realimentan en funcin de la evaluacin del cliente..

El modelo espiral puede ir adaptndose y aplicarse a lo largo de todo el Ciclo de vida del software. Una visin alternativa del modelo puede observarse examinando el eje de punto de entrada de proyectos. Cada uno de los circulitos () fijados a lo largo del eje representan puntos de arranque de los distintos proyectos (relacionados); a saber:

Un proyecto de desarrollo de conceptos comienza al inicio de la espiral, hace mltiples iteraciones hasta que se completa, es la zona marcada con verde. Si lo anterior se va a desarrollar como producto real, se inicia otro proyecto: Desarrollo de nuevo Producto. Que evolucionar con iteraciones hasta culminar; es la zona marcada en color azul. Eventual y anlogamente se generarn proyectos de mejoras de productos y de mantenimiento de productos, con las iteraciones necesarias en cada rea (zonas roja y gris, respectivamente).

Cuando la espiral se caracteriza de esta forma, est operativa hasta que el software se retira, eventualmente puede estar inactiva Desventajas importantes:

Requiere mucha experiencia y habilidad Es difcil convencer a los grandes clientes

Modelo espiral Win & Win


Sugiere la comunicacin con el cliente para fijar los requisitos, en que simplemente se pregunta al cliente qu necesita y l proporciona la informacin para continuar. Es as que la obtencin de requisitos requiere una negociacin, que tiene xito cuando ambas partes ganan. El modelo Win-Win define un conjunto de actividades de negociacin al principio de cada paso alrededor de la espiral; se definen las siguientes actividades:
1. Identificacin del sistema o subsistemas clave de los directivos(*) (saber qu quieren). 2. Determinacin de condiciones de victoria de los directivos (saber qu necesitan y los satisface) 3. Negociacin de las condiciones victoria de los directivos para obtener condiciones Victoria & Victoria (negociar para que ambos ganen).

ETAPAS EN EL DESARROLLO DEL SOFTWARE


Captura, anlisis y especificacin de requisitos
Se adquieren, renen y especifican las caractersticas funcionales y no funcionales que deber cumplir el futuro programa o sistema a desarrollar.

Las caractersticas, tanto del sistema o programa a desarrollar dependen enormemente de lo bien lograda que est esta etapa. Esta es la de mayor importancia y una de las fases ms difciles de lograr certeramente. Involucra fuertemente al usuario o cliente del sistema, tiene matices muy subjetivos y es difcil de modelar con certeza o aplicar una tcnica que sea la ms cercana a la adecuada. El artefacto ms importante resultado de la culminacin de esta etapa es lo que se conoce como especificacin de requisitos software o simplemente documento ERS. Las tareas relativas a captura, modelado y registro de requerimientos, adems de ser sumamente importante, puede llegar a ser dificultosa de lograr acertadamente y llevar bastante tiempo relativo al proceso total del desarrollo; al proceso y metodologas para llevar a cabo este conjunto de actividades normalmente se las asume parte propia de la Ingeniera de Software, pero dada la antedicha complejidad, actualmente se habla de una Ingeniera en Requisitos , aunque ella an no existe formalmente.

Procesos, modelado y formas de elicitacin de requisitos


De esta etapa depende el logro de los objetivos finales previstos, se han ideado modelos y diversas metodologas de trabajo para estos fines. A medida que se obtienen los requisitos, el resultado de este anlisis, con o sin el cliente, se plasma en un documento, conocido como ERS o Especificacin de Requisitos Software. Un primer paso para realizar el relevamiento de informacin es el conocimiento y definicin acertada lo que se conoce como Universo de Discurso del problema, que se define y entiende por: Universo de Discurso (UdeD): el software deber ser desarrollado y deber operar. El UdeD incluye todas las fuentes de informacin y todas las personas relacionadas con el software. A partir de la extraccin y anlisis de informacin en su mbito se obtienen todas las especificaciones necesarias y tipos de requisitos para el futuro producto software. El objetivo de la Ingeniera de Requisitos (IR) es sistematizar el proceso de definicin de requisitos permitiendo elicitar, modelar y analizar el problema, generando un compromiso entre los Ingenieros de Requisitos y los \ Permitiendo bsicamente:

Comprender el problema Facilitar la obtencin de las necesidades del cliente/usuario Validar con el cliente/usuario Garantizar las especificaciones de requisitos

Clasificacin e identificacin de requerimientos


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.

Se clasifican en tres los tipos de requisitos de sistema:


Los requisitos funcionales describen:

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

Los requisitos no funcionales

Son restricciones de los servicios o funciones que ofrece el sistema.A su vez, hay tres tipos de requisitos no funcionales:

Requisitos del producto. Especifican el comportamiento del producto (Ej. prestaciones, memoria, tasa de fallos, etc.)

Requisitos organizativos. Se derivan de las polticas y procedimientos de las organizaciones de los clientes y desarrolladores (Ej. estndares de proceso, lenguajes de programacin, etc.)

Requisitos externos.

Se derivan de factores externos al sistema y al proceso de desarrollo (Ej. requisitos legislativos, ticos, etc.) Los requisitos del dominio Se derivan del dominio de la aplicacin y reflejan caractersticas de dicho dominio.

DISEO DEL SISTEMA


Codificacin del software
Durante esta etapa se realizan la programacin; que consiste, esencialmente, en llevar a cdigo fuente, en el lenguaje de programacin elegido, todo lo diseado en la fase anterior. Esta tarea la realiza el programador, siguiendo por completo los lineamientos impuestos en el diseo y en consideracin siempre a los requisitos funcionales y no funcionales (ERS) especificados en la primera etapa. Es comn pensar que la etapa de programacin o es la que insume la mayor parte del trabajo de desarrollo del software; sin embargo, esto puede ser relativo .Mientras se programa la aplicacin, sistema, o software en general, se realizan tambin tareas de depuracin. Durante la fase de programacin, el cdigo puede adoptar varios estados, dependiendo de la forma de trabajo y del lenguaje elegido, a saber:

Cdigo fuente: es el escrito directamente por los programadores en editores de texto, lo cual genera el programa. Contiene el conjunto de instrucciones codificadas en algn lenguaje de alto nivel. Puede estar distribuido en paquetes, procedimientos, bibliotecas fuente, etc. Cdigo objeto: es. Consiste en una traduccin completa y de una sola vez de ste ltimo. El cdigo objeto no es inteligible por el ser humano (normalmente es formato binario) pero tampoco es directamente ejecutable por la computadora. o El cdigo objeto no existe si el programador trabaja con un lenguaje a modo de intrprete puro, en este caso el mismo intrprete se encarga de traducir y ejecutar lnea por lnea el cdigo fuente (de acuerdo al flujo del programa), en tiempo de ejecucin. En este caso tampoco existe el o los archivos de cdigo ejecutable.. Cdigo ejecutable: Es el cdigo binario resultado de enlazar uno o ms fragmentos de cdigo objeto con las rutinas y bibliotecas necesarias. Constituye uno o ms archivos binarios con un formato tal que el sistema operativo es capaz de cargarlo en la memoria RAM (eventualmente tambin parte en una memoria virtual), y proceder a su ejecucin directa.

Pruebas (unitarias y de integracin)


Entre las diversas pruebas que se le efectan al software se pueden distinguir principalmente:

Prueba unitarias: Consisten en probar o testear piezas de software pequeas; a nivel de secciones, procedimientos, funciones y mdulos; aquellas que tengan funcionalidades especficas. Dichas pruebas se utilizan para asegurar el correcto funcionamiento de secciones de cdigo, mucho ms reducidas que el conjunto, y que tienen funciones concretas con cierto grado de independencia. Pruebas de integracin: 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 inter operar en conjunto.

Instalacin y paso a produccin


La instalacin del software es el proceso por el cual los programas desarrollados son transferidos apropiadamente al computador destino, inicializados, y, eventualmente, configurados. Constituye la etapa final en el desarrollo propiamente dicho del software. La instalacin, dependiendo del sistema desarrollado, puede consistir en una simple copia al disco rgido destino (casos raros actualmente); o bien, ms comnmente, con una de complejidad intermedia en la que los distintos archivos componentes del software (ejecutables, bibliotecas, datos propios, etc.) son descomprimidos y copiados a lugares especficos preestablecidos del disco.

MANTENIMIENTO
El mantenimiento de software es el proceso de control, mejora y optimizacin del software ya desarrollado e instalado, que tambin incluye depuracin de errores y defectos que puedan haberse filtrado de la fase de pruebas de control y beta test . Modificaciones realizadas a un software que fue elaborado con una documentacin indebida o pobre y mal diseo puede llegar a ser tanto o ms costosa que desarrollar el software desde el inicio. El perodo de la fase de mantenimiento es normalmente el mayor en todo el ciclo de vida.7 Esta fase involucra tambin actualizaciones y evoluciones del software; no necesariamente implica que el sistema tuvo errores. Durante el perodo de mantenimiento, es comn que surjan nuevas revisiones y versiones del producto; que lo liberan ms depurado, con mayor y mejor funcionalidad, mejor rendimiento, etc. Varias son las facetas que pueden ser alteradas para provocar cambios deseables, evolutivos, adaptaciones o ampliaciones y mejoras. Bsicamente se tienen los siguientes tipos de cambios:

Perfectivos: Aquellos que llevan a una mejora de la calidad interna del software en cualquier aspecto: Reestructuracin del cdigo, definicin ms clara del sistema y su documentacin; optimizacin del rendimiento y eficiencia.

Evolutivos: Agregados, modificaciones, incluso eliminaciones, necesarias en el software para cubrir su expansin o cambio, segn las necesidades del usuario. Adaptivos: Modificaciones que afectan a los entornos en los que el sistema opera, tales como: Cambios de configuracin del hardware (por actualizacin o mejora de componentes electrnicos), cambios en el software de base, en gestores de base de datos, en comunicaciones, etc. Correctivos: Alteraciones necesarias para corregir errores de cualquier tipo en el producto software desarrollado