Vous êtes sur la page 1sur 20

“Año del diálogo y la reconciliación nacional”

CARRERA PROFESIONAL DE COMPUTACIÓN E INFORMÁTICA

UNIDAD DIDÁCTICA: HERRAMIENTAS DE DESARROLLO DE


SOFTWARE

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

AUTOR:

DOCENTE:

CICLO ACADÉMICO: III

CARHUAZ - 2018
2

DEDICATORIA

Quiero dedicarle este trabajo A Dios que me ha dado la vida y

fortaleza para estudiar, A mis Padres por estar ahí cuando más

los necesité; en especial a mi madre por su ayuda y constante

cooperación y A mi amigo por apoyarme y ayudarme en los

momentos más difíciles.


3

AGRADECIMIENTO

En primer lugar deseo expresar mi agradecimiento al

director de esta institución, por la dedicación y apoyo que

ha brindado a este trabajo, por el respeto a mis sugerencias

e ideas y por la dirección y el rigor que ha facilitado a las

mismas. Gracias por la confianza ofrecida desde que llegué

al Instituto.

Así mismo, agradezco a mis compañeros de la especialidad

de Enfermería técnica su apoyo personal y humano,

especialmente a mi mamá, con quien he compartido

proyectos e ilusiones durante estos años.

A todos, muchas gracias.


4

ÍNDICE

INTRODUCCIÓN .................................................................................................................................. 6
CAPÍTULO I: HERRAMIENTAS DE DESARROLLO DE SOFTWARE ........................................... 7
1.1. Definición ............................................................................................................................... 7
1.1.1. Herramientas ....................................................................................................................... 7
1.1.1.1. Clasificación de las herramientas .................................................................................... 7
1.1.2. Desarrollo de software ........................................................................................................ 7
1.1.3. Herramientas de desarrollo de software .............................................................................. 8
1.1.3.1. Herramientas de Modelaje .............................................................................................. 8
1.1.3.2. Herramientas de desarrollo ............................................................................................. 8
1.1.3.3. Herramientas de Pruebas ................................................................................................. 9
1.1.3.4. Herramientas de depurado ............................................................................................ 10
1.1.3.5. Herramientas de Diseño ................................................................................................ 10
CAPÍTULO II: TECNICAS Y MEJORES PRÁCTICAS PARA EL PROCESO DE
DESARROLLO DE SOFTWRE ...................................................................................................... 12
2.1. Definición ............................................................................................................................. 12
2.1.1. Técnicas ............................................................................................................................ 12
2.1.1.1. Técnica para la Recopilación de Datos ......................................................................... 12
2.1.1.2. Técnica de Costo-Beneficios ........................................................................................ 12
2.1.1.3. Técnica de Planificación y Control de Proyectos ......................................................... 12
2.2. Prácticas aplicables al proceso de desarrollo en general ....................................................... 13
2.2.1. Participación activa de los clientes ................................................................................... 13
2.2.2. Visualización de los requerimientos ................................................................................. 13
2.2.3. Información de una única fuente ....................................................................................... 13
2.2.4. Visualización de la arquitectura ........................................................................................ 13
2.2.5. Documentar continuamente .............................................................................................. 13
2.2.6. Gestión de requerimientos ................................................................................................ 13
2.2.6.1. Tomar una primera aproximación amplia ..................................................................... 13
2.2.6.2. Tratar los requerimientos como una pila priorizada...................................................... 14
2.2.6.3. Reconocer que existe una amplia variedad de clientes ................................................. 14
2.2.6.4. Requerimientos independientes de la plataforma ......................................................... 14
2.2.6.5. Trazabilidad .................................................................................................................. 15
2.2.6.6. Explicar las técnicas ...................................................................................................... 15
2.2.7. Análisis y diseño ............................................................................................................... 15
5

2.2.7.1. Los modelos de diseño son apenas lo suficientemente buenos ..................................... 15


