[go: up one dir, main page]

0% encontró este documento útil (0 votos)
326 vistas16 páginas

Introducción a Ingeniería de Software

El documento presenta información sobre software, ingeniería de software, modelos de desarrollo de software y actividades de gestión de proyectos. Explica que el software no es físico y abarca aplicaciones como procesadores de texto y hojas de cálculo. La ingeniería de software utiliza un enfoque metódico para el desarrollo de software. Se describen modelos como el cascada, incremental, evolutivo y espiral. Finalmente, señala que la planificación, gestión del alcance y estimación son actividades clave para la gestión de proyect
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
326 vistas16 páginas

Introducción a Ingeniería de Software

El documento presenta información sobre software, ingeniería de software, modelos de desarrollo de software y actividades de gestión de proyectos. Explica que el software no es físico y abarca aplicaciones como procesadores de texto y hojas de cálculo. La ingeniería de software utiliza un enfoque metódico para el desarrollo de software. Se describen modelos como el cascada, incremental, evolutivo y espiral. Finalmente, señala que la planificación, gestión del alcance y estimación son actividades clave para la gestión de proyect
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 16

ACTIVIDAD FINAL 3 SEMANA 7

Por

Maicol Stiven Gonzalez Bastidas

PROGRAMA INGENIERIA DE SISTEMAS

Actividad Final 3 Semana 7 presentada a

Dr. José Vicente Toro Gaviria

en Cumplimiento de los Requisitos

de Ingeniería de Software

Corporación Unificada Nacional de Educación Superior (CUN)

Abril 2020
1 SOFTWARE

El Software es la parte no física de un computador o un equipo de cómputo, ya sea Laptops,

Smartphone, Impresoras, Smart TV, etc., de hecho, el software abarca una gran parte de los

electrodomésticos de la nueva generación, ya que hay varios de ellos que necesitan de un software

para poder interactuar con el usuario.

En si el concepto de software abarca todas las aplicaciones informáticas, como los procesadores

de texto, las planillas de cálculo o los editores de imagen, estos software o programas son

desarrollados por programadores de software los cuales los crean con diferentes lenguajes de

programación como por ejemplo JAVA, C++, PHYTON, C#, PHP, HTML ETC.… Permitiendo

así el control de los comportamientos de una máquina.

Clasificación:

Los softwares se clasifican en tres, Software de base, software de programación y Software de

aplicación, en el Software de base están los programas que permiten tener el control sobre el

hardware, componentes físicos y dar soporte a otros programas informáticos por lo cual se llaman

SISTEMAS OPERATIVOS, funcionando desde el momento en el que se enciende el dispositivo

o computadora Y brindando una interfaz al usuario para su control y manejo.

El software de programación no es más que los programas diseñados para los programadores, para

que ellos puedan crear sus propios programas informáticos, haciendo uso de su conocimiento y

algunos lenguajes de programación anteriormente mencionados.

El Software de aplicación es el que se encarga de realizar tareas específicas, como procesadores

de texto, hojas de cálculo, reproductores multimedia, aplicaciones web, editores de multimedia,

etc…
2 INGENIERIA DE SOFTWARE

Es la rama de la ingeniería que estudia todas las partes en relación con la informática o sistemas

de computación, utilizando un modelo metódico, ordenado y cuantificable al incremento,

conservación y ejecución del software.

Esta ingeniería incorpora análisis precedente de la situación, el bosquejo del proyecto, el desarrollo

del software, y un ensayo necesario para comprobar su correcto funcionamiento y poner a trabajar

el sistema.

Dentro de la ingeniería de software es importante conocer y comprender como funciona el ciclo

de vida del software y sus etapas: Concepción, Elaboración, Construcción y Transición.

Concepción: Parte determinando si o puede haber repercusión en el proyecto, con su viabilidad y

diseña el modelo de negocio.

Elaboración: Precisa la planificación del proyecto, especificando las características y apoya la

arquitectura.

Construcción: Es cuando el software está siendo elaborado.

Transición Parte de finalización y entrega del producto al usuario final.

Dentro de la ingeniería de software es importante saber que fue a inicio de la década de los 70’s

cuando los programas (software) querían ser comercializados a gran escala requiriendo de

funciones aún más complejas y no había un modelo funcional para la creación en masa, que pudiera

dar garantías como seguridad de la información, modificación del software entre otras.

Elementos de caracterización de la ingeniería de Software:

 Los programas y/o algoritmos.


 Las estructuras de datos.

 Los documentos.

