39
Tema 1: Ingeniería del Software y Control de Proyectos. Conceptos Básicos Prof. Ing. Carlos Guevara, Msc UNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA COORDINACIÓN GENERAL DE INVESTIGACIÓN Y POSTGRADO MAESTRIA EN CIENCIAS DE LA COMPUTACIÓN

Conceptos Básicos de Ingeniería del Software y Control de Proyectos

Embed Size (px)

Citation preview

Tema 1: Ingeniería del Software y

Control de Proyectos.

Conceptos Básicos

Prof. Ing. Carlos Guevara, Msc

UNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA

COORDINACIÓN GENERAL DE INVESTIGACIÓN Y POSTGRADO

MAESTRIA EN CIENCIAS DE LA COMPUTACIÓN

1. Introducción.

2. Conceptos básicos

3. Ingeniería del Software.

Definición

Contexto

Programación y Software

Capas

4. Sistemas de Información

5. Proyectos

6. Gestión de Proyectos

7. Gestión de Proyectos de Software

La Ingeniería del Software y Control de Proyectos

Introducción

Tomado de Parraguez, Pedro (s/f)

http://issuu.com/parraguezr/docs/gestiondelconocimientoclase1

ENIAC (1946).

Primera computadora electrónica

Medía 2.40 de ancho por 30 metros

de largo y pesaba 80 toneladas.

MARK I (1944).

La Calculadora Automática de Control Secuencial

Primera máquina capaz de ejecutar largas operaciones en

forma automática.

Medía 15 metros de largo, 2.40 m. de altura y pesaba 5 ton.

UNIVAC I (1951).

Primera computadora electrónica comercial

Introducción

Introducción

1958: Primer Circuito Integrado. incorporación

comercial mediados de los 60´s

1971: Primer microprocesador - Intel 4004 tenía unos 2000

transistores

2007: Nano tecnología

Evolución Tecnológica

Introducción

Elaboración Carlos Guevara (2010)

Microprocesadores

2 5 29 275 1.180 7.50042.000

291.000

731.000

1.170.000

0

200.000

400.000

600.000

800.000

1.000.000

1.200.000

1.400.000

1971 1974 1978 1985 1989 1997 2000 2006 2008 2010

Nro DE TRANSISTORES (en miles)

PROCESADOR

Nro de transistores

(miles)

1971 Intel 4004 2

1979 intel 8080 5

1984 intel 8086 29

1985 Intel 386 270

1989 Intel 80486, RISC I860 1.000

1997 Pentium MMX 4.500

2000 Pentium IV 42.000

2006 Intel Core Duo 64 Bits 291.000

2008 Intel Core i7 731.000

2010 Seis núcleos Core i7 1.170.000

Introducción

2008: mas de 1.000 millones

Rata de crecimiento aprox. 12%

Estimación 2014: Mas de 2.000 millones

Uso de PC en el mundo

Ventas de PC en el mundo en los últimos años

2007: 271 millones

2008: 292 millones

2009: 306 millones

Estimación 2010: 366 millones

Fuente: Gartner

Introducción

Evolución de costos Hardware vs Software

1948-1960

1960-1990

Introducción

The Bureau of Labor Statistics.

http://www.freeby50.com/2009/04/cost-of-computers-over-time.html

Indice de precios de computadoras y periféricos 1998 - 2010

1998 - 2003: ↓ 20% anual2003 - 2009: ↓ 11% anual

• La Computadora (UNIVAC I - Década de los 50)

• Las Tecnologías de Información y ComunicacionesLa Tecnología

• ↑ Producción de conocimiento

• → Información DigitalEl Conocimiento

• 2009 Aprox. 0,8 ZB

• 2020 Aprox. 35 ZB (Fuente IDC) Almacenamiento ↑ 44 veces

ZB: 1 trillón GB

De interés

Introducción

Introducción

Pressman (2005)

Complejidad del Software

Desarrollo

indisciplinado

Mediados 1960: circuitos integrados

↑ Producción computadores↑ Uso computadores↑ Demanda de Software↑ Complejidad de Software

Crisis del Software

(Dijkstra, 1965)

Introducción

Qué Hacer?

Aplicar principios de Ingeniería en laconstrucción del SW

Ingeniería del Software

Propuesto por Fritz Bauer en 1eraconferencia sobre desarrollo desoftware Garmisch, Alemania, 1968

Ingeniería

