You are on page 1of 19

Ingeniera de Software (ACI491)

Unidad I: Introduccin a la Ingeniera de


Software.
Semana 1

Unidad 1

Introduccin a la ingeniera de software

1.1 Conceptos Introductorios

1.2 Mapa conceptual de la ingeniera de


software
1.3 Caractersticas del software.
1.4 Aplicaciones del software
1.5 Definiciones de Ingeniera de software
1.6 El porqu de la ingeniera de software
1.7 Ciclo de Vida del Software

1.1 Conceptos Introductorios

La evolucin del Software


Hoy da, el software es un componente crtico dentro de la vida diaria del ser humano. Est en
todos lados, en un telfono, refrigerador, microondas, autos, etc, etc.
El software tiene varios roles, tiene un rol de transformador de informacin, productor de
informacin, transmisor de datos tan simples como un solo bit o tan complejo como un gran
problema matemtico a resolver.
El software ha sufrido un cambio significativo desde que se acua la frase ingeniera de
software. El hardware cambi, las arquitecturas, aumentos de memoria, variadas opciones de
input/output. El resultado de un producto de software puede ser elogiado como tambin puede
suponer grandes problemas para aquellas personas que deben ingresar algoritmos complejos.
Alvin Toffler (http://es.wikipedia.org/wiki/Alvin_Toffler), en los 90 describi un cambio de poder en
las viejas estructuras de poder, estas dijo, se desintegrarn a medida que las computadoras y el
software llevaran a la democratrizacin del conocimiento.

Yourdon tambin comentaba en lo 90 El papel del software contina su expansin.

1.1 Conceptos Introductorios

La evolucin del Software


El Programador de antes ha sido reemplazado por un equipo de especialistas del software, cada
uno centrado en su rea de especialidad.
Dada la introduccin anterior, y la importancia de la Ingeniera de software, nos cabe pregunta:
Por qu lleva tanto tiempo terminar los programas?
Por qu son tan altos los costos de desarrollo?
Por qu es difiicil entregar a tiempo los productos de software ?

Por qu cuesta tanto hacer el seguimiento real de los proyectos?

Son algunas de las preguntas que motivan el desarrollo de la Ingeniera de Software, como la disciplina
que permite desarrollar un producto de software en un tiempo prudente, con costos razonables, que sea
fiable y de buena calidad.

1.2 Mapa Conceptual de la Ingeniera de


Software

1.3 Caractersticas del Software

Introduccin
El software se diferencia de otras cosas que el ser humano ha de construir. El hardware es fsico.
El software es elemento lgico, por ende, tiene caractersticas distintas a cualquier elemento
fsico:
El software se desarrolla, no se fabrica en el sentido clsico.
El software no se estropea, pero si se deteriora

Curva de fallos real e idealizada del software

1.3 Caractersticas del Software

Introduccin
La mayora del software se construye a medida: los componentes de software deberan
disearse e implementarse para que se puedan volver a utilizar en muchas oportunidades, y as,
armar una especie de biblioteca de subrutinas y/o componentes.
Lo reutilizable aparte de los algoritmos debiesen ser las estructuras de datos.
Los componentes reutilizables modernos, encapsulan tanto datos como procesos que se aplican
a los datos, permitiendo al ingeniero de software crear nuevas aplicaciones a partir del reuso de
cdigo.

1.3 Caractersticas del Software


Cualquier producto de Software debe contar con las siguientes caractersticas:
Correctitud: Grado en que el producto de SW satisface los requerimientos para lo cual fue concebido. Es
el mnimo nivel de calidad exigible
Confiabilidad: Grado en que se puede esperar que el producto de SW realice las funciones esperadas,
con la precisin requerida
Robustez: Capacidad del SW para comportarse de manera razonable ante situaciones inesperadas.
Portabilidad: Capacidad (Esfuerzo que se debe hacer para...) del SW para operar en diferentes
ambientes (HW y SO)
Reusabilidad:Grado en que el SW, o partes del SW, se pueden utilizar en otras aplicaciones, distintas al
propsito original por el que fueron concebidos
Eficiencia: La cantidad de recursos de computadora y de cdigo requerido por el SW para llevar a cabo
sus funciones (HW ms poderoso v/s Algoritmos de Orden n2, n o constante)

1.4 Aplicaciones del Software

Los diferentes tipos de software contemplan:


Software de Sistemas: Software que sirve para otros Software.

Software de Tiempo Real: Software orientado a medir, analizar y controlar sucesos del mundo real,
conforme suceden en la realidad.
Software de Gestin: Software orientado al procesamiento de informacin comercial y administrativo.
(Software transaccional Software de Gestin).
Software Cientfico y de Ingeniera: Software para la astronoma, vulcanologa, biologa molecular, CAD,
CASE, simuladores, fabricacin automtica, etc.
Software Empotrado: Software residente en ROM que se utiliza para controlar productos y sistemas de
los mercados industriales y de consumo: Microondas, automvil, etc.
Software de PC : Procesadores de texto, planillas electrnicas, etc.
Software de IA (Inteligencia Artificial): Sistemas expertos, Sistemas basados en el conocimiento, etc.

1.5 Definiciones de Ingeniera Software

Qu es Software?
1.

Instrucciones, o programas de computador, que cuando se ejecutan proporcionan la funcin y


el comportamiento deseado.

2.

Estructuras de datos que facilitan a los programas manipular adecuadamente la informacin.

3.

Documentos que describen la operacin y el uso de los programas

Software es: 1,2 y 3

1.5 Definiciones de Ingeniera Software

Qu es Ingeniera de Software?
Algunas definiciones:
Es el rea de las ciencias de la computacin que trata con la construccin de sistemas de
software, los cuales son tan grandes y complejos que se construyen con equipos de ingenieros
[Ghezzi].
El establecimiento y uso de principios de ingeniera robustos, orientados a obtener software
econmico que sea fiable y funcione de manera eficiente sobre mquinas reales [Fritz Bauer].
Es un conjunto de tres elementos claves mtodos, herramientas y procedimientos que
facilitan el control del proceso de desarrollo del software para obtener un producto de calidad de
una forma productiva [Pressman].
Aplicacin de un enfoque sistemtico, disciplinado y cuantificable hacia el desarrollo, operacin
y mantenimiento del software; es decir; la aplicacin de ingeniera al software. [IEEE]

1.6 El Porqu de la Ingeniera de software


Qu necesitamos para construir productos de software profesionales?
La clave est en dar un enfoque de ingeniera al desarrollo del SW y, al mismo tiempo, mejorar las tcnicas
y las herramientas en un proceso continuo

Qu significa dar un enfoque de ingeniera?


Significa construir productos de Software:
Basndonos en los principios de la Ingeniera de Software
Aplicando los mtodos adecuados a cada una de las etapas del proceso de desarrollo
Utilizando las herramientas adecuadas, que nos permitirn aplicar los mtodos de manera
correcta

El componente de software cada da es ms crtico

1.6 El Porqu de la Ingeniera de software


Los 10 peores bugs de la Historia
http://www.javiergarzas.com/2010/07/peores-bugs-historia-software.html

1.7 Ciclo de Vida del Software

Proceso, Mtodos y
Herramientas
La ingeniera de software es multicapa, cualquier en enfoque (incluida la ingeniera de software)
debe apoyarse sobre un compromiso de calidad.
El fundamento de la ingeniera de software es la capa de proceso. El proceso es la unin que
mantiene junta las capas de tecnologa que permite el desarrollo racional y oportuno de la
ingeniera de software.

En el proceso se soportan las bases de dla gestin de proyectos de software y establece el


contexto en el que se aplican los mtodos y se obtienen productos de ese trabajo, se establecen
hitos, se establece la calidad y el cambio se gestiona adecuadamente.

1.7 Ciclo de Vida del Software

Proceso, Mtodos y
Herramientas
Los mtodos, indican el cmo construir tcnicamente el software. Los mtodos contemplan
una amplia gama de tareas en las cuales se encuentra: anlisis de requisitos, diseo,
construccin de programas, pruebas y mantenimiento. Los mtodos de la ingeniera de software,
dependen de un conjunto bsico de principios que gobiernan cada rea de la tecnologa e
incluyen actividades de modelado y otras tcnicas descriptivas.

Las herramientas de la ingeniera de software proporcionan un enfoque automtico o semi


automtico para el proceso y para los mtodos. Cuando se integran herramientas para que la
informacin creada por una herramienta la pueda utilizar otra, se establece un sistema de soporte
para el desarrollo de software. Llamado (Ingeniera de software asistida por computador) CASE.

1.7 Ciclo de Vida del Software

Proceso, Mtodos y
Herramientas
Independiente donde se realice ingeniera de software, se debe cuestionar y responder algunas
de las siguientes preguntas:

Cul es el problema a resolver?

Cules son las caractersticas de la entidad que utiliza para resolver el problema.?

Qu enfoque se va a utilizar par ano contemplar los errores que se cometieron en el diseo
y en la construccin de la entidad?
Revisar revista Crosstalk que proporciona algunos consejos y comentario
prcticos de ingeniera de software.
http://www.stsc.hill.af.mil/

1.7 Ciclo de Vida del Software

Proceso, Mtodos y
Herramientas
El trabajo que se realiza en la ingeniera de software, se puede llevar a cabo en 3 grandes fases:

1. Fase de definicin:
Se centra sobre el qu, es decir, identifica qu informacin ha de ser procesada, que
funcin y/o rendimiento se desea, el comportamiento del sistema, qu interfaces van a ser
desarrolladas, qu restricciones de diseo, qu criterios de validacin se utilizarn para saber
si el software es correcto o no.
2. Fase de desarrollo:
Se centra en el cmo, es decir, cmo se han de disear estructuras de datos, como se ha
de implementar la arquitectura de software, los procedimiento, los mtodos, como se traduce
el diseo en un lenguaje de programacin, cmo se van a realizar las pruebas.
3. Fase de mantenimiento:
Se centra en el cambio que va asociado a los errores , a las adaptaciones requeridas a
medida que el entorno va evolucionando. Existen cuatro tipos de cambios.
a)

Correctivo

b)

Adaptativo

c)

Mejora

d)

Prevencin

1.7 Ciclo de Vida del Software

El Proceso de Software

Marco de Trabajo
Actividades del Marco de trabajo
Conjunto de Tareas
Tareas
Hitos, entregas
SQA

El proceso establece un marco comn de trabajo, donde se definen actividades que son
aplicables a todos los proyectos de software independiente del tamao o complejidad.
Tambin existe un conjunto de tareas, donde cada una es una coleccin de tareas de trabajo,
hitos de proyecto, producto de trabajo, puntos de garanta de calidad entre otros.

1.7 Ciclo de Vida del Software

El Proceso de Software
El proceso establece un marco comn de trabajo, donde se definen actividades que son
aplicables a todos los proyectos de software independiente del tamao o complejidad.
Tambin existe un conjunto de tareas, donde cada una es una coleccin de tareas de trabajo,
hitos de proyecto, producto de trabajo, puntos de garanta de calidad entre otros.

You might also like