Sie sind auf Seite 1von 45

Ingeniera de Software

Clase 1:
Introduccin a la Ing. de Software

Clase 1

Objetivos
2

Entender el significado de la Ingeniera de


Software
Conocer las metas de la Ingeniera de Software
Conocer los atributos de un buen Software
Conocer el cdigo de tica del Ingeniero de
Software

Temas
3

Antecedentes
Qu es la Ingeniera de Software?
Metas de la Ingeniera de Software
Ciclo de vida del software
Los atributos de un buen software
Los retos de la Ingeniera de Software
El cdigo de tica del Ing. de Software

Antecedentes
4

Concepto de Software
IEEE std. 610 define el software como programas,
procedimientos y documentacin y datos asociados,
relacionados con la operacin de un sistema informtico
Segn el Websters New Collegiate Dictionary (1975),
software es un conjunto de programas, procedimientos y
documentacin relacionada asociados con un sistema,
especialmente un sistema informtico

Antecedentes
5

El producto Software
El software se desarrolla, no se fabrica en el sentido clsico.
Pueden ser genricos como procesadores de texto, bases de
datos, etc. o a medida porque son especficos para un
cliente particular
El software atraviesa las etapas propias de la fabricacin
de productos: es diseado, luego es replicado, es
eventualmente distribuido y finalmente vendido.
El software no se estropea, pero se deteriora.
En el software, el recurso principal son las personas.

Antecedentes
6

Historia de la Ingeniera de Software


Primera Fase. Los albores (1945-1955)

Segunda Fase. El florecimiento (1955-1965)

Programar no es una tarea diferenciada del diseo de una mquina


Uso de lenguaje mquina y ensamblador.
Aparecen multitud de lenguajes, entre ellos Fortran y Cobol.
Se pensaba que era posible hacer casi todo.

Tercera Fase. La crisis (1965-1970)

Desarrollo inacabable de grandes programas


Ineficiencia, errores, coste impredecible

Antecedentes
7

Historia de la Ingeniera de Software


Cuarta Fase. Innovacin conceptual (1970-1980)

Fundamentos de programacin
Se introdujo el concepto de la modularidad y encapsulacin.
Verificacin de programas

Tambin apareci un sistema para gestionar el hardware: SO

Quinta Fase. El diseo es el problema (1980-1990)

Aparecen los lenguajes orientados a objetos


Entornos de programacin
Especificacin formal

Antecedentes
8

Historia de la Ingeniera de Software


Sexta Fase. Prominencia de Internet (1990-1999)

Auge de la Web y el correo electrnico


Aparicin de los sistemas distribuidos
Surge el software libre

Sptima Fase. Metodologas ligeras (2000-?)

Metodologas ms simples y rpidas


Aplicaciones mviles

Antecedentes
9

Crisis del Software


Se desarrollo durante la tercera fase
Se debi a que el entorno de desarrollo de sistemas
software adoleca de:

Retrasos considerables en la planificacin


Poca productividad
Demandas cada vez ms desfasadas frente a las ofertas
Elevadas cargas de mantenimiento
Baja calidad y fiabilidad del producto
Dependencia de los realizadores

Antecedentes
10

Algunos Mitos
Sobre la gestin

Por qu hacer una planificacin exhaustiva, si cometemos algn


error, siempre podemos aadir gente
El equipo de trabajo dispone de las ms modernas
herramientas de desarrollo y trabaja con las mquinas ms
potentes

Sobre el cliente

Una declaracin general de los objetivos es suficiente para


comenzar a escribir los programas, podemos dar los detalles ms
adelante

Antecedentes
11

Algunos Mitos
Sobre el cliente

Los requisitos del proyecto cambian continuamente, pero los


cambios pueden acomodarse fcilmente ya que el software es
flexible

Sobre los desarrolladores

No es necesaria ninguna metodologa, cuanto antes empecemos


a programar, antes acabaremos
Lo nico que realmente importa, cuando se termina un proyecto,
es que la aplicacin funcione. La documentacin nadie la utiliza