También cuenta con etapas de ella misma,

 Etapa de análisis

 Etapa de Desarrollo:

 Etapa de Pruebas o Verificación Prueba:

 Etapa de Mantenimiento:

 Etapa final EOL (End-of-Life)

Uno de los desafíos en la ingeniería de software se contemplan 3 principales que son:

Heterogeneidad: Desarrollar técnicas para la construcción de software confiable, seguro y que este

software pueda comprender el futuro del negocio para que se adapte a él.

Entrega: trata de reducir considerablemente los tiempos de entrega para sistemas robustos y

complejos, sin descuidar la calidad de los mismos.

Confianza: demostrar bajo la experiencia y conocimiento al usuario, que tan competitivo se es para

crear el software y que este software cumpla con las condiciones pactadas.
PUNTO 3 Y 4:

MODELO EN CASCADA

Este modelo divide los procesos de desarrollo en fases sucesivas del proyecto, y estas fases se

ejecutan una sola vez.

Estos resultados son tomados como hipótesis para la siguiente fase este modelo se utiliza en el

desarrollo de software.

Ventajas: Si se utiliza de forma correcta los resultados pueden ser muy buenos.

MODELO INCREMENTAL

Este modelo tiene como objetivo crecer con cada una de las entregas parciales que se realizan en

fechas establecidas en un calendario, y estas entregas deben cumplir con una evolución con respeto

del anterior.

Fases Modelo Incremental:

1.Requerimientos.

2.Definición de las tareas y las iteraciones.

3.Diseño de los incrementos.

4.Desarrollo del incremento.

5.Validación de incrementos.

6.Integración de incrementos.
7.Entrega del producto.

MODELO EVOLUTIVO

Se crea una versión inicial, que después de ser expuesta se va mejorando, es decir, que gracias a

las contextualizaciones, comentarios o nuevos comentarios del cliente final (usuario), se van

realizando las mejoras pertinentes teniendo un perfecto versionamiento de cada una de las mejoras.

1 desarrollo exploratorio donde el objetivo del proceso es trabajar con el cliente para explorar sus

requerimientos y entregar un sistema final El desarrollo empieza con las partes del sistema que se

comprenden mejor El sistema evoluciona agregando nuevos atributos propuestos por el cliente

2 prototipos desechables donde el objetivo del proceso de desarrollo evolutivo es comprender los

requerimientos del cliente y entonces desarrollar una definición mejorada de los requerimientos

para el sistema El prototipo se centra en experimentar con los requerimientos del cliente que no se

comprenden del todo.

MODELO ESPIRAL

Funciona como arquetipo para el proceso de desarrollo de apps.

Cuenta con la hipótesis de que el desarrollo va a ser un ciclo iterativo en el que las etapas de este

modelo se distribuyen en ciclos y a su vez ellos se van cumpliendo en forma de espiral.

Se caracteriza por ser uno de los modelos más complejos en comparación a los demás modelos.

Ventajas: los riesgos se van disminuyendo conforme avanzan los ciclos o iteraciones.
MODELO GANAR-GANAR

Toma como base el modelo de espiral y hace énfasis en la identificación de condiciones de

ganancia para todas las partes, crea un plan para cumplir las condiciones más importantes y

ganadoras, con sus riesgos correspondientes.

Tiene como base ciclos que son indispensables que su funcionamiento.

Ciclo 0: Grupos de aplicación. Se determina la fiabilidad de un grupo apropiado de aplicaciones

Ciclo 1: Objetivos del ciclo de vida de la aplicación. Se desarrollan los objetivos del ciclo de vida,

incluyendo prototipos, planes y especificaciones de aplicaciones individuales, y se verifica la

existencia de al menos una arquitectura viable para cada aplicación.

Ciclo 2: Arquitectura del ciclo de vida de la aplicación. Se establece una arquitectura del ciclo de

vida detallado, se verifica la viabilidad y determina que no existen riesgos mayores en satisfacer

los planes y especificaciones.

Ciclo 3: Capacidad de operación inicial. Alcanzar una capacidad operacional inicial para cada

etapa crítica del proyecto en el ciclo definida del software.

5 ACTIVIDADES DE GESTION DE GESTION DE PROYECTOS

Para la correcta gestión de un proyecto de software es importante poder comprender que esto

conlleva a cumplir con una serie de actividades las cuales ayudaran a que el resultado del proyecto

sea exitoso, para esto se comprenden las siguientes actividades:

Planificación del proyecto: Esta tarea se realiza antes de que la producción del software comience,

