Está en la página 1de 41

Qu es la Ingeniera de Software

Surgimiento Definiciones Solucin de Problemas Relacin con otras disciplinas El Software en la sociedad actual Etica y Responsabilidad Calidad del Software Participantes en el Desarrollo Ingeniera de Software e Ingeniera de Sistemas Cambios y Tendencias

Jan-14

Ing. de Software

Qu es la Ing. de Sw - 1

Surgimiento
En los comienzos:
el programador era el usuario los problemas a resolver bien conocidos y simples

Desarrollo de las computadoras:


aparece la figura del programador especializado la mayor potencia de los equipos permite atacar problemas ms complejos Se habla de la Crisis del Software

El trmino Ing. de Software aparece por 1ra. vez en 1968


Jan-14 Ing. de Software Qu es la Ing. de Sw - 2

Definiciones
Software: Programas de computador, procedimientos, y la documentacin y los datos posiblemente asociados relacionados con la operacin de un sistema de computador - IEEE 90. ...(el ingeniero) aplica el mtodo y enfoque cientfico a la solucin de problemas... Ingeniera de Software:(1)aplicacin de un enfoque sistemtico, disciplinado y cuantificable al desarrollo, operacin y mantenimiento de software, esto es, la aplicacin de la ingeniera al software (2)El estudio de enfoques como en (1) - IEEE 90.

Jan-14

Ing. de Software

Qu es la Ing. de Sw - 3

Solucin de Problemas
Solucionar un problema complejo
Anlisis (en subproblemas ms simples) Sntesis de una solucin al problema a partir de las soluciones a los subproblemas

Recurriendo a:
Tcnicas, Mtodos Herramientas (mejorar resultado o eficiencia) Procedimientos (combinan mtodos y herramientas) Paradigmas (estilo de la solucin)
Jan-14 Ing. de Software Qu es la Ing. de Sw - 4

Definiciones
Tcnica
Procedimiento tcnico para construir o evaluar software que requiere habilidades y produce un resultado tcnico, p.e. probar, codificar, etc.

Mtodo

Herramienta

Es un procedimiento para gestionar la aplicacin de tcnicas de software (cundo y cmo aplicar, cundo comenzar y terminar, qu tcnica es apropiada, cmo evaluarla), p.e. plan de prueba, recopilar requerimientos Producto de software que facilita la ejecucin de una tcnica o mtodo
Combinacin de mtodos, tcnicas y herramientas Filtro conceptual que determina cmo percibimos/interpretamos
Ing. de Software Qu es la Ing. de Sw - 5

Procedimiento Paradigma
Jan-14

Relacin con otras disciplinas


Ciencias de la Computacin aporta:
Teoras Funciones de Computadoras

Cliente trae:
Problema

Ingeniera de Software (2) desarrolla:


Mtodos,Herramientas, Procedimientos, Paradigmas para resolver problemas

Ingeniera de Software (1) resuelve problemas


Jan-14 Ing. de Software Qu es la Ing. de Sw - 6

Ciencias de la Computacin

Cliente

Teoras

Funciones de las Computadoras

Problema

Ingeniera de Software (2)

Ingeniera de Software (1)

Herramientas y Tcnicas para resolver problemas


Jan-14 Ing. de Software

Solucin
Qu es la Ing. de Sw - 7

Relacin con otras disciplinas


Programacin -Programa-Producto-Sistema
Un programa x3 Un sistema de programas

x3

Multiplicacin de esfuerzo

x3

Un producto de software x3

Un producto sistema de programas

Ingeniera: Construccin de artefactos cumpliendo con restricciones Arte ms que Ciencia (hacer ms que saber) Plazo, Costo, Calidad, Otras Administracin Proyectos, Recursos Humanos
Jan-14 Ing. de Software Qu es la Ing. de Sw - 8

Software en la Sociedad Actual


Dnde no est presente? Energa Comunicaciones Automviles Electrodomsticos Equipos mdicos ... Crisis del Software?
Jan-14 Ing. de Software Qu es la Ing. de Sw - 9

Etica y Responsabilidad
Repercusiones de fallas en el software:
prdidas financieras riesgo a la seguridad ...

Ms all de las fallas:


Impacto social Calidad de vida Cuestiones legales

Jan-14

Ing. de Software

Qu es la Ing. de Sw - 10

Ing. de SW una profesin?


SWEBOK IEEE 2004
Software Engineering Body of Knowledge

Cdigo de tica ACM IEEE-CS


En su versin corta establece

Jan-14

Ing. de Software

Qu es la Ing. de Sw - 11

Los ingenieros de software