Definiciones
12

Metodologa

Mtodo

Forma de hacer las cosas. Los mtodos de la ingeniera del


software indican cmo construir tcnicamente el software.

Tcnica

Coleccin de mtodos de solucin de problemas organizados


bajo una filosofa comn y gobernados por un conjunto de
principios

Un conjunto de procedimientos precisamente descritos para


lograr una tarea estndar

Herramienta

Instrumentos o ayudas tangibles en la realizacin de una tarea.

Definiciones
13

Actividad

Artefacto

Es algo tangible creado por un propsito prctico

Especificacin

Es un proceso que tiene un lugar en el tiempo y en el espacio, y


en el cual un agente acta con unos objetivos determinados

Es un descripcin detallada y precisa de algo existente (o que


existir) o de una cierta situacin, presente o futura

Ciclo de vida

De un producto o proyecto software es la evolucin del mismo


desde su momento de concepcin hasta el momento en que deja
de usarse, y puede describirse en funcin de las actividades que
realizan dentro de l

Qu es la Ingeniera de Software?
14

Se utiliz el trmino por primera vez por Fritz Bauer en la


conferencia sobre desarrollo de software patrocinada por
el Comit de Ciencia de la OTAN celebrada en Garmisch
(Alemania), en octubre de 1968, previamente haba sido
utilizado por el holands Edsger Dijkstra en su obra The
Humble Programmer.

Qu es la Ingeniera de Software?
15

Fritz Bauer, 1968:


La Ingeniera del Software es el establecimiento y uso de
principios robustos de la ingeniera a fin de obtener
econmicamente software que sea fiable y que funcione
eficientemente sobre maquinas reales.

Qu es la Ingeniera de Software?
16

Bohem, 1976:
Ingeniera del Software es la aplicacin practica del
conocimiento cientfico en el diseo y construccin de
programas de computadora y la documentacin necesaria
requerida para desarrollar, operar (funcionar) y
mantenerlos.

Qu es la Ingeniera de Software?
17

Mills, 1980:
La Ingeniera de Software tiene como uno de sus
principales objetivos la produccin de programas que
cumplan las especificaciones, y que se demuestren
correctos, producidos en el plazo y costo adecuado.

Qu es la Ingeniera de Software?
18

IEEE 1993:
La Ingeniera de Software es la aplicacin de un enfoque
sistemtico, disciplinado y cuantificable hacia el
desarrollo, operacin y mantenimiento del software; es
decir, la aplicacin de Ingeniera de Software.

Qu es la Ingeniera de Software?
19

Ian Sommerville
La Ingeniera del Software es la disciplina de ingeniera
encargada de todos los aspectos relacionados con la
produccin de software desde sus etapas ms tempranas
de la especificacin del sistema hasta el mantenimiento
del sistema tras su puesta en marcha.

Qu es la Ingeniera de Software?
20

Disciplina de ingeniera

Los ingenieros de software usan las herramientas, mtodos y


teoras para solucionar los problemas que aparecen
Incluso teniendo en cuenta restricciones econmicas y de
organizacin

Produccin de software

Planificacin de proyectos
Administracin de proyectos de software
Procesos tcnicos de desarrollo de software
Direccin de proyectos

21

Capas de la Ingeniera de
Software

Procesos: un marco de trabajo que ayuda al jefe de


proyecto a controlar la gestin del proyecto y las
actividades de ingeniera.
Mtodos: las actividades tcnicas requeridas para la
creacin de productos de trabajo.
Herramientas: la ayuda automatizada para los procesos y
mtodos.

22

Ingeniera de Software en nuestros


das

Econmicamente

En los EEUU, el software contribuy a 1/4 de todo el incremento


del PIB durante los 90's (alrededor de 90,000 millones de
dlares por ao), y 1/6 de todo el crecimiento de productividad
durante los ltimos aos de la dcada (alrededor de 33,000
millones de dlares por ao).
La Ingeniera de Software contribuy a $1 billn de crecimiento
econmico y productividad en esa dcada. Alrededor del globo,
el software contribuye al crecimiento econmico en formas
similares, aunque es difcil de encontrar estadsticas fiables.