es decir se debe tener en cuenta, para seguir el paso a paso de cómo desarrollar el proyecto.
Gestión del alcance: Define el alcance que va a tener el proyecto, incluyendo los procesos y

actividades que se necesitan para crear un producto comercializable.

Gracias a esta gestión el proyecto crea condiciones de lo que se debe hacer y lo que no, haciendo

que el proyecto tenga tareas limitadas y cuantificables, con lo que podría ser documentado mucho

más rápido.

Esto evitaría sobrecostos en el proyecto y tiempos excedidos, adicional es importante cumplir

durante la gestión del proyecto con los siguientes puntos:

 Definir el alcance

 Decidir su verificación y control

 Dividir el proyecto en pequeñas partes para facilitar su gestión.

 Verificar el alcance

 Controlar el alcance incorporando cambios a éste

Estimación del proyecto: Para que la gestión del proyecto sea lo más efectiva es importante realizar

una estimación del proyecto, y esta estimación comprende varios aspectos a estimar como lo son:

 Estimación del tamaño del Software

 Estimación del esfuerzo

 Estimación del tiempo

 Estimación del costo

 El tamaño del software

 La calidad del Software

 El Hardware

 Herramientas o software adicional, licencias, etc.


 Personal formado para tareas concretas

 Implicaciones de viaje

 Communicación

 Formación y soporte

6 PRIMERAS FASES DEL DESARROLLO

Análisis de requisitos.

Diseño y arquitectura.

Programación.

Pruebas.

Documentación.

Mantenimiento

7 DESCRIPCION DE ANALIS Y DISEÑO

Análisis: Identificar los requisitos de un producto de software es la primera fase para crearlo, sin

embargo, puede que el requerimiento sea complejo y es necesario conocer todo el sistema para

evaluar los impactos tanto positivos como negativos antes de iniciar con el proceso de diseño.

Esto se debe a que varios sistemas que ya están implementados son ambiguos o contradictorios.
Ya finalizando el proceso de análisis se debe plasmar en un documento tipo ERS (Especificación

de Requerimientos del Sistema), incluyendo el estándar o varios de ellos como entidad/relación

etc.

Diseño: en esta fase se determina de manera general la forma de interacción del software, con los

diferentes medios tecnológicos como lo son la red, el hardware etc…

Adicional se deben definir los casos de usos para cubrir funcionalmente las acciones del sistema y

se transforman las entidades del modelo Entidad/relación de la fase análisis en clases de diseño,

para que puedan tener un parecido a programación orientada a objetos.

Diseño conceptual: se refiere a que el diseño debe basarse en datos o hechos reales para realizar

la abstracción de un tema en un área específica a nivel informático. Para la creación con este diseño

nada esta al azar todo debe tener una secuencia lógica.

Diseño lógico: permite representar los datos adquiridos en el diseño conceptual, usando de manera

eficiente posibles recursos para estructurar datos, modelando así restricciones disponibles en el

modelo lógico.

Este diseño construye un esquema lógico del anterior esquema conceptual, y utilizará las

estructuras de datos del modelo de bases de datos, y convirtiéndose así en una guía para el diseño

físico.

Diseño físico: es poner en marcha los anteriores diseños en una memoria secundaria, la cual

albergara estructuras de almacenamiento y métodos de acceso que garanticen el correcto

funcionamiento y accesibilidad a los datos.


8 FASE DE CODICFICACION EN UN DISEÑO DE SOFTWARE

Durante esta fase se realizan las tareas de programación, las cuales consisten en llevar a cabo a

través del código fuente y el lenguaje de programación todo lo diseñado en la fase anterior.

Su realización depende del programador de software y es completamente obligatorio seguir los

lineamientos impuestos en el diseño sin obviar los requisitos fundamentales y no fundamentales

especificados en la etapa de análisis.

9 FASES DEL PROCESO DE PRUEBAS DE SOFTWARE:

Pruebas de componentes.

Pruebas de integración.

Pruebas de sistema.

Pruebas de aceptación.

TIPOS DE PRUEBAS DE SOFTWARE

Pruebas funcionales.

Pruebas de desempeño.

Pruebas de usabilidad o interfaz de usuario.

10 PASOS PARA ELABORAR UN PLAN DE PRUEBAS

Analizar los requerimientos de desarrollo de software.

Identificar las funcionalidades nuevas a probar.

Identificar las funcionalidades de sistemas existentes que deben probarse.


Definir la estrategia de pruebas.