actuarn en forma congruente con el inters social actuarn de manera que se concilien los mejores intereses de sus clientes y empresarios, congruentemente con el inters social asegurarn que sus productos y modificaciones correspondientes cumplen los estndares profesionales ms altos posibles mantendrn integridad e independencia en su juicio profesional gerentes y lderes promovern y se suscribirn a un enfoque tico en la administracin del desarrollo y mantenimiento de software incrementarn la integridad y reputacin de la profesin congruentemente con el inters social apoyarn y sern justos con sus colegas participarn toda su vida en el aprendizaje relacionado con la prctica de su profesin y promovern un enfoque tico en la prctica de la profesin
Jan-14 Ing. de Software Qu es la Ing. de Sw - 12

Calidad
Problemas:
Plazo Costo respecto a presupuesto Utilidad Requerimientos oscuros o cambiantes Fallas Rigidez Alto costo de mantenimiento Riesgos
Jan-14 Ing. de Software Qu es la Ing. de Sw - 13

Calidad (falta-falla)

puede generar

que puede generar

?!
una falla (externa)

un error humano

una falta (interna)

Jan-14

Ing. de Software

Qu es la Ing. de Sw - 14

Calidad - Visiones
Qu es la Calidad? Visin:
Trascendente -se reconoce pero no se puede definir del Usuario - adecuacin al uso del Productor- adecuacin a las especificaciones del Producto - caractersticas especficas
comportamiento externo (visible para todos) caractersticas internas (normalmente slo visibles al productor)

basada en el Valor - cunto estara dispuesto a pagar


Jan-14 Ing. de Software Qu es la Ing. de Sw - 15

Calidad - Visiones(2)
Usuario:
satisfacer necesidades/expectativas (utilidad,tiempo de respuesta) esfuerzo necesario (facilidades de aprendizaje y uso) sin inconvenientes (frecuencia e impacto de fallas)

Implementador:
cantidad y tipo de faltas facilidad de entender bajo impacto de las modificaciones

Jan-14

Ing. de Software

Qu es la Ing. de Sw - 16

Correctness Reliability Efficiency Integrity Usability Maintainability Testability Flexibility

Portability
Reusability

Interoperability Jan-14

Ing. de Software

Traceability Completeness Consistency Accuracy Error tolerance Execution efficiency Storage efficiency Access control Access audit Operability Training Communicativeness Simplicity Conciseness Instrumentation Self-descriptiveness Expandability Generality Modularity Software system independen Machine independence Communications commonal Qu es la Ing. de Sw - 17 Data Commonality

Calidad - Visiones (4)


segn la visibilidad:
factores externos (visibles a todos) factores internos (visibles a los implementadores)

atinentes al:
Producto (una vez que el producto ya existe) Proceso de Produccin (mientras se produce)

Qu relacin habr entre


factores internos y externos? factores del proceso y del producto?

Jan-14

Ing. de Software

Qu es la Ing. de Sw - 18

Calidad - Visiones(5)
En el contexto del Negocio
Valor Tcnico - Valor para el Negocio

Retorno de la Inversin (Negocio)


Perodo de Repago Tasa de Retorno Valor Actual de los Flujos de Caja

Retorno de la Inversin (Software)


Factores de Costo, Beneficios

Jan-14

Ing. de Software

Qu es la Ing. de Sw - 19

Calidad - Valor para el negocio


Facilities Software costs Hardware costs Materials General Assessments SCE costs IR&D Process Documentation Quality group Software process group General 0% 10% 30% 20% 40% % de entrevistas 50% 60% 70% Dlares

Jan-14

Esfuerzo

Disparidad de factores considerados en la definicin de ROI en SW entre gobierno de US y sus proveedores


Ing. de Software Qu es la Ing. de Sw - 20

Quines participan
Desarrollo a Medida
Cliente (solicita) Desarrollador construye Usuario

COTS (Commercial Off The Shelf) Desarrollador subcontrata parte Producto llave en mano Personalizacin Integracin
Ing. de Software Qu es la Ing. de Sw - 21

Jan-14

CLIENTE

Patrocina el desarrollo del sistema

$$$, necesidades DESARROLLADOR Construye el sistema

USUARIO Usa el sistema

Obligacin contractual

Necesidades

Sistema de software
Jan-14 Ing. de Software Qu es la Ing. de Sw - 22

Jan-14

Ing. de Software

Qu es la Ing. de Sw - 23

Anlisis y Definicin de Requerimientos

Analista Diseador Programador Roles de los Desarrolladores

Paso en el Desarrollo de Software

Diseo del Sistema Diseo del programa Implementacin del programa Prueba Unitaria Prueba de Integracin Prueba del Sistema Liberacin del Sistema

Tester

Capacitador
Jan-14

Mantenimiento

Ing. de Software

Qu es la Ing. de Sw - 24

Ing.Software y de Sistemas
El Software como componente de un sistema:
Hardware Software Personas

Sistema
Lmite Interaccin con el exterior Componentes y sus relaciones

Jan-14

Ing. de Software

Qu es la Ing. de Sw - 25

Sistema de Informes Sistema de Administracin de los datos Sistema de Comunicacin de ubicaciones remotas a central Sistema de clculo de los datos remotos Sistema de recopilacin de datos remotos

Jan-14