2.2.7.2. Cada modelo puede ser utilizado para diversos propósitos........................................... 15
2.2.7.3. Los diseñadores también deben codificar ..................................................................... 15
2.2.7.4. Probar con código ......................................................................................................... 16
2.2.7.5. La retroalimentación es importante ............................................................................... 16
2.2.7.6. Utilizar herramientas de generación de código ............................................................. 16
2.2.7.7. El diseño es importante y debe realizarse todos los días............................................... 16
2.2.7.8. Analizar detenidamente el ambiente de implementación .............................................. 16
2.2.7.9. Documentar las partes complicadas del sistema ........................................................... 16
CONCLUSIÓN ..................................................................................................................................... 17
REFERENCIA BIBLIOGRÁFICA ...................................................................................................... 18
ANEXOS .............................................................................................................................................. 19
ANEXO 01: Proceso en Cascada ...................................................................................................... 19
ANEXO 02: Modelo en V ................................................................................................................ 19
ANEXO 03: Modelo en espiral......................................................................................................... 20
ANEXO 04: Modelo incremental ..................................................................................................... 20
6

INTRODUCCIÓN

En el presente trabajo vamos a abordar los principales aspectos de las herramientas de


desarrollo de software, éstas son numerosas y apoyan en múltiples formas diferentes
dimensiones del desarrollo de software en general.

La importancia de las herramientas de desarrollo de software en el desarrollo de


aplicaciones. Como parte de la ingeniería de software, han experimentado también continuos
cambios, consecuencia del creciente avance tecnológico propio de los últimos años. Este
cambio ha sido un factor con especial influencia sobre la ingeniería del software, así como
también sobre otras disciplinas relacionadas, e impulsa una alta tasa de cambio en las
herramientas de desarrollo de software.

Para finalizar terminaremos con los modelos para herramientas y métodos. Por ello este
trabajo describe en su Capítulo I definiciones herramientas de desarrollo de software, en el
Capítulo II describe las técnicas y mejores prácticas correspondientes al ámbito de las
herramientas de desarrollo de software y por último se cierra con las conclusiones.
7

CAPÍTULO I: HERRAMIENTAS DE DESARROLLO DE SOFTWARE

1.1. Definición

1.1.1. Herramientas

Las Herramientas dan ayuda al desarrollo de Sistemas de Información, ayudan a


solucionar los problemas que se nos presentan en los proyectos y desarrollos de aplicaciones
informáticas.
Tal es el caso que para el desarrollo de software libre se pueden conseguir unas cuantas
herramientas pero todas utilizan la notación UML.
Existen herramientas orientadas a una db en específico y estas son MySql y
PostgreSQL, el de MySql (MySql WorkBench no es libre).
También se puede utilizar, Herramientas para Ingeniería de Software Asistida por
Computadora (CASE) Son un conjunto de métodos, utilidades y técnicas que facilitan la
automatización del ciclo de vida del desarrollo de sistemas de información.

1.1.1.1. Clasificación de las herramientas

No existe una única clasificación de herramientas CASE y, en ocasiones, es difícil


incluirlas en una clase determinada. Podrían clasificarse atendiendo a:
• Las plataformas que soportan.
• Las fases del ciclo de vida del desarrollo de sistemas que cubren.
• La arquitectura de las aplicaciones que producen.
• Su funcionalidad.

1.1.2. Desarrollo de software

El desarrollo de software, es una de las ramas de la ingeniería que se en enfoca


principalmente a lo que es la creación de sistemas informáticos.
Desarrollar un software significa construirlo simplemente mediante su descripción. Esta
es una muy buena razón para considerar la actividad de desarrollo de software como una
ingeniería. En un nivel más general, la relación existente entre un software y su entorno es clara
ya que el software es introducido en el mundo de modo de provocar ciertos efectos en el mismo.
Pero el desarrollo de software no es un campo con tales características. La versatilidad
de las computadoras y su rápida evolución hace que exista un repertorio de problemas en
constante cambio y cuya solución software sea de enorme importancia.
8

1.1.3. Herramientas de desarrollo de software

Brian K y Plauger (Pág. 01), Dice que una herramienta de desarrollo de software es un
programa informático que usa un programador para crear, depurar, gestionar o mantener un
programa.

