Está en la página 1de 5

que es ingenieria de software

Ingeniería de softwarees el área de la ingenieríaque ofrece métodos y técnicas para desarrollar y


mantener software.
Esta ingeniería trata con áreas muy diversas de la informáticay de las ciencias de la computación,
tales como construcción de compiladores, sistemas operativos, o desarrollos Intranet/Internet,
abordando todas las fases del ciclo de vida del desarrollo de cualquier tipo de sistemas de
información y aplicables a infinidad de áreas: negocios, investigación científica, medicina,
producción, logística, banca, control de tráfico, meteorología, derecho, Internet, Intranet, etc.
Una definición precisa aún no ha sido contemplada en los diccionarios, sin embargo se pueden
citar las enunciadas por algunos de los más prestigiosos autores:
 Ingeniería de software es el estudio de los principios y metodologías para el desarrollo y
mantenimiento de sistemas software (Zelkovitz, 1978)
 Ingeniería de software es la aplicación práctica del conocimiento científico al diseño y
construcción de programas de computadora y a la documentación asociada requerida
para desarrollar, operar y mantenerlos. Se conoce también como desarrollo de software o
producción de software (Bohem, 1976).
 Ingeniería de software trata del establecimiento de los principios y métodos de la
ingeniería a fin de obtener software de modo rentable, que sea fiable y trabaje en
máquinas reales (Bauer, 1972).
 Es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo,
operación y mantenimiento del software; es decir, la aplicación de la ingeniería al software
(IEEE, 1993).
En el 2004, en los Estados Unidos, la Oficina de Estadísticas del Trabajo (U. S. Bureau of Labor
Statistics) contó 760.840 ingenieros de software de computadora.<sup>[</sup><sup>1]</sup>El
término "ingeniero de software", sin embargo, se utiliza en forma genérica en el ambiente
empresarial, y no todos los ingenieros de software poseen realmente títulos de ingeniería de
universidades reconocidas.
Algunos autores consideran que "desarrollo de software" es un término más apropiado que
"ingeniería de software" para el proceso de crear software. Personas como Pete McBreen(autor de
"Software Craftmanship") cree que el término IS implica niveles de rigor y prueba de procesos
que no son apropiados para todo tipo de desarrollo de software.
Indistintamente se utilizan los términos "ingeniería de software" o "ingeniería del software". En
Hispanoamérica el término usado normalmente es el primero de ellos.
La creación del software es un proceso intrínsecamente creativo y la ingeniería del software trata
de sistematizar este proceso con el fin de acotar el riesgo del fracaso en la consecución del objetivo
creativo por medio de diversas técnicas que se han demostrado adecuadas en base a la experiencia
previa.
La IS 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 forma más eficiente
para la obtención de resultados óptimos; objetivos que siempre busca la ingeniería. No es sólo de la
resolución de problemas, sino más bien teniendo en cuenta las diferentes soluciones, elegir la más
apropiada
-------------------------------------------------------------------------------------
La ingeniería del software es el proceso formal de desarrollo de software en el que
las necesidades del usuario se traducen en requerimientos, estos se transforman en
diseño que se implementa en código que se prueba, documenta y se certifica para su
uso operativo. Según la definición del IEEE la ingeniería del software se define como
“(1) la aplicación de un método sistemático, disciplinado y cuantificable al desarrollo,
operación y mantenimiento de software, esto es, la aplicación de la ingeniería al
software” y “(2) el estudio de los métodos de (1)”
El proceso requiere una metodología con 5 etapas:

1. Análisis de requerimientos: Se extraen los requisitos del producto de software. En


