Date post: | 05-Apr-2017 |
Category: |
Engineering |
Upload: | edwinlemmon |
View: | 62 times |
Download: | 0 times |
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
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
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