Está en la página 1de 25

UNIVERSIDAD ALAS PERUANAS

CURSO : DESARROLLO DE SISTEMAS CONTABLES I

CLASE 1 : INGENIERIA DEL SOFTWARE


DOCENTE : JUAN ALBERTO SEMINARIO M.

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.

Estado del arte en Ing. De Software

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.

Construccin de una casa para fido

Puede hacerlo una sola persona Requiere: Modelado mnimo Proceso simple Herramientas simples

Construccin de una casa

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)

Calidad: Ej: CMM

Capability Maturity Model

Herramientas

Proceso

(Ej: Rational Rose)

(Metodologas Ej: ITIL, Extreme Programming, RUP: Rational Unified Process, Personal Software Process)

Abstraccin - Modelado Visual (MV)


El modelado captura las partes esenciales del sistema
Orden Item

envo

Proceso de Negocios
Sistema Computacional

Notacin (Visual) - Beneficios


Manejar la complejidad

Interfaz de Usuario (Visual Basic, Java, ..)

Lgica del Negocio (C++, Java, ..)

Mltiples Sistemas

Servidor de BDs (C++ & SQL, ..)

Modelar el sistema independientemente del lenguaje de implementacin

Componentes Reutilizados

Promover la Reutilizacin

Por qu la Orientacin a Objetos?

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

El proceso de desarrollo Completo

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

Al desarrollo es a lo que normalmente se le da ms nfasis en la literatura.

Qu es un Proceso de Desarrollo de SW?


Sueo

Investigacin Desarrollo Lanzamiento Soporte

Tiempo Define Quin debe hacer Qu, Cundo y Cmo debe hacerlo
Sistema nuevo o modificado

Requisitos nuevos o modificados

Proceso de Desarrollo de Software

No existe un proceso de software universal. Las caractersticas de cada proyecto (equipo de desarrollo, recursos, etc.) exigen que el proceso sea configurable.

reas cubiertas por la Ing. de Solftware

La ingeniera de Software estudia todos los aspectos

involucrados en el desarrollo de software, entre los


cuales se encuentran:

Etapas de un Proyecto de Software

Paradigmas/enfoques para enfrentar el desarrollo de


proyectos de software (Cascada, incremental e interactivo) Tiempos y costos

Aspectos tecnolgicos
Gestin de Proyectos

Etapas de un Proyecto de Software

Etapas/Hitos esenciales requeridos en un proyecto de

desarrollo de software:

Oportunidad de Negocio Levantamiento inicial de Requerimientos (Domino del

problema)

Entendimiento inicial del problema a resolver Reuniones con clientes

Especificacin inicial de requerimientos

Ms ....

Etapas de un Proyecto de Software

Confeccin de la propuesta

Estimacin de esfuerzo y planificacin del proyecto. Uso de


tcnicas y estadsticas de proyectos similares, entrevistas a personas con experiencia en proyectos similares. Definicin del alcance del proyecto Costos

Anlisis OO (Dominio del problema)

Casos de Uso : Anlisis dinmico Modelos Conceptuales: Anlisis esttico Diseo preliminar de Interfaces Grficas (WEB, etc)

Etapas de un proyecto de Software (cont)

Arquitectura de la solucin

Especificacin de la tecnologa a utilizar (J2SE, J2EE)


Especificacin de Patrones de Diseo

Diseo (Dominio de la solucin)

Diseo de interfaces grficas (WEB, GUI, comandos,


voz) Realizacin de diagramas de secuencia

Realizacin de diagramas de clases

Etapas de un proyecto de Software (cont)

Construccin / Codificacin / Implementacin

Entendimiento real del diseo (solucin) a programar


Programacin eficiente (y ptima) del cdigo fuente. Comentar en forma entendible y razonable el cdigo

fuente.

Construccin de programas de Tests Prueba unitaria del desarrollador mediante un programa

de Test

Etapas de un proyecto de Software (cont)


Pruebas Unitarias:Realizar las pruebas unitarias

Pruebas de Integracin: Realizar las pruebas de


integracin Capacitar a Usuarios

Confeccin de manuales de Usuario


Reuniones con usuario final

Puesta en Produccin

Confeccin de plan de puesta en produccin

Marcha Blanca Garanta: Resolucin de Incidencias

Planificar y Evaluar Proyectos ...


Podr cumplir con los plazos? Estar dentro de lo presupuestado? El cliente quedar satisfecho?

Las Metodologas pueden ser la ayuda que necesitamos, si podemos usarlas correctamente !!

Procesos, Metodologas

Qu es una Metodologa ...

Las metodologas imponen un proceso disciplinado sobre el desarrollo de software con el fin de hacerlo ms predecible y eficiente.

Algunas Metodologas ...


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.