1.1.3.1. Herramientas de Modelaje

Antes de construir una aplicación, los desarrolladores y las organizaciones de software


se involucran en un periodo de modelaje. Esto tiene que ver con diseñar la estructura de la
aplicación en un nivel abstracto, usando una o más herramientas de modelaje. El Lenguaje de
Modelaje de Datos (UML, por sus siglas en inglés) es la herramienta más común para crear
modelos de software, usando representaciones gráficas de los diversos elementos dentro de los
sistemas a desarrollar.
Los programadores pueden crear diagramas UML usando herramientas de diseño
gráfico como MagicDraw UML y BOUML.
UML es una herramienta propia de personas que tienen conocimientos relativamente
avanzados de programación y es frecuentemente usada por analistas funcionales (aquellos que
definen qué debe hacer un programa sin entrar a escribir el código) y analistas-programadores
(aquellos que dado un problema, lo estudian y escriben el código informático para resolverlo
en un lenguaje como Java, C#, Python o cualquier otro). Por tanto si estás dando tus primeros
pasos en programación, te recomendaríamos que te olvides de UML hasta que tengas unos
conocimientos mínimos como uso de condicionales, bucles, y conocimiento de la
programación orientada a objetos. Esto es solo una recomendación, en realidad prácticamente
cualquier persona puede usar UML, incluso podría usarse para realizar esquemas o
documentación de procesos que no tengan que ver con la informática.
BOUML es una aplicación que permite realizar diagramas UML 2 para especificar y
generar código en C++, Java, Idl, Php, Python y MySQL.
Funciona sobre Unix / Linux / Solaris, Mac OS X (Power PC e Intel) y Windows.

1.1.3.2. Herramientas de desarrollo

La etapa de desarrollo para aplicaciones de software involucra muchas herramientas


diferentes, particularmente los Ambientes de Desarrollo Integrados (IDE, por sus siglas en
inglés).
Los IDE están disponibles para muchos lenguajes de programación, incluyendo Java,
PHP, C y Microsoft .Net. Algunos IDE, como Eclipse, pueden usarse para programar en más
9

de un lenguaje; sin embargo, la mayoría están diseñados para una plataforma particular. Un
IDE proporciona la capacidad de escribir, compilar y ejecutar códigos. La mayoría de los IDE
resaltan los errores de sintaxis, crean visualizaciones de elementos en la aplicación e incluyen
herramientas para probar y depurar.
PHP. (acrónimo recursivo de PHP: Hypertext Preprocessor) es un lenguaje de código
abierto muy popular especialmente adecuado para el desarrollo web y que puede ser incrustado
en HTML.
JAVA. es un lenguaje de programación y una plataforma informática comercializada
por primera vez en 1995 por Sun Microsystems. Hay muchas aplicaciones y sitios web que no
funcionarán a menos que tenga Java instalado y cada día se crean más. Java es rápido, seguro
y fiable. Desde portátiles hasta centros de datos, desde consolas para juegos hasta súper
computadoras, desde teléfonos móviles hasta Internet, Java está en todas partes.

1.1.3.3. Herramientas de Pruebas

Una vez que una aplicación ha alcanzado la etapa de desarrollo con cierto grado de
compleción, pasará por un periodo de prueba. Muchos IDE incluyen herramientas y
complementos para ayudar a automatizar este proceso. Por ejemplo, los IDE para Java, como
Eclipse y NetBeans, proporcionan las herramientas para especificar un conjunto de entradas de
prueba para una aplicación, luego ejecutan estas pruebas y reciben la información de salida
detallada de los resultados.
Algunas herramientas de prueba:
Selenium
Soapui
Watir (Pruebas de aplicaciones web en Ruby)
WatiN (Pruebas de aplicaciones web en .Net)
Capedit
Canoo WebTest
Solex
Imprimatur
SAMIE
ITP
WET
WebInject
10

1.1.3.4. Herramientas de depurado

La depuración es una de las actividades principales en el desarrollo de software. Cuando


más grande sea una aplicación, mayor será el número de errores y problemas potenciales. Los
IDE usualmente incluyen algunos elementos estándar de depuración, pero se pueden descargar
e instalar otros como complementos al programa. Por ejemplo, cuando los desarrolladores están
usando el ambiente Visual Studio para desarrollar aplicaciones .NET, pueden usar
automáticamente el depurador que se ejecuta dentro del IDE. Adicionalmente, existen
programas depuradores independientes que están disponibles para muchos lenguajes.
El debugger es una de esas herramientas para el desarrollo de sistemas, que necesita
que tu al momento de ver el error, trates de corregirlo.

1.1.3.5. Herramientas de Diseño

La mayoría de las aplicaciones incluye algún tipo de interfaz de usuario. Como ésta es
un objeto visual, los desarrolladores frecuentemente utilizan programas de diseño gráfico para
crear algunas de las imágenes mostradas dentro de esta interfaz.
Adicionalmente, los componentes estándar de una interfaz de usuario son
frecuentemente proporcionados dentro de un lenguaje, incluyendo botones, campos de entrada
de texto, casillas de verificación y cuadros de diálogo.
Estas características pueden incluirse y combinarse con código fuente, pero
frecuentemente es más sencillo usar un método más visual.
Los IDE más importantes, como Eclipse y Visual Studio, proporcionan herramientas
de visualización y complementos para facilitar el proceso de diseño.
11
12

CAPÍTULO II: TECNICAS Y MEJORES PRÁCTICAS PARA EL PROCESO DE


DESARROLLO DE SOFTWRE

2.1. Definición

2.1.1. Técnicas
Las técnicas que se podrían utilizar en la elaboración de un software seria el
procedimiento o conjunto de reglas, normas o protocolos, que tienen como objetivo obtener un
resultado determinado para que dicho software sea lo más parecido a las exigencias del cliente,
podrían ser:

2.1.1.1. Técnica para la Recopilación de Datos


La recolección de datos se refiere al uso de una gran diversidad de técnicas y
herramientas que pueden ser utilizadas por el analista para desarrollar los sistemas de
información, los cuales pueden ser:

Las entrevistas: Es una técnica de obtención de información mediante el diálogo mantenido


en un encuentro formal y planeado.

La encuesta: estudio en el cual el investigador obtiene los datos a partir de realizar un conjunto
de preguntas normalizadas dirigidas a una muestra representativa o al conjunto total de la
población.

El cuestionario: es un conjunto de preguntas sobre los hechos o aspectos que interesan en una
investigación y son contestados por los encuestados.

La observación: Es una técnica que consiste en observar atentamente el fenómeno, hecho o


caso, tomar información y registrarla para su posterior análisis.

2.1.1.2. Técnica de Costo-Beneficios


El análisis de costo-beneficio es una técnica analítica que enumera y compara el costo
neto de una intervención con los beneficios que surgen como consecuencia de aplicar dicha
intervención.

2.1.1.3. Técnica de Planificación y Control de Proyectos


La Planificación y Control de Proyectos de Software comprende una serie de procedimientos,
sin embargo, se mencionaran solo los más complejos y/o significativos, los cuales son: Objeto,
Alcance, Entradas, Salidas, Desarrollo, Planificación, Programación, Control
13

2.2. Prácticas aplicables al proceso de desarrollo en general

A pesar de las diferencias particulares entre las distintas metodologías ágiles, existe un
conjunto de mejores prácticas que son comunes a la mayoría de ellas y que se aplican al proceso
de desarrollo en general.

2.2.1. Participación activa de los clientes

Los clientes deben proveer información de manera regular, tomar decisiones de manera
constante e involucrarse activamente en el proceso de desarrollo a través de herramientas y
técnicas que faciliten su inclusión.

2.2.2. Visualización de los requerimientos

Al principio de un proyecto ágil es necesario invertir algún tiempo para identificar el


alcance del proyecto y crear la pila inicial de requerimientos organizados por prioridad.

2.2.3. Información de una única fuente

Se obtiene al capturar la información en un lugar únicamente.

2.2.4. Visualización de la arquitectura

Al principio de un proyecto ágil es necesario un modelado inicial de la arquitectura


desde un nivel de abstracción alto para identificar una estrategia que permita la implementación
de la solución.

2.2.5. Documentar continuamente

Elaborar documentación entregable a través del ciclo de vida del producto de forma
paralela a la creación de la solución.

2.2.6. Gestión de requerimientos

Adoptar modelos inclusivos. Para facilitar la participación activa de los clientes con el
modelado y la documentación, es necesario reducir las barreras idiomáticas evitando utilizar
términos técnicos y utilizando herramientas simples como notas adheribles.

2.2.6.1. Tomar una primera aproximación amplia

Es mejor intentar plasmar la idea general en lugar de enfocarse en algún aspecto


particular del sistema, esto permite obtener un conocimiento general del sistema. Tratar de
definir la totalidad de los requerimientos al inicio del proyecto suele fallar debido a dos razones
principales:
14

Cuando los clientes reciben la indicación de plasmar todos sus requerimientos en papel
al inicio del proyecto intentan definir tantos requerimientos potenciales como les es posible sin
saber si realmente serán necesarios.

Los clientes saben que si no lo hacen ahora será muy difícil agregarlos después debido
a la práctica común de evitar realizar cambios en etapas avanzadas del proyecto.

2.2.6.2. Tratar los requerimientos como una pila priorizada

Se ubican los requerimientos en una pila ordenados por prioridad de acuerdo a cuando
deben implementarse, decisión que debe tomarse en conjunto con el cliente. En caso de
requerirse un cambio a un requerimiento debe tratarse como un nuevo requerimiento y
agregarse a la pila. Los requerimientos que se encuentran al principio de la pila deben estar
bien detallados y en los del final el detalle debe ser escaso.

Preferir requerimientos ejecutables sobre documentación estática. En la manera posible,


especificar los requerimientos en forma de “pruebas de usuario” que puedan ejecutarse y
diseñar como si fueran pruebas de desarrollo ejecutables, en lugar de documentación “estática”
no ejecutable.

2.2.6.3. Reconocer que existe una amplia variedad de clientes

Incluso entre los miembros de una misma empresa es común que haya puntos en los
que no exista un acuerdo sobre lo que se espera del sistema. Por ello es necesario definir a la
persona que servirá de intermediario entre el cliente y el equipo de desarrollo, y que funcionará
como la fuente oficial de información y priorización.

2.2.6.4. Requerimientos independientes de la plataforma

Los requerimientos deben ser independientes de la plataforma para que puedan


conservar su simpleza y claridad. Más pequeño es mejor

Los pequeños requerimientos, características e historias de usuario son más fáciles de


estimar y de desarrollar que aquellos que son grandes, además de que son más fáciles de
priorizar y por tanto de manejar.
15

2.2.6.5. Trazabilidad

Se refiere a la capacidad de conocer la relación de un requerimiento hacia todos los


artefactos que afecta: modelos de análisis, modelos arquitectónicos, modelos de diseño, código
fuente y casos de prueba. La trazabilidad debe verse reflejada en una matriz, lo que permite
analizar el impacto que tendría en el sistema un cambio de requerimiento.

2.2.6.6. Explicar las técnicas

Todo el equipo debe tener un entendimiento básico de una técnica de modelado,


incluyendo los clientes. Por ejemplo, el tomar unos momentos para explicar qué es una tarjeta
CRC y por qué se utiliza, puede ayudar a facilitar el proceso.

Adoptar la terminología de los clientes.

No debemos insistir en que los clientes sean capaces de entender terminología técnica del
desarrollo. Para ellos se está construyendo el sistema, por tanto, es su terminología la que
debemos utilizar para el modelado del sistema. Un artefacto útil para consolidar está práctica
es elaborar y mantener un glosario de términos de negocio.

2.2.7. Análisis y diseño

Los diseños ágiles se van construyendo, no se definen por completo al inicio. El diseño
general del sistema se construye conforme avanza el desarrollo del proyecto cambiando y
evolucionando constantemente.

2.2.7.1. Los modelos de diseño son apenas lo suficientemente buenos

No es necesario modelar cada detalle en los modelos ya que no es necesario que se


encuentren completos, los detalles se refinan durante el proceso de codificación.

2.2.7.2. Cada modelo puede ser utilizado para diversos propósitos

Cada modelo puede ser utilizado para diversos propósitos, por ejemplo un caso de uso
puede usarse para modelar la naturaleza esencial de un proceso o para modelar un proceso a
detalle.

2.2.7.3. Los diseñadores también deben codificar

Cuando el modelo desarrollado por alguien más se entrega a otra persona para
codificarlo hay un riesgo significativo de que no capte sus detalles adecuadamente. Separar las
16

funciones del diseño y la codificación es riesgosa, es mejor contar con especialistas en el equipo
que puedan diseñar y codificar.

2.2.7.4. Probar con código

Nunca debe asumirse que un diseño funciona, sino que debe probarse codificándolo
para determinar si funciona.

2.2.7.5. La retroalimentación es importante

Nunca debe olvidarse que es necesario buscar activamente retroalimentación sobre el


trabajo que se realiza. Esto permite mejorar el sistema.

2.2.7.6. Utilizar herramientas de generación de código

En caso de que exista la posibilidad de que a partir del diseño se genere


automáticamente código, esa posibilidad debe aprovecharse.

2.2.7.7. El diseño es importante y debe realizarse todos los días

Es de suma importancia pensar en lo que se va a construir. A través del diseño es posible


obtener una idea general y plasmarla antes de lanzarse a la construcción.

2.2.7.8. Analizar detenidamente el ambiente de implementación

Esto es importante porque permite determinar cuestiones como la portabilidad que


tendrá el sistema, lo cual limita la elección de tecnologías para el desarrollo del proyecto.

2.2.7.9. Documentar las partes complicadas del sistema

A través de la documentación generada debemos poder entender el funcionamiento del


sistema, así como las razones que sustentan las decisiones de diseño.
17

CONCLUSIÓN

El desarrollo de software, también conocido como el ciclo del software, se compone

por diversas etapas que dependen precisamente de que es lo que se está llevando a cabo, cada

una de esas etapas cuenta con distintas Herramientas de Desarrollo de Software y se vio a cada

una de ellas, para que sin importar en qué fase de desarrollo te encuentres, tengas la posibilidad

de usar distintas herramientas de software que te faciliten la vida en gran manera.

Entre estos lenguajes de programación con IDE disponible, se encuentra: .Net de

Microsoft, C y PHP. Así que tendrás la comodidad de contar con un ambiente amigable, que

te permitirá escribir código y analizarlo para mostrarte en que parte de la sintaxis estás

incorrecto. Además permiten compilar el código escrito para posteriormente realizar pruebas y

hacer las respectivas depuraciones. Todo esto con elementos visuales y amigables que

permitirán que no te sientas solo al momento de estar desarrollando en cualquiera de estos

lenguajes de programación.

Algunas veces los requerimientos que tienen una mayor prioridad son complejos, lo

cual motiva que se inviertan esfuerzos para explorarlos antes de comenzar su desarrollo para

reducir el riesgo general del desarrollo.

Cada tipo de modelo tiene sus fortalezas y debilidades. Un desarrollador efectivo

necesitará contar con una variedad de modelos en su caja mental de herramientas que le

permitan aplicar el modelo adecuado en la forma más apropiada para la situación actual.
18

REFERENCIA BIBLIOGRÁFICA

Brian Kernighan; P. J. Plauger (1976), Software Tools, Addison-Wesley, p. 352, ISBN


020103669X salvado en:
https://es.wikipedia.org/wiki/Herramienta_de_desarrollo_de_software

https://www.ecured.cu/Desarrollo_de_software#Desarrollo_del_Software

http://ing1-fundamentos.blogspot.pe/2012/11/tecnicas-y-herramientas-en-el-proceso.html
19

ANEXOS

ANEXO 01: Proceso en Cascada

ANEXO 02: Modelo en V


20

ANEXO 03: Modelo en espiral

ANEXO 04: Modelo incremental

Vous aimerez peut-être aussi