ANALISIS Y DISEÑO DE SISTEMAS-U1

30
ANALISIS Y DISEÑO DE SISTEMAS

Transcript of ANALISIS Y DISEÑO DE SISTEMAS-U1

ANALISIS Y DISEÑO DE SISTEMAS

UNIDAD 1

• Elementos de Ingeniería del Software

• Conceptos generales sobre el análisis y diseño de sistemas

• El Papel del Analista de Sistemas

• La ingeniería de Software Asistida por computador

TEMAS

1. Historia del software, crisis del software. 2. Conceptos de ingeniería de software. 3. Procesos involucrados en el desarrollo de

software. 4. Planificación y tipos del ciclo de vida. 5. El proceso unificado de desarrollo de software

(RUP). 6. Roles involucrados en el desarrollo de un

proyecto de software, organización de los departamentos de informática y su evolución.

Historia del Software

En las tres primeras décadas de la informática, del 50 a los 80: Primera era (50-60): Orientación por lotes, distribución

limitada y software a la “medida”. Segunda era (70): Multiusuario, tiempo real, base de datos

(BD), y software como producto. Tercera era (80): Sistemas distribuidos, incorporación de

inteligencia, hardware a bajo costo, impacto en el consumo. Cuarta era (90-2000): Potentes sistemas de sobremesa,

tecnologia orientada a objetos y sistemas expertos. Quinta era (2000-2010): Redes neuronales artificiales,

computación paralela, Web (internet, e-comerce, correo, etc), sistemas inteligentes.

Crisis del Software

Nació del mantenimiento del software, la personalización del software los hacia imposible de mantener, el multifuncional, generaron altas crisis y llevaron a los sistemas inteligentes al igual que el software neuronal, la inteligencia artificial y los sistemas expertos a la crisis del soft.

Otros problemas:

La sofisticación del hardware a desfazado la capacidad de construir software.

Crisis del Software

Otros problemas:

La capacidad de construir nuevos programas no da abasto a la demanda de software.

La capacidad para mantener los programas existentes estaba amenazada por el mal diseño.

La crisis del software dio inicio a la ingeniería de software.

Crisis del Software en el horizonte

• El software no funciona.

• Como desarrollar el software.

• La planificación y estimación de costos.

• La productividad no corresponde a la demanda de servicios.

• No hay tiempo para recoger datos.

• La insatisfacción del cliente con el sistema terminado.

• La calidad del software es cuestionable.

• Mantenimiento de los software existentes.

• Desarrollos de software con diferentes metodologías.

Definición de Ingeniería de Software

Todos estos elementos de las crisis se solucionan con la ingeniería de software.

“El establecimiento y uso de principios de ingeniería robustos orientados a obtener software económico, fiable y que funcione sobre máquinas reales, con los tres elementos claves: métodos, herramientas y procedimentos”

Componentes de Ingeniería de Software

Método: Es el como: Planificación, análisis de los requisitos, diseño de estructuras de datos, arquitectura de programas y algoritmos, codificación, prueba y mantenimiento.

Herramientas: Con qué: son un soporte automático para los métodos (Case).

Procedimientos: Pegamento de la ingeniería de software para juntar métodos y herramientas. Define la secuencia de los métodos.

Conceptos de Ingeniería de Software

Al principio los sistemas se basaron en la técnica orientada al hardware.

El programador aprendía su oficio mediante prueba y error.

Los altos costos se daban para el hardware, en la década de los 80 los costos se distribuyen entre el hardware y el software.

En los 80 se preguntaban porque los programas debían mantenerse, porque no se terminan, porque los errores antes de entregarlo en producción.

Conceptos de Ingeniería de Software

Las aplicaciones escritas hace años son virtualmente imposible de mantener.

Nadie tiene conocimiento detallado sobre la estructura interna de los programas.

Sistemas empotrados (No hay con que reemplazarlos).

Llega la subcontratación y la era donde

“El conocimiento es poder”

Conceptos de ingeniería de Software

Software:

• Instrucciones que cuando se ejecutan proporcionan la función y el comportamiento deseado.

• Estructura de datos que facilitan a los programas manipular la información.

• Documentos que describen la operación y el uso de programas.

Conceptos de ingeniería de Software

Características del Software:

• Elemento del sistema que es lógico.

• El software se desarrolla no se fabrica.

• El software no se estropea, se vuelve obsoleto.

• El software no tiene piezas de repuesto.

• Un error en el diseño nos lleva a una falla en producción.

• La mayoría de los software se compran a la medida, no se compran partes para ensamblar.

Conceptos de ingeniería de Software

Componentes del Software: • El software es información en dos formas básicas:

– Componentes no ejecutables en la máquina y – Componentes ejecutables o de configuración.

• Corresponde a los requisitos del cliente con un código ejecutable.

• Se traduce un modelo o prototipo de requisitos a un diseño.

• Se traduce el diseño del software a una forma en un lenguaje que especifica la estructura de datos, los atributos procedimentales y los requisitos, la forma en lenguaje es procesada por unas instrucciones ejecutables.

Conceptos de ingeniería de Software

Componentes del Software:

• La reusabilidad: los lenguajes han ido evolucionando a través de las décadas hasta llegar hoy a los lenguajes no procedimentales,

o sea: “especificación del resultado deseado y en vez de la acción requerida para conseguir el resultado”

Conceptos de ingeniería de Software

Aplicaciones del software: Se puede utilizar en cualquier situación donde se haya

definido previamente un conjunto de pasos procedimentales o algoritmo, con excepción de las redes neuronales y de los sistemas expertos.

Contenido: Significado y forma de la información de entrada y salida.

Determinismo de la información: Predecibilidad del orden y del tiempo de llegada de los

datos.

Tipos de Software

Soft. De Sistemas: Para servir a otros programas (compiladores, editores, etc.)

Soft. De Tiempo Real: El software que mide, analiza y controla los sucesos del mundo real.

Soft. De Gestión: Accede y reestructura los datos existentes en orden para la toma de decisiones (nómina, inventarios, etc.).

Soft. De Ingeniería y Científico: Se caracteriza por los algoritmos en el manejo de números.

Tipos de Software

Soft. Empotrado: Recibe memoria de solo lectura y se utiliza para controlar productos del mercado.

Soft. De Computador Personal

Soft. De Inteligencia Artificial: Uso de algoritmos no numéricos para resolver problemas complejos, ej: software de reconocimiento de patrones, imágenes y voz, y redes neuronales (simuladores del cerebro humano).

Proceso de la Ingeniería de Software

1. Definición: El que: 1.1 Análisis del Sistema. 1.2 Planificación del Proyecto. 1.3 Análisis de Requisitos

2. Desarrollo: El como: 2.1 Diseño del Software 2.2 Codificación del Software. 2.3 Prueba del Software.

3. Mantenimiento: El cambio: 3.1 Corrección o mantenimiento correctivo 3.2 Adaptación 3.3 Mejora o mantenimiento predictivo

Mitos y modelos de Ingeniería de Software

Mitos Mitos de Gestión Mitos del Cliente Mitos de los desarrolladores

Modelos para Ingeniería de Software:

Clásico Prototipo Espiral Cuarta Generación RUP

Modelos de Ingeniería de Software

1. Ciclo de Vida Clásico formado por: – Ingeniería del Sistema

– Análisis

– Diseño

– Codificación

– Prueba

– Mantenimiento

Cada etapa provee a la siguiente y retroalimenta al sistema completo.

Modelos de Ingeniería de Software

2. Construcción de Prototipos: Facilita al programador la construcción de un modelo de software, existen tres formas de generarlo:

– En papel: un modelo basado que describa la interacción hombre-máquina.

– Que implemente algunos subconjuntos de la función requerida del programa deseado.

– Programa existente que ejecute parte o toda la función deseada.

Modelos de Ingeniería de Software

2. Pasos para construir un Prototipo:

– Recolección y refinamiento de requisitos.