23

Ingeniera de Software en nuestros


das

Socialmente

La Ingeniera del Software cambia la cultura del pas debido al


arraigo de la computadora entre la sociedad. Las personas
ahora tienen nuevas formas de comunicarse entre ellas: correo
electrnico, la web, SMS, dispositivos mviles, redes sociales, etc.
El software mejora servicios en la comunidad: Bomberos, Salud,
Municipalidades...Transportes, Tiendas, cajeros automticos,
almacenes y muchos mas que dependen del Software hoy en da.

Metas de la Ingeniera de Software


24

Reducir los costos de desarrollo del software y de su


mantenimiento

El mantenimiento del software suele ser mucho mas caro de


mantener que de desarrollar. En sistemas con una vida muy larga
el coste de manutencin multiplica varias veces el coste de
desarrollo.
Normalmente se gasta 60% de presupuesto invertido en
desarrollo y un 40% en pruebas. En el software hecho a medida
los gastos de evolucin suelen ser mucho mayores que los del
desarrollo. En el software genrico, cada nueva actualizacin
grande la suelen sacar como una versin nueva, por razones de
marketing.

Metas de la Ingeniera de Software


25

Costos de los cambios

El Software se deteriora

Metas de la Ingeniera de Software


26

Otras metas son:


Mejorar la calidad del software
Acortar los tiempos de desarrollo
Aumentar la productividad
Incrementar la reutilizacin del software

Ciclo de vida del Software


27

1.
2.
3.
4.
5.
6.
7.

Anlisis y especificacin de requerimientos


Diseo de la solucin
Programacin del software
Pruebas del software
Implementacin o puesta en productivo
Mantenimiento
Documentacin (*)

Ciclo de vida del Software


28

29

Actividades de la Ingeniera de
Software

30

Actividades de la Ingeniera de
Software

Los atributos de un buen Software


31

Mantenibilidad

El software debe escribirse de tal forma que pueda evolucionar


para cumplir las necesidades de cambio de los clientes. Este es
un atributo crtico debido a que el cambio en el software es una
consecuencia inevitable de un cambio en el entorno de negocios.

Confiabilidad

La confiabilidad del software tiene un gran nmero de


caractersticas, incluyendo la fiabilidad, proteccin y seguridad.
El software confiable no debe causar daos fsicos
o econmicos en el caso de una falla en el sistema

Los atributos de un buen Software


32

Eficiencia

El software no debe hacer que se malgasten los recursos del


sistema, como la memoria y los ciclos de procesamiento. Por lo
tanto la eficiencia incluye tiempos de respuesta y de
procesamiento, utilizacin de la memoria, etc.

Usabilidad

El software debe ser fcil de utilizar, sin esfuerzo adicional, por


el usuario para quien est diseado. Esto significa que debe
tener una interfaz de usuario apropiada y una documentacin
adecuada.

33

Los retos de la Ingeniera de


Software

El reto de la heterogeneidad
Desarrollar tcnicas para construir software confiable que
sea lo suficientemente flexible para adecuarse a esta
heterogeneidad.
El reto de la entrega
Reducir los tiempos de entrega para sistemas grandes y
complejos sin comprometer la calidad del sistema.

34

Los retos de la Ingeniera de


Software

El reto de la confianza
Desarrollar tcnicas que demuestren que los usuarios
pueden confiar en el software.
Los retos no son independientes
Es necesario desarrollar nuevas herramientas y tcnicas, as
como formas innovadoras de combinacin y uso de mtodos
de ingeniera del software existentes.

El Ingeniero de Software
35

Pasar de ser artesano a Ingeniero


Adoptar un enfoque sistemtico y organizado en su trabajo
Para ello se debe:

Aplicar mtodos, tcnicas y herramientas de desarrollo


Adoptar estndares de desarrollo
Utilizar la experiencia acumulada
Documentacin

El Ingeniero de Software
36

Adoptar estndares de desarrollo para mejorar el proceso:


