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

FUNDAMENTOS DE

INGENIERA DE
SOFTWARE
UNIDAD 1
CONCEPTOS BSICOS
Qu es la ingeniera?
es la ciencia de la produccin, la cual, junto con
la reproduccin, es la ms fundamental de las
actividades humanas (Auyang, 2004)
Aplicacin de la ciencia y las matemticas por la
cual las propiedades de la materia y las fuentes
de energa de la naturaleza se hacen tiles para
la gente.
La ingeniera como actividad humana es la
aplicacin del conocimiento y los mtodos
cientficos al diseo y la produccin de productos
complejos.
La ingeniera es la objetivacin de un oficio, que
se estudia cientficamente
CONCEPTOS BSICOS
Las diferentes ramas o disciplinas ingenieriles
difieren en el objeto de la produccin, pero todas
ellas tienen en comn tres aspectos especficos:
La ciencia de la ingeniera, que se ocupa de los
principios y mecanismos subyacentes de la
disciplina.
Procesos de diseo, que en general incluyen una
fase de conceptualizacin y una fase de diseo
detallado.
Aspectos de gestin y organizacin, pues la
tecnologa que se produce implica tanto a las
personas como a las organizaciones. Adems las
personas no trabajan aisladas, sino en equipo y
organizaciones.
CONCEPTOS BSICOS
Ingeniera
de
software
herramienta
s
procesos
estndares
problem
a
solucin
Ciencias de la computacin
Fundamentos de fsica

