Edwin alexande mata escobar

26
Instituto Tecnológico Centroamericano (ITCA-FEPADE) Modulo III Selección de Técnicas de Desarrollo de Software Tema: Ingeniería de Software Docente: Lic. Mario Ernesto Quintanilla Flores Alumno: Edwin Alexander Mata Escobar Carnet: 175210

Transcript of Edwin alexande mata escobar

Page 1: Edwin alexande mata escobar

Instituto Tecnológico Centroamericano (ITCA-FEPADE)

Modulo III Selección de Técnicas de Desarrollo de Software

Tema: Ingeniería de SoftwareDocente: Lic. Mario Ernesto Quintanilla Flores

Alumno: Edwin Alexander Mata EscobarCarnet: 175210

Page 2: Edwin alexande mata escobar

1. ¿Existe alguna diferencia entre Programa, Software y aplicación? Describa la definición de

cada uno de estos términos, relaciónelos y posteriormente encuentre las diferencias (si las

hay), o las similitudes (si las hay).Programa: Secuencia de instrucciones que una computadora

puede interpretar y ejecutar. Software: se refiere al equipamiento lógico o soporte lógico de

una computadora digital, y comprende el conjunto de los componentes lógicos necesarios para hacer posible la realización de tareas específicas; en contraposición a los componentes físicos del sistema, llamados hardware.

  Aplicación: es un tipo de programa informático diseñado como herramienta para permitir a un usuario realizar uno o diversos tipos de trabajo. Esto lo diferencia principalmente de otros tipos de programas como los sistemas operativos (que hacen funcionar al ordenador), las utilidades (que realizan tareas de mantenimiento o de uso general), y los lenguajes de programación (con el cual se crean los programas informáticos).

Page 3: Edwin alexande mata escobar

2. ¿Qué es ingeniería?La ingeniería es el estudio y la aplicación de las distintas

ramas de la tecnología. El profesional en este ámbito recibe el nombre de ingeniero.

 La actividad del ingeniero supone la concreción de una idea en la realidad. Esto quiere decir que, a través de técnicas, diseños y modelos, y con el conocimiento proveniente de las ciencias, la ingeniería puede resolver problemas y satisfacer necesidades humanas. 

La ingeniería también supone la aplicación de la inventiva y del ingenio para desarrollar una cierta actividad. Esto, por supuesto, no implica que no se utilice el método científico para llevar a cabo los planes.

Page 4: Edwin alexande mata escobar

3. ¿Qué es Ingeniería de Software?Es la disciplina o área de la informática que ofrece

métodos y técnicas para desarrollar y mantener software de calidad.

 Esta ingeniería trata con áreas muy diversas de la informática y de las ciencias de la computación, tales como construcción de compiladores, sistemas operativos, o desarrollos Intranet/Internet, abordando todas las fases del ciclo de vida del desarrollo de cualquier tipo de sistemas de información y aplicables a infinidad de áreas: negocios, investigación científica, medicina, producción, logística, banca, control de tráfico, meteorología, derecho, Internet, Intranet, etc.

Page 5: Edwin alexande mata escobar

4. ¿Por qué se dice que “el Software no se crea ni se construye, si no se desarrolla”?

Podemos decir que se desarrolla porque todo software esta en continua evolución y nunca deja de aparecer una nueva versión de el software creado.

Page 6: Edwin alexande mata escobar

5. ¿Qué es calidad?El conjunto de características de una entidad

que le otorgan la capacidad de satisfacer necesidades expresas e implícitas.

Page 7: Edwin alexande mata escobar

6. ¿Qué es calidad de software?La obtención de un software con calidad

implica la utilización de metodologías o procedimientos estándares para el análisis, diseño, programación y prueba del software que permitan uniformar la filosofía de trabajo, en aras de lograr una mayor confiabilidad, mantenibilidad y facilidad de prueba, a la vez que eleven la productividad, tanto para la labor de desarrollo como para el control de la calidad del software.

Page 8: Edwin alexande mata escobar

7. ¿Porqué se dice que “No existe software Terminado”?Porque siempre se continua desarrollando una

mejora al software, nunca se puede llegar al punto de el software perfecto.

Page 9: Edwin alexande mata escobar

8. ¿En qué consiste un Proyecto de Desarrollo de Software?Es aquel en que las necesidades del usuario son traducidas en

requerimientos de software, estos requerimientos transformados en diseño y el diseño implementado en código, el código es probado, documentado y certificado para su uso operativo". Concretamente "define quién está haciendo qué, cuándo hacerlo y cómo alcanzar un cierto objetivo".

