Vous êtes sur la page 1sur 8

Tecnológico de Estudios superiores de Tianguistenco

Alumno: Samuel Castillo Quiterio

Materia: Fundamentos de Ingeniería de software

Semestre: 5to

Grupo:3501

Matricula:201723065

“Reporte Técnico”
Conceptos Básicos
El Software
El software no es sólo código, sino también las especificaciones del diseño,
los datos tratados y la documentación que permite el desarrollo, instalación y
mantenimiento.
Estrictamente, se puede definir como:
1) Instrucciones que, cuando se ejecutan, proporcionan la funcionalidad
deseada.
2) Estructuras de datos que facilitan a las instrucciones manipular
adecuadamente la información.
3) Documentos que describen el desarrollo, uso, instalación y mantenimiento
de los programas.
Características del Software
1. Es un elemento lógico, no físico, en contraposición con el hardware.
2. Se desarrolla, no se fabrica.
3. No se estropea, se deteriora, con el tiempo, el hardware se va estropeando
por la presencia de componentes físicos el software, al carecer de ellos, se
deteriora

Cualidades del Software


 Correcto
 Confiable
 Robusto
 Eficiente
 Amigable
 Productivo
 Mantenible
Ingeniería
Es la aplicación sistemática de conocimiento científico para la creación y
construcción de soluciones rentables a problemas prácticos al servicio de la
humanidad.
Ingeniería Del Software
La Ingeniería del Software es una disciplina que integra métodos, técnicas y
herramientas para el desarrollo de software de computadora.
Sus elementos son:
 Herramientas: Programas que mecanizan los métodos y las técnicas.
 Métodos: Conjunto de tareas ordenadas para conseguir un fin. Los métodos
se desarrollaron para cada una de las fases del desarrollo (análisis, diseño,
implementación, etc.).
 Técnicas: Ayudan con las dificultades para llevar a cabo lo que se indica en
los métodos.
Objetivos de la ingeniería de software
 mejorar la calidad de los productos de software
 aumentar la productividad y trabajo de los ingenieros del software.
 Facilitar el control del proceso de desarrollo de software.
 Suministrar a los desarrolladores las bases para construir software de alta
calidad en una forma eficiente.
 Definir una disciplina que garantice la producción y el mantenimiento de los
productos software desarrollados en el plazo fijado y dentro del costo
estimado.
Fases de la Ingeniería de Software

Obtención de requisitos:

Se debe identificar sobre qué se está trabajando, es decir, el tema principal que
motiva el inicio del estudio y creación del nuevo software o modificación de uno ya
existente. A su vez identificar los recursos que se tienen, en esto entra el conocer
los recursos humanos y materiales que participan en el desarrollo de las actividades.

Análisis de los requisitos:

Extraer los requisitos de un producto software es la primera etapa para crearlo.


Durante la fase de análisis, el cliente plantea las necesidades que se presenta e
intenta explicar lo que debería hacer el software o producto final para satisfacer
dicha necesidad mientras que el desarrollador actúa como interrogador, como la
persona que resuelve problemas. Con este análisis, el ingeniero de sistemas puede
elegir la función que debe realizar el software y establecer o indicar cuál es la
interfaz más adecuada para el mismo.

Diseño y arquitectura:

Se refiere a determinar cómo funcionará de forma general sin entrar en detalles.


Consiste en incorporar consideraciones de la implementación tecnológica, como el
hardware, la red, etc. Se definen los Casos de Uso para cubrir las funciones que
realizará el sistema, y se transforman las entidades definidas en el análisis de
requisitos en clases de diseño, obteniendo un modelo cercano a la programación
orientada a objetos.
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 es necesariamente la porción más larga. La complejidad y la
duración de esta etapa está íntimamente ligada al o a los lenguajes de programación
utilizados.

Desarrollo de la aplicación:

Para el desarrollo de la aplicación es necesario considerar cinco fases para tener


una aplicación o programa eficiente, estas son:

 Desarrollo de la infraestructura
 Adaptación del paquete
 Desarrollo de unidades de diseño de interactivas
 Desarrollo de unidades de diseño batch (Diagramas, estructuras, tablas)
 Desarrollo de unidades de diseño manuales

Pruebas de software:

Consiste en comprobar que el software realice correctamente las tareas


indicadas en la especificación del problema. Una técnica es probar por separado
cada módulo del software, y luego probarlo de manera integral, para así llegar al
objetivo. Se considera una buena práctica el que las pruebas sean efectuadas por
alguien distinto al desarrollador que la programó, idealmente un área de pruebas;
sin perjuicio de lo anterior el programador debe hacer sus propias pruebas.

Implementación:

Una implementación es la realización de una especificación técnica o algoritmos


con un programa, componente software, u otro sistema de cómputo. Muchas
especificaciones son dadas según a su especificación o un estándar. Las
especificaciones recomendadas según el World Wide Web Consortium, y las
herramientas de desarrollo del software contienen implementaciones de lenguajes
de programación. El modelo de implementación es una colección de componentes
y los subsistemas que contienen. Componentes tales como: ficheros ejecutables,
ficheros de código fuente y todo otro tipo de ficheros que sean necesarios para la
implementación y despliegue del sistema.

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.
Mantenimiento:

