Está en la página 1de 6

TECNICATURA UNIVERSITARIA EN TECNOLOGIA DE LA

INFORMACION CON ORIENTACION EN DESARROLLO WEB

Asignatura: Análisis de sistemas de información

Docente: Christian Pardavila

Alumno: Joel David Lizarraga

Actividad: Actividad evaluable [A1]


Consigna
Trabajo de investigación
Realizar la tarea de investigar sobre los siguientes dos tópicos:
 La historia de la ingeniería de software.
 Requerimientos de Dominio.

Historia de la Ingeniería y sus diferentes épocas

Hoy en día cuando hablamos de software nos ubicamos en las últimas tecnologías como
Google Chrome, Microsoft Word o Photoshop, pero esta industria no lleva poco, sino que hace
más de setenta años, hoy en día podemos ver que la industria del software no es la misma que
en la década de 40 o 50.

En las décadas del 40 y 50 el software todavía no era una herramienta esencial para crear
complejos sistemas informáticos, si no que la mayoría de ingenieros primero creaban el
hardware y estos mismos se ocupaban de crear el software. Lo que llevo también a desarrollar
los primeros lenguajes de programación de alto nivel, como Fortran y COBOL. Estos lenguajes
permitían a los programadores escribir código más fácilmente, lo que llevo a una mayor
productividad y a la creación de software más sofisticado.

En la década del 60 con la llegada al hombre en la luna donde el software se empezó a


diferenciar del hardware, ya que estas misiones como en el Apolo 11 se necesitaba controles
remotos y esto conllevaba a sistemas eficientes y de mayor calidad. Esto dio origen al concepto
de “Crisis informática” en 1968 es un término acuñado en la primera conferencia organizada
por la OTAN (Organización del Tratado del Atlántico Norte) donde se trataba el desarrollo de
software y en donde el tema principal era la construcción de sistemas de software de calidad,
pensado para el usuario y la inserción de las nuevas tecnologías

La década del 70 fue donde las empresas pudieron ver que los costes de software superaban
en creces al hardware donde se proponían ideas como el ciclo de vida o SDLC (Software
Develop Life Cicle) que daba como idea general la construcción centralizada de software donde
parte de una necesidad hasta que mure, estas ideas se empezaban a poner en práctica en el
desarrollo del software.

En las décadas del 80 y 90 surgió internet, lo que llevo a la creación de aplicaciones de


software basadas en la web. También se desarrollaron lenguajes de programación de scripting,
como Pearl y Python también el surgimiento los lenguajes orientados a objetos como C++,
Objetive-C y Eiffel esto suponía en la enseñanza de profesionales con amplios conocimientos
de software. También la creación de normas como los estándares de las normas ISO
(Internacional Organization for Standardization).

Desde el 2000 en adelante se proponen nuevas metodologías agiles donde estas


principalmente eran para la gestionar la creación y el desarrollo del software unas de las
metodologías que aparecieron fueron SCRUM y DevOps estas metodologías mejoraron
considerablemente la calidad del software que le entregaba al usuario. Las apariciones de
estas metodologías dejaron en evidencia que el trabajar con una metodología mejora
considerablemente la seguridad del cliente donde este a de recibir un producto de calidad y en
donde se busca la excelencia de los dominios. Se empieza a profundizar en los requerimientos
de dominios donde surgen necesidades específicas de los usuarios de un sistema.

Modelos de ciclo de vida y su impacto en la historia del software

Sabemos que la importancia de un software es la de cubrir una necesidad, pero también


entendemos que todo software tiene un costo muy elevado cuando se trata de hacer un
software de calidad, la Crisis del Software marco un antes y un después en el desarrollo de
software.

La creación de modelos de vida facilito en el abordaje de los proyectos para la creación de


software donde se establecen etapas y estados por los que pasa el producto de software
desde su inicio pasando por el desarrollo, mantenimiento hasta retirar el producto.

El primer modelo de ciclo de vida de software fue el modelo de cascada propuesto en 1970
definido por Winston Royce se define como secuencias de fases y al final de cada fase se reúne
la documentación para garantizar que cumple los requisitos para pasar a la siguiente fase.

Después surgiría el Modelo en V propuesto por Alan Davis lo que se buscaba con este ciclo de
vida era encontrar más rápido los defectos en el software para ello implementaron una
validación constante de casa fase.

La llegada del modelo de desarrollo incremental en 1980 propuesto por Harlam Mills lo que se
buscaba con este nuevo modelo era reducir la repetición de trabajo en el proceso de desarrollo
lo que tenía que este modelo trabajaba de forma lineal para proyectos pequeños era perfecto,
pero tenía problemas para implementarse en sistemas grande y complejos.
A medidos de los 80 aparecerían los métodos rápidos y desarrollo ágil de la ingeniería del
software Boehm propone el modelo en espiral este modelo tomaba riesgos a la hora de
desarrollar un software se miraban las posibilidades y se tomaba la decisión que tenía riesgos
más asumibles.

Para esta época aparecería los denominados métodos rápidos en donde el desarrollo del
software implicaba menos tiempo. La llegada el método RAD (Desarrollo rápido de
aplicaciones) por parte de desarrolladores de IBM para integrar sistemas a una alta velocidad y
en el menor tiempo posible

En 1995 Schwaber y Sutherland dieron una revolución a la hora de presentar scrum ya que lo
que tenía esta metodología era el cambio rápido de requisitos, diseño, evolución y entrega. El
gran aporte que hicieron Schwaber y Sutherland de hacer artículos con la idea de mejorar y dar
consejos para el mejor uso de Scrum fue un paso para que Scrum se use durante diez años en
el rubro del desarrollo de software

