Está en la página 1de 16

REPUBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA DEFENSA


UNIVERSIDAD NACIONAL EXPERIMENTAL POLITECNICA
DE LA FUERZA ARMADA NACIONAL BOLIVARIANA
NUCLEO DELTA AMACURO

Profesora: Estudiante:
Katherin Villarroel Hermen Rengel
CI:28.724.064

Carrera Ingeniería de Sistemas

Tucupita 13/01/2022
INDICE

Introduccion…………………………………………….……………….3

Proceso de Desarrollo de Software…………………….…………..4

La Complejidad de los Sistemas de Software…………..………..4

Recursos de Software en sistemas Complejos……..……………5

Características de los Sistemas de Software……….…………….6

Ingeniería de los Sistemas de Software…………...……………….8

Objetivos de la ingeniería de software…………….……………….9

Modelos de Ciclos de Vida………………………….………………..9

Modelo en cascada………………………………….....……………..11

Modelo de prototipos…………………..…………………………….11

Modelo en espiral…………………………..………..………………..12

Modelo de desarrollo por etapas……….……….…………………12

Modelo incremental…………………….…………….………………12

Modelo estructurado………………….………………….…………..13

Modelo orientado a objetos………….…………………...…………13

Modelo RAD…………………………….…………………….………..13

Modelo de desarrollo concurrente…………….……………..…….14

Proceso unificado del desarrollo de software…….……..………14

Conclusion…………………………………….………….……………15

Bibliografia………………….………………….………………………16
Introduccion

El presente trabajo servira como guia para orientarnos a entender


un poco la complejidad de los sistema de software,si bien existen
diversos sistemas, el sistema software se hace diferenciar debido s
su complejidad, muchas perdonas que carecen de conocimientos
en la materia podria interactuar con estos sistemas, ver sus
resultados, saber lo que hacen, pero dificilmente podrian entender
como lo hace, ni la interrelacion de sus componentes para llevar a
cabo distintas tareas.Por consiguiente veremos como el manejo
adecuado de niveles de abstraccion y la capacidad de moverse de
un nivel a otro dentro de una tecnologia de sofware constituye la
base que le permite a los sistemas de software complejos su
desarrollo. Antes de entrar al desarrollo del presente trabajo
debemos saber que no existe un modelo de ciclo de vida del
producto a realizar y la estructura de la organización que lo
desarrolla a partir de las posibilidades que ofrece la tecnologia de
software empleada.
Proceso de Desarrollo de Software

En ingeniería del software, un proceso de desarrollo del software


es el proceso de dividir el trabajo de desarrollo del software en
distintas fases para mejorar el diseño, la gestión del producto, y la
gestión de proyecto. Es también conocido como el ciclo de vida del
desarrollo de software. La metodología puede incluir la pre-
definición de entregas concretas y artefactos que son creados y
completados por un equipo del proyecto para desarrollar o
mantener una aplicación.

La mayoría de procesos de desarrollo modernos pueden ser


vagamente descritos como ágiles. Otras metodologías incluyen
desarrollo en cascada, prototipado, desarrollo iterativo e
incremental, desarrollo de espiral, desarrollo de aplicación rápida, y
programación extrema.Algunas personas consideran el "modelo"
del ciclo de vida un término más general para una categoría de las
metodologías y el "proceso" de desarrollo de software un término
más concreto para referirse a un proceso concreto escogido por una
organización específica. Por ejemplo, hay muchos procesos de
desarrollo de software concretos que encajan en la espiral del
modelo del ciclo de vida. Este campo es a menudo considerado un
subconjunto del ciclo de vida del desarrollo de sistemas.

El objetivo de un proceso de desarrollo de programas es la


formalización de las actividades relacionadas con el desarrollo del
software de un sistema informático.La mayoría de los proyectos que
se desarrollan, finalizan tarde, cuesta mucho mas de lo estimado. El
software se encuadra entre los artefactos mas complejos que es
capaz de desarrollar el hombre, y además dado que no tiene límites
físicos por su carácter inmaterial, su dimensión se puede imaginar
ilimitada.

La Complejidad de los Sistemas de Software

Blanchard define un sistema como una combinacion de recursos


como seres humanos,materiales,equipos,software,instalaciones y
datos integrados de forma tal que cumplan una funcion especifica
en respuesta a una necesidad designada de un usuario. Desde una
perspectiva mas amplia, un sistema se considerara como sistema
de software cuando sus recursos software constituyan su elemento
basico y la fuente de su funcionalidad basica. Dicho de otro
modo,cuando en el proceso de desarrollo sean los recursos
software los que determinan el proceso general de desarrollode
todo el sistema y cuando su ejecucion pueda raalizarse sobre una
plataforma hardware generica.Un sistema de sofrware implica una
insteraccion con el contexto al que sirve que constituye el referente
basico de su utilidad.