Reduccin de costes
Reduccin del tiempo de desarrollo
Reduccin de riesgos
Utilizar las herramientas y tcnicas ms apropiadas
dependiendo:
del problema a resolver,
las restricciones del desarrollo y
los recursos disponibles.

El cdigo de tica
37

Son los principios que deben guiar las decisiones y


comportamiento de los profesionales de Ingeniera de
Software aunque sean estudiantes, profesores o gestores.
Cdigo tico de ACM / IEEE :

Actuar en bien del inters pblico.


Actuar en el mejor inters del cliente y el empleador, siendo
consistente con el inters publico.
Asegurar que los productos renen los mejores estndares
profesionales posibles.

El cdigo de tica
38

Mantener la integridad e independencia en el juicio profesional.


Suscribir y promocionar un comportamiento tico en la gestin y
mantenimiento del desarrollo de software.
Colaborar en el avance de la integridad y la reputacin de la
profesin siendo consistente con el inters pblico.
Ser justo y ayudar a los colegas.
A lo largo de la vida, reciclarse en la prctica de la profesin y
promocionar un comportamiento tico en la prctica de la
profesin

39

La Ingeniera de Software y la
Ciencias de la Computacin

La ciencia de la computacin se refiere a las teoras y los


fundamentos subyacentes en los sistemas de computacin:
Buenos ladrillos.
La ingeniera de software trata los problemas prcticos del
desarrollo de software: Buenos edificios.
Con las teoras de la Ciencia de la Computacin no es
suficiente para desarrollar software. Por lo menos cuando el
software a desarrollar es suficientemente grande.

40

La Ingeniera de Software y la
Ingeniera de Sistemas

La Ingeniera de Sistemas se refiere a todos los aspectos del


desarrollo de sistemas basados en la computadora, tanto
del Hardware como del Software y los procesos de diseo y
distribucin de sistemas. La Ingeniera de Software es parte
de este proceso.
Al ser el Software la parte ms importante del sistema, las
tcnicas de Ingeniera del Software se aplican en el proceso
de la Ingeniera de Sistemas.

41

Ingeniera de Software como


disciplina profesional

(SE2004)
Desarrollo de un conjunto de resultados del plan de estudios
deseados y una declaracin de lo que cada graduado debe
saber.
Determinacin y especificacin de los conocimientos necesarios
para ser incluidos en un programa de ingeniera de software
de pregrado
Construccin de un conjunto de recomendaciones del plan de
estudios de un programa de ingeniera de software, el cual
podra estructurarse en varios contextos.

42

Disciplinas integradas en la
Ingeniera del Software

Software Engineering Body of Knowledge (SWEBOK)

Requisitos del software


Diseo del software
Construccin del software
Prueba del Software
Mantenimiento del software
Gestin de la configuracin del software
Gestin de la Ingeniera del Software
Proceso de Ingeniera del Software
Herramientas y mtodos de la Ingeniera del Software
Calidad del software

43

Disciplinas integradas en la
Ingeniera del Software

Software Engineering Body of Knowledge (SWEBOK)

Practicas del profesional de Ingeniera de Software


Economa de la Ingeniera de Software
Fundamentos de la computacin
Fundamentos de la matemtica
Fundamentos de la ingeniera

Resumen
44

Durante los 60s se vivi la crisis del software, originada


por Desarrollo inacabable de grandes programas,
ineficiencia, errores, coste impredecible.
La Ingeniera del Software es la disciplina de ingeniera
encargada de todos los aspectos relacionados con la
produccin de software desde sus etapas ms tempranas
de la especificacin del sistema hasta el mantenimiento
del sistema tras su puesta en marcha.
Entre las metas de la Ingeniera de Software estn la
reduccin de costos y acortar los tiempos de desarrollo.
Los principales atributos de un buen software son
mantenibilidad, confiabilidad, eficiencia y usabilidad

Preguntas?
45

Cul campo de estudio de la Ingeniera de


Software lo atrae ms?

Das könnte Ihnen auch gefallen