View
3.631
Download
6
Embed Size (px)
DESCRIPTION
Citation preview
Ingeniería de Sistemas e Informática publicado por.lightning
http://sotfstone.blogspot.com/
características y evolución del software Software
Programas Archivos de configuración Documentación de la estructura del sistema Manuales de instalación y uso Sitios web con información y actualizaciones
TIPOS DE SOFTWARE Productos genéricos
sistemas producidos por una organización y que se venden en el mercado abierto. Ejemplos: sistemas gestores de bases de datos, procesadores de texto, paquetes gráficos,...
Productos personalizados desarrollados específicamente para un cliente aplicaciones de negocio, sistemas de control de tráfico aéreo, control de procesos de
fabricación,... el cliente controla la especificación de la aplicación
Ingeniería de Sistemas e Informática publicado por.lightning
características y evolución del software El software desde una perspectiva industrial
El valor del software: de “elemento añadido” a principal elemento de coste
El desarrollo del software:
Algunas preguntas: ¿Por qué se tarda tanto? (y casi siempre más de lo
previsto) ¿Por qué la productividad es tan baja? ¿Por qué cuesta tanto? ¿Por qué siempre quedan errores sin localizar?
Ingeniería de Sistemas e Informática publicado por.lightning
naturaleza y problemas del desarrollo de software
El software como elemento lógico. Se desarrolla, no se fabrica: Se “deteriora” con el mantenimiento Desarrollo a medida.
La “crisis” del software: problemas que aparecen en el desarrollo del software al desarrollar, mantener y atender la demanda de nuevas aplicaciones.
Ingeniería de Sistemas e Informática publicado por.lightning
Insatisfacción del cliente
Planificación y estimacionesimprecisas
Calidad
Sin tiempo para recogerdatos históricos
Baja productividad
Dificultad de mantenerel software existente
naturaleza y problemas del desarrollo de software
Causas de la crisis del software
Naturaleza lógica del softwareMala gestión de los proyectos ( ausencia de
datos, deficiente comunicación, ...)Ausencia de entrenamiento formal en nuevas
técnicas (programadores vs. ingenieros de software)
Resistencia al cambioMitos del software:
Ingeniería de Sistemas e Informática publicado por.lightning
MITOS DEL CLIENTE
- Requisitos establecidos comouna declaración general de
objetivos- Flexibilidad del software ante
los cambios
MITOS DE GESTIÓN
- Uso de estándares- Uso de herramientas
- Mala planificación: aumentode programadores
MITOS DE LOS DESARROLLADORES
- Programa funcionando = fin del trabajo- Calidad = el programa se ejecuta
sin errores- Entrega al cliente: programa
funcionando
DEFINICION DE INGENIERIA DE SOFTWARELa Ingeniería de Software es una disciplina
de la Ingeniería que concierne a todos los aspectos de la producción de software
Los Ingenieros de Software adoptan un enfoque sistemático para llevar a cabo su trabajo y utilizan las herramientas y técnicas necesarias para resolver el problema planteado, de acuerdo a las restricciones de desarrollo y recursos disponibles.
Ingeniería de Sistemas e Informática publicado por.lightning
DIFERENCIA ENTRE INGENIERÍA DE SOFTWARE Y COMPUTACIÓN
Ingeniería de Sistemas e Informática publicado por.lightning
La computación concierne a la teoría y fundamentos de cualquier sistema de computo, sea de hardware o de software.
La Ingeniería de software concierne solo al desarrollo de sistemas o productos de software.
La Ingeniería de Software todavía esta lejos de ser una ciencia como los son la Química, la Ingeniería Civil o la Electrónica.
CARACTERÍSTICAS DE LOS PRODUCTOS DE SOFTWARE
Ingeniería de Sistemas e Informática publicado por.lightning
Mantenibles. Debe ser posible que el software evolucione y que siga
cumpliendo con sus especificaciones.
Confiabilidad. El software no debe causar danos tangibles o económicos
en el caso de fallos.
Eficiencia. El software no debe desperdiciar los recursos del sistema.
Utilización adecuada. El software debe contar con una interfaz de usuario
adecuada y su documentación.
QUE CONTIENE EL SOFTWARE ?
Ingeniería de Sistemas e Informática publicado por.lightning
El software contiene:Líneas de código de algún lenguaje ?
Instrucciones de computadora.
Descripción de las estructuras de datos.
Algoritmos.
Procedimientos y funciones.
Componentes de software.
QUE TIPOS DE SOFTWARE HAY ?
Ingeniería de Sistemas e Informática publicado por.lightning
Por su estructura:
Funcionales.
Orientados a objetos.
Orientados a listas.
Orientados a componentes.
Por su función:
Programas o Sistemas de Usuario
Interfaces Hombre-Maquina.
Herramientas de Software.
Librerías.
Sistemas de uso genérico: Compiladores, S.O’s, Procesadores de Texto, etc.
Bases de Datos.
Sistemas basados en Web.
INGENIERÍA DEL SOFTWARE ORIENTADA A OBJETOS
Ingeniería de Sistemas e Informática publicado por.lightning
La Programación Orientada a Objetos (OOP por sus siglas en inglés de Object Oriented Programming) como paradigma, "es una forma de pensar, una filosofía, de la cual surge una cultura nueva que incorpora técnicas y metodologías diferentes
La Programación Orientada a Objetos desde el punto de vista computacional "es un método de implementación en el cuál los programas son organizados como grupos cooperativos de objetos, cada uno de los cuales representa una instancia de alguna clase, y estas clases, todas son miembros de una jerarquía de clases unidas vía relaciones de herencia"
Programación Orientada a Objetos
La OO se basa en tres principios básicos: todo son objetos, encapsulamiento / ocultación y herencia / polimorfismo.El primer principio indica la unidad básica de trabajo. El segundo permite englobar en un mismo concepto a los datos y a las operaciones. El tercero permite agrupar y tratar de igual forma a objetos similares.
Análisis y Diseño Orientado a objetos
Ingeniería de Sistemas e Informática publicado por.lightning
Análisis Orientado a Objetos
(OOA por sus siglas en inglés de Object Oriented Analysis) "es un método de análisis que examina los requerimientos desde la perspectiva de las clases y objetos encontrados en el vocabulario de del dominio del problema" .
Diseño Orientado a Objetos
es un método de diseño abarcando el proceso de descomposición orientado a objetos y una notación para representar ambos modelos lógico y físico tal como los modelos estáticos y dinámicos del sistema bajo diseño
EL MODELADO
Ingeniería de Sistemas e Informática publicado por.lightning
Por un lado el Análisis y Diseño (OOAD) y por otro Programación (POO).Se recalcaba la necesidad de usar lenguajes de modelado para desarrollar proyectos:OOSE, OMT-2, Booch’93 o UML. Este último, fruto de la fusión y de mejoras de los anteriores, aún estaba en proceso de desarrollo en Rational (compañía integrada enIBM hoy en día).
Aun con la cotidianeidad del paradigma orientado a objetos, muchos informáticos sumergidos en un mar de siglas se realizan la siguiente pregunta:“Pues muy bien, ya sé UML... ¿y ahora qué?”
El Modelado es una técnica de ingeniería probada y bien aceptada.
Un modelo es una abstracción del sistema, especificando el sistema desde un cierto punto de vista y en un determinado nivel de abstracción
Un modelo es una simplificación de la realidad.
UNIFIED MODELING LANGUAJE (UML)
Ingeniería de Sistemas e Informática publicado por.lightning
UML es un lenguaje de especificación, visualización, construcción y documentación de propósito general, aunque especializado en sistemas software.
UML combina lo mejor de:
•Modelamiento conceptual de datos•Modelamiento del flujo de actividades•Modelamiento de Objetos•Modelamiento de Componentes
Perspectivas de UML UML es el lenguaje de modelado orientado a
objetos estándar predominante ahora y en los próximos años.
Razones: Participación de metódologos influyentes Participación de importantes empresas Estándar del OMG
Evidencias: Herramientas que proveen la notación
UML.
Ingeniería de Sistemas e Informática publicado por.lightning
Modelos y Diagramas Un modelo captura una vista de un sistema del mundo
real. Es una abstracción de dicho sistema, considerando
un cierto propósito. Así, el modelo describe completa-
mente aquellos aspectos del sistema que son relevantes al
propósito del modelo, y a un apropiado nivel de detalle.
Diagrama: una representación gráfica de una colección
de elementos de modelado, a menudo dibujada como un
grafo con vértices conectados por arcos
Ingeniería de Sistemas e Informática publicado por.lightning
... Modelos y Diagramas Un proceso de desarrollo de software debe
ofrecer un conjunto de modelos que permitan expresar el producto desde cada una de las perspectivas de interés
El código fuente del sistema es el modelo más detallado del sistema (y además es ejecutable). Sin embargo, se requieren otros modelos ...
Ingeniería de Sistemas e Informática publicado por.lightning
... Diagramas de UML
Ingeniería de Sistemas e Informática publicado por.lightning
Use CaseDiagramsUse Case
DiagramsDiagramas de Casos de Uso
ScenarioDiagramsScenario
DiagramsDiagramas deColaboración
StateDiagramsState
DiagramsDiagramas deComponentes
ComponentDiagramsComponent
DiagramsDiagramas deDistribución
StateDiagramsState
DiagramsDiagramas de Objetos
ScenarioDiagramsScenario
DiagramsDiagramas deEstados
Use CaseDiagramsUse Case
DiagramsDiagramas deSecuencia
StateDiagramsState
DiagramsDiagramas deClases
Diagramas deActividad
Modelos
Los diagramas expresan gráficamente partes de un modelo
Organización de Modelos
Ingeniería de Sistemas e Informática publicado por.lightning
Propuesta de Rational Unified Process (RUP)El Proceso Unificado de Desarrollo de Software
M. de Casos de Uso del Negocio (Business Use-Case Model)
M. de Objetos del Negocio (Business Object Model) M. de Casos de Uso (Use-Case Model) M. de Análisis (Analysis Model) M. de Diseño (Design Model) M. de Despliegue (Deployment Model) M. de Datos (Data Model) M. de Implementación (Implementation Model) M. de Pruebas (Test Model)
¿Qué es un Proceso de Desarrollo de SW? RUP
Define Quién debe hacer Qué, Cuándo y Cómo debe hacerlo
No existe un proceso de software universal. Las características de cada proyecto (equipo de desarrollo, recursos, etc.) exigen que el proceso sea configurable
Ingeniería de Sistemas e Informática publicado por.lightning
Requisitos nuevos
o modificados
Sistema nuevo
o modificadoProceso de Desarrollo
de Software
Dos Dimensiones
Ingeniería de Sistemas e Informática publicado por.lightning
Ingeniería de Sistemas e Informática publicado por.lightning
El Proceso Unificado tiene dos dimensiones: (Figura 1):Un eje horizontal que representa el tiempo y muestra los
aspectos del ciclo de vida del proceso a lo largo de su desenvolvimiento
Un eje vertical que representa las disciplinas, las cuales agrupan actividades de una manera lógica de acuerdo a su naturaleza.
La primera dimensión representa el aspecto dinámico del proceso conforme se va desarrollando, se expresa en términos de fases, iteraciones e hitos (milestones).
La segunda dimensión representa el aspecto estático del proceso: cómo es descrito en términos de componentes del proceso, disciplinas, actividades, flujos de trabajo, artefactos y roles.
Dos Dimensiones
Etapas del ProcesoModelado del NegocioComprender procesos del negocio
Modelado de RequisitosObtener y describir requisitos del sistema
Análisis y Diseño del SistemaIdentificar clases y colaboraciones para
objetos del dominioResolver problemas de diseño (nuevas
clases y colaboraciones, patrones..)Diseño de Bases de Datos
ImplementaciónPruebas
Ingeniería de Sistemas e Informática publicado por.lightning
Modelo del
Negocio
Modelo de
Requisitos
Modelo del
AnálisisModelo
del Diseño
Modelado del NegocioObjetivo:Comprender el conjunto de procesos de negocio que tienen lugar dentro de una empresa, como paso previo a establecer los requisitos del sistema a desarrollar.
Centrado en diagramas de actividades de UML.
Ingeniería de Sistemas e Informática publicado por.lightning
Modelado del Negocio Una empresa organiza su actividad a través de un conjunto de procesos de negocioprocesos de negocio
Cada Proceso de Negocio se caracteriza por... Información que produce y manipula Tareas que producen o manipulan la información Agentes (trabajadores...) que participan en las tareas Flujos de trabajo que definen cómo los agentes colaboran
para el cumplimiento de una tarea Los procesos de negocio están restringidos por las reglasreglas del del
negocionegocio, que determinan las políticas y la estructura de la información
Ingeniería de Sistemas e Informática publicado por.lightning
Ejemplo: Empresa dedicada a la fabricación bajo demanda
Ingeniería de Sistemas e Informática publicado por.lightning
Registrar pedido de
cliente
Fabricar productos pedidos
Gestionar almacén de
materias primas
Generar Pedidos a
Proveedores
Registrar Pedido
Fabricar Producto Pedido
Gestionar Almacén
Realizar Pedido a
Proveedor
Identificar Procesos del Negocio
Objetivos Estratégicos
Subobjetivos Procesos del Negocio
Casos de Uso del Negocio
Satisfacer Pedidos de Clientes
Disminuir tiempo de fabricación un 15% ...Incrementar las
ventas en un 25%
Contexto y Límites de la Organización
Identificar Roles del Entorno
Ingeniería de Sistemas e Informática publicado por.lightning
Diagrama de Casos de Uso del Negocio
Registrar PedidoCliente
<<initiator>>
Fabricar Producto Pedido
Gestionar Almacen
Realizar Pedido a ProveedorProveedor
Jefe Tecnico
Jefe Produccion