Debemos tener claro lo que son recursos software y la definicion


de programas ya que estos estan inmersos en lo sistemas de
software.Llamamos recurso software a un programa o conjunto de
programas ejecutables que proporcione algunas de las funciones
requeridas por el sistema.Como definicion de programa tenemos
que un programa es un algoritmo codificado junto con unas
estructuras de datos.Algunas veces se emplea el termino paquete
ejecutable para referirse a un conjunto de programas que se
necesitan mutuamente durante la ejecucion del sistema y que
deben distribuirse conjuntamente al usuario final.La complejidad de
un sistema depende no solo de las multiples interacciones entre los
recursos de que consta sino tambien de la forma en la que puede
evolucionar en respuesta a las necesitades del entorno. Pues
bien,el control de la complejidad de un sistema depende
generalmente de las funciones dependientes de sus recursos
software y de como estas se adapten al mundo externo.

Recursos de Software en sistemas Complejos

La complejidad de un sistema tal y como queda descrito a partir de


la definición de Blanchard depende no sólo de las múltiples
interacciones entre los recursos de que consta sino también de la
forma en la que puede evolucionar en respuesta a las necesidades
del entorno. Pues bien, el control de la complejidad de un sistema
depende generalmente de las funciones dependientes de sus
recursos software y de como éstas se adapten al mundo externo.
Queremos centrar nuestra atención en esta monografía sobre los
sistemas de software complejos entendidos como aquellos cuyo
desarrollo no es abordable por una única persona y en los que no

existe seguridad absoluta de que se han implementado fielmente


los requisitos exigidos por el usuario ni de que se ejecuta
correctamente. La ingeniería de sistemas de software pretende,
justamente, incrementar esta seguridad durante el proceso de
desarrollo hasta alcanzar un nivel de confianza similar al existente
en otras ingenierías.

Características de los Sistemas de Software

El software de sistema es, en términos simples, el que nos permite


interactuar con un dispositivo por medio de su hardware. Este
software base está compuesto principalmente por el sistema
operativo y por los drivers o controladores, y en menor medida
también podemos incluir a las librerías dentro de esta categoría. El
software es el soporte lógico de un sistema informático. El software
es una categoría amplia que incluye gran variedad de productos
informáticos, desde sistemas operativos hasta la parte intangible de
juegos electrónicos o los programas que permiten el funcionamiento
de un avión.

 Sistema operativo: el sistema operativo es el principal


conjunto de software de un dispositivo y define muchos
aspectos de lo que se puede hacer o no con dicho dispositivo.
Es lo que nos permite crear un enlace entre los controladores
y el hardware y nos brinda la posibilidad de poder usar una
computadora o un móvil. El sistema operativo más popular del
mundo es Windows de Microsoft a nivel de computadora,
mientras que en móviles es Android de Google. Por supuesto
hay muchos otros como Linux, MacOS, iOS, Unix, etc.

 Controladores o drivers: los controladores, que también


llamamos drivers, es lo que permite que nuestro sistema
operativo identifique un hardware correctamente y podamos
usarlo en él. A veces cuando conectamos un nuevo mouse,
una impresora u otro periférico a una computadora es posible
que automáticamente se instale un nuevo controlador para
que dicho periférico pueda ser utilizado. En ocasiones la
instalación del controlador la debemos realizar manualmente
con un CD o bajando un archivo de instalación de Internet por
ejemplo.

 Librerías: las librerías (también conocidas como bibliotecas)


son, básicamente, un conjunto de funciones que permiten al
sistema operativo interpretar un código, de forma que
podamos abrir o ver distintos tipos de archivos. Al contrario
que los programas corrientes, las librerías no necesitan ser
iniciadas, es un conjunto de instrucciones que siempre está
disponible para ser usado mientras se encuentre instalado.
Las librerías pueden ser utilizadas por los distintos programas
para interpretar correctamente el código de un archivo y así
poder abrirlo.

 Gestor de arranque: un gestor de arranque nos permite definir


cuál sistema operativo deseamos iniciar en una computadora
o dispositivo, en caso de que haya más de uno instalado. Se
le conoce como gestor de arranque porque se utiliza al
encender un dispositivo y su utilidad radica en permitirnos
elegir cuál sistema operativo vamos a usar. Cabe mencionar
que en el caso de que haya un solo sistema operativo no
podremos interactuar con el gestor de arranque, aunque eso
no quiere decir que no esté presente, simplemente se
selecciona automáticamente el único SO disponible.

 Interfaz gráfica: la interfaz gráfica por otro lado es un


