U1- Semana 1 - Clase Teorica - 01

15
 © Ing. Christian Araujo González. Universidad Nacional de Trujillo Facultad de Ciencias Físicas y Matemáticas Escuela Profesional de Informática Unidad : Introducción a la Ingeniería de Software Sesión Teórica : U1-T1-1.PresentacióndelSilabo U1-T1-2.LaIngenieríadeSoftware:Definición U1-T1-3.PrincipiosdelaIngenieríadeSoftware

description

calse de software

Transcript of U1- Semana 1 - Clase Teorica - 01

  • Ing. Christian Araujo Gonzlez.

    Universidad Nacional de Trujillo Facultad de Ciencias Fsicas y Matemticas

    Escuela Profesional de Informtica

    Unidad 1:

    Introduccin a la Ingeniera de Software

    Sesin Terica 1:

    U1-T1-1. Presentacin del Silabo U1-T1-2. La Ingeniera de Software: Definicin U1-T1-3. Principios de la Ingeniera de Software

  • Ing. Christian Araujo Gonzlez. 2

    Intr

    od

    ucc

    in

    Que ideas sugiere este grafico?

  • Ing. Christian Araujo Gonzlez. 3

    U1-T1-1. Presentacin del Silabo

    SILABO

    METODOLOGIA E INGENIERIA DE SOFTWARE 1

    Curso de Fundamentos 5to. Ciclo 4 Crditos Des

    arro

    llo T

    emt

    ico

  • Ing. Christian Araujo Gonzlez.

    4

    Des

    arro

    llo T

    emt

    ico

    U1-T1-2. La Ingeniera de Software : Definicin

    Qu es Ingeniera?

    Es una profesin basada en el uso de los conocimientos

    cientficos para transformar ideas en accin. De cada orientacin

    depende la especialidad que con ms intensidad se ensee. Pero dado

    que la ingeniera trabaja con el mundo real, las reas de la fsica y la

    qumica son comunes a todas las carreras, conjuntamente con la

    matemtica que sirve para modelar los fenmenos que se estudian.

    A diferencia de las ciencias puras cuyo objetivo es el conocimiento por

    el conocimiento en s mismo, la ingeniera se basa en la aplicacin

    del conocimiento cientfico en la solucin de problemas reales.

    En muchos aspectos se puede asociar la ingeniera a un arte. Porque

    requiere de capacidad creativa y de imaginacin para concebir

    cosas que an no existen. Luego aplica los conocimientos

    cientficos de manera sistemtica para transformar esa idea en una

    realidad. Emplea la ciencia como un medio, pero est ntimamente

    ligada con la experimentacin, y la gestin. Su objetivo final es lograr

    resultados con el mejor uso de los recursos.

  • Ing. Christian Araujo Gonzlez. 5

    Des

    arro

    llo T

    emt

    ico

    Qu es el Software?

    Muchas personas asocian el trmino software con programas de

    computadora. El software no son slo programas, sino todos los

    documentos asociados y la configuracin de datos que se necesitan

    para hacer que estos programas operen de manera correcta.

    Los ingenieros de software se concentran en el desarrollo de productos

    de software, es decir, software que se vende a un cliente. Existen dos

    tipos de productos software:

    - Productos genricos (software empaquetado)

    - Productos personalizados (software a medida)

    U1-T1-2. La Ingeniera de Software : Definicin

  • Ing. Christian Araujo Gonzlez. 6

    U1-T1-2. La Ingeniera de Software : Definicin D

    esar

    rollo

    Tem

    tic

    o

    La ingeniera de software tiene que ver con las teoras, mtodos y

    herramientas para el desarrollo profesional de software.

    La ingeniera de software es el resultado de llevar la tradicional disciplina de

    las ingenieras al mundo de la construccin de sistemas software.

    Definiciones:

    . La ingeniera de software es el estudio de los principios y metodologas

    para el desarrollo y mantenimiento de sistemas software.

    . Es una disciplina que comprende todos los aspectos de la produccin de

    software desde las etapas iniciales de la especificacin del sistema, hasta el

    mantenimiento de ste despus de que se utiliza.

    . La aplicacin prctica del conocimiento cientfico y matemtico en el diseo y construccin de programas para computadoras y la documentacin

    asociada requerida para desarrollarlos, operarlos y mantenerlos.(Boehn)

    . Es el conjunto de tres elementos claves (mtodos, herramientas y

    procedimientos) que facilitan al gestor controlar el proceso de desarrollo de

    software y suministrar a los que la practican las bases para construir

    software de alta calidad de una forma productiva. (Pressman)

    Qu es la Ingeniera de Software?

  • Ing. Christian Araujo Gonzlez. 7

    Qu son los mtodos en Ingeniera de Software?

    Enfoque estructurado y sistemtico para el desarrollo de software cuyo

    propsito es facilitar la produccin de software de alta calidad de una

    forma costeable (Ejm: anlisis estructurado-De Marco-, OMT-

    Rambaugh-, UML, etc).

    Incluye modelos (grficos) del sistema, notaciones, reglas, consejos de

    diseo y guas en el proceso.

    Descripciones de modelos:

    - descripciones de los modelos grficos que se desean crear.

    Reglas:

    - restricciones que se deben aplicar a los modelos del sistema.

    Recomendaciones:

    - consejos para la prctica del buen diseo.

    Gua en el proceso:

    - que secuencia de actividades seguir.

    U1-T1-2. La Ingeniera de Software : Definicin D

    esar

    rollo

    Tem

    tic

    o

  • Ing. Christian Araujo Gonzlez. 8

    U1-T1-2. La Ingeniera de Software : Definicin D

    esar

    rollo

    Tem

    tic

    o

    Cules son los grandes retos a los que se enfrenta la

    Ingeniera de software?

    Hacer frente a los sistemas heredados (legacy systems), hacer frente a

    la creciente diversidad y hacer frente a las demandas de entrega con

    tiempos cada vez ms reducidos.

    Los sistemas heredados, sistemas antiguos pero valiosos, deben ser

    mantenidos y actualizados.

    Heterogeneidad, consiste en que los sistemas son distribuidos e

    incluyen una mezcla de diferentes hardware y software

    (interoperatividad).

    Plazos de entrega, actualmente hay una creciente presin para que los

    sistemas software sean entregados con rapidez.

  • Ing. Christian Araujo Gonzlez. 9

    U1-T1-3. Principios de la Ingeniera de Software D

    esar

    rollo

    Tem

    tic

    o

    Estos principios tienen que ver con el tanto con el proceso de ingeniera de

    software, como con el producto final.

    En realidad se tratan de afirmaciones abstractas que describen

    propiedades deseables de los procesos y productos software. Pero, para

    aplicar principios, el ingeniero de software debera estar equipado con

    mtodos y tcnicas especficas que ayuden a incorporar las propiedades

    deseadas en los procesos y productos.

    Los mtodos son guas generales que gobiernas la ejecucin de alguna

    actividad; son aproximaciones rigurosas, sistemticas y disciplinadas.

    Las tcnicas son algo ms mecnicas que los mtodos, a menudo tienen

    una aplicabilidad ms restringida.

    A veces, los mtodos y tcnicas son encapsulados en conjunto para dar

    vida a una metodologa.

    El propsito de una metodologa es promover una aproximacin en la

    solucin de problemas, preseleccionando los mtodos y tcnicas a usar.

    Las herramientas, a su vez, son desarrolladas para apoyar la aplicacin de

    tcnicas, mtodos y metodologas.

  • Ing. Christian Araujo Gonzlez. 10

    U1-T1-3. Principios de la Ingeniera de Software D

    esar

    rollo

    Tem

    tic

    o

    De aqu es que se puede afirmar que la eleccin de principios y tcnicas

    est determinada por las metas de calidad del software.

    Los principios:

    1. Rigor y formalidad

    2. Separacin de intereses

    3. Modularidad

    4. Abstraccin

    5. Anticipacin al cambio

    6. Generalidad

    7. Incrementalidad

  • Ing. Christian Araujo Gonzlez. 11

    Rigor y Formalidad

    El desarrollo de software es una actividad creativa. Por otra parte el Rigor es un complemento necesario a la creatividad en toda actividad de ingeniera: es

    slo a travs de la aproximacin rigurosa que podremos producir productos

    mas confiables, controlar sus costos y aumentar nuestras aspiraciones

    respecto de su confiabilidad.

    El rigor no necesita restringir la creatividad. En lugar de eso, mejora la creatividad mejorando la confianza del ingeniero en los resultados creativos,

    una vez que ellos son crticamente analizados a la luz de una planificacin

    rigurosa.

    El grado mas alto de rigurosidad es lo que llamamos Formalidad. As, la formalidad es un requerimiento ms restrictivo que el rigor, requiere que el

    proceso de software sea dirigido y evaluado por intermedio de leyes

    matemticas.

    El ingeniero debe ser capaz de entender el nivel de rigurosidad y formalidad que debe alcanzarse, dependiendo de la dificultad conceptual de la tarea y de

    su criticidad. Incluso estos niveles pueden variar entre partes de un mismo

    sistema.

    La ventaja de la formalidad sobre el rigor es que la formalidad puede llegar a ser la base para la mecanizacin o automatizacin del proceso.

    U1-T1-3. Principios de la Ingeniera de Software D

    esar

    rollo

    Tem

    tic

    o

  • Ing. Christian Araujo Gonzlez. 12

    Separacin de Intereses

    Este nos permite involucrarnos con diferentes aspectos individuales de un problema, de forma que podamos concentrarnos en ellos separadamente.

    La nica manera de administrar la complejidad de un proyecto es separar los diferentes aspectos.

    Hay varias formas de separar los inters: por tiempo, en trminos de calidades, por vistas.

    Este principio es la base para la divisin del trabajo en un problema complejo en asignaciones especificas de trabajo.

    Modularidad

    Un sistema complejo puede ser dividido en partes ms simples, llamadas mdulos.

    Un sistema que est compuesto por mdulos se llama Modular. El beneficio de este es que permite que la separacin de contextos se pueda aplicar en dos fases: cuando se relaciona con los detalles de cada mdulo

    aisladamente (e ignorando detalles de otros mdulos - cohesin), y cuando se

    relaciona con las caractersticas globales de todos los mdulos y sus

    relaciones con la finalidad de integrarlos en un sistema coherente

    (acoplamiento). Si las dos fases son ejecutadas en el orden mencionado,

    decimos que el diseo se llama bottom-up; el caso inverso caracteriza al

    diseo top-down.

    U1-T1-3. Principios de la Ingeniera de Software D

    esar

    rollo

    Tem

    tic

    o

  • Ing. Christian Araujo Gonzlez. 13

    Abstraccin

    Es un proceso mediante el cual identificamos los aspectos importantes de un fenmeno e ignoramos sus detalles. Lo que debemos considerar importante o

    detalle depende del propsito de la abstraccin.

    Es una herramienta poderosa utilizada por ingenieros de todas las disciplinas para manejar la complejidad.

    Anticipacin al Cambio

    El software cambia constantemente. Los cambios se deben tanto a la necesidad de reparar el software- eliminando errores que no fueron detectados antes como a la necesidad se apoyar la evolucin de la aplicacin a medida que aparecen requerimientos

    nuevos o cambian los requerimientos antiguos (mantenibilidad).

    En muchos casos, se desarrolla una aplicacin de software mientras sus requerimientos estn todava por entenderse.

    Requiere que estn disponibles las herramientas para administrar las diferentes versiones y revisiones del software de una manera controlada.

    U1-T1-3. Principios de la Ingeniera de Software D

    esar

    rollo

    Tem

    tic

    o

  • Ing. Christian Araujo Gonzlez. 14

    Generalidad

    Cada vez que se pide a uno resolver un problema, se debe tratar de enfocar en el descubrimiento de un problema ms general que puede estar oculto

    detrs del problema propuesto.

    De forma ms general, la solucin a un problema generalizado tiene ms potencial para poder ser reutilizada.

    La generalidad es un principio fundamental si lo que se desea es desarrollar herramientas o paquetes software para uso amplio por parte del mercado.

    Incrementalidad

    Caracteriza a un proceso que ocurre paso-a-paso, en incrementos. La meta buscada es alcanzada por aproximaciones sucesivas a ella, cada aproximacin es alcanzada por un incremento en la aproximacin anterior.

    Si se aplica al software, significa que la aplicacin es produccida como resultado de un proceso evolutivo.

    la motivacin para la incrementalidad es que en la mayora de los casos prcticos no hay forma de tener todos los requerimientos corregidos antes del

    desarrollo de la aplicacin.

    U1-T1-3. Principios de la Ingeniera de Software D

    esar

    rollo

    Tem

    tic

    o

  • Ing. Christian Araujo Gonzlez. 15

    Eval

    uac

    in

    de

    l Ap

    ren

    diz

    aje

    Responder

    1. Porque es importante un silabo en la formacin profesional.

    2. Elabore una definicin grafica de la ingeniera de software

    3. Explique porque la heterogeneidad es un reto para la Ingeniera de

    Software (I.S).

    4. Ejemplifique como la aplicacin de los principios de la I.S. han

    permitido el desarrollo del software como producto de la I.S.