– Diseño rápido.

– Construcción de prototipo.

– Evaluación del prototipo por el cliente.

– Refinamiento del prototipo.

– Producto de ingeniería.

Modelos de Ingeniería de Software

3. Modelo en Espiral

Ciclo de vida clásico más prototipo más análisis de riesgos, se define en cuatro actividades:

– Planificación.

– Análisis de riesgos.

– Ingeniería de software.

– Evaluación del Cliente.

Modelos de Ingeniería de Software

4. Modelo de Cuarta Generación

Ciclo de vida clásico más prototipo más análisis de riesgos, se define en cuatro actividades:

– Recolección de requisitos

– Estrategia de diseño

– Implementación

– Pruebas y correcciones inmediatas.

Proceso Unificado de desarrollo de software - RUP

Fases: • Introducción • Gestión del proyecto

– Plan de desarrollo de software – Planificación del proyecto

• Fase de inicio • Fase de elaboración • Fase de construcción

– Diario de ejecución

• Modelado del negocio – Modelo de objetos – Modelo de dominio

• Requisitos – Visión – Glosario – Casos de uso con una herramienta como rational rose y las especificaciones de casos de uso. – Gestión de requisitos

• Análisis y diseño – Modelo de análisis y diseño – Modelo de datos

• Implementación – Prototipo de interfaz de usuario (comunes) – Componentes y despliegue

• Pruebas

Proceso Unificado de desarrollo de software - RUP

Primer modelo original orientado a objetos.

Las plantillas son importantes en el modelo RUP.

Características:

• Dirigido por casos de uso: hilo conductor que orienta las actividades de desarrollo.

– Análisis: define las necesidades recopila, clarifica y valida.

– Diseño: realiza los casos de uso.

– Pruebas: verifica que se satisfacen los casos de uso.

• Interactivo e incremental

– Descomposición de un proyecto en miniproyectos.

– Cada miniproyecto es una interacción.

– Las interacciones deben estar controladas.

– Cada interacción trata un conjunto de casos de uso.

• Centrado en la arquitectura

– Concepto similar a la arquitectura de un edificio (varios planos con diferentes aspectos del edificio, imagen completa del edificio antes de iniciar su construcción)

– Arquitectura en software: diferentes vistas del sistema, estructural, funcional, determina la forma del sistema.

– Arquitectura: determina la forma del sistema.

– Los casos de uso: deter minan la función del sistema.

• Dimensiones del RUP

– Dinámica y estática

CONCEPTO

• INFORMÁTICA

Sistematizacion de la información realizada de diferentes maneras y con

diferentes modelos.

SOFTWARE

Intangible

• SISTEMAS

Administración de los equipos que permiten procesar los datos para generar información.

HARDWARE

Tangible

Roles en el desarrollo de un proyecto de ingeniería y organización del departamento de sistemas

Roles en el desarrollo de software: Líder Ingeniero desarrollador Administrador de red Administrador de la base de datos

Organización de los departamentos de informática:

Líder Soporte técnico Análisis, diseño y Desarrollo Administración de la Red Administración de la Base de Datos Operación e instalación

BIBLIOGRAFIA

• PRESMAN, Roger S. Ingeniería de Software, Un enfoque práctico. Ed. McGraw-Hill. Cuarta Edición,1997.

• JACOBSON Ivar, BOOCH Grady, RUMBAUGH James. El proceso Unificado de Desarrollo de Software. Ed. Addison Wesley, 1999.

• MCCONNELL, Steve. Desarrollo y gestión de proyectos informáticos. Ed. McGraw-Hill. 1997.

• FOWLER, Martin, Scott, Kendall. UML Gota a Gota. Addison Wesley Longman,1997.

• LARMAN, Craig. UML y Patrones. Introducción al análisis y diseño orientado a objetos. Ed. Prentice-Hall, 1999.

• BOOCH Grady, RUMBAUGH James, JACOBSON Ivar. El lenguaje Unificado de Modelado. Ed. Addison Wesley, 1999.