UNIDAD 1 – FUNDAMENTOS DE INGENIERIA DE SOFTWARE
1.1.
CONCEPTOS BASICOS.
a) Ingeniería
• Es la profesión en la
que el conocimiento de las ciencias naturales y matemáticas obtenidos con el
estudio, la práctica y la experiencia se aplica con juicio para desarrollar
formas de utilizar de modo económico, los materiales y fuerzas de la naturaleza
para beneficio de la humanidad
b) Software
b) Software
• Es el conjunto de todos
los programas que existen dentro de una computadora.
• Es el producto del
desarrollo que realizan los ingenieros de software resultado de requerimientos
de información.
c) La Ingeniería de Software
• Es una disciplina de la Ingeniería que comprende todos los aspectos de la producción del software desde las etapas iníciales de la especificación del sistema hasta el mantenimiento de éste después de que se libera.
La Ingeniería de Software incluye:
• Personas (quién lo hace)
c) La Ingeniería de Software
• Es una disciplina de la Ingeniería que comprende todos los aspectos de la producción del software desde las etapas iníciales de la especificación del sistema hasta el mantenimiento de éste después de que se libera.
La Ingeniería de Software incluye:
• Personas (quién lo hace)
·
Proceso (la manera en que se hace)
·
Proyecto (la realización)
·
Producto (la aplicación de artefactos)
1.2.
EL PAPEL EVOLUTIVO DEL SOFTWARE.
El término fue introducido a fines del 60 y comienzo del
70, tras la crisis del software que se caracterizó por:
• Imprecisión en la planificación del proyecto y
estimación de los costos.
• Baja calidad del Software.
• Dificultad de mantenimiento de programas con un diseño
poco estructurado, etc.
En las décadas de 1980 y 1990 dos tendencias dominaron la ingeniería de software:
• El florecimiento explosivo de aplicaciones, incluyendo las de Internet.
• El Nacimiento de nuevas herramientas y paradigmas (formas de pensamiento, como la orientación a objetos).
Mitos del Software
Mitos: Son las creencias acerca del software y los procesos empleados para realizarlo.
En las décadas de 1980 y 1990 dos tendencias dominaron la ingeniería de software:
• El florecimiento explosivo de aplicaciones, incluyendo las de Internet.
• El Nacimiento de nuevas herramientas y paradigmas (formas de pensamiento, como la orientación a objetos).
Mitos del Software
Mitos: Son las creencias acerca del software y los procesos empleados para realizarlo.
• Mitos de la Administración
·
Mitos del Cliente
·
Mitos del Desarrollador
1.3.
ETAPAS DEL DESARROLLO DEL SOFTWARE.
1) Investigación
preliminar:
• Parte de una solicitud de requerimiento de un sistema de información, tiene tres partes:
• Parte de una solicitud de requerimiento de un sistema de información, tiene tres partes:
a) Aclaración de la Solicitud
b) Estudio de Factibilidad: Técnica, Económica,
Operacional
c) Aprobación de la Solicitud
2) Análisis de requerimientos:
Comprender todas las facetas importantes de la parte de la empresa bajo estudio:
2) Análisis de requerimientos:
Comprender todas las facetas importantes de la parte de la empresa bajo estudio:
a) ¿Qué es lo que hace?
b) ¿Cómo se hace?
c) ¿Con qué frecuencia se presenta?
d) Volumen de transacciones o
decisiones
e) Grado de eficiencia de las tareas
f) ¿Existe algún problema?
g) ¿Qué tan serio
y causa que lo origina?
3. Diseño
del sistema:
• Plasma en un modelo los detalles que establecen la
forma en la que el sistema cumplirá con los requerimientos identificados
durante la fase de análisis
4. Desarrollo de Software:
4. Desarrollo de Software:
• Se puede instalar software comprado (software genérico) o
escribir programas diseñados a la medida del solicitante (software
personalizado)
• La elección depende del costo, tiempo y disponibilidad de
programadores.
5. Pruebas:
5. Pruebas:
• En esta fase, el sistema se emplea de manera experimental
para asegurarse que el software no tenga fallas, es decir, que funcione de
acuerdo a las especificaciones del usuario y en la forma en que los usuarios
esperan que lo haga.
6. Implementación:
Es el
proceso de: Verificar e Instalar nuevo equipo, capacitar a usuarios, instalar
la aplicación y dejar “montada” toda la infraestructura para su aplicación.
• Funcionalidad y desempeño
• Sustentable
• Confiable
• Utilizable
*Herramientas:
·
Proporcionan el soporte automatizado o semiautomatizado
para el proceso y los métodos
*Software
de alta calidad:
• El ISO ha adoptado un ciclo de “planear-hacer-revisar-actuar” que se
aplica a los elementos de gestión de calidad de un proyecto de software.
*Métodos:
*Métodos:
·
Proporcionan el cómo técnico para construir software.
·
Se basan en un
conjunto de principios básicos que gobiernan cada área de la tecnología.
·
Incluye
actividades de modelado y otras técnicas descriptivas.
*Proceso:
• Es el elemento que mantiene juntos los estratos de la tecnología y permite el desarrollo racional y a tiempo del software.
• Es el elemento que mantiene juntos los estratos de la tecnología y permite el desarrollo racional y a tiempo del software.
• Forma la base para el control de gestión de proyectos, se establecen los
fundamentos, se asegura la calidad y el cambio se maneja de manera apropiada
*Enfoque de
Calidad:
• Es la base que soporta la Ingeniería de Software.
*Planear:
• Establece los objetivos, actividades y tareas del proceso necesario para conseguir un software de alta calidad y la satisfacción del cliente.
*Hacer:
• Implementa el proceso del software
*Revisar:
• Monitorea y mide el proceso para asegurarse de que todos los requisitos establecidos para la gestión de calidad hayan sido cumplidos.
*Actuar:
• Inicia las actividades de mejoramiento del proceso de software el cual tiene una continuidad de trabajo para mejorar el proceso
• Establece los objetivos, actividades y tareas del proceso necesario para conseguir un software de alta calidad y la satisfacción del cliente.
*Hacer:
• Implementa el proceso del software
*Revisar:
• Monitorea y mide el proceso para asegurarse de que todos los requisitos establecidos para la gestión de calidad hayan sido cumplidos.
*Actuar:
• Inicia las actividades de mejoramiento del proceso de software el cual tiene una continuidad de trabajo para mejorar el proceso
• Calidad del software es el cumplimiento de los requisitos de funcionalidad y desempeño explícitamente establecidos, de los estándares de desarrollo, explícitamente documentados y de las características implícitas que se esperan de todo software desarrollado profesionalmente.
• Confidencialidad
• Competencia
• Derecho de propiedad intelectual
• Evitar el mal uso de computadoras
1.4. CLASIFICACION DE LA TECNOLOGIA EN EL DESARROLLO DEL SOFTWARE (TECNOLOGIA ESTRUCTURADA Y ORIENTADA A OBJETOS).
1.4. CLASIFICACION DE LA TECNOLOGIA EN EL DESARROLLO DEL SOFTWARE (TECNOLOGIA ESTRUCTURADA Y ORIENTADA A OBJETOS).
1.5.
DEFINICION E HISTORIA DE LAS HERRAMIENTAS CASE.
Las [[herramientas CASE]] (Computer Aided Software Engineering, Ingeniería
de Software Asistida por Ordenador) son diversas aplicaciones informáticas destinadas a aumentar la
productividad en el desarrollo
de software reduciendo el coste de las mismas en términos de tiempo y de dinero. Estas
herramientas nos pueden ayudar en todos los aspectos del ciclo de vida de
desarrollo del software en tareas como el proceso de realizar un diseño del proyecto, calculo de costes,
implementación de parte del código automáticamente con el diseño
dado, compilación automática,
documentación o detección de errores entre otras.
Es un sistema de software que intenta proporcionar ayuda
automatizada a las actividades del proceso de software. Los sistemas CASE a menudo se
utilizan como apoyo al método. La primera herramienta CASE como
hoy la conocemos fue Excelerator en 1984 , era para PC . Actualmente la oferta de herramientas CASE es
muy amplia y tenemos por ejemplo el EASYCASE o WINPROJECT .
Ingeniería de Software Asistida por
Ordenador
Ya en los años 70 un proyecto llamado ISDOS [diseñó] un lenguaje y
por lo tanto un producto que analizaba la relación existente entre los requisitos
de un problema y las necesidades que éstos generaban, el lenguaje en cuestión
se denominaba PSL (Problem Statement Language) y la
aplicación que ayudaba a buscar las necesidades de los diseñadores PSA (Problem Statement Analyzer).
Aunque ésos son los inicios de las herramientas informáticas que ayudan a crear nuevos proyectos informáticos, la primera herramienta CASE fue Excelerator que salió a la luz en el año
1984 y trabajaba bajo una plataforma PC.
Las herramientas CASE alcanzaron su techo a
principios de los años 90. En la época en la que IBM había
conseguido una alianza con la empresa de software AD/Cycle para trabajar con sus mainframes, estos dos gigantes trabajaban con
herramientas CASE que abarcaban todo el ciclo de vida
del software. Pero
poco a poco los mainframes han ido siendo menos utilizados y actualmente el
mercado de las Big CASE ha muerto completamente abriendo el
mercado de diversas herramientas más específicas para cada fase del ciclo de
vida del software.
1.6.
CLASIFICACION DE LAS HERRAMIENTAS CASE.
Aunque no es
fácil y no existe una forma única de clasificarlas, las herramientas CASE se
pueden clasificar teniendo en cuenta los siguientes parámetros:
1. Las plataformas que soportan.
2. Las fases del ciclo de vida del desarrollo de sistemas que cubren.
3. La arquitectura de las aplicaciones que producen.
4. Su funcionalidad.
2. Las fases del ciclo de vida del desarrollo de sistemas que cubren.
3. La arquitectura de las aplicaciones que producen.
4. Su funcionalidad.
La
clasificación basada en las fases del ciclo de desarrollo cubre:
·
Upper CASE (U-CASE), herramientas que ayudan en las
fases de planificación, análisis de requisitos y estrategia del desarrollo,
usando, entre otros diagramas UML.
·
Middle CASE (M-CASE), herramientas para automatizar
tareas en el análisis y diseño de la aplicación.
·
Lower CASE (L-CASE), herramientas que
semi-automatizan la generación
de código, crean
programas de detección
de errores,
soportan la depuración de programas y pruebas. Además automatizan la documentación completa de la aplicación.
Aquí pueden incluirse las herramientas de Desarrollo rápido de aplicaciones.
Existen otros
nombres que se le dan a este tipo de herramientas, y que no es una
clasificación excluyente entre sí, ni con la anterior:
·
Integrated CASE (I-CASE), herramientas que engloban todo
el proceso de desarrollo software, desde análisis hasta implementación.
·
MetaCASE, herramientas que permiten la definición
de nuestra propia técnica de modelado,
los elementos permitidos del meta modelo generado se guardan en un repositorio y
pueden ser usados por otros analistas, es decir, es como si definiéramos
nuestro propio UML, con nuestros elementos, restricciones y relaciones
posibles.
·
IPSE (Integrated Programming Support
Environment), herramientas que soportan todo el ciclo de vida, incluyen
componentes para la gestión de proyectos y gestión de la configuración.
Por funcionalidad podríamos diferenciar algunas como:
·
Herramientas
de generación semiautomática de código.
·
Editores
UML.
·
Herramientas
de Refactorización de código.
·
Herramientas
de mantenimiento como los sistemas de control de versiones.
REFERENCIAS
Ø
Análisis
y Diseño de Sistemas de Información, Senn, Editorial Mc Graw Hill
•
Ingeniería del Software, Pressman, Editorial Mc Graw Hill
•
Ingeniería de Software, Somerville, Editorial Pearson
Ø http://www.slideshare.net/IngenierosD/definicin-e-historia-de-las-herramientas-case
Ø http://www.ecured.cu/index.php/Herramienta_CASE#Clasificaci.C3.B3n
No hay comentarios:
Publicar un comentario