Está en la página 1de 10

DEPARTAMENTO DE

TECNOLOGÍA Y
ADMINISTRACIÓN

INGENIERÍA EN INFORMÁTICA

Tema:
DESAROLLO DE SOFTWARE
Trabajo Práctico N 6

Materia: Introducción a la Ingeniería

Cuatrimestre: 2do 2017 Comisión:

Profesores: Gastón Freire

Integrantes:
- Benjamín Chuquimango Ch.
- Nicolás Acosta
- Santiago Alessio

Buenos Aires 29 de Noviembre 2017

1
DESARROLLO DE SOFTWARE

INDICE

Índice…………………………………………………………………………….. 2

Las etapas para el desarrollo de software……………………………………….... 3

Es siempre necesario hacer todas estas etapas?............................................ 3

Qué son las metodologías ágiles………………………………………………… 4

Ventajas de las metodologías ágiles……………………………………………… 5

Arquitectura de Software……………………………………………………….. 6

Tres etapas de construcción de software……………………………………….... 6

Ejemplo de aplicación (Desarrollado con el Visual Basic)……………………… 7

Base de datos,…………………………………………………………………… 7

Tabla……………………………………………………………………………... 8

Registro………………………………………………………………………… 8

Campo…………………………………………………………………………… 8

Referencias……………………………………………………………………… 10

2
1.
a. Investigar qué etapas o fases existe para el desarrollo de software, desde
que se plantea el problema hasta que se obtiene el sistema desarrollado.
Las etapas para el desarrollo de software son 6:
 Análisis de requisitos
 Diseño y arquitectura
 Programación
 Pruebas
 Documentación
 Mantenimiento

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

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

Pruebas
Consiste en comprobar que el software realice correctamente las tareas indicadas en la
especificación. 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. 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.
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.

b. En su opinión, ¿es siempre necesario hacer todas estas etapas? Por ejemplo,
¿se podría hacer un sistema como el de la tarjeta SUBE sin antes pensar los
requerimientos y el diseño?
Antes de comenzar con el desarrollo de cualquier proyecto, se conduce un estudio de
Sistemas para detectar todos los detalles de la situación actual dela empresa. La
información reunida con este estudio sirve como base para crear varias estrategias de
diseño. Los administradores deciden que estrategias seguir. Es un papel muy importante
en el desarrollo de sistemas seguir los pasos de diseño.

c. ¿Qué son las metodologías ágiles?, ¿Qué ventajas tienen?


Ágil ofrece un modelo increíblemente flexible, que permite adaptarse evolutivamente a
las necesidades de un mundo cambiante. El proyecto se divide en pequeñas tareas
desarrolladas por grupos independientes que trabajan simultáneamente e interaccionan
entre ellos. Los clientes intervienen y las pruebas del producto ocurren simultáneamente
a la realización del proyecto, con lo cual se consigue una mejora continua y una
adecuación constante del producto a las necesidades reales.

4
Podemos definir las Metodologías ágiles como el conjunto de técnicas dirigidas a la
gestión de proyectos, que han surgido como contraposición a los métodos clásicos de
gestión como CMMI. Todas las metodologías que se consideran ágiles cumplen con el
manifiesto ágil, que no es más que una serie de principios agrupados en tres valores:

Ventajas:
- En primer lugar, las metodologías ágiles mejoran la satisfacción del cliente dado
que se involucrará y comprometerá a lo largo del proyecto. En cada etapa del
desarrollo se informará al cliente sobre los progresos del mismo. De ese modo,
el cliente puede sumar su experiencia para optimizar las características del
producto final
- Mejora la motivación e implicación del equipo de desarrollo. Pero esta mejora
no es casual: las metodologías ágiles permiten a todos los miembros del equipo
conocer el estado del proyecto en cualquier momento.
- Destacar que los procesos ágiles permiten ahorrar tanto tiempo como costes. El
desarrollo ágil trabaja de un modo más eficiente y rápido que otras
metodologías. Además, estos procesos ponen el foco en cumplir estrictamente el
presupuesto y los plazos pactados a la hora de definir y planificar el proyecto.
- Se trabaja con mayor velocidad y eficiencia. En las metodologías ágiles se
trabaja realizando entregas parciales pero funcionales del producto. De ese
modo, es posible entregar en el menor intervalo de tiempo posible una versión
funcional del producto.
- Gracias a las entregas parciales (centradas en entregar en primer lugar aquellas
funcionalidades que en verdad aportan valor) y a la implicación del cliente será
posible eliminar aquellas características innecesarias del producto.
- Las metodologías ágiles permiten mejorar la calidad del producto. La continua
interacción entre los desarrolladores y los clientes tienen como objetivo asegurar
que el producto final sea exactamente lo que el cliente quiere y necesita.
Además, este enfoque permite abrazar la excelencia tecnológica, lo que permite
obtener un producto tecnológicamente superior.
- Por otro lado, esta metodología permite alertar rápidamente tanto de errores
como de problemas. En la etapa de planificación, el equipo ha presentado una
hoja de ruta anticipando y dando respuesta a los principales problemas técnicos
y a la velocidad en la que se puede trabajar. Con metodologías más

5
tradicionales, los errores no identificados en las primeras fases del proyecto
suelen acarrear costes muy altos.
- Y, finalmente, las metodologías ágiles permiten rentabilizar nuestras inversiones
más rápidamente. Gracias a la realización de entregas tempranas el cliente tendrá
rápido acceso a aquellas funcionalidades que en verdad aportan valor acelerando
el retorno de la inversión.