Ing. de Software

Qu es la Ing. de Sw - 26

Cambios y Tendencias
Tecnologa de Objetos Problemas con Modelo en Cascada

CAMBIOS EN INGENIERIA DE Desktop computing SOFTWARE

Tiempo para salir al mercado

Inversin de relacin de costo entre HW y SW


Jan-14

Interfaces Grficas
Ing. de Software

Interconexin en Redes
Qu es la Ing. de Sw - 27

Cambios y Tendencias
Nociones Fundamentales:
Abstraccin Mtodos y Notaciones para Anlisis y Diseo Prototipacin Arquitectura del Software Proceso de Software Reuso Mediciones Herramientas y Ambientes Integrados
Jan-14 Ing. de Software Qu es la Ing. de Sw - 28

Abstraccin
es una decripcin del problema a cierto nivel de generalizacin que permite concentrarnos en los aspectos esenciales del problema sin preocuparnos de detalles. Identificar clases de objetos que permiten agrupar elementos Formar jerarquas

Jan-14

Ing. de Software

Qu es la Ing. de Sw - 29

Abstraccin
Dispositivo elctrico

Sensor

Sensor de Agua

Sensor de Aire

Jan-14

Ing. de Software

Qu es la Ing. de Sw - 30

Mtodos de Notacin Anlisis y Diseo

Construir Modelos y verificar completitud y consistencia Usar notacin estndar para ayudarnos a comunicar y documentar las decisiones

Jan-14

Ing. de Software

Qu es la Ing. de Sw - 31

Prototipos
Construir una pequea versin de un sistema para
ayudar al usuario y al cliente a identificar los requerimientos clave demostrar la factibilidad de un diseo o enfoque

El usuario se siente cmodo con la apariencia y forma de interaccin?


Jan-14 Ing. de Software Qu es la Ing. de Sw - 32

Arquitectura
La arquitectura de un sistema lo describe en trminos de un conjunto de unidades arquitectnicas y de cmo esas unidades se relacionan entre s Existen distintos estilos arquitectnicos y distintos enfoques para identificar las unidades arquitectnicas

Jan-14

Ing. de Software

Qu es la Ing. de Sw - 33

Arquitectura- cmo descomponer


a partir de las funciones: asignar funciones a mdulos orientada a los datos: a partir de las estructuras de datos externas orientada a eventos diseo de afuera hacia adentro: basada en las entradas del usuario al sistema diseo orientado a objetos: basado en identificar clases de objetos y sus interrelaciones
Jan-14 Ing. de Software Qu es la Ing. de Sw - 34

Proceso
Proceso de desarrollar software (organizacin y disciplina en las actividades) contribuir a la calidad del software y a la velocidad con la que se desarrolla

Jan-14

Ing. de Software

Qu es la Ing. de Sw - 35

Desarrollo Controlado

Proceso- especificidad
Aplicaciones para toda la empresa o divisin Aplicaciones Departamentales
Mision -critica Multi -usuario Multi -plataforma 2- 3-capas Visin/Alcance limitados Riesgo bajo/medio mono/ multi -plataforma 1-2-capas

Desarrollo Rpido de aplicaciones


Jan-14

Mono-usuario, herramientas para PC de escritorio

Paquetes/desarrollo minimo Bajo costo/bajo riesgo plataforma nica


Qu es la Ing. de Sw - 36

Ing. de Software

Reuso
Sacar partido de los elementos comunes entre aplicaciones reutilizando elementos de desarrollos previos Componentes Reusables como bienes de activo del negocio

Jan-14

Ing. de Software

Qu es la Ing. de Sw - 37

Mediciones
Cuantificando dnde estamos y lo que podemos, describimos nuestras acciones y sus resultados en un lenguaje matemtico comn que nos permite evaluar nuestro progreso.

Jan-14

Ing. de Software

Qu es la Ing. de Sw - 38

Herramientas y Ambientes Integrados


Utilizar herramientas para mejorar el desarrollo de software, ayudan en:
anlisis y diseo registrar el avance depurar programas probar programas

Jan-14

Ing. de Software

Qu es la Ing. de Sw - 39

Preguntas
Brinde al menos una definicin de Ing. de software (IS) Cuntos aos tiene como disciplina? Con qu otras disciplinas est relacionada? Qu se entiende por crisis del software? Cmo afecta a la IS que el software est presente en las ms diversas reas? Qu implicancias tiene sobre la tica y responsabilidad? Qu relacin tiene la IS con cuestiones legales?
Jan-14 Ing. de Software Qu es la Ing. de Sw - 40

Preguntas (2)
Cul es la diferencia entre falta (o defecto) y una falla del software? Cundo es posible evaluar los factores de calidad externos de un producto de software? Qu problemas plantea la evaluacin de los factores de calidad externos durante el proceso de desarrollo? Qu nociones fundamentales han persistido?

Jan-14

Ing. de Software

Qu es la Ing. de Sw - 41