ingenieria del software

Anuncio
INGENIERIA DEL SOFTWARE
Ingeniería de software es la aplicación de un enfoque sistemático, disciplinado y cuantificable al
desarrollo, operación y mantenimiento de software, y el estudio de estos enfoques, es decir, la
aplicación de la ingeniería al software.1 Es la aplicación de la ingeniería al software, ya que integra
matemáticas, ciencias de la computación y prácticas cuyos orígenes se encuentran en la
ingeniería.
CONCEPTO DE SOFTWARE
El software es un ingrediente indispensable para el funcionamiento del computador. Está formado
por una serie de instrucciones y datos, que permiten aprovechar todos los recursos que el
computador tiene, de manera que pueda resolver gran cantidad de problemas. Un computador en
si, es sólo un conglomerado de componentes electrónicos; el software le da vida al computador,
haciendo que sus componentes funcionen de forma ordenada.
El software es un conjunto de instrucciones detalladas que controlan la operación de un sistema
Diferencias entre Ciencias de la Computación e Ingeniería de Software
Desde hace algunos años se viene discutiendo a nivel internacional sobre como se debe de
considerar la educación en los campos de la Computación o Informática, es así que ACM
(www.acm.org) e IEEE (www.ieee.org), dos de las instituciones más representativas de este campo
en el mundo, proponen cinco grandes carreras
Las carreras definidas por estas instituciones son:
• Ciencias de la Computación (Computer Science)
• Ingeniería de Software (Software Engineering)
• Sistemas de Información (Information Systems)
• Ingeniería de Computación (Computer Engineering)
• Tecnologías de Información (Information Technology)
En cuanto a las menciones ofrecidas en la Maestría en Informática en la PUCP, la definición de
cada una de ellas se incluye a continuación.
Ciencias de la Computación
Esta disciplina se ocupa del estudio de sistemas de cómputo incluyendo procesos algorítmicos y
principios que involucran el diseño de software y hardware.
Los profesionales en ciencias de la computación se encargan del diseño de algoritmos, lenguajes,
herramientas y sistemas de software. Diseñan y construyen software, creando soluciones eficientes
a problemas del mundo real en campos como la medicina, el comercio, la biología y los negocios.
Ingeniería de Software
Esta disciplina se ocupa del diseño e implementación de software complejo de una manera
confiable
y eficiente,
aplicando
los principios
y prácticas de
la ingeniería.
Los ingenieros de software combinan la experiencia en ciencias de la computación, ingeniería y
matemáticas para diseñar, definir y organizar diversos aspectos de un producto software complejo.
Los profesionales de esta disciplina están capacitados en todos los aspectos relacionados al ciclo
de vida del software, incluyendo temas de costo del proceso de desarrollo.
¿QUÉ ES UN PROCESO DE SOFTWARE?
Un conjunto estructurado de actividades cuya meta es el desarrollo o evolución de un software
Algunas actividades genéricas en todos los procesos de software son:
Especificación, qué debe hacer el software y cuáles son sus especificaciones de desarrollo:
Desarrollo, producción del sistema de software Validación, verificar que el software cumple con lo
solicitado por el cliente Evolución, cambiar/adaptar el software a las nuevas demandas
Estas actividades varían dependiendo de la organización y del tipo de sistema a desarrollarse
ATRIBUTOS DEL SOFTWARE
En esta lección estamos interesados en medir características del software que dependen de la
visión externa del producto. El objetivo principal y más importante de la ingeniería del software es
la mejora de la calidad de los productos software.
CALIDAD.
El término calidad del software se interpreta de diferentes maneras. Una de las definiciones más
difundidas de calidad es la debida a McCall (1977), que especifica una serie de factores. Cada uno
de esos factores los subdivide en criterios, teniendo asociado cada uno de ellos una métrica. La
tabla siguiente muestra algunos factores generales de calidad.
FACTOR
DEFINICIÓN
Corrección
Grado en el que un programa satisface las especificaciones y cumple
los objetivos del usuario.
Fiabilidad
Grado en el que un programa se espera que realice su función con
una precisión requerida.
Eficiencia
Cantidad de recursos y código requeridos por un programa para
realizar una función.
Integridad
Grado en el que se controla el acceso al programa o los datos por
usuarios no autorizados.
Usabilidad
Esfuerzo necesario para aprender, operar, preparar entradas e
interpretar la salida de un programa.
Mantenibilidad
Esfuerzo requerido para localizar y corregir un error en un programa
en funcionamiento.
Facilidad de prueba
Esfuerzo requerido para probar un programa (para garantizar que
realiza la función deseada).
Flexibilidad
Esfuerzo requerido para modificar un programa en funcionamiento.
Portabilidad
Esfuerzo requerido para trasferir un programa de una configuración
hardware o entorno software a otro.
Reusabilidad
Grado en el que un programa se puede utilizar en otras aplicaciones
Interoperatividad
Esfuerzo requerido para acoplar un sistema con otro.
Descargar