Вы находитесь на странице: 1из 12

Instituto Tecnolgico de Agua Prieta

Fundamentos
de Ingeniera
de Software
Unidad 1: Fundamentos de ingeniera de Software

Bryan Ricardo Aguirre Manzanares


Profesor: Ismael Ziga

Indice
1.1.

Conceptos bsicos.................................................................................. 2

1.2.

El papel evolutivo del software...............................................................3

1.3.

Etapas del desarrollo software...............................................................5

1.4. Clasificacin de la tecnologa en el desarrollo de software (Tecnologa


Estructurada y Orientada a Objetos)................................................................6
1.5.

Definicin e historia de las herramientas CASE......................................7

1.6.

Clasificacin de las herramientas CASE..................................................9

Referencias bibliogrficas.............................................................................. 11

1.1. Conceptos bsicos


Software
Software es un trmino informtico que hace referencia a un programa o
conjunto de programas de cmputo que incluye datos, procedimientos y pautas
y que permite realizar distintas tareas en un sistema informtico.
Comnmente se utiliza este trmino para referirse de una forma muy genrica
a los programas de un dispositivo informtico.
Es un trmino procedente del ingls, aceptado por la RAE y formado por
oposicin al trmino 'hardware'.
La documentacin asociada al software es: requerimientos, modelos de diseo
y manuales de usuario.
El software puede ser desarrollado para un cliente en particular o para un
mercado general
El software puede ser:

Genrico: desarrollado para venderse a mltiples clientes (Excel, Word,


etc.)
A la medida: desarrollado bajo demanda del cliente a un desarrollador
especfico

El software nuevo puede ser creado desarrollando nuevos programas,


configurando sistemas de software genrico o reutilizando software existent
Ingeniera
Es la profesin en la que el conocimiento de las ciencias naturales y
matemticas obtenidos con el estudio, la prctica y la experiencia se aplica con
juicio para desarrollar formas de utilizar de modo econmico, los materiales y
fuerzas de la naturaleza para beneficio de la humanidad
Ingeniera de Software
Es una disciplina de la Ingeniera que comprende todos los aspectos de la
produccin del software desde las etapas inciales de la especificacin del
sistema hasta el mantenimiento de ste despus de que se libera.
La Ingeniera de Software incluye:

Personas (quin lo hace)


Proceso (la manera en que se hace)
Proyecto (la realizacin)
Producto (la aplicacin de artefactos)

1.2. El papel evolutivo del software


El papel del software de computadora ha experimentado un cambio
significativo en un periodo un poco mayor a 50 aos. La mejoras sustanciales
en el desempeo del hardware, los cambios profundos en las arquitecturas de
cmputo, los enormes incrementos en las capacidades de memoria y
almacenamiento, y la amplia variedad de opciones de salida y entrada han
propiciado el surgimiento de sistemas ms elaborados y complejos basados en
computadoras.
El trmino fue introducido a fines del 60 y comienzo del 70, tras la crisis del
software que se caracteriz por:

Imprecisin en la planificacin del proyecto y estimacin de los costos.


Baja calidad del Software.
Dificultad de mantenimiento de programas con un diseo poco
etc.
En las dcadas de 1980 y 1990 dos tendencias dominaron la
software:
El florecimiento explosivo de aplicaciones, incluyendo las
El Nacimiento de nuevas herramientas y paradigmas
pensamiento, como la orientacin a objetos).