El proceso de desarrollo de software requiere por un lado un conjunto de conceptos, una metodología y un lenguaje propio. A este proceso también se le llama el ciclo de vida del software que comprende cuatro grandes fases: concepción, elaboración, construcción y transición. La concepción define el alcance del proyecto y desarrolla un caso de negocio. La elaboración define un plan del proyecto, especifica las características y fundamenta la arquitectura. La construcción crea el producto y la transición transfiere el producto a los usuarios.

Page 10: Edwin alexande mata escobar

9. ¿Cuáles son las etapas del Desarrollo de Software?

Análisis de requisitos Extraer los requisitos de un producto de software es la primera etapa

para crearlo. Mientras que los clientes piensan que ellos saben lo que el software tiene que hacer, se requiere de habilidad y experiencia en la ingeniería de software para reconocer requisitos incompletos, ambiguos o contradictorios. El resultado del análisis de requisitos con el cliente se plasma en el documento ERS, Especificación de Requisitos del Sistema, cuya estructura puede venir definida por varios estándares, tales como CMM-I. Asimismo, se define un diagrama de Entidad/Relación, en el que se plasman las principales entidades que participarán en el desarrollo del software.

La captura, análisis y especificación de requisitos (incluso pruebas de ellos), es una parte crucial; de esta etapa depende en gran medida el logro de los objetivos finales. Se han ideado modelos y diversos procesos de trabajo para estos fines. Aunque aún no está formalizada, ya se habla de la Ingeniería de requisitos.

Page 11: Edwin alexande mata escobar

Especificación La Especificación de Requerimientos describe el

comportamiento esperado en el software una vez desarrollado. Gran parte del éxito de un proyecto de software radicará en la identificación de las necesidades del negocio (definidas por la alta dirección), así como la interacción con los usuarios funcionales para la recolección, clasificación, identificación, priorización y especificación de los requerimientos del software.

Entre las técnicas utilizadas para la especificación de requerimientos se encuentran:

• Casos de Uso,• Historias de usuario,Siendo los primeros más rigurosos y formales, los

segundas más ágiles e informales.

Page 12: Edwin alexande mata escobar

Arquitectura La integración de infraestructura, desarrollo de aplicaciones, bases de datos y

herramientas gerenciales, requieren de capacidad y liderazgo para poder ser conceptualizados y proyectados a futuro, solucionando los problemas de hoy. El rol en el cual se delegan todas estas actividades es el del Arquitecto. El Arquitecto de Software es la persona que añade valor a los procesos de negocios gracias a su valioso aporte de soluciones tecnológicas. La Arquitectura de Sistemas en general, es una actividad de planeación, ya sea a nivel de

 Infraestructura de red y hardware, o de Software. La Arquitectura de Software consiste en el diseño de componentes de una aplicación (entidades del negocio), generalmente utilizando patrones de arquitectura. El diseño arquitectónico debe permitir visualizar la interacción entre las entidades del negocio y además poder ser validado, por ejemplo por medio de diagramas de secuencia. Un diseño arquitectónico describe en general el cómo se construirá una aplicación de software. Para ello se documenta utilizando diagramas, por ejemplo:

• Diagramas de clases• Diagramas de base de datos• Diagramas de despliegue plegados• Diagramas de secuencia multidireccional• Diagramas de infraestructura químicaSiendo los dos primeros los mínimos necesarios para describir la arquitectura de un

proyecto que iniciará a ser codificado. Depende del alcance del proyecto, complejidad y necesidades, el arquitecto elige qué diagramas elaborar. Entre las herramientas para diseñar arquitecturas de software se encuentran:

• Enterprise Architect• Microsoft Visio for Enterprise Architects

Page 13: Edwin alexande mata escobar

Programación Reducir un diseño a código puede ser la parte

más obvia del trabajo de ingeniería de software, pero no necesariamente es la que demanda mayor trabajo y ni la más complicada. La complejidad y la duración de esta etapa está íntimamente relacionada al o a los lenguajes de programación utilizados, así como al diseño previamente realizado.

Page 14: Edwin alexande mata escobar

Prueba Consiste en comprobar que el software realice

correctamente las tareas indicadas en la especificación del problema. Una técnica de prueba es probar por separado cada módulo del software, y luego probarlo de forma integral, para así llegar al objetivo.

Cualquiera puede entenderlos y el software hace las cosas tal y como están descritas. El segundo enfoque es tener un área de pruebas conformada por programadores con experiencia, personas que saben sin mayores indicaciones en qué condiciones puede fallar una aplicación y que pueden poner atención en detalles que personal inexperto no consideraría.