Fundamentos
matemticos
teoras:
compiladores,
autmatas,
algortmia,
seguridad
Relacin entre las ciencias de la computacin y la Ingeniera de Software
CONCEPTOS BSICOS
Qu es software?
Un artefacto que proporciona las instrucciones
necesarias para que una computadora lleve a
cabo una cierta tarea. (definicin demasiado
especfica)
SOFTWARE es el conjunto completo de
programas, procedimientos y documentacin
relacionada que se asocia con un sistema, y
especialmente con un sistema de
computadora. En un sentido especfico,
software son los programas de computadora.
CONCEPTOS BSICOS
Qu es Ingeniera de Software?
1. La aplicacin de un enfoque sistemtico,
disciplinado y cuantificable al desarrollo, la
operacin y el mantenimiento del software. Esto
es, aplicar la ingeniera de software (IEEE 1990).
2. El estudio de enfoques como los mencionados en
(1).
Segn la primera definicin, el ingeniero de software es
un desarrollador en un sentido amplio, que
desempea un rol profesional en la produccin de
software.
La segunda definicin implica la investigacin y estudio
de las actividades de la IS, pero no el producir
software. Define as para el ing. de software un perfil
de investigador.
CONCEPTOS BSICOS
La complejidad inherente al software: la define
Brooks como una caracterstica esencial al software,
entendiendo esencial en su sentido de inherente, es
decir, propia de la naturaleza del software-
La esencia de la ingeniera de software es la
especificacin, diseo y verificacin de un conjunto
detallado y muy preciso de conceptos
interrelacionados, tareas que son sensiblemente
complejas.
En definitiva traducir las especificaciones a cdigo NO
es el problema
El problema es la elaboracin de las propias
especificaciones.
Dos causas ms de complejidad: la propensin al
cambio y la invisibilidad del software
Caractersticas distintivas de IS
SISTEMTICO: decimos que algo es sistemtico
cuando sigue un sistema. Se dice que una actividad
es sistemtica cuando es metdica en cuanto al
procedimiento o al plan.
CUANTIFICABLE: decimos que una actividad es
cuantificable si tanto su realizacin como sus
resultados pueden medirse. En cuanto al software
tanto el producto final de desarrollo, como el propio
proceso de desarrollo de software en s mismo
pueden ser sometidos a medicin.
DISCIPLINADO: una actividad es disciplinada si est
sujeta a control con respecto a ciertos estndares
entendiendo el trmino estndar en su acepcin
ms genrica de norma o patrn, no como
especificacin formal respaldada por un organismo de
estandarizacin.
Historia de la ingeniera de
software
Periodo Fase Descripcin
1955-1965 Orgenes de la disciplina Desarrollo inicial de los principios de la
ingeniera de software (hasta las
conferencias de la OTAN). El comit de
ciencia de la OTAN patrocin dos
conferencias sobre IS en 1968 y 1969 que
dio al campo su impulso inicial, esto marc
el inicio de la profesin de la IS.
1965-1985 Identificacin de la crisis La identificacin del problema de la crisis del
software se convierte en el tema central de
la disciplina.
1985- Desarrollo de la disciplina Aproximadamente desde la publicacin del
artculo de Brooks (1987) se desarrolla la
disciplina con la complejidad del desarrollo
de software como elemento inherente.
Partiremos de aqu
El ingeniero de software debe entender
esencialmente porqu un producto software es bueno
o no lo es (la calidad),
Cmo puede saberlo (la medicin),
Cmo pueden hacerse productos de calidad (el
proceso),
Cmo pueden ordenarse los recursos humanos y
temporales en un proyecto para aplicar correctamente
el proceso (la gestin).
Adems
Debe tener una visin general de las tcnicas y
mtodos disponibles para las actividades (requisitos,
diseo, construccin, pruebas, mantenimiento y
gestin de la configuracin)
Seleccionar y utilizar herramientas para realizar
correcta, eficaz y eficientemente las actividades
segn los procesos
Conceptos de la Ingeniera de
Software
La ingeniera de software trata
fundamentalmente de actividades llevadas a
cabo por personas (ingenieros, usuarios y en
general todos los interesados) que producen,
usan o modifican artefactos.
Estas actividades responden a planes parcial
o totalmente prescritos, es decir son
sistemticas y disciplinadas. Por ello hay que
considerar tambin mtodos,
especificaciones y modelos entre otros.
Conceptos de la Ingeniera de
Software
Actividad: es un proceso que tiene lugar en el
tiempo y en el espacio, y en el cual un agente
acta con unos objetivos determinados.
Las actividades en la IS abarcan por tanto
cualquier accin con un propsito claro dentro
de esta ingeniera, como actividades de
gestin, produccin, comunicacin y
documentacin.
El trmino actividad se usar para referirse a
aquello que se hace en la IS.
Conceptos de la Ingeniera de
Software
Artefacto: es algo tangible
creado con un propsito
prctico.
Son artefactos de la IS todos
aquellos elementos creados
en actividades propias de la
disciplina, tales como el
cdigo, los documentos o
diagramas, los casos de uso,
entre otros.
La IS se materializa en trminos
de actividades, de sus
participantes y de los
artefactos que producen,
transforman o utilizan.
Conceptos de la Ingeniera de
Software
Las actividades y artefactos
que se producen estn
sujetos a ciertas
prescripciones que
provienen generalmente de
un mtodo.
Los mtodos imponen
estructura a la actividad de
IS con el objetivo de hacerla
ms sistemtica y
finalmente ms exitosa.
Mtodo: es la
especificacin de una
secuencia de acciones
orientadas a un propsito
determinado. En la IS los
mtodos determinan el
orden y la forma de llevar a
cabo las actividades.
Conceptos de la Ingeniera de
Software
Especificacin: es una descripcin detallada
y precisa de algo existente (o que existir) o
de una cierta situacin, presente o futura, por
ejemplo un caso de uso.
Las especificaciones, como elemento de
informacin, son una parte fundamental en
toda disciplina de ingeniera.
Modelo: Una representacin o descripcin
simplificada de una entidad o proceso.