complemento del sistema operativo y puede estar presente o
no, su utilidad radica en poder interactuar en forma más
sencilla y vistosa con nuestro dispositivo. Es ideal para
quienes no están acostumbrados a trabajar mediante una
línea de comandos.
 Interfaz de línea de comandos: también conocidas como CLI
en inglés, las interfaces de líneas de comando son una forma
que posee el usuario de interactuar con un dispositivo. Se
trata de una consola mediante la cual el usuario puede
ejecutar distintos comandos para lograr toda clase de
cometidos. Se pueden ejecutar instrucciones de todo tipo, al
punto de que hay quienes prefieren esta clase de interfaz por
sobre las de tipo gráfico.

 BIOS: el BIOS es otra pieza de software clave para el


funcionamiento de un dispositivo, es quien da el chispazo
inicial y determina si se lanza directamente un sistema
operativo o un gestor de arranque. Es un software que ya
viene integrado en el dispositivo, es decir que es ajeno al
sistema operativo, controladores y librerías.

Ingeniería de los Sistemas de Software

La Ingeniería de Software es una de las ramas de las ciencias de


la computación que estudia la creación de software confiable y de
calidad, basándose en métodos y técnicas de ingeniería, y
brindando soporte operacional y de mantenimiento. El campo de
estudio de la ingeniería de software[1] integra ciencias de la
computación, ciencias aplicadas y las ciencias básicas en las cuales
se encuentra apoyada la ingeniería. La ingeniería de software se
puede considerar como la ingeniería aplicada al software, esto es,
por medios sistematizados y con herramientas preestablecidas, la
aplicación de ellos de la manera más eficiente para la obtención de
resultados óptimos; objetivos que siempre busca la ingeniería. No
es solo de la resolución de problemas, sino más bien teniendo en
cuenta las diferentes soluciones, elegir la más apropiada.

La producción de software utiliza criterios y normas de la


ingeniería de software, lo que permite transformarlo en un producto
industrial usando bases de la ingeniería como métodos, técnicas y
herramientas para desarrollar un producto innovador regido por
metodologías y las buenas prácticas. Dicho producto es un medio
que interviene en las funciones de sus usuarios para obtener un
proceso productivo más eficaz y eficiente; hoy en día las empresas
no podrían funcionar sin software porque este es un producto de
uso masivo; por lo cual, el nivel de una empresa está determinado
por la calidad de su infraestructura tecnológica y los productos
desarrollados o adquiridos de acuerdo a sus necesidades.

Objetivos de la ingeniería de software

Son muy diversos, pero podemos destacar los siguientes más


importantes:

 Crear programas informáticos que satisfagan las necesidades


de la sociedad y empresas.

 Guiar y coordinar el desarrollo de una programación difícil.

 Intervenir en el ciclo de vida de un producto.

 Estimar los costos y el plazo de ejecución de un proyecto.

 Actuar como líder del equipo de desarrollo de software.

 Diseño, desarrollo y administración de bases de datos.

 Durante la creación de la aplicación, liderar y dirigir a los


programadores.

 Incluir procesos de calidad en las aplicaciones, como la


medición de métricas y medidas y la evaluación de la calidad
del software.

Modelos de Ciclos de Vida

La ingeniería de software, con el fin de ordenar el caos que era


anteriormente el desarrollo de software, dispone de varios modelos,
paradigmas y filosofías de desarrollo, estos los conocemos
principalmente como modelos o ciclos de vida del desarrollo de
software, esto incluye el proceso que se sigue para construir,
entregar y hacer evolucionar el software, desde la concepción de
una idea hasta la entrega y el retiro del sistema y representa todas
las actividades y artefactos (productos intermedios) necesarios para
desarrollar una aplicación.

El ciclo de vida de un software contiene los siguientes


procedimientos:

Definición de objetivos: Definir el resultado del proyecto y su papel


en la estrategia global.

Análisis de los requisitos y su viabilidad: Recopilar, examinar y


formular los requisitos del cliente y examinar cualquier restricción
que se pueda aplicar.

Diseño general: Requisitos generales de la arquitectura de la


aplicación.

Diseño en detalle: Definición precisa de cada subconjunto de la


aplicación.

Programación: Es la implementación de un lenguaje de


programación para crear las funciones definidas durante la etapa de
diseño.

Prueba de unidad: Prueba individual de cada subconjunto de la


aplicación para garantizar que se implementaron de acuerdo con las
especificaciones.

Integración: Para garantizar que los diferentes módulos se integren