Es el estudio y la aplicación por especialistas de las diversas ramas de la

tecnología. (DRAE)

La ingeniería implica el uso de tecnología, la aplicación de técnicas, diseños,

modelos, herramientas, conocimientos de la ciencia y de la invención para

resolver problemas prácticos

Conjunto de conocimientos y técnicas cuya aplicación permite la utilización

racional de los materiales y de los recursos naturales, mediante invenciones,

construcciones u otras realizaciones provechosas para el hombre.

(RACEFN de España)

• En un principio asociada a actividades militares.

• Como disciplina o profesión moderna, muchos la ubican a partir de la

revolución industrial (vinculación hombre-máquina).

• Etimológicamente, varias raíces:

o Del inglés engine'er, personas que operaban los engine (máquinas

militares).

o Engine viene del latín ingenum, que en castellano derivó como ingenio

Origen

Definición

Conjunto de conocimientos técnicos, ordenados científicamente, que permiten diseñar y crear

bienes o servicios que facilitan la adaptación al medio y satisfacen las necesidades de las

personas.

Es el conjunto organizado de conocimientos científicos y empíricos para su empleo en la

producción, comercialización y uso de bienes y servicios (Bid-Secab-Cinda)

Es el conjunto de elementos técnicos, herramientas, y procedimientos específicos mediante los

cuales se pueden realizar con eficiencia y eficacia un arte, una especialidad o una actividad

productiva (Muñuz, C.)

Es la repercusión que tienen los cambios que va sufriendo el conjunto de elementos,

procedimientos y herramientas técnicas mediante los cuales se realizan las actividades de la

empresa.

Se refiere a los medios usados para producir, vender o usar un producto o servicio.

Palabra de origen griego, formada por:

téchnē, "arte, técnica u oficio“ y logos (ciencia, conocimiento, el estudio de algo).

En la sociedad, la tecnología es consecuencia de la ciencia y la ingeniería,

Tecnología

Software

“El software es casi ineludible en un mundo moderno.

A medida que nos adentremos en el siglo XXI, será el

que nos conduzca a nuevos avances en todo, desde la

educación elemental a la ingeniería genética.”

(Pressman, 2005)

• Software es el conjunto de los programas de cómputo, procedimientos,

reglas, documentación y datos asociados que forman parte de las

operaciones de un sistema de computación. (IEEE, Std. 729)

• Software de computadora es el producto que diseñan y construyen los

ingenieros de software. Este abarca programas, documentos y datos,

(Pressman, 2005)

Software

Software

Características

Abstracto, intangible

Lógico, no físico

Se construye, no se fabrica

No se consume, se desactualiza

Depende de las personas

Ingeniería del Software

Definiciones

Es el estudio de los principios y metodologías para desarrollo y

mantenimiento de sistemas de software. (Zelkovitz, 1978)

Es el establecimiento y uso de principios sólidos de la ingeniería

para obtener económicamente un software confiable y que

funcione de modo eficiente en maquinas reales.

(Bauer, 1972)

Es la aplicación de un enfoque sistemático, disciplinado y

cuantificable al desarrollo operación (funcionamiento) y

mantenimiento del software: es decir, la aplicación de ingeniería

al software. (IEEE, 1993)

Ingeniería del Software

Ingeniería de Software, definiciones, Cont …

Es una disciplina de la ingeniería cuya meta es el desarrollo costeable de

sistemas de software. Comprende todos los aspectos de la producción de

software desde las etapas iniciales de la especificación del sistema hasta el

mantenimiento de este después que se utiliza. (Sommerville, 2004)

Es una disciplina que integra el proceso, los metodos, y las herramientas

para el desarrollo de software de computadora. (Pressman, 2005)

La Ingeniería de Software es una disciplina que aplica elementos de la

ingeniería, utilizando teorías, métodos y herramientas, para el desarrollo

de software de una manera sistemática y disciplinada. (Guevara,2010)

Ingeniería del Software

Tomado de García, Francisco (2008)

http://ocw.usal.es/ensenanzas-tecnicas/ingenieria-del-software/contenidos/Tema0-Sumario-1pp.pdf

CONTEXTO

El software es un producto abstracto e intangible (Sommerville, 2005)

Los procesos del software son complejos y, como todos los procesos

intelectuales y creativos, dependen de las personas que toman decisiones y

juicios (Sommerville, 2005)

… la programación de computadoras es un arte, porque se aplica el