Conceptos de la Ingeniera de
Software
Un concepto muy utilizado es el de ciclo de vida del
software definido como el perodo de tiempo que
comienza cuando se concibe un producto
software y termina cuando el producto deja de
usarse.
El ciclo de vida no se restringe a las actividades de
desarrollo previas al uso del software, sino que
abarca tambin su evolucin y mantenimiento.
Definicin:
El ciclo de vida de un producto o proyecto software es la
evolucin del mismo desde su concepcin hasta el
momento en que deja de usarse y puede describirse en
funcin de las actividades que se realizan dentro de l
Las actividades que se incluyen en el ciclo de vida del
software son: estudio de viabilidad, requisitos,
anlisis, diseo, implementacin, pruebas y
mantenimiento.
El papel evolutivo del software
El software entrega el producto ms importante
de nuestro tiempo:
I N F O R M A C I N
Transforma los datos personales de forma que
stos sean ms tiles en un contexto dado.
Maneja informacin de negocios para mejorar la
competitividad.
Proporciona una va para las redes de
informacin alrededor del mundo (internet).
Proporciona los medios para adquirir informacin
en todas sus formas.
El papel evolutivo del software
El software ha experimentado un cambio
significativo en poco ms de 50 aos. Se ha
propiciado el surgimiento de sistemas ms
elaborados y complejos debido a los siguientes
hechos:
Las mejoras sustanciales en el desempeo del
hardware,
Los cambios profundos en las arquitecturas de
computo,
Los enormes incrementos en las capacidades de
memoria y almacenamiento,
Y la amplia variedad de opciones de salida y de
entrada.

Visin histrica del software y las
computadoras
nueva revolucin industrial, Osborne 1979.
la tercera ola de cambio en la historia de la
humanidad, Toffler 1980.
la transformacin de una sociedad industrial en una
sociedad de la informacin, Naisbitt 1982.
la informacin y el conocimiento (controlado por
computadoras) sern el punto de enfoque para el
poder en el siglo XXI, Feigenbaum y McCorduck
1983.
la comunidad electrnica creada por redes y software
es la clave para el intercambio de conocimiento
alrededor del mundo, Stoll 1989.

TODOS ESTOS ESCRITORES TENAN RAZN
Enfoque estructurado para el
desarrollo del software
Comenz a desarrollarse a fines de los 70s con
la Programacin Estructurada, luego a mediados
de los 70s aparecieron tcnicas para el Diseo
(por ejemplo: el diagrama de Estructura) primero
y posteriormente para el Anlisis (por ejemplo:
Diagramas de Flujo de Datos).
El anlisis estructurado se basa
fundamentalmente en la descomposicin
funcional del sistema que se desea construir, lo
cual requiere comprender primero el dominio del
problema y a continuacin documentar las
funciones y sub-funciones que debe proporcionar
el sistema.

Enfoque estructurado para el
desarrollo del software
El software desarrollado con mtodos
estructurados suele ser ms frgil ante los
cambios de requisitos; pues si estos cambian, un
sistema basado en descomposicin funcional
puede requerir una reestructuracin masiva.
El Anlisis Estructurado modela los sistemas
desde un punto de vista ms prximo a su
implementacin en una computadora
(entrada/proceso/salida).
El modelado de datos mediante el enfoque
estructurado, est ms orientado al diseo de
bases de datos y se centra exclusivamente en la
identificacin de los datos que maneja un sistema
y en las relaciones estticas que se establecen
entre esos datos.


Enfoque Orientado a Objetos para
el desarrollo del software
La esencia del desarrollo orientado a objetos es la
identificacin y organizacin de conceptos del
dominio de la aplicacin
Es decir, la descomposicin que se hace del
problema est centrada en los objetos del
dominio del problema y sus relaciones
El enfoque Orientado a Objetos se centra en
identificar los objetos del dominio de aplicacin
(atributos y comportamiento).
El software Orientado a Objetos se mantiene mejor
ante los cambios de requisitos, porque se basa en la
estructura subyacente del dominio de aplicacin por
lo que las modificaciones necesarias pueden ser ms
fcilmente localizables.