esta etapa la habilidad y experiencia en la ingeniería del software es crítica para
reconocer requisitos incompletos, ambiguos o contradictorios. Usualmente el
cliente/usuario tiene una visión incompleta/inexacta de lo que necesita y es necesario
ayudarle para obtener la visión completa de los requerimientos. El contenido de
comunicación en esta etapa es muy intenso ya que el objetivo es eliminar la
ambigüedad en la medida de lo posible.
2. Especificación: Es la tarea de describir detalladamente el software a ser escrito, de
una forma rigurosa. Se describe el comportamiento esperado del software y su
interacción con los usuarios y/o otros sistemas.
3. Diseño y arquitectura: Determinar como funcionará de forma general sin entrar en
detalles incorporando consideraciones de la implementación tecnológica, como el
hardware, la red, etc. Consiste en el diseño de los componentes del sistema que dan
respuesta a las funcionalidades descritas en la segunda etapa también conocidas
como las entidades de negocio. Generalmente se realiza en base a diagramas que
permitan describir las interacciones entre las entidades y su secuenciado.
4. Programación: Se traduce el diseño a código. Es la parte más obvia del trabajo de
ingeniería de software y la primera en que se obtienen resultados “tangibles”. No
necesariamente es la etapa más larga ni la más compleja aunque una especificación
o diseño incompletos/ambiguos pueden exigir que, tareas propias de las etapas
anteriores se tengan que realizarse en esta.
5. Prueba: Consiste en comprobar que el software responda/realice correctamente las
tareas indicadas en la especificación. Es una buena praxis realizar pruebas a distintos
niveles (por ejemplo primero a nivel unitario y después de forma integrada de cada
componente) y por equipos diferenciados del de desarrollo (pruebas cruzadas entre
los programadores o realizadas por un área de test independiente).
6. Documentación: Realización del manual de usuario, y posiblemente un manual
técnico con el propósito de mantenimiento futuro y ampliaciones al sistema. Las
tareas de esta etapa se inician ya en el primera fase pero sólo finalizan una vez
terminadas las pruebas.
7. Mantenimiento: En esta etapa se realizan un mantenimiento correctivo (resolver
errores) y un mantenimiento evolutivo (mejorar la funcionalidades y/o dar respuesta a
nuevos requisitos).
-----------------------------------------------------
Herramientas CASE (Computer Aided Software Engineering, Ingeniería de
Software Asistida por Computadoras). Son diversas Aplicaciones informáticas
destinadas a aumentar la productividad en el Desarrollo de software reduciendo el
coste de las mismas en términos de tiempo y de dinero. Estas herramientas nos
pueden ayudar en todos los aspectos del ciclo de vida de desarrollo del software en
tareas como el diseño de proyectos, cálculo de costes, implementación de parte
del códigoautomáticamente con el diseño dado, Compilación automática,
documentación o detección de errores entre otras.
Es un sistema de software que intenta proporcionar ayuda automatizada a las
actividades del proceso de desarrollo de software. Los sistemas CASE a menudo
se utilizan como apoyo al método. La primera herramienta CASE como hoy la
conocemos fue Excelerator en 1984, era para PC. Actualmente la oferta de
herramientas CASE es muy amplia y tenemos por ejemplo
el EASYCASE o WINPROJECT .
-----------------------------------------------------------------------------------------------------------------------------
La metodología de desarrollo de software en ingeniería de software es un marco de trabajo
usado para estructurar, planificar y controlar el proceso de desarrollo en sistemas de
información.

-----------------------------------------------------------------------------------------------
El desarrollo ágil de software envuelve un enfoque para la toma de decisiones en los
proyectos de software, que se refiere a métodos de ingeniería del software basados en
el desarrollo iterativo e incremental, donde los requisitos y soluciones evolucionan con el
tiempo según la necesidad del proyecto. Así el trabajo es realizado mediante la colaboración
de equipos auto-organizados y multidisciplinarios, inmersos en un proceso compartido de
toma de decisiones a corto plazo.
Cada iteración del ciclo de vida incluye: planificación, análisis de requisitos, diseño,
codificación, pruebas y documentación. Teniendo gran importancia el concepto de "Finalizado"
(Done), ya que el objetivo de cada iteración no es agregar toda la funcionalidad para justificar
el lanzamiento del producto al mercado, sino incrementar el valor por medio de "software que
funciona" (sin errores).
Los métodos ágiles enfatizan las comunicaciones cara a cara en vez de la documentación. La
mayoría de los equipos ágiles están localizados en una simple oficina abierta, a veces
llamadas "plataformas de lanzamiento" (bullpen en inglés). La oficina debe incluir revisores,
escritores de documentación y ayuda, diseñadores de iteración y directores de proyecto. Los
métodos ágiles también enfatizan que el software funcional es la primera medida del progreso.
Combinado con la preferencia por las comunicaciones cara a cara, generalmente los métodos
ágiles son criticados y tratados como "indisciplinados" por la falta de documentación técnica.
------------------------------------------------------------------------------------------------
U n modelo de negocio es una herramienta previa al plan de negocio que te
permitirá definir con claridad qué vas a ofrecer al mercado, cómo lo vas a hacer, a
quién se lo vas a vender, cómo se lo vas a vender y de qué forma vas a generar
ingresos. Es una herramienta de análisis que te permitirá saber quién eres, cómo lo
haces, a qué coste, con qué medios y qué fuentes de ingresos vas a tener. Definir tu
modelo de negocio es saber cuál es tu ADN, cómo está hecho, cómo se puede
modificar, cómo pulir, cómo cambiar, cómo moldear…