estructurado,
ingeniera de
de Internet.
(formas de

A continuacin se describen algunas de las etapas por las que ha venido


pasando el desarrollo de software
ERA

AOS

1950- 1965

1965 - 1972

1972 - 1989

1989 - 1995

1995- Actualidad

1.3. Etapas del desarrollo software


La ingeniera del software permite al diseador de programas, realizar su tarea
de construccin de software como un problema de ingeniera haciendo uso de
guas, principios y normas que le permitirn el correcto desarrollo de su labor.
Adicionalmente, dispondr de un conjunto de herramientas que le permitirn la
evaluacin, validacin, depuracin y correccin del software desarrollado.
Etapa de Anlisis Anlisis: Es el proceso de investigar un problema que se
quiere resolver. Definir claramente el Problema que se desea resolver o el
sistema que se desea crear. Identificar los componentes principales que
integrarn el producto.
Etapa de Diseo Diseo: Es el proceso de utilizar la informacin recolectada
en la etapa de anlisis al diseo del producto. La principal tarea de la etapa de

diseo es desarrollar un modelo o las especificaciones para el producto o


Componentes del Sistema.
Etapa de Desarrollo Desarrollo: Consiste en utilizar los modelos creados
durante la etapa de diseo para crear los componentes del sistema.
Etapa de Pruebas o Verificacin Prueba: Consiste en asegurar que los
componentes individuales que integran al sistema o producto, cumplen con los
requerimientos de la especificacin creada durante la etapa de diseo.
Etapa de Implementacin o Entrega Implantacin: Consiste en poner a
disposicin del cliente el producto.
Etapa de Mantenimiento Mantenimiento: Consiste en corregir problemas
del producto y re- liberar el producto como una nueva versin o revisin
(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 estn consientes de que el producto ya no ser vendido ni
soportado

Figura
1.3.1
Modelo
de
desarrollo iterativo

Figura
Modelo
desarrollo
cascada

1.3.2
de
en

En las figuras anteriores se muestran cmo se lleva a cabo el proceso de


desarrollo de software paso a paso. La ingeniera de software requiere llevar a
cabo numerosas tareas agrupadas en etapas, al conjunto de estas etapas se le
denomina ciclo de vida

1.4. Clasificacin de la tecnologa en el desarrollo de software


(Tecnologa Estructurada y Orientada a Objetos)
TECNOLOGA DE SOFTWARE
Conjunto integrado de notaciones, herramientas y mtodos, basados en unos
slidos fundamentos, que permiten el desarrollo de un producto software en un
contexto organizativo dado.
TECNOLOGAS DE DESARROLLO ESTRUCTURADO
Las tecnologas de desarrollo estructurado son las ms convencionales de las
empleadas hoy da. Han surgido de la evolucin de las ideas de programacin
estructurada (hace ms de veinticinco aos) hacia las fases iniciales del ciclo
de vida.
La idea base de esta tecnologa es que es posible estructurar el modelo de un
sistema de software en base a funciones que procesan informacin que reciben
de otras funciones (o del exterior) y dirigen la informacin. Procesada a otros
mdulos funcionales (o al exterior).El enfoque seguido, por tanto, es el de
pensar en las funciones del sistema necesarias (extradas de los requisitos del
sistema) y luego en los datos que requieren.

TECNOLOGAS ORIENTADAS A OBJETOS


Las tecnologas de desarrollo estructurado han demostrado sus limitaciones a
la hora de organizar y facilitar la evolucin de sistemas de software complejos.
La descomposicin en funciones hace difcil al diseador mantener la relacin
con los objetos del mundo real sobre los que se modifican generalmente los
requisitos del usuario.
En ellas, un objeto es un conjunto de datos y funciones de manipulacin de los
mismos encapsulados en una unidad que es posible tratar como un todo (crear,
copiar, destruir, etc.).
Un objeto posee unas operaciones visibles a otros objetos aunque stos no
conocen cmo estn implementadas. El diseador reconoce inicialmente.
Clases de objetos de las que se derivan los objetos concretos que utilizar en el
diseo.
Un objeto puede construirse jerrquicamente empleando, a su vez, a otros
objetos ms simples.
Los mtodos de diseo orientados a objetos suelen facilitar el desarrollo de una
implementacin en un lenguaje de programacin orientado a objetos (C++,
Ada95 o Eiffel). No obstante, la eleccin del lenguaje de implementacin no es
realmente importante y esta eleccin est condicionada por muchas otras
razones. Justo es reconocer, sin embargo, que ha sido la Programacin
Orientada a Objetos la que ha impulsado tambin la difusin de estas
tcnicas.

1.5. Definicin e historia de las herramientas CASE


Qu son las Herramientas CASE
Se puede definir a las Herramientas CASE como un conjunto de programas y
ayudas que dan asistencia a los analistas, ingenieros de software y
desarrolladores, durante todos los pasos del Ciclo de Vida de desarrollo de un
Software que son: Investigacin Preliminar, Anlisis, Diseo, Implementacin e
Instalacin.
La tecnologa CASE supone la automatizacin del desarrollo del software,
contribuyendo a mejorar la calidad y la productividad en el desarrollo de
sistemas de informacin y se plantean los siguientes objetivos:
a. Permitir la aplicacin prctica de metodologas estructuradas, las cuales
al ser realizadas con una herramienta se consigue agilizar el trabajo.
b. Facilitar la realizacin de prototipos y el desarrollo conjunto de
aplicaciones.
c. Simplificar el mantenimiento de los programas.

d.
e.
f.
g.

Mejorar y estandarizar la documentacin.


Aumentar la portabilidad de las aplicaciones.
Facilitar la reutilizacin de componentes software.
Permitir un desarrollo y un refinamiento visual de las aplicaciones,
mediante la utilizacin de grficos.
h. Automatizar:
El desarrollo del software
La documentacin
La generacin del cdigo
El chequeo de errores
La gestin del proyecto
i. Permitir
La reutilizacin del software
La portabilidad del software
La estandarizacin de la documentacin
En resumen: La principal ventaja de la utilizacin de
la mejora de la calidad de los desarrollos realizados
aumento de la productividad. Para conseguir
conveniente contar con una organizacin y una
adems de la propia herramienta.

una herramienta CASE, es


y, en segundo trmino, el
estos dos objetivos es
metodologa de trabajo,

Historia
Ya en los aos 70 un proyecto llamado ISDOS dise un lenguaje y por lo tanto
un producto que analizaba la relacin existente entre los requisitos de un
problema y las necesidades que stos generaban.
Aunque sos son los inicios de las herramientas informticas que ayudan a
crear nuevos proyectos informticos, la primera herramienta CASE fue
Excelerator que sali a la luz en el ao 1984 y trabajaba bajo una plataforma
PC. Las herramientas CASE alcanzaron su techo a principios de los aos 90.
En la poca en la que IBM haba 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 ms especficas para cada fase del ciclo de
vida del software.

Figura 1.5 Evolucin de las


herramientas case

1.6. Clasificacin de las herramientas CASE


Es muy difcil clasificarlas en categoras especificas. Podran clasificarse
considerando:

Las plataformas que soportan.


Las fases del ciclo de vida del desarrollo de sistemas que cubren.
La arquitectura de las aplicaciones que producen.
Su funcionalidad.

Una primera clasificacin del CASE es considerando su amplitud:


TOOLKIT: es una coleccin de herramientas integradas que permiten
automatizar un conjunto de tareas de algunas de las fases del ciclo de vida del
sistema informtico: Planificacin estratgica, Anlisis, Diseo, Generacin de
programas.
WORKBENCH: Son conjuntos integrados de herramientas que dan soporte a la
automatizacin del proceso completo de desarrollo del sistema informtico.
Permiten cubrir el ciclo de vida completo. El producto final aportado por ellas es
un
sistema
en
cdigo
ejecutable
y
su
documentacin.
Una segunda clasificacin es teniendo en cuenta las fases (y/o tareas) del ciclo
de vida que automatizan:
UPPER CASE: Planificacin estratgica, Requerimientos
Funcional
de
Planes
MIDDLE CASE: Anlisis y Diseo.

de Desarrollo
Corporativos.

LOWER CASE: Generacin de cdigo, test e implantacin.

Figura 1.6.1
Resumen de las Herramientas CASE (caractersticas y clasificacin)

Referencias bibliogrficas
http://www.significados.com/software/
http://www.tamps.cinvestav.mx/~ertello/swe/sesion01.pdf

http://unudad1conceptos.blogspot.mx/
http://www.monografias.com/trabajos5/inso/inso.shtml
http://unidad1ingenieriadesoftware.blogspot.mx/2013/02/11-conceptosbasicos-ingenieria-de.html
http://prezi.com/3vgzukncknbe/el-papel-evolutivo-del-software/
http://www.slideshare.net/itlac/etapas-de-desarrollo-software
http://es.scribd.com/doc/454427/30/Concepto-de-tecnologia-de-software
https://pedroivanacevedohdz.wordpress.com/2014/09/14/mapa-conceptual-2/
http://www.inei.gob.pe/biblioineipub/bancopub/Inf/Lib5103/Libro.pdf
http://www.ecured.cu/index.php/Herramienta_CASE