conocimiento acumulado en el mundo, porque requiere habilidad e ingenio …

(Knuth, 1974)

Programación y Software

Ingeniería del Software

Ingeniería del Software

Tom DeMarco en su libro Controlling Software Projects: Management,Measurement, and Estimation, publicado en 1982 afirmó

“You can’t control what you can’t measure.”

… So, how do you manage a project without controllingit? Well, you manage the people and control the timeand money. (DeMarco, 2009)

IEEE Software, Published by the IEEE C omputer Society (2009)

En 2009 DeMarco afirma

“…is that control is an important aspect, maybe the most important, ofany software project (refiriéndose a su anterior libro). But it isn’t. Manyprojects have proceeded without much control but managed to producewonderful products such as GoogleEarth or Wikipedia…”

Ingeniería del Software

Capas de la Ingeniería de Software, Pressman (2005)

“El fundamento de la ingeniería del software es la capa de proceso”

(Pressman, 2005)

“Las nociones fundamentales de procesos y la organización del sistema

son la base de todas éstas técnicas y éstas son la esencia de la ingeniería

del software”. (Sommerville, 2005)

Lo principal es el proceso

SISTEMA

Conjunto de elementos interrelacionados que pretenden satisfacer un fin

(Teoría General de Sistemas)

Sistema de Información

Entrada Salida

Retroalimentación

Proceso

Sistema de Información

CIBERNETICA

La cibernética es una teoría de los sistemas de control basada en la

comunicación (transferencia de información) entre sistema y medio circundante,

y dentro del sistema, y en el control (retroalimentación) del funcionamiento del

sistema en consideración al medio (Norbert Wiener)

Clasificación de los Sistemas

Epistemológicamente

• Reales

• Conceptuales

• Abstractos

Según su ambiente

Abiertos

Cerrados

Según su origen

• Naturales

• Artificiales

SISTEMA DE INFORMACION

es un conjunto de componentes que interaccionan entre sí para alcanzar un fin

determinado, el cual es satisfacer las necesidades de información de dicha

organización. Estos componentes pueden ser personas, datos, actividades o

recursos materiales en general, los cuales procesan la información y la

distribuyen de manera adecuada, buscando satisfacer las necesidades de la

organización.

SISTEMA DE INFORMACION COMPUTACIONAL

Un conjunto u ordenación de elementos organizados para llevar a cabo

algún método, procedimiento o control mediante el procesamiento de

información con el apoyo de la computadora.

Un sistema de información es un conjunto de elementos que interactúan entre sí

con el fin de apoyar las actividades de una empresa o negocio.

Sistema de Información

ELEMENTOS DE UN SISTEMA BASADO EN COMPUTADORAS

Sistema de Información

ELEMENTOS DE UN SISTEMA BASADO EN COMPUTADORAS

Hardware. Los dispositivos electrónicos que proporcionan la capacidad de computación y los

dispositivos electromecánicos (p. ej.: sensores, motores, bombas) que proporcionan las

funciones del mundo exterior.

Software. Los programas de computadora, las estructuras de datos y la documentación asociada,

que sirven para realizar el método lógico, procedimiento o control requerido

Gente (Recursos humanos). Los individuos que son usuarios y operadores del software y del

hardware.

Bases de datos. Una colección grande y organizada de información a la que se accede mediante el

software y que es una parte integral del funcionamiento del sistema.

Documentación. Los manuales, los impresos y otra información descriptiva que explica el uso y/o

la operación del sistema.

Procedimientos. Los pasos que definen el uso específico de cada elemento del sistema o el

contexto procedimiento en que reside el sistema.

Sistema de Información

Gestión de Proyectos de Software

Ciclo de vida de los Sistemas de Información (tradicional)

1.- Análisis del Sistema Actual

2.- Diseño Conceptual del Sistema

3.- Diseño Detallado del Sistema

5.- Pruebas y correcciones

6.- Implantación

7.- Mantenimiento

4.- Programación

Proyecto

Aprox: Un proyecto es un documento en el que se planifican una serie de actividades

de cualquier tipo con el fin de alcanzar determinados resultados y objetivos.

Refinación: Es la ordenación de un conjunto de actividades

interrelacionas entre si, que combinando recursos humanos,

materiales, financieros y técnicos, se realizan con el propósito de

conseguir un determinado objetivo o resultado. Todo proyecto se

realiza dentro de los limites de un presupuesto y un periodo

establecido.

Características :

