INGENIERÍA DE SOFTWARE Sesión 3: Tipos
Contextualización Actualmente existe una gran variedad en los software que se pueden clasificar en varias categorías, como pueden ser, por tipo de licencia, tipo de código, si es educativo, de entretenimiento, etc. Gracias al desarrollo y progreso que se ha tenido en las aplicaciones no sólo para computadoras, sino para varios dispositivos, de uso público como lo celulares y de uso privado, como sistemas de comunicación especializada o medios que se utilizan en los hospitales, los tipos de aplicaciones presentan una gran variedad de utilidades sin importar si se utilizan para lo mismo, pues sus herramientas de desarrollo y aplicación pueden presentar diferencias importante y útiles para cada tipo de usuario.
Introducción Para poder utilizar un software es importante conocer sus características y lo que nosotros deseamos obtener de este, pues cuando no se sabe lo que se necesita para poder utilizarlo puede que no funcionen, por ejemplo, los requisitos son importantes, pues determinan la memoria que necesitan, la velocidad que pueden ofrecer, la capacidad de procesador que requieren para no perder información e incluso el número de núcleos por procesador si es que se utiliza una aplicación especializada para el desarrollo de multimedia de gran peso y de gran necesidad de procesamiento.
Tipos Qué tipo de software hay y cómo se clasifica? Los tipos de software que existen son variados, pues no se limitan a una sola plataforma de ejecución, por tanto se categorizan de una forma amplia y se clasifica según su uso, por ejemplo, encontramos las siguientes clasificaciones; Software de sistemas Software de programación Software de aplicación Etc. No sólo estos tipos encontramos, podemos decir que uno que no se utiliza o no se requiere dentro de ningún equipo es software malicioso (malware) o virus informático, los cuales también son aplicaciones y se dividen en varias categorías, como; Boot Destructivo De espionaje Etc.
Requisitos Los requisitos de cada software se determinan por la función que estos realicen y las características con las que cuenten, pues pueden presentar varias herramientas útiles que se instalan desde el inicio y se debe cumplir con los requisitos necesarios para la ejecución correcta y uso de las mismas. Esta es una descripción del comportamiento del sistema que se desarrollará y las vías que tomará para sus conexiones y direccionamiento de información dentro del mismo sistema. La información que se determina pueden ser de requisitos funcionales y no funcionales, por lo que es importante conocer los atributos con los que se cuentan y los recursos disponibles.
Concepto El software es una palabra que se deriva del idioma inglés, esta definición se maneja como la parte suave o blanda de un sistema, pues es la que no se puede identificar físicamente, solo se puede conocer mediante un dispositivo electrónico y la ejecución de éste en el medio en que se encuentra. Al contrario del hardware, que es la parte dura de un equipo o la tangible del mismo, es decir, son los dispositivos físicos de entrada y salida de información que componen al mismo.
Características Las características de cada software se determinan en cuanto a su función y tipo de licencia de uso con que cuente. Por ejemplo; Software libre; de código abierto, no utiliza licencia comercial, puede ser modificado por el usuario sin consecuencias legales, etc. Software de pago; útil, eficiente, Mantenible, accesible, Confiable, buena ingeniería humana, etc. Software educativo; uso didáctico, interactivo, fácil de usar, Software dañino; invade archivos personales, crea pérdida de información, inhabilita elementos importantes del sistema operativo, etc. Software para Pymes; tiene soporte, es de bajo costo, funcional, etc. Etc.
Tipos de requisitos Los tipos de requerimientos son de diferentes tipos, en el presente caso son; funcionales, no funcionales, del dominio. Estos requisitos de sistema determinan los servicios que se ofrecerán al usuario final, por lo que es importante que el fabricante de las aplicaciones cubra las posibles necesidades que se tienen por parte de quien los adquiere, se pueden crear software a la medida sin embargo, el realizarlos de esta forma es más tardado y de un costo mayor, aunque cubre las necesidades necesarias y puede ahorrar líneas de código y espacio en los dispositivos en lo que se almacena.
Conclusión Todos los sistemas ya sea operativos o de aplicaciones tienen requisitos que se deben cumplir, no sólo para un correcto funcionamiento del software, sino también por la protección del equipo que lo alberga, pues de requerir más de lo que ofrece la computadora, puede que los componentes de software o de hardware presenten problemas y fallos que solamente se arreglan con un servicio especializado del distribuidor o fabricante.
Para aprender más Clasificación de software; Software de sistemas Sistemas operativos (computadoras, dispositivos móviles, etc.) Controladores de dispositivos (tarjetas gráficas, medios USB, etc.) Herramientas de diagnóstico. Herramientas de optimización Servidores Etc. Software de programación Editores de texto. Compiladores. Depuradores Entornos de desarrollo integrados (IDE)
Para aprender más Software de aplicación Editores (edición de imagen, video, etc.) Hojas de calculo Sistemas gestores de bases de datos (SQL, BI, ClickView, etc.) Programas de comunicaciones (Skype, Line, etc.) Programas de diseño asistido con uso de CAD (aplicaciones de desarrollo 3D). Se clasifican en; Aplicaciones de sistema de control y automatización industrial. Aplicaciones ofimáticas Software educativo Software medico Software de cálculo numérico Software de diseño asistido (CAD) Software de control numérico (CAM)
Para aprender más Tipos de Requerimientos Requerimientos Funcionales: son declaraciones de los servicios que proveerá el sistema. En algunos casos, también declaran explícitamente lo que el sistema no debe hacer. Los requerimientos funcionales de un sistema describen la funcionalidad o los servicios que se espera que éste provea. Estos dependen del tipo de software, del sistema y de los posibles usuarios. No Funcionales: son restricciones de los servicios o funciones ofrecidos por el sistema. Incluyen restricciones sobre el proceso de desarrollo, estándares, etc. Son requerimientos que no se refieren directamente a las funciones específicas que entrega el sistema, sino que determina las propiedades emergentes como la fiabilidad del sistema, la capacidad de almacenamiento y el tiempo que tarda en responder. Requerimientos del Dominio: estos requerimientos provienen del dominio de aplicación del sistema y reflejan características del dominio con que se esté trabajando. Si estos requerimientos no se cumplen correctamente y por completo, es imposible hacer que el sistema trabaje correctamente en la ejecución de algunos medios, como pueden ser el despliegue de información o el ingreso de la misma.
Captura Para la captura de una aplicación o las líneas de ejecución de la misma, se puede utilizar varias herramientas y distintas plataformas en las cuales, puede o no utilizarse un compilador en específico el cual ayude a la ejecución o vista preliminar de la aplicación realizada. Existen aplicaciones que cuenta con su compilador, pues el uso de la librerías para las palabras reservadas es diferente en cada lenguaje. En algunos casos las líneas de código se van creando en un documento de notas, el cual solo se guarda con la extensión de la aplicación, lo que lo convertirá en parte del medio para el que se desarrolló y al momento de abrirlo se hará desde el lenguaje o el compilador con el que se creó ya no con el documento de edición de texto.
Análisis El análisis es un proceso de conceptualización y formulación de los elementos que se involucraran de forma concreta dentro de la creación de la aplicación, por lo que se deben tener presentas varios de los elementos no solo por parte del desarrollador, sino también por parte de los usuarios, pues son parte importante ya que al final las aplicaciones serán utilizadas por ellos. Es importante que dentro del análisis se estipulen los siguientes elementos; Requisitos del cliente: es todo lo que los clientes o usuarios finales desean de la aplicación. Requisitos detallados: determina los requisitos de forma específica y estructurada las cuales están destinadas hacia los desarrolladores.
Especificación La especificación es una de las fases del desarrollo de un proyecto, es muy importante pues después de ésta se crea el diseño, sino se especifica lo que se requiere, el desarrollo puede tener varias vías en las que los errores se harán presentes, sin embargo, cuando se crea una correcta especificación en el desarrollo no se pierde tiempo ni dinero. Esta etapa se logra gracias a la compilación de información obtenida de los usuarios sobre sus preferencias, necesidades y formas en que se utilizan las aplicaciones, además de los medios con que se cuentan y la posibilidad de los equipos con los que cuentan la mayoría de los usuarios.
Validación La validación es un requisito importante y necesario pues en este se determina si se cumple con lo que se ha estipulado u ofrecido en el análisis y el desarrollo de la aplicación en la que se ha trabajado y si cumple con los requerimientos de sistema y el desarrollo apropiado en el lenguaje indicado para cada plataforma en la que ésta funcionará. La validación se realiza mediante pruebas en la ingeniería de software, éste se basa en el proceso de revisión y verificación para notar si cumple con su cometido.
Referencias s/a. Tipos de software. Consultado el 17 de jul. de 13, obtenido de: http://www.tiposde.org/informatica/12-tipos-desoftware/ tecnomaestros. Tipos de software. Consultado el 17 de jul. de 13, obtenido de: http://tecnomaestros.awardspace.com/tipos_software.php Universidad de Cauca. Software de sistemas informáticos, tipos de software sistemas operativos, lenguajes de programación. Consultado el 17 de jul. de 13, obtenido de: http://fccea.unicauca.edu.co/old/software.htm SISCOOP, Especificación de requisitos de software. Consultado el 17 de jul. de 13, obtenido de: http://dspace.espoch.edu.ec/bitstream/123456789/188/1/especificacionrequerimientossoftware.pdf s/a. Ingeniería de requisitos. Consultado el 17 de jul. de 13, obtenido de: http://www.sistemas.edu.bo/lsalgado/sis3390/requisitos/6.%20ingenieria%20de%20requisitos.pdf innovasys. Tipos de requisitos. Consultado el 17 de jul. de 13, obtenido de: http://innovasyscorp.com/requisitos.html Drake J., Análisis de requisitos y especificación de una aplicación. Consultado el 17 de jul. de 13, obtenido de: http://www.ctr.unican.es/asignaturas/ingenieria_software_4_f/doc/m3_08_especificacion-2011.pdf