con la aplicación. Este es el propósito de la prueba de integración
que está cuidadosamente documentada.

Prueba beta: Para garantizar que el software cumple con las


especificaciones originales.

Documentación: Sirve para documentar información necesaria


para los usuarios del software y para desarrollos futuros.

Mantenimiento: Para todos los procedimientos correctivos


(mantenimiento correctivo) y las actualizaciones secundarias del
software (mantenimiento continuo).
Modelo en cascada

En ingeniería de software el modelo en cascada también llamado


desarrollo en cascada o ciclo de vida clásico se basa en un enfoque
metodológico que ordena rigurosamente las etapas del ciclo de vida
del software, esto sugiere una aproximación sistemática secuencial
hacia el proceso de desarrollo del software, que se inicia con la
especificación de requisitos del cliente y continúa con la
planificación, el modelado, la construcción y el despliegue para
culminar en el soporte del software terminado.

Modelo de prototipos

En ingeniería de software, el modelo de prototipos pertenece a los


modelos de desarrollo evolutivo. Este permite que todo el sistema, o
algunos de sus partes, se construyan rápidamente para comprender
con facilidad y aclarar ciertos aspectos en los que se aseguren que
el desarrollador, el usuario, el cliente estén de acuerdo en lo que se
necesita así como también la solución que se propone para dicha
necesidad y de esta manera minimizar el riesgo y la incertidumbre
en el desarrollo, este modelo se encarga del desarrollo de diseños
para que estos sean analizados y prescindir de ellos a medida que
se adhieran nuevas especificaciones, es ideal para medir el alcance
del producto, pero no se asegura su uso real.

Este modelo principalmente se aplica cuando un cliente define un


conjunto de objetivos generales para el software a desarrollarse sin
delimitar detalladamente los requisitos de entrada procesamiento y
salida, es decir cuando el responsable no está seguro de la eficacia
de un algoritmo, de la adaptabilidad del sistema o de la manera en
que interactúa el hombre y la máquina.

Este modelo se encarga principalmente de ayudar al ingeniero de


sistemas y al cliente a entender de mejor manera cuál será el
resultado de la construcción cuando los requisitos estén
satisfechos.
Modelo en espiral

El modelo en espiral, que Barry Boehm propuso originalmente en


1986, es un modelo de proceso de software evolutivo que conjuga
la naturaleza iterativa de la construcción de prototipos con los
aspectos controlados y sistemáticos del modelo en cascada, es
decir, cuando se aplica este modelo, el software se desarrolla en
una serie de entregas evolutivas (ciclos o iteraciones), cada una de
estas entregando prototipos más completas que el anterior, todo
esto en función del análisis de riesgo y las necesidades del cliente.
Aunque el modelo espiral representa ventajas por sobre el
desarrollo lineal, el cálculo de los riesgos puede ser muy
complicado y por lo cual su uso en el ámbito real es muy escaso.

Modelo de desarrollo por etapas

Es un modelo en el que el software se muestra al cliente en etapas


refinadas sucesivamente. Con esta metodología se desarrollan las
capacidades más importantes reduciendo el tiempo necesario para
la construcción de un producto; el modelo de entrega por etapas es
útil para el desarrollo de la herramienta debido a que su uso se
recomienda para problemas que pueden ser tratados
descomponiéndolos en problemas más pequeños y se caracteriza
principalmente en que las especificaciones no son conocidas en
detalle al inicio del proyecto y por tanto se van desarrollando
simultáneamente con las diferentes versiones del código.

Modelo incremental

Desarrollo incremental es un proceso de desarrollo de software,


creado en respuesta a las debilidades del modelo tradicional de
cascada, es decir, este modelo aplica secuencias lineales como el
modelo en cascada, pero de una manera iterativa o escalada según
como avance el proceso de desarrollo y con cada una de estas
secuencias lineales se producen incrementos (mejoras) del
software.
Se debe tener en cuenta que el flujo del proceso de cualquier
incremento puede incorporar el paradigma de construcción de
prototipos, ya que como se mencionó anteriormente, este tipo de
modelo es iterativo por naturaleza, sin embargo se diferencia en
que este busca la entrega de un producto operacional con cada
incremento que se le realice al software.

Modelo estructurado

Este modelo como su nombre lo indica utiliza las técnicas del


diseño estructurado o de la programación estructurada para su
desarrollo, también se utiliza en la creación de los algoritmos del
programa. Este formato facilita la comprensión de la estructura de
datos y su control.

Modelo orientado a objetos

Estos modelos tienen sus raíces en la programación orientada a


