LECTURA INGESOF
Ingeniería de software – Introducción libro alfaomega.
El termino Ingeniería de Software se escogió deliberadamente por ser provocativo, pues implicaba la necesidad de manufacturar software según las bases teóricas y las disciplinas practicas que son tradicionales en otras ramas de la ingeniería.
P. Naur y B. Randell
¿ARTE O INGENIERÍA?
Si la programación de computadoras quiere llegar a ser una parte importante del desarrollo e investigación en las ciencias de la computación, deberá transitar desde la programación como arte a la programación como ciencia disciplinada.
Knuth.
La ingeniería de software es hoy en dia una actividad de trabajo en grupo y no una pasión individual. En consecuencia, las acciones y decisiones en esta ingeniería no provienen de sentimientos o preferencias personales, sino de la aplicación de métodos y técnicas para racionalizar los recursos de acuerdo con planes y objetivos definidos. Por lo tanto los ingenieros de software deben conocer y saber hacer.
OBJETIVOS
- Definir la Ingeniería del Software, y comprenderla Como una disciplina de ingeniería que trata con un tipo de producto especial, el software.
- Conocer y comprender los conceptos fundamentales que conforman la terminologia básica de los ingenieros del software.
- Distinguir entre la Ingeniería del Software como tal disciplina de ingeniería, orientada a la producción de software, y la Ingeniería del Software como ciencia que estudia la ingeniería, es decir, como disciplina científica cuyo objeto no es producir software, sino estudiar, comprender, explicar y teorizar sobre la producción de software.
- Conocer]os fundamentales enfoques de carácter científico de la Ingeniería del Software entendida como ciencia de la ingeniería.
INTRODUCCIÓN
La Ingeniería de software se trata desde la perspectiva de grupos de ingenieros y no desde la perspectiva de un programador aislado.
La definición de Ingeniería de Software que mas se utiliza es:
La definición de Ingeniería de Software que mas se utiliza es:
- La aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, la operación y el mantenimiento del software. Esto es aplicar la ingeniería de software.
- El estudio de enfoques como los mencionados.
Según la primera definición, el ingeniero es un desarrollador en un sentido amplio, que desempeñas un rol como profesional en la producción de software. Por su parte, la segunda de las definiciones implica la investigación y estudio de las actividades de la ingeniería de software, pero no el producir software.
¿QUE ES LA INGENIERÍA?
La ingeniería es la ciencia de la producción, la cual, junto a la reproducción, es la mas fundamental de las actividades humanas.
Auyang.
Una de las definiciones mas comunes de ingeniería puede ser:
Una de las definiciones mas comunes de ingeniería puede ser:
- Aplicación de la ciencia y las matemáticas por la cual las propiedades de la materia y las fuentes de energía de la naturaleza se hacen útiles para la gente.
- Diseño y manufacturan de productos complejos.
Pero tomaremos la siguiente definición como la mejor: la ingeniería como actividad humana es la aplicación del conocimiento y los métodos científicos al diseño y la producción de productos complejos.
Según el trabajo de Paul Starr (1982) hay tres elementos que constituyen una disciplina profesional:
Según el trabajo de Paul Starr (1982) hay tres elementos que constituyen una disciplina profesional:
- Aspecto colegial: el conocimiento y competencia del profesional debe haber sido valido por la comunidad de sus pares.
- Aspecto negativo: ese conocimiento y competencia consensualmente valido debe descansar en criterios racionales y científicos.
- Aspecto moral: el juicio y los consejos profesionales deben orientarse a un conjunto de valores sustantivos.
INGENIERÍA Y CIENCIAS DE LA INGENIERÍA
Las diferentes ramas o disciplinas ingenieriles poseen en comun tres aspectos específicos:
- La ciencia de la ingeniería, que se ocupa de los principios y mecanismos subyacentes de la disciplina.
- Procesos de diseño, que en general incluyen una fase de conceptualización, y una fase de diseño detallado.
- Aspectos de gestión y organización, pues la tecnología que se produce implica tanto a las personas como a las organizaciones. Ademas, las propias personas que crean tecnología no suelen trabajar aisladas, si no en equipos y organizaciones.
Ahora bien, dentro de la ciencia de la ingeniería de software, hay que separar los conocimientos científicos que se aplican en la ingeniería de software, la ciencia de la ingeniería del software en si misma, y la practica de la ingeniería:
- Las ciencias que se aplican en la ingeniería de software son la ciencia de la computación y otras ciencias que son de utilidad para aspectos determinados.
- La ingeniería del software como ciencia es la aplicación del método científico a la teorización y creación de conocimiento sobre la propia ingeniería del software.
- La practica de la ingeniería, que esta orientada a prescribir como deben realizarse las actividades propias de la disciplina.
EL SOFTWARE COMO ARTEFACTO TECNOLÓGICO
Algunos autores han llegado a considerar estos problemas como una enfermedad crónica para resaltar el carácter persistente de los mismos. Podemos clasificar estos problemas como:
- Problemas asociados al desarrollo, como los retrasos en los plazos de los proyectos, o la baja productividad de los desarrolladores.
- Problemas de uso de los productos finales.
¿QUE ES EL SOFTWARE?
Software es el conjunto completo de programas, procedimientos y documentación relacionada que se asocia con un sistema, y especialmente con un sistema de computadora. En un sentido especifico, software son los programas de computadora.
LA COMPLEJIDAD INHERENTE AL SOFTWARE
La esencia de la ingeniería de software es la especificación, diseño y verificación de un conjunto detallado y muy preciso de conceptos interrelacionados, tareas sensiblemente mas complejas que las anteriores.
Brooks menciona otras dos causas de complejidad: la propensión al cambio y la invisibilidad del software. La primera es consecuencia del uso de software, ya que al ser utilizado, debe adaptarse a nuevos requisitos y necesidades. La invisibilidad del software por su parte, se refiere al hecho de que el software no se pueda representar completamente mediante diagramas, pues dicha representación seria extremadamente compleja, un plus de complejidad en la comprensión del mismo.
SISTEMATICIDAD, DISCIPLINA Y CUATIFICACIÓN
Hay tres características fundamentales de la Ingeniería de Software: sistematicidad, disciplina y cuantificación.
- Decimos que algo es sistemático cuando sigue un sistema. Así diremos que una actividad es sistemática cuando es metódica en cuanto al procedimiento o al plan.
- Decimos que una actividad es cuantificable si tanto su realización como sus resultados pueden medirse. En cuanto al software, tanto el producto final del desarrollo como el propio proceso de desarrollo del software mismo pueden ser sometidos a medición, y generalmente lo son.
- Una actividad es disciplinada si esta sujeta a control con respecto a ciertos estandares, entendiendo el termino estandar en su aceptacion mas generica de nroma o patron, no como especificacion formal respaldada por un organismo de estandarizacion.
Watts S. Humphrey definió el Proceso de Software Personal (PSP) como un método de ingeniería para el trabajo personal propio de cada ingeniero.
El PSP enfatiza la medición del trabajo individual, y su uso para valorar el progreso y la eficiencia en el desarrollo.
En el caso de que la sistematicidad y la disciplina se consideren desde la perspectiva individual, solo hay ingeniería cuando hay un plan y una referencia sobre como se deben hacer las cosas. Un ejemplo de esta perspectiva individual es el denominado Proceso de Software Personal PSP, un conjunto de buenas practicas para el desarrollo de software que se centra en la disciplina individual de los ingenieros del software.
En general, el concepto de método en ingeniería captura la sistematicidad y disciplina. En la ingeniería de software existen métodos para todo tipo de actividades. No obstante, es importante resaltar que los métodos nunca pueden ser únicos ni definitivos. No pueden ser únicos porque hay diferentes contextos, organizaciones y tipos de aplicaciones, y no existen métodos de talla única. Tampoco pueden ser definitivos, ya que la propia tecnología cambia constantemente, y las restricciones existentes, digamos, para la programación de grandes computadoras en los años sesenta, son radicalmente diferentes de las condiciones del desarrollo, por ejemplo, de las aplicaciones para teléfonos móviles.
BREVE HISTORIA DE LA INGENIERÍA DE SOFTWARE
ELEMENTOS DE LA INGENIERÍA DE SOFTWARE COMO DISCIPLINA PROFESIONAL
Las recomendaciones curriculares mas importantes en el campo son:
Las recomendaciones curriculares mas importantes en el campo son:
- El SE204 es un esfuerzo conjunto de la ACM y la IEEE Computer Society que forma parte de un conjunto de directrices curriculares, en forma de volúmenes separados, uno por cada área importante de la computación. El SE204, que no es sino el volumen dedicado a la ingeniería de software, gira alrededor de tres elementos: el desarrollo de directrices curriculares, la diseminación y especificación del conocimiento a incluir en los planes de estudio de la ingeniería de software, y la construcción de un conjunto de recomendaciones que describen como estructurar un currículo de ingeniería de software.
- La guía SWEBOK surge por el deseo de IEEE de crear una acreditación para la profesión de ingeniero de software en Estados Unidos, distinta de la certificación para la profesión de informático o científico de la computación. Los objetivos fundamentales la guía SWEBOK son:
- Caracterizar los conocimientos del cuerpo de conocimiento de la ingeniería de software.
- Promover una visión consistente y universal de la disciplina.
- Establecer las diferencias entre la ingeniería de software y otras disciplinas relacionadas, como las ciencias de la computación, la gestión de proyectos, o las matemáticas.
- Servir de base para la certificación de profesionales
CONCEPTOS BÁSICOS DE LA INGENIERÍA DE SOFTWARE
Como toda ingeniería, donde se crean objetos con una cierta función, la ingeniería de software trata fundamentalmente de actividades llevadas a cabo por personas que producen, usan o modifican artefactos. Esas actividades no son espontaneas sino que responden a planes parcial o totalmente prescritos. Por ello, hay que considerar tambien elementos tales como métodos, especificaciones y modelos, entre otros.
ACTIVIDADES Y ARTEFACTOS
Una actividad es un proceso que tiene lugar en el tiempo y en el espacio, y en el cual un agente actua con unos objetivos determinados.
Un artefacto es algo tangible creado con un propósito practico.
MÉTODOS, ESPECIFICACIONES Y MODELOS
Un método , en sentido general, es la especificación de una secuencia de acciones orientadas a un propósito determinado. En la ingeniería de software, los métodos determina el orden y la forma de llevar a cabo las actividades.
La ingeniería de software, se denomina metodología a un conjunto de métodos coherentes y relacionados por unos principios comunes.
Una especificación es una descripción detallada y precisa de algo existente o de una cierta situación, presente o futura.
PROCESOS Y CICLOS DE VIDA
El termino actividad, tal y como se ha descrito, proporciona una descripción muy general de lo que se hace en la ingeniería de software. Aunque finalmente todo se reduce a actividades, cada método o modelo emplea su propia jerga.
El ciclo de vida de un producto o proyecto software es la evolución del mismo desde el momento de su concepción hasta el momento en que deja de usarse, y puede describirse en función de las actividades que se realizan dentro de el.
Un proceso software es un conjunto coherente de políticas, estructuras organizativas, tecnologías, procedimientos y artefactos que se necesitan para concebir, desarrollar, implantar y mantener un producto software.


Comentarios
Publicar un comentario