A partir del 2000 la demanda del software creció de una manera exponencial donde la
necesidad de encontrar maneras de crear software de calidad y que brinde seguridad se hizo
evidente. Esto llevo a la creación de prototipos que simplificaban considerablemente la
verificación y sin tanta documentación. Las empresas grandes todavía usaban metodologías
muy documentadas esto llevaba a la demora de finalizar sistemas

Los requerimientos de dominios

La ingeniería de requerimientos es el proceso de identificar, analizar, documentar, verificar y


validar los requerimientos del software. Los procesos de ingeniería de requerimientos tienen
como objetivo definir las necesidades del usuario, los objetivos del negocio y los requisitos del
sistema, para asegurar que el software cumpla con las expectativas de los clientes y usuarios
finales.

El proceso de ingeniería de requerimientos comienza con la identificación de los interesados y


la definición de sus necesidades. Luego, se procede a la elaboración de una lista de requisitos
funcionales y no funcionales, que describen las funcionalidades que el software debe tener y
las restricciones que debe cumplir.

Los requerimientos de dominios se dividen en funcionales y no funcionales que tienen como


principal eje el cumplir necesidades de los usuarios del sistema. Se tiene que tener en cuenta
que especificar e identificar los requerimientos del dominio es una tarea difícil de hacer lo que
lleva a tener una amplia compresión del contexto en el que se va aplicar el sistema por lo que
el ingeniero debe asegurarse de entender completamente los requisitos, como también debe
estar trabajando con los usuarios del sistema.

Comparación Requisitos funcionales Requisitos no funcionales

Especifican las funciones o Especifica cómo debe funcionar el


Enfoque características que debe tener sistema pero no necesariamente que
un sistema debe hacer

Son directamente observables Son indirectamente observables y


Observabilidad y pueden ser verificados deben ser medidos mediante métricas
mediante pruebas y pruebas especializadas

Esencial para el correcto Importante para la calidad,


Importancia funcionamiento del sistema rendimiento y seguridad del sistema

Verificación mediante pruebas Se puede verificar mediante pruebas


Verificación especificas especializadas
Relación con el Se relaciona directamente con Se relación Indirectamente con las
usuario las necesidades y expectativas expectativas del usuario en términos
del usuario con respecto al de calidad, rendimiento y seguridad
funcionamiento del sistema
Cumplir las necesidades de los Se evalúa la calidad, rendimiento y
Objetivos usuarios en términos de restricciones de técnicas
funcionabilidad

En resumen, los requisitos funcionales se enfocan en lo que el sistema debe hacer pueden ser
directamente observables donde se descubra y aborde incógnitas desconocidas, detectar y
resolver problemas desde el inicio del desarrollo un sistema, es más fácil de monitorear y
desarrollar nuevo código si es necesario donde es más fácil actualizar el sistema. Por otro lado,
los requisitos no funcionales se enfocan en como el sistema como debe hacerlo son
indirectamente observables y las pruebas se pueden verificar mediante pruebas y métricas un
ejemplo de verificación de métrica es la que cuanta memoria o capacidad de CPU usa una
aplicación durante el lapso de cinco minutos

Conclusión

La historia del software ha sido influenciada en gran medida por el uso de ciclos de vida de
software y el desarrollo de requisitos funcionales y no funcionales.

Los ciclos de vida del software surgieron como una forma de estructurar y gestionar el proceso
de desarrollo de software. A lo largo del tiempo, diversos modelos de ciclo de vida han sido
desarrollados y utilizados en la industria del software, incluyendo el modelo en cascada, el
modelo en espiral, el modelo iterativo y el modelo ágil.

Estos modelos han tenido un impacto significativo en la forma en que se desarrolla el software,
al establecer procesos y etapas específicas para el diseño, la implementación, la prueba y la
entrega de software. A su vez, esto ha llevado a una mayor eficiencia y calidad en el desarrollo
de software.

Los requisitos funcionales y no funcionales también han tenido un impacto importante en la


historia del software. Los requisitos funcionales describen las funcionalidades específicas que
el software debe tener, mientras que los requisitos no funcionales describen los aspectos no
funcionales del software, como el rendimiento, la seguridad y la escalabilidad.

La gestión adecuada de los requisitos funcionales y no funcionales es esencial para garantizar


que el software cumpla con las expectativas de los usuarios finales. Además, la definición clara
de los requisitos ayuda a los desarrolladores a construir un software que sea fácilmente
mantenible y escalable.

En conclusión, los ciclos de vida del software y los requisitos funcionales y no funcionales han
desempeñado un papel fundamental en la historia del software. Su implementación adecuada
ha permitido el desarrollo eficiente y efectivo de software que cumpla con las necesidades y
expectativas de los usuarios finales.

Bibliografía
Caridad, L. d. (2021). Revista Cubana de Ciencias Informáticas. Obtenido de Redalyc:
http://surl.li/gdazk

Egas, L. G., & Miguel, L. (12 de 12 de 2013). - Evolución de las Metodologías de desarrollo de la
Ingeniería de software en el proceso la Ingeniería de Sistemas Software. Obtenido de
Revista Científica y Tecnológica UPSE:
https://incyt.upse.edu.ec/ciencia/revistas/index.php/rctu/article/view/29

Piattini, M. (2016). REVISTA INSTITUCIONAL DE LA FACULTAD DE INFORMÁTICA. Obtenido de


UNIVERSIDAD NACIONAL DE LA PLATA:
http://sedici.unlp.edu.ar/bitstream/handle/10915/57358/Documento_completo.pdf-
PDFA.pdf?sequence=1

También podría gustarte