objetos y como consecuencia de ella gira en torno al concepto de
clase, también lo hacen el análisis de requisitos y el diseño. Esto
además de introducir nuevas técnicas, también aprovecha las
técnicas y conceptos del desarrollo estructurado, como diagramas
de estado y transiciones.

Modelo RAD

El RAD (rapid application development: ‘desarrollo rápido de


aplicaciones’), es un modelo de proceso de software incremental,
desarrollado inicialmente por James Maslow en 1980, que resalta
principalmente un ciclo corto de desarrollo.Esta es una metodología
que posibilita la construcción de sistemas computacionales que
combinen técnicas y utilidades CASE (Computer Aided Software
Engineering), la construcción de prototipos centrados en el usuario
y el seguimiento lineal y sistemático de objetivos, incrementando la
rapidez con la que se producen los sistemas mediante la utilización
de un enfoque de desarrollo basado en componentes.
Si se entienden bien los requisitos y se limita el ámbito del
proyecto, el proceso RAD permite que un equipo de desarrollo cree
un producto completamente funcional dentro de un periodo muy
limitado de tiempo sin reducir en lo más mínimo la calidad del
mismo.

Modelo de desarrollo concurrente

El modelo de desarrollo concurrente es un modelo de tipo de red


donde todas las personas actúan simultáneamente o al mismo
tiempo. Este tipo de modelo se puede representar a manera de
esquema como una serie de actividades técnicas importantes,
tareas y estados asociados a ellas.

El modelo de proceso concurrente define una serie de


acontecimientos que dispararan transiciones de estado a estado
para cada una de las actividades de la ingeniería del software. Por
ejemplo, durante las primeras etapas del diseño, no se contempla
una inconsistencia del modelo de análisis. Esto genera la corrección
del modelo de análisis de sucesos, que disparara la actividad de
análisis del estado hecho al estado cambios en espera. Este
modelo de desarrollo se utiliza a menudo como el paradigma de
desarrollo de aplicaciones cliente/servidor.

Proceso unificado del desarrollo de software

El proceso unificado es un proceso de software genérico que


puede ser utilizado para una gran cantidad de tipos de sistemas de
software, para diferentes áreas de aplicación, diferentes tipos de
organizaciones, diferentes niveles de competencia y diferentes
tamaños de proyectos.Provee un enfoque disciplinado en la
asignación de tareas y responsabilidades dentro de una
organización de desarrollo. Su meta es asegurar la producción de
software de muy alta calidad que satisfaga las necesidades de los
usuarios finales, dentro de un calendario y presupuesto predecible.
Conclusion

Los procesos de desarrollo de software poseen reglas


preestablecidas, y deben ser aplicados en la creación del software
de mediano y gran porte, ya que en caso contrario lo más seguro es
que el proyecto o no logre concluir o termine sin cumplir los
objetivos previstos, y con variedad de fallos inaceptables (fracasan,
en pocas palabras). Entre tales «procesos» los hay ágiles o livianos
xp, pesados y lentos ejemplo rud y variantes intermedias; y
normalmente se aplican de acuerdo al tipo y porte del software a
desarrollar, a criterio del líder (si lo hay) del equipo de desarrollo

Cualquiera sea el proceso utilizado y aplicado al desarrollo del


software (RUP, FDD, etc), y casi independientemente de él, siempre
se debe aplicar un «modelo de ciclo de vida. Un proceso de
desarrollo de software tiene como propósito la producción eficaz y
eficiente de un producto software que reúna los requisitos del
cliente. Este proceso es intensamente intelectual, afectado por la
creatividad y juicio de las personas involucradas . Aunque un
proyecto de desarrollo de software es equiparable en muchos
aspectos a cualquier otro proyecto de ingeniería, en el desarrollo de
software hay una serie de desafíos adicionales, relativos
esencialmente a la naturaleza del producto obtenido. A continuación
se explican algunas particularidades asociadas al desarrollo de
software y que influyen en su proceso de construcción.
Bibliografia

https://intelequia.com/blog/post/2083/ciclo-de-vida-del-software-
todo-lo-que-necesitas-saber

https://colombia.unir.net/actualidad-unir/ingenieria-de-software-que-
es-objetivos/

https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software

https://ejemplos.net/caracteristicas-del-software-de-sistema/

https://tecnomagazine.net/software-de-sistema/

https://www.cavsi.com/preguntasrespuestas/caracteristicas-del-
software/

https://www.buenastareas.com/materias/recursos-de-software-en-
sistemas-complejos-en-la-materia-procesamiento-de-datos-unefa/0

http://longinogiraljaimes.blogspot.com/2009/05/ingenieria-de-
sistemas-de-software.html

También podría gustarte