Академический Документы
Профессиональный Документы
Культура Документы
de Software
a) Ingeniería
b) 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.
1
M.C. Brenda Escamilla Domínguez Fundamentos de Ing. de Software
El término fue introducido a fines del 60 y comienzo del 70, tras la crisis del software que se
caracterizó por:
Hoy en día, el software tiene un papel dual. Es producto y canal de distribución de este. Como
producto, ofrece la potencia de cómputo presentada como hardware de una computadora o,
de manera más global por una red de computadoras accesible mediante hardware local y de
acceso físico. Sin importar el lugar en que resida el software, ya sea en un celular o dentro de
una computadora central, éste es un transformador de información; realiza la producción, el
manejo, la adquisición, la modificación, el despliegue o la transmisión de la información que
puede ser tan simple como un solo bit o tan compleja como una presentación multimedia. En
su papel de vehículo para la entrega de un producto, el software actúa como la base para el
control de la computadora (Sistemas Operativos), la comunicación de información (redes), y la
relación y el control de otros programas (utilerías de software y ambientes).
PRIMERA ERA
(1950 – 1965)
SEGUNDO ERA
(1965 – 1972)
2
M.C. Brenda Escamilla Domínguez Fundamentos de Ing. de Software
TERCERA ERA
(1972 – 1985)
CUARTA ERA
(1985 - 1995 )
QUINTA ERA
Utiliza algunos requisitos de las eras anteriores solo que aumenta la omnipresencia de la web,
la reutilización de información y componentes de software
3
M.C. Brenda Escamilla Domínguez Fundamentos de Ing. de Software
MITOS:
Mitos del Software Mitos: Son las creencias acerca del software y los procesos empleados para
realizarlo.
DEL CLIENTE----
DE LOS DESARROLLADORES----
Etapa de Desarrollo: Consiste en utilizar los modelos creados durante la etapa de diseño para
crear los componentes del sistema.
Etapa de Pruebas o Verificación Prueba: Consiste en asegurar que los componentes individuales
que integran al sistema o producto, cumplen con los requerimientos de la especificación creada
durante la etapa de diseño. Se recomienda aplicar las etapas: • Análisis • Diseño • Desarrollo •
Prueba A cada uno de los ejercicios de este curso.
Etapa de Mantenimiento: Consiste en corregir problemas del producto y re- liberar el producto
como una nueva versión o revisión (producto mejorado).
Etapa final EOL (End-of-Life) El fin del ciclo del producto consiste en realizar todas las tareas
necesarias para asegurar que los clientes y los empleados están conscientes de que el producto
ya no será vendido ni soportado.
4
M.C. Brenda Escamilla Domínguez Fundamentos de Ing. de Software
1) Investigación preliminar:
• 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:
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:
• 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:
• 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
1.4 CLASIFICACIÓN DE LA TECNOLOGÍA DE DESARROLLO DEL SOFTWARE (Tecnología
Estructurada y Orientada a Objetos)
Tecnología estructurada
Estos tres tipos de estructuras lógicas de control pueden ser combinados para producir
programas que manejen cualquier tarea de procesamiento de información. Un programa
estructurado está compuesto de segmentos, los cuales puedan estar constituidos por unas
pocas instrucciones o por una página o más de codificación. Cada segmento tiene solamente
una entrada y una salida, estos segmentos, asumiendo que no poseen lazos infinitos y no tienen
5
M.C. Brenda Escamilla Domínguez Fundamentos de Ing. de Software
VENTAJAS POTENCIALES:
Un programa escrito de acuerdo a estos principios no solamente tendrá una estructura, sino
también una excelente presentación. Un programa escrito de esta forma tiende a ser mucho
más fácil de comprender que programas escritos en otros estilos. La facilidad de comprensión
del contenido de un programa puede facilitar el chequeo de la codificación y reducir el tiempo
de prueba y depuración de programas. Esto último es cierto parcialmente, debido a que la
programación estructurada concentra los errores en uno de los factores más generador de fallas
en programación: la lógica.
Un programa que es fácil para leer y el cual está compuesto de segmentos bien definidos tiende
a ser simple, rápido y menos expuesto a mantenimiento. Estos beneficios derivan en parte del
hecho que, aunque el programa tenga una extensión significativa, en documentación tiende
siempre a estar al día, esto no suele suceder con los métodos convencionales de programación.
La programación estructurada ofrece estos beneficios, pero no se la debe considerar como una
panacea ya que el desarrollo de programas es, principalmente, una tarea de dedicación,
esfuerzo y creatividad.
En 1995 apareció el más reciente lenguaje OO, Java desarrollado por SUN, que hereda
conceptos de C++.
El lenguaje de desarrollo más extendido para aplicaciones Web, el PHP 5, trae todas las
características necesarias para desarrollar software orientado a objetos.
6
M.C. Brenda Escamilla Domínguez Fundamentos de Ing. de Software
Además de otros lenguajes que fueron evolucionando, como el Pascal a Delphi. Finalmente
también otros lenguajes script como el ActionScript que si bien no es totalmente orientado a
objetos pero sí posee las características.
La programación orientada a objetos es una de las formas más populares de programar y viene
teniendo gran acogida en el desarrollo de proyectos de software desde los últimos años. Esta
acogida se debe a sus grandes capacidades y ventajas frente a las antiguas formas de programar.
Ventajas:
· Construcción de prototipos
Lo interesante de la POO es que proporciona conceptos y herramientas con las cuales se modela
y representa el mundo real tan fielmente como sea posible.
· Objetos
· Clases
· Herencia
· Envío de mensajes
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
7
M.C. Brenda Escamilla Domínguez Fundamentos de Ing. de Software
herramienta CASE como hoy la conocemos fue Exceleratoren 1984 , era para PC . Actualmente
la oferta de herramientas CASE es muy amplia y tenemos por ejemplo el EASYCASE o
WINPROJECT .
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:
· 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.
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.
· 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.
8
M.C. Brenda Escamilla Domínguez Fundamentos de Ing. de Software
PARADIGMA:
Existe una infinidad de definiciones de lo que es un paradigma. Un paradigma es un
determinado marco desde el cual miramos el mundo, lo comprendemos, lo
interpretamos e intervenimos sobre él. Abarca desde el conjunto de conocimientos
científicos que imperan en una época determinada hasta las formas de pensar y de
sentir de la gente en un determinado lugar y momento histórico.
Adam Smith define paradigma, en su libro “Los poderes de la mente”, como “un
conjunto compartido de suposiciones. Es la manera como percibimos el mundo: agua
para el pez. El paradigma nos explica el mundo y nos ayuda a predecir su
comportamiento".
En nuestro contexto, el paradigma debe ser concebido como una forma aceptada de
resolver un problema en la ciencia, que más tarde es utilizada como modelo para la
investigación y la formación de una teoría. También, el paradigma debe ser concebido
como un conjunto de métodos, reglas y generalizaciones utilizadas conjuntamente por
aquellos entrenados para realizar el trabajo científico de investigación.
En nuestro contexto, los paradigmas de programación nos indican las diversas formas
que, a lo largo de la evolución de los lenguajes, han sido aceptadas como estilos para
programar y para resolver los problemas por medio de una computadora.
Definición de Paradigma: Para la Ingeniería de Software el paradigma es una
agrupación de métodos, herramientas y procedimientos con el fin de describir u modelo.
Un "paradigma" es un modelo para comprender la realidad, que nos permite
relacionarnos con el mundo circundante y tener un sentido de identidad dentro de lo
que percibimos que es "el mundo real".
Fases Generales del Proceso de Desarrollo de Software:
Independientemente del procedimiento de desarrollo, la aplicación del software y el
tamaño del proyecto; el desarrollo de software contiene tres fases genéricas definición,
desarrollo y mantenimiento, desde la concepción de desarrollo estructurado de
software.
9
M.C. Brenda Escamilla Domínguez Fundamentos de Ing. de Software
Para resolver los problemas reales de una industria, un ingeniero del software o un
equipo de ingenieros deben incorporar una estrategia de desarrollo que acompañe al
proceso, métodos, capas de herramientas.
La estrategia a menudo se llama modelo de proceso o paradigma de ingeniería del
software. Se selecciona un modelo de proceso para la ingeniería del software según la
naturaleza del proyecto y de la aplicación, los métodos y las herramientas a utilizarse, y
los controles y entregas que se requieren.
Raccoon [RAC95] sugiere un << modelo del caos >> que describa el << desarrollo del
software como una extensión desde le usuario hasta el desarrollador y la tecnología >>.
Conforme progresa el trabajo hacia un sistema completo, las etapas descritas
anteriormente se aplican recursivamente a las necesidades, del usuario y a la
especificación técnica del desarrollador del software.
INGENIERIA DE SOFTWARE:
La ingeniería de software surge de la ingeniería de sistemas y de hardware.
Abarca un conjunto de tres elementos que facilitan el control sobre el proceso de
desarrollo de software y suministran las bases para construir software de calidad
de una forma productiva:
• Métodos
• Herramientas
• Procedimientos
MÉTODO:
indican cómo construir el software técnicamente e incluyen un amplio espectro de
métodos para la planificación, la estimación, el análisis, el diseño, codificación, prueba
y mantenimiento
HERRAMIENTA:
automáticas y semiautomáticas que apoyan a la aplicación de los métodos. Cuando se integran
las herramientas de forma que la información creada por una herramienta puede ser usada por
otra, se establece un sistema para el soporte del desarrollo de software, llamado Ingeniería de
Software Asistida por Computadora ( CASE ).
PROCESO:
definen la secuencia en la que se aplican los métodos, las entregas, los controles de
calidad y guías para evaluación del progreso.
CALIDAD:
Conjunto de propiedades y de características de un producto o servicio, que le confieren aptitud
para satisfacer unas necesidades implícitas o explícitas.
10