Page 15: Edwin alexande mata escobar

Documentación Todo lo concerniente a la documentación del

propio desarrollo del software y de la gestión del proyecto, pasando por modelaciones (UML), diagramas, pruebas, manuales de usuario, manuales técnicos, etc.; todo con el propósito de eventuales correcciones, usabilidad, mantenimiento futuro y ampliaciones al sistema.

Page 16: Edwin alexande mata escobar

MantenimientoMantener y mejorar el software para enfrentar

errores descubiertos y nuevos requisitos. Esto puede llevar más tiempo incluso que el desarrollo inicial del software. Alrededor de 2/3 de toda la ingeniería de software tiene que ver con dar mantenimiento. Una pequeña parte de este trabajo consiste en arreglar errores, o bugs. La mayor parte consiste en extender el sistema para hacer nuevas cosas. De manera similar, alrededor de 2/3 de toda la ingeniería civil, arquitectura y trabajo de construcción es dar mantenimiento.

Page 17: Edwin alexande mata escobar

10. ¿Cuál es la diferencia entre el término ingeniería de software y el simple desarrollo o producción de software?Ingeniería de software es la disciplina o área de la

informática que ofrece métodos y técnicas para desarrollar y mantener software de calidad.

Desarrollo o Producción de software es el trabajo sistemático que utiliza conocimiento obtenido a partir de la investigación (aplicada) y de la experiencia práctica y que se encuentra dirigido a la producción de nuevos materiales, productos, procesos, sistemas y servicios o a la mejora sustancial de aquellos ya producidos

Por tanto podemos decir que la diferencia es que la ingeniería de software es una parte de la informática, mientras que el desarrollo de software es la evolución de el software.

Page 18: Edwin alexande mata escobar

12. ¿Por qué se da ese fenómeno?Porque la mayoría de programadores cuando

utilizan el criterio de calidad crean un software funcional pero no necesariamente con las expectativas del cliente, es decir los programadores utilizan la mayoría de el tiempo su punto de vista para crear el software sin importar el punto de el usuario.

Page 19: Edwin alexande mata escobar

11. ¿Cuáles son los modelos de desarrollo de software?La ingeniería de software tiene varios modelos, paradigmas o

filosofías de desarrollo en los cuales se puede apoyar para la realización de software, de los cuales podemos destacar a éstos por ser los más utilizados y los más completos:

• Modelo en cascada o Clásico (modelo tradicional)• Modelo en espiral (modelo evolutivo)• Desarrollo por etapas• Desarrollo iterativo y creciente o Iterativo e Incremental• RAD (Rapid Application Development) • Desarrollo concurrente• RUP (Modelo Racional)• Proceso Unificado

Page 20: Edwin alexande mata escobar

13. ¿Cuál es el mensaje que te deja el video?Que un programador así como desea el respeto

de sus ideas debería de respetar el punto de los clientes para que el software no sea tan necesario estar haciendo modificaciones cuando se le este entregando a dicho usuario.

Page 21: Edwin alexande mata escobar

14. ¿Se hará realmente lo correcto?La mayoría de las veces no porque el

programador no toma en cuenta la verdadera necesidad a cubrir ni la calidad a desarrollar.

Page 22: Edwin alexande mata escobar

15. ¿Qué estrategias proporciona la Ingeniería de Software para solventar esta situación?Ser un analista excepcional para poder

descifrar las necesidades a cubrir y no entregar un software muy incompleto.

Page 23: Edwin alexande mata escobar

16. ¿Qué fue lo que sucedió?Pueden haber pasado muchas cosas como:.- Mala ejecución de comandos en el sistema.- Puede que no hayan tomado en cuenta los

factores ambientales.- La mala codificación de el sistema

Page 24: Edwin alexande mata escobar

17. ¿Qué efectos tienen las fallas del software sobre el cohete?El mal funcionamiento de circuitos los cuales

llegan al punto de la destrucción total de el cohete.

Page 25: Edwin alexande mata escobar

18. ¿Cómo afectan nuestras vidas que el software no sea de calidad?Nos afecta en el sentido de que para nosotros

calidad es lo mismo que necesidad y si no tiene calidad no cubre una necesidad de manera que el software no estaría completo, tendría partes innecesarias, y simplemente no nos parece lo que hemos pedido.

Page 26: Edwin alexande mata escobar

19. ¿Cómo podremos garantizar calidad en el desarrollo de software?Teniendo la capacidad de crear un software

económico, muy funcional, muy útil, y siempre satisfactorio para el consumidor.