Definición de modelo de negocio


La definición de modelo de negocio es complicada y tiene muchísimas variantes. La
definición clásica dice que es “el plan previo al plan de negocio que define qué vas a
ofrecer al mercado, cómo lo vas a hacer, quién va a ser tu público objetivo, cómo vas a
vender tu producto o servicio y cuál será tu método para generar ingresos“.

En definitiva, es plasmar en un documento cómo vas a crear, desarrollar y capturar valor.


Una pequeña visión de todo lo que puede ser tu startu en un futuro y los diferentes aspectos
sobre los que se va a construir toda tu empresa. Sería como los pilares de un edificio,
siendo el edificio tu negocio y esos pilares el propio modelo.

Hay que destacar que el modelo de negocio es algo más que saber de dónde vienen los
ingresos, tal y como habéis podido ver en la primera definición. Ganar dinero será una
consecuencia de todo ese proceso de saber qué ofreces, cómo lo haces, cuál es tu público y
demás.

Asesoría para autónomosDESPÍDETE DEL PAP ELE O DESDE 9,99€/MES

En la ingeniería de sistemas, un requisito es una necesidad documentada sobre el contenido,


forma o funcionalidad de un producto o servicio. Se usa en un sentido formal en la ingeniería
de sistemas, ingeniería de software e ingeniería de requisitos.
En la ingeniería clásica, los requisitos se utilizan como datos de entrada en la etapa de diseño
del producto. Establecen qué debe hacer el sistema, pero no cómo hacerlo.
La fase de captura, elicitación y registro de requisitos puede estar precedida por una fase de
análisis conceptual del proyecto. Esta fase puede dividirse en recolección de requisitos,
análisis de consistencia e integridad, definición en términos descriptivos para los
desarrolladores y un esbozo de especificación, previo al diseño completo.
En ingeniería de sistemas existen tres tipos de requisitos.

 Un requisito funcional puede ser una descripción de lo que un sistema debe hacer. Este
tipo de requisito especifica algo que el sistema entregado debe ser capaz de realizar.
 Un requisito no funcional: de rendimiento, de calidad, etc; especifica algo sobre el propio
sistema, y cómo debe realizar sus funciones. Algunos ejemplos de aspectos solicitables
son la disponibilidad, el testeo, el mantenimiento, la facilidad de uso, etc.
 Otros tipos de limitaciones externas, que afectan en una forma indirecta al producto. Estas
pueden ir desde la compatibilidad con cierto sistema operativo hasta la adecuación a leyes
o regulaciones aplicables al producto
Una colección de requisitos describe las características o atributos del sistema deseado. Se
omite el cómo debe lograrse su implementación, ya que esto debe ser decidido en la etapa de
diseño por los diseñadores.
En la ingeniería de software se aplica el mismo significado, sólo que el énfasis está puesto en
el propio software.
Pseudorrequisitos: Son aquellos referidos al entorno donde será instalado o implementado el
sistema, que determinan en gran medida su desarrollo, pueden ser cuestiones como hardware
y software. [cita requerida]
-------------------------------------------------------------------------------------------------------------------------------
caso de uso es una descripción de los pasos o las actividades que deberán realizarse para
llevar a cabo algún proceso. Los personajes o entidades que participarán en un caso de uso
se denominan actores. En el contexto de ingeniería del software, un caso de uso es una
secuencia de interacciones que se desarrollarán entre un sistema y sus actores en respuesta
a un evento que inicia un actor principal sobre el propio sistema. Los diagramas de casos de
uso sirven para especificar la comunicación y el comportamiento de un sistema mediante su
interacción con los usuarios y/u otros sistemas. O lo que es igual, un diagrama que muestra la
relación entre los actores y los casos de uso en un sistema. Una relación es una conexión
entre los elementos del modelo, por ejemplo la especialización y la generalización son
relaciones. Los diagramas de casos de uso se utilizan para ilustrar los requisitos del sistema al
mostrar cómo reacciona a eventos que se producen en su ámbito o en él mismo.