Definiciones
(1993) La aplicacin mecanismos sistemticos, disciplinados, y cuantificables para el desarrollo, operacin y mantencin de software; esto es la aplicacin de la ingeniera al software. Establecimiento y uso de principios con caracteres de ingeniera apropiados para obtener, eficientemente, software confiable, que opere eficaz y eficientemente en mquinas reales La aplicacin del arte del desarrollo software junto con las ciencias matemticas y computadores para disear, construir, y mantener programas computacionales eficientes y econmicos que logran sus objetivos.
Es una ciencia rigurosa con fuertes fundamentos matemticos? Es una campo tcnico bien desarrollado con mucho de disciplina de ingeniera? O est realmente en un estado primitivo... A lo ms una serie de mejores prcticas, desarrolladores de software construyen software y si stos funcionan entonces nosotros estudiamos cmo ellos lo hicieron. Si stos funcionan por un largo tiempo entonces estudiamos sus procesos de software aun ms cuidadosamente.
Puede hacerlo una sola persona Requiere: Modelado mnimo Proceso simple Herramientas simples
Construida eficientemente y en un tiempo razonable por un equipo Requiere: Modelado Proceso bien definido Herramientas ms sofisticadas
Construccin de un rascacielos
Claves en Desarrollo de IS
Notacin
(UML)
Herramientas
Proceso
(Metodologas Ej: ITIL, Extreme Programming, RUP: Rational Unified Process, Personal Software Process)
envo
Proceso de Negocios
Sistema Computacional
Mltiples Sistemas
Componentes Reutilizados
Promover la Reutilizacin
Por su proximidad de los conceptos de modelado respecto de las entidades del mundo real Mejora la captura y validacin de requisitos Acerca el espacio del problema y el espacio de la solucin Modelado integrado de propiedades estticas y dinmicas del mbito del problema Facilita construccin, mantenimiento y reutilizacin Podramos dar muchas razones pero hay problemas.
Problemas en OO
... Los conceptos bsicos de la OO se conocen desde hace dos dcadas, pero su aceptacin todava no est tan extendida como los beneficios que esta tecnologa puede sugerir
Problemas en OO
Un objeto contiene datos y operaciones que manipulan los datos, pero ... Podemos distinguir dos tipos de objetos degenerados: Un objeto sin datos (que sera lo mismo que una biblioteca de funciones). Si los mtodos son estticos, peor aun. Un objeto sin operaciones, con slo atributos lo que permitira crear, recuperar, actualizar y borrar su estado (que se correspondera con las estructuras de datos tradicionales) Un sistema construido con objetos degenerados no es un sistema verdaderamente orientado a objetos
Proceso de Desarrollo de SW
Se da en un contexto y dependiendo el texto o investigador destaca ms o menos etapas. El ms completo que he visto incluye:
Sueo
Investigacin
Desarrollo
Lanzamiento Soporte
Tiempo
Tiempo Define Quin debe hacer Qu, Cundo y Cmo debe hacerlo
Sistema nuevo o modificado
No existe un proceso de software universal. Las caractersticas de cada proyecto (equipo de desarrollo, recursos, etc.) exigen que el proceso sea configurable.
Aspectos tecnolgicos
Gestin de Proyectos
desarrollo de software:
problema)
Ms ....
Confeccin de la propuesta
Casos de Uso : Anlisis dinmico Modelos Conceptuales: Anlisis esttico Diseo preliminar de Interfaces Grficas (WEB, etc)
Arquitectura de la solucin
fuente.
de Test
Puesta en Produccin
Las Metodologas pueden ser la ayuda que necesitamos, si podemos usarlas correctamente !!
Procesos, Metodologas
Las metodologas imponen un proceso disciplinado sobre el desarrollo de software con el fin de hacerlo ms predecible y eficiente.
Personal Software Process y Team software Process XP (Programacin Extrema) RUP (Rational Unified Process) La familia Cristal de Cockburn Cdigo Abierto ASD (Desarrollo de Software Adaptable) SCRUM FFD (Desarrollo Manejado por Rasgos) DSDM (Mtodo de desarrollo de sistema dinmico)
Yo no conozco todas, pero vale la pena conocer al menos una. Aquellas en rojo son populares.