Enfoque Orientado a Objetos para
el desarrollo del software
El Desarrollo Orientado a Objetos se basa en modelar
el sistema mediante los objetos que forman parte de
l y las relaciones estticas (herencia y composicin)
o dinmicas (uso o asociacin) entre estos objetos.
Este enfoque pretende conseguir modelos que se
ajusten mejor al problema real.
En el Desarrollo Orientado a Objetos, los objetos
encapsulan tanto atributos como procedimientos
(operaciones que se realizan sobre los objetos), e
incorpora adems conceptos como el polimorfismo o
la herencia que facilitan la reutilizacin de cdigo.
El uso de DOO puede facilitar mucho la creacin de
prototipos, y las tcnicas de desarrollo evolutivo de
software.

Herramientas CASE
(introduccin)
La especie humana no
est adecuadamente
adaptada para vivir en
el mundo natural, pues
sus defensas fsicas
son inferiores a las de
la mayor parte de los
animales.
Sin embargo todas las
desventajas que
pudiera tener se
compensan con un
rgano insustituible: un
CEREBRO grande y
complejo.

Herramientas CASE
(introduccin)
El hombre tiene la capacidad
para aprovechar la informacin y
transmitirla a sus descendientes
gracias a su inteligencia, esto es
lo que se conoce como
CULTURA.
Las HERRAMIENTAS son una
de las caractersticas definitorias
de la capacidad superior de los
seres humanos.
El uso generalizado de las
herramientas ha sido el factor
determinante y diferenciador que
permiti a la especie humana
llegar a dominar el planeta.

Herramientas CASE (definicin)
CASE por sus siglas en ingls de Computer Aided
Software Engineering se traduce como Ingeniera del
Software Asistida por Computadora. Las primeras
aparecieron en la dcada de los aos 1980.
Una herramienta CASE es una herramienta software
que se utiliza en una o ms fases del desarrollo de un
producto software para apoyo de alguna tarea
especfica de Ingeniera del Software.
Facilitan las tareas que realizan los gestores de
proyectos, ingenieros de software y los
desarrolladores, ya que reducen su carga de trabajo,
permitindoles centrarse en las facetas puramente
creativas del desarrollo.
Las herramientas CASE son una tecnologa madura y
ampliamente usada.
Herramientas CASE
(Justificacin)
Razones fundamentales para su utilizacin:
La dificultad inherente del propio desarrollo de
software.
La existencia de tareas tediosas, repetitivas o
simplemente automatizables, que pueden facilitarse
con un software que las mecanice parcial o
completamente.
El volumen de informacin que se genera a lo largo
del desarrollo, difcil de controlar y que no cabe en las
mentes de los desarrolladores.
La necesidad de una perspectiva global a la hora de
tomar ciertas decisiones sobre el desarrollo (datos
centralizados).
La posibilidad de trabajar sobre los mismos datos,
aunque los involucrados se encuentren en
localizaciones fsicas dispersas.
Ventajas del uso de herramientas
CASE
Aumento de la productividad (ya que se
necesitan menos recursos para realizar el
mismo trabajo).
Software de mayor calidad.
Posibilidad de elaborar informes u obtener
datos del desarrollo.
Facilita la aplicacin sistemtica de un
proceso, as como la fidelidad a un estndar u
otras restricciones.
Desventajas del uso de herramientas
CASE
Alto costo de utilizacin de la herramienta
(capacitacin de los desarrolladores).
La rpida evolucin de las herramientas, ya
que quienes la usan dependen de los cambios
y esto se vuelve muchas veces un problema.
Se puede malinterpretar su uso, se debe tener
claro que una herramienta no debe sustituir el
proceso, es el proceso el que indica qu
herramientas deben ser usadas.
Clasificacin de herramientas
CASE
Podran clasificarse atendiendo a:
1. La fase del ciclo de vida donde se emplean.
2. El nivel de integracin.
En base a 1 se tiene la siguiente clasificacin:
Herramientas para requisitos
Herramientas para diseo
Herramientas para construccin
Herramientas para pruebas
Herramientas para mantenimiento
Herramientas para gestin de la configuracin
Herramientas para gestin

Вам также может понравиться