Mantener 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.

Metodologías de desarrollo de software

Modelo En Cascada:

Éste toma las actividades fundamentales del proceso de especificación, desarrollo,


validación y evolución y las representa como fases separadas del proceso.

El modelo en cascada consta de las siguientes fases:

1. Definición de los requisitos: Los servicios, restricciones y objetivos son


establecidos con los usuarios del sistema. Se busca hacer esta definición en detalle.

2. Diseño de software: Se particiona el sistema en sistemas de software o hardware.


Se establece la arquitectura total del sistema. Se identifican y describen las
abstracciones y relaciones de los componentes del sistema.

3. Implementación y pruebas unitarias: Construcción de los módulos y unidades de


software. Se realizan pruebas de cada unidad.

4. Integración y pruebas del sistema: Se integran todas las unidades. Se prueban


en conjunto. Se entrega el conjunto probado al cliente.

5. Operación y mantenimiento: Generalmente es la fase más larga. El sistema es


puesto en marcha y se realiza la corrección de errores descubiertos. Se realizan
mejoras de implementación. Se identifican nuevos requisitos.

Una fase no comienza hasta que termine la fase anterior y generalmente se incluye
la corrección de los problemas encontrados en fases previas.
Modelo Espiral:

El modelo en espiral fue desarrollado por Boehm, quien lo describe así:

El modelo de desarrollo en espiral es un generador de modelo de proceso guiado


por el riesgo que se emplea para conducir sistemas intensivos de ingeniería de
software concurrente y a la vez con muchos usuarios.

Características

 Un enfoque cíclico para el crecimiento incremental del grado de definición e


implementación de un sistema, mientras que disminuye su grado de riesgo.
 Un conjunto de puntos de fijación para asegurar el compromiso del usuario
con soluciones de sistema que sean factibles y mutuamente satisfactorias.

Funcionamiento del modelo Espiral

Determinar o fijar objetivos

 Fijar también los productos definidos a obtener: requerimientos,


especificación, manual de usuario.
 Fijar las restricciones.

Análisis del riesgo

Se estudian todos los riesgos potenciales y se seleccionan una o varias alternativas


propuestas para reducir o eliminar los riesgos.

Desarrollar, verificar y validar (probar)

 Tareas de la actividad propia y de prueba.


 Análisis de alternativas e identificación resolución de riesgos.

Planificar: Revisamos todo lo hecho, evaluándolo, y con ello decidimos si


continuamos con las fases siguientes y planificamos la próxima actividad.
SCRUM
Scrum es una metodología ágil fantástica para desarrolladores. Consiste en un
modelo de asignación de tareas diarias basado en reuniones rápidas y control de la
evolución de los procesos. Es muy bueno para llevar un seguimiento de las tareas
que se están llevando a cabo y saber en qué puntos se ha atascado el equipo.
Además, la profundidad de las tareas que se asignan en SCRUM tiende a ser
incremental, y esto coincide exactamente con el devenir normal de un desarrollo.
Es genial para empresas de desarrollo de software orientadas a varios clientes.

 XP o Xtream Programming
Programación Extrema es un método ágil que se suele utilizar en equipos con muy
pocos programadores que tienen muy pocos procesos abiertos al mismo tiempo.
Consiste principalmente en diseñar, implementar, programar e implantar lo más
rápido posible en equipos de programadores muy pequeños, principalmente
parejas, saltándose la documentación y los procedimientos tradicionales. Se
fundamente en la capacidad del equipo para comunicarse entre sí y las ganas de
aprender de los errores propios inherentes en un programador. La gran ventaja que
tiene este sistema es la increíble capacidad de respuesta del equipo ante
imprevistos, aunque es una metodología para la que es difícil documentar.
XP es un método estupendo para equipos extremadamente pequeños que se
centran en un solo cliente.
 Desarrollo Lean
Lean Software Development, también conocido como Lean Programming es un
conjunto de técnicas que engloban una metodología de desarrollo ágil de
software orientado a conseguir exactamente lo que necesita el cliente. Es una
evolución del Método Toyota de Producción aplicado al desarrollo y que está muy
de moda entre los equipos de desarrollo en startups. Principalmente consiste en
ciclos de evolución de software incrementales en los que se posponen las
decisiones lo más posible hasta haber obtenido un feedback del cliente y así
reaccionar lo más rápido y eficazmente posible a sus necesidades. Se fundamenta
en tener un equipo potente y comprometido y el principio de aprendizaje continuo
sobre el producto.
El Desarrollo Lean una metodología fantástica para startups que están
desarrollando un software orientado a tener éxito en el mercado, como
desarrolladores de videojuegos o apps para móviles.

Importancia de herramientas case

herramientas CASE (Computer Aided Software Engineering, Ingeniería de Software


Asistida por Computadora) son diversas aplicaciones informáticas o programas
informáticos destinadas a aumentar la productividad en el desarrollo de software
reduciendo el costo de las mismas en términos de tiempo y de dinero.

La tecnología CASE supone la automatización del desarrollo del software,


contribuyendo a mejorar la calidad y la productividad en el desarrollo de sistemas
de información a la hora de construir software.

Vous aimerez peut-être aussi