2.
¿A qué se refiere la arquitectura de Software? ¿A qué fase o etapa de construcción
de software pertenece?
a. ¿Qué es la arquitectura software?
La arquitectura del software es el diseño de más alto nivel de la estructura de un
sistema. Consiste en un conjunto de abstracciones que forman el “marco” del software.
La arquitectura se diseña en la fase posterior a la de requisitos, la llamada fase de
diseño.
b. ¿En qué consiste el modelo de arquitectura en tres capas? Explicar.
La arquitectura en tres capas es un tipo de arquitectura usada en la gran mayoría de
sistemas. Se suele usar en sistemas que implementan un modelo de negocio como
podría ser una tienda online, una aplicación para gestionar ciertos datos, etc. Sin
embargo no es recomendable usarla en sistemas de tiempo real como los de los coches o
aviones.
La arquitectura en tres capas lo que hace es dividir el sistema en tres partes
diferenciadas, de tal forma que cada capa solo se comunique con la inferior. Esas tres
capas se denominan:

Persistencia: Esta capa se encarga de guardar los datos. Será donde se gestione todo lo
relativo a la base de datos y a la creación, edición y borrado de datos de ésta.
Negocio: En esta capa se gestiona la lógica de la aplicación. Es donde se dice que se
hace con los datos. Por ejemplo para una aplicación de gestión de una biblioteca será
donde se gestione cuántos préstamos puede tener un usuario, que ocurre si un usuario se

6
retrasa al devolver un libro, etc. Estará conectada con la capa de persistencia para poder
realizar sus funciones.
Presentación: En esta capa se crea la interfaz del usuario. Su única función es pasarle
las acciones que realice el usuario a la capa de negocio.
Al hacer que cada capa se comunique solo con la inmediatamente inferior, conseguimos
que si hay que realizar un cambio no nos volvamos locos tocando todo el sistema. Si por
ejemplo tenemos que cambiar la forma en la que se guardan los datos (el tipo de base de
datos por ejemplo), solo tendríamos que tocar la capa de persistencia.

3. Ejemplo de aplicación (Desarrollado con el Visual Basic)

a. Como primer paso le asignan un profesor tutor que los guiará a lo largo de
la construcción de la aplicación, y luego de una reunión con él, surgieron los
siguientes términos:

Interfaz de Usuario y formulario.


Los formularios son las unidades de creación básicas para la interfaz de usuario. Cada
formulario del programa representa una ventana que se aparece a los usuarios. Cuando
se trabaja en el IDE (entorno de desarrollo integrado) de Visual Basic, un formulario
puede considerarse como el diseñador que se utiliza para diseñar la interfaz de usuario
de la aplicación, del mismo modo que Windows Paint se utiliza para dibujar una
imagen.
Por ejemplo, un control Button tiene el aspecto y el comportamiento de un botón de
comando: cuando un usuario hace clic en él, cambia para mostrarlo.
Base de datos
Una base de datos es un “almacén” que nos permite guardar grandes cantidades de
información de forma organizada para que luego podamos encontrar y utilizar
fácilmente. A continuación te presentamos una guía que te explicará el concepto y
características de las bases de datos.

7
Desde el punto de vista informático, la base de datos es un sistema formado por un
conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un
conjunto de programas que manipulen ese conjunto de datos.
Cada base de datos se compone de una o más tablas que guarda un conjunto de datos.
Cada tabla tiene una o más columnas y filas. Las columnas guardan una parte de la
información sobre cada elemento que queramos guardar en la tabla, cada fila de la tabla
conforma un registro.
Tabla
Se refiere al tipo de modelado de datos, donde se guardan los datos recogidos por un
programa. Su estructura general se asemeja a la vista general de un programa dehoja de
cálculos.
Cada tabla creada debe tener un nombre único en la Base de Datos, haciéndola accesible
mediante su nombre o su seudónimo (Alias) (dependiendo del tipo de base de datos
elegida). La estructura de las tablas viene dada por la forma de un archivo plano, los
cuales en un inicio se componían de un modo similar.
Las tablas son los objetos principales de bases de datos que se utilizan para guardar
datos.
Una tabla es utilizada para organizar y presentar información. Las tablas se componen
de filas y columnas de celdas que se pueden rellenar con textos y gráficos.
Las tablas se componen de dos estructuras:
- Registro: Es cada una de las filas en que se divide la tabla. Cada registro
contiene datos de los mismos tipos que los demás registros. Ejemplo: en una
tabla de nombres, direcciones, etc., cada fila contendrá un nombre y una
dirección.
- Campo: Es cada una de las columnas que forman la tabla. Contienen datos de
tipo diferente a los de otros campos. En el ejemplo anterior, un campo contendrá
un tipo de datos único, como una dirección, o un número de teléfono, un
nombre, etc.
A los campos se les puede asignar, además, propiedades especiales que afectan a los
registros insertados. El campo puede ser definido como índice o auto-incremental, lo

8
cual permite que los datos de ese campo cambien solos o sean el principal a la hora de
ordenar los datos contenidos.

b. Haciendo uso de Microsoft Access (Aplicación)

9
Referencias

https://sistemasvd.wordpress.com/2008/07/05/fases-del-proceso-de-desarrollo-del-
software/
http://info.bravent.net/blog/scrum-metodologias-agiles-beneficios-aportan-al-desarrollo-
del-software
http://www.iebschool.com/blog/que-es-agile-agile-scrum/
https://instintobinario.com/arquitectura-en-tres-capas/
https://programacionwebluz.wordpress.com/arquitectura-de-3-capas/
https://riunet.upv.es/bitstream/handle/10251/10273/Memoria.pdf
http://www.maestrosdelweb.com/que-son-las-bases-de-datos/
https://es.wikipedia.org/wiki/Tabla_(base_de_datos)

10