Definir los criterios de inicio, aceptación y suspensión de pruebas.

Identificar los entornos (ambientes) requeridos.

Determinar necesidades de personal y entrenamiento.

Establecer la metodología y procedimientos de prueba.

Elaborar la planificación de las pruebas.

Identificar los riesgos y definir planes de respuesta.

11 TIPOS DE MANTENIMIENTO DE SOFTWARE

 Mantenimiento preventivo.

 Mantenimiento predictivo.

 Mantenimiento correctivo.

 Mantenimiento adaptativo.

 Mantenimiento evolutivo.

 Mantenimiento perfectivo.

12 REINGENIERIA DE SOFTWARE

La reingeniería de software es una parte fundamental de la ingeniería de software, ya que permite

evaluar los sistemas y aplicaciones de información para determinar si su funcionamiento está

acorde con las políticas del negocio o si es necesario reestructúralo, para lograr mayor efectividad

en sus procesos.
También se puede aplicar este concepto a la parte de negocios, ya que puede intervenir para que

el negocio realice cambios en sus metodologías y conseguir una mayor productividad o

competitividad frente a la actual.

13 TIPOS DE REINGENIERIA DE SOFTWARE

1. Análisis de Inventarios

2. Reestructuración de documentos

3. Ingeniería Inversa

4. Reestructuración de código

5. Reestructuración de datos

6. Ingeniería directa

14 CALIDAD DE SOFTWARE O CALIDAD EN EL SOFTWARE

Parte de la nueva estandarización de la ISO (ISO/IEC DEC 9126), la cual indica que la calidad se

da en ultima palabra por parte del usuario final, y que para ser un software de calidad debe cumplir

con criterios o exceder las expectativas del usuario, en cuanto a funcionalidad, ejecución,

confiabilidad, disponibilidad, apoyo a un valor que el usuario esté dispuesto a pagar o pueda pagar.

En pocas palabras la calidad de software depende de estos factores anteriormente mencionados y

solo el usuario final puede decir si el software es de calidad o no.

15 FASES DEL PROCESO DE PRUEBAS DE SOFTWARE


Esta es la estrategia de pruebas para evaluar dinámicamente el software, evaluando los

componentes del software más sencillos, e ir avanzando hasta completar todo el software en su

conjunto.

Pruebas Unitarias: las pruebas unitarias parte de realizar cada prueba modulo por modulo.

Pruebas de Integración: las pruebas de integración van de la mano con el esquema de diseño, pero

incluyendo los módulos correctamente integrados y así probar las toda la interfaz.

Prueba del Sistema: en esta prueba de sistema también se ven involucrados los componentes de

hardware, los cuales deben cumplir una función con el ya instalado software de manera que

cumplan con el requerimiento inicial.

Pruebas de Aceptación: estas pruebas de aceptación no son más que otras pruebas de sistema, pero

incluyendo al usuario final el cual debe realizar su set de pruebas, y dar la aceptación de

conformidad del software recibido.


BIBLIOGRAFÍA

Sistemas de Información y Ciclo de Vida del Software:

https://www.youtube.com/watch?v=4D1nhygWOKw

Ingeniería de software: Qué es, objetivos, características y más:

https://micarrerauniversitaria.com/c-ingenieria/ingenieria-de-software/

Cuáles son los retos fundamentales que afronta la Ingeniería del Software:

https://itsoningsoftware.blogspot.com/2014/12/cuales-son-los-retos-fundamentales-que.html

Modelo en Cascada

https://softwaretheory.wordpress.com/2014/10/13/modelo cascada/

Modelo Incremental

https obsbusiness.school/int/blog projectmanagement/metodologias agiles/caracteristicas y fases

del modelo

Modelo Evolutivo

https:// ingsoftware.weebly.com/modelo evolutivo.html

Modelo en Espiral

https://www.lifeder.com/modelo espiral

Modelo Ganar Ganar

https ://ingsoft ittg.blogspot.com/2016/05/modelo ganar ganar.html


Reingenieria de software:

http://cursos.aiu.edu/REINGENIER%C3%8DA%20EN%20SISTEMAS/2/PDF/Reingenieria%2

0de%20sistemas%20sesion%202.pdf

Fases del proceso de desarrollo del software

https://sistemasvd.wordpress.com/2008/07/05/fases-del-proceso-de-desarrollo-del-software/

Calidad de software

http://www.eumed.net/libros-gratis/2008a/351/Calidad%20de%20Software.htm

También podría gustarte