• Tiene una duración determinada.

• Combina recursos humanos, técnicos, financieros y materiales.

• Tiene que alcanzar productos y resultados, de acuerdo con los objetivos previstos en

su diseño.

Gestión de Proyectos

Aplicación de conocimientos, habilidades, herramientas y técnicas, en el sentido de

concluir actividades que atienden o exceden a las necesidades y expectativas de los

stakeholder (usuarios, clientes, equipo de desarrollo, equipo de mantenimiento,

gerente de proyectos, etc) de un proyecto

Procesos o etapas del Proyecto

1.- Inicialización

2.- Ejecución

3.- Finalización

Planificación

Estimación

Organización

Supervisión

Control

Evaluación (pre, in, post)

Entrega y Cierre

Gestión de Proyectos

Conjunto de operaciones que se realizan para dirigir y administrar un negocio o una

empresa

Gestión

Elementos básicos de la Gestión

Planificación

Coordinación

Organización

Supervisión

Control

Gestión de Proyectos

Areas básicas propuestas por el Project Management Institute (PMI)

Integración del proyecto (coordinación),

Gestión de alcance

Gestión de plazos

Gestión de costos

Gestión de calidad

Gestión de recurso humano

Gestión de comunicaciones

Gestión de riesgos

Gestión de adquisición.

Gestión Proceso de Software

Un proceso de software es un conjunto de actividades y resultados asociados que

producen como producto un software

Diferentes, metodologías, paradigmas y modelos

Actividades Fundamentales

• Especificación del Software

• Desarrollo del Software

• Validación del software

• Evalución del Software

Proceso de Software

Gestión de Proyectos de Software

Características de un Proyecto de Software

1.- Invisibilidad

2.- Complejidad

3.- Flexibilidad

La invisibilidad del producto final hace difícil medir

el progreso de un proyecto

la complejidad del desarrollo es superior a la de

otros productos de ingeniería

la flexibilidad del producto debe facilitar los

cambios que usualmente se introducirán en la vida

del software

(Bob Hughes; Mike Cotterell y otros,). Revista Gerencia Tecnológica Informática (2003)

Gestión de Proyectos de Software

Fases del desarrollo de Sistemas. Metodología de Kendall & Kendall

1.- Identificación de los problemas, oportunidades y objetivos

2.- Determinación de requerimientos de información

3.- Análisis de las necesidades del sistema

5.- Desarrollo del sistema

6.- Pruebas y mantenimiento del sistema

7.- Implantación y evaluación del sistema

4.- Diseño del sistema recomendado

Gestión de Proyectos de Software

Areas de la Gestión de Proyectos de Software

Maria Segura, María y Villamizar. Luis (2003). Tomado de Revista Gerencia Tecnológica Informática (2003)

Gestión de Proyectos de Software

Factores determinantes de la gestión de proyectos de software

Maria Segura, María y Villamizar. Luis (2003). Tomado de Revista Gerencia Tecnológica Informática (2003)

1.- Estimación

2.- Planificación

3.- Seguimiento y

control

• Esfuerzo

• Costos

• Plazos

• Alcances, etc.

• Definición de actividades

• Asignación de recursos

• Dirección

• Monitoreo

• Gestión de riesgos

• Innovación

• Gerencia de conflictos.

Gestión de Proyectos de Software

Factores determinantes de la gestión de proyectos de software, cont

Maria Segura, María y Villamizar. Luis (2003). Tomado de Revista Gerencia Tecnológica Informática (2003)

4.- Gestión de

Configuración

5.- Gestión de

Calidad

6.- Gestión de

Personal

• Medición

• Registro

• Control de defectos

• Mejora del proceso.

• Staffing (proveer personal)

• Organización del equipo de trabajo

• Representación

• Formación

• Coordinación.

• Definición y control de línea base

• Manejo de versiones,

• Trazabilidad de elementos de configuración del SW

Gestión de Proyectos de Software

Plan, Programa, Ejes, Proyecto, Actividad y Tarea

Maria Segura, María y Villamizar. Luis (2003). Tomado de Revista Gerencia Tecnológica Informática (2003)

Plan

Programa 1

Programa 2

Programa j

Proyecto 1

Proyecto 2

Proyecto m

Actividad 1

Actividad 2

Actividad n....

Tarea 1

Tarea 2

Tarea k

....

…...

…...

Un eje es cada una de las materias que trata

un plan, programa o proyecto