Los procesos auxiliares del ciclo de vida incluyen. Modelos de ciclo de vida del software. ciclo de vida que es en el sentido formal

La estructura del ciclo de vida del software según la norma ISO/IEC 12207 se basa en tres grupos de procesos (Fig. 1):

los principales procesos del ciclo de vida del software (adquisición, suministro, desarrollo, operación, mantenimiento);

procesos auxiliares que aseguran la implementación de los procesos principales (documentación, gestión de la configuración, aseguramiento de la calidad, verificación, certificación, evaluación, auditoría, resolución de problemas);

procesos organizativos (gestión de proyectos, creación de infraestructura de proyectos, definición, evaluación y mejora del propio ciclo de vida, formación).

Arroz. 1. Procesos ciclo vital software.

Proceso de adquisición(proceso de adquisición). consiste en acciones

y tareas del cliente que compra el software. Este proceso abarca los siguientes pasos:

1) iniciación de la adquisición;

2) preparación de propuestas de aplicación;

3) preparación y ajuste del contrato;

4) supervisión de las actividades del proveedor;

5) aceptación y finalización del trabajo.

Proceso de entrega(proceso de suministro). Abarca las actividades y tareas realizadas por un proveedor que proporciona a un cliente un producto o servicio de software. Este proceso incluye los siguientes pasos:

1) inicio de la entrega;

2) preparar una respuesta a las ofertas;

3) preparación del contrato;

4) planificación;

5) implementación y control;

6) verificación y evaluación;

7) entrega y terminación de obras.

Proceso de desarrollo(proceso de desarrollo). Prevé las acciones y tareas realizadas por el desarrollador y cubre la creación de software y sus componentes de acuerdo con los requisitos especificados, incluida la preparación del diseño y la documentación operativa, la preparación de los materiales necesarios para probar la operatividad y la calidad adecuada del software. productos, materiales necesarios para organizar la formación del personal, etc.

El proceso de desarrollo incluye los siguientes pasos:

1) análisis de los requisitos del sistema;

2) diseño de la arquitectura del sistema;

3) análisis de requisitos de software;

4) diseño de arquitectura de software;



5) diseño de software detallado;

6) codificación y prueba de software;

7) integración de software;

8) pruebas de calificación de software;

9) integración de sistemas;

10) prueba de calificación del sistema;

11) instalación de software;

12) aceptación del software.

Proceso operativo(proceso de operación). Cubre las actividades y tareas del operador - la organización que opera el sistema. Este proceso incluye los siguientes pasos:

1) pruebas operativas;

2) funcionamiento del sistema;

3) soporte al usuario.

Proceso de mantenimiento(proceso de mantenimiento). Prevé las actividades y tareas realizadas por la organización acompañante (servicio de apoyo). Este proceso se activa con cambios (modificaciones) producto de software y documentación relacionada causada por problemas encontrados o la necesidad de actualizar o adaptar el software. De acuerdo con el estándar IEEE-90, el mantenimiento se refiere a realizar cambios en el software para corregir errores, mejorar el rendimiento o adaptarse a condiciones de funcionamiento cambiantes o

requisitos Los cambios al software existente no deben violar

su integridad. El proceso de mantenimiento incluye la transferencia del software a otro entorno (migración) y finaliza con el desmantelamiento del software.

El proceso de mantenimiento cubre los siguientes pasos:

1) análisis de problemas y solicitudes de modificación de software;

2) modificación de software;

3) verificación y aceptación;

4) transferencia de software a otro entorno;

5) desmantelamiento del software.

El grupo de procesos auxiliares incluye:

Documentación;

Gestión de la configuración; seguro de calidad;

Verificación; atestación;

evaluación conjunta;

Resolución del problema.

Proceso de documentación(proceso de documentación). Proporciona una descripción formalizada de la información creada durante el ciclo de vida del software. El proceso de documentación incluye los siguientes pasos:

1) diseño y desarrollo;

2) liberación de documentación;

3) mantenimiento de la documentación.

Proceso de gestión de la configuración(proceso de gestión de la configuración). Implica la aplicación de procedimientos administrativos y técnicos a lo largo del ciclo de vida del software para determinar el estado de los componentes de software en el sistema, administrar las modificaciones de software, describir e informar sobre el estado de los componentes de software y las solicitudes de modificaciones, asegurar la integridad, compatibilidad y corrección de componentes de software, gestionar el almacenamiento y la entrega ON. Según el estándar IEEE-90, se entiende por configuración del software la totalidad de sus características funcionales y físicas.

características establecidas en documentación técnica e implementado en software.

La gestión de la configuración le permite organizar, tener en cuenta y controlar sistemáticamente los cambios en el software en todas las etapas del ciclo de vida. Los principios generales y las recomendaciones para la gestión de la configuración del software se reflejan en el borrador ISO/I EC CD 12207-2: 1995 "Tecnología de la información - Procesos del ciclo de vida del software. Parte 2.

Gestión de la configuración del software". El proceso de gestión de la configuración incluye los siguientes pasos:

1) identificación de la configuración;

2) control de configuración;

3) teniendo en cuenta el estado de la configuración;

4) evaluación de la configuración;

5) gestión y entrega de versiones.

Proceso de aseguramiento de la calidad(proceso de aseguramiento de la calidad). Proporciona la garantía adecuada de que el software y sus procesos de ciclo de vida cumplen con los requisitos especificados y los planes aprobados. La calidad del software se entiende como un conjunto de propiedades que caracterizan la capacidad del software para cumplir con requisitos específicos. Para obtener estimaciones confiables del software que se está creando, el proceso de asegurar su calidad debe ocurrir independientemente de los temas directamente relacionados con el desarrollo del software. Se pueden utilizar los resultados de otros procesos de apoyo, como la verificación, la atestación, la evaluación participativa, la auditoría y la resolución de problemas. El proceso de aseguramiento de la calidad incluye las siguientes actividades:

1) aseguramiento de la calidad del producto;

2) aseguramiento de la calidad del proceso;

3) asegurar otros indicadores de la calidad del sistema.

Proceso de verificación(Proceso de verificación). Consiste en determinar que los productos de software, que son el resultado de alguna acción, satisfacen plenamente los requisitos o condiciones estipulados por acciones anteriores (la verificación en sentido estricto significa una prueba formal de la corrección del software).

Proceso de atestación(proceso de validacion). Prevé la determinación de la integridad del cumplimiento de los requisitos especificados y el sistema o producto de software creado con su propósito funcional específico. La certificación generalmente se entiende como la confirmación y evaluación de la confiabilidad de las pruebas de software.

Proceso de evaluación conjunta(proceso de revisión conjunta). Está diseñado para evaluar el estado del trabajo en el proyecto y el software creado durante la realización de estos trabajos (acciones). Se centra principalmente en la planificación y gestión de los recursos, el personal, el equipo y las herramientas del proyecto.

Proceso de auditoría(proceso de auditoría). Es una determinación del cumplimiento de los requisitos, planes y condiciones del contrato.

Proceso de resolución de problemas(proceso de resolución de problemas). Proporciona el análisis y resolución de problemas (incluidas las no conformidades detectadas), independientemente de su origen o fuente, que se descubren durante el desarrollo, la operación, el mantenimiento u otros procesos. Cada problema encontrado debe ser identificado, descrito, analizado y resuelto.

El grupo de procesos organizacionales del ciclo de vida del software incluye:

Control;

Creación de infraestructura;

mejora;

Lanzamiento de nuevas versiones;

Educación.

Proceso de gestión(proceso de gestión). Consiste en actividades y tareas que pueden ser realizadas por cualquier parte gestionando sus propios procesos. Esta parte (gerente) es responsable de la gestión de lanzamiento de productos, la gestión de proyectos y la gestión de tareas de procesos relacionados, como adquisición, suministro, desarrollo, operación, mantenimiento, etc.

Proceso de infraestructura(proceso de infraestructura). Abarca la selección y soporte (mantenimiento) de tecnología, estándares y herramientas, la selección e instalación de hardware y software utilizados para desarrollar, operar o mantener software. La infraestructura debe ser modificada y mantenida de acuerdo a los cambios en los requerimientos de los procesos correspondientes. La infraestructura, a su vez, es uno de los objetos de la gestión de la configuración.

Proceso de mejora(proceso de mejora). Proporciona la evaluación, medición, control y mejora de los procesos del ciclo de vida del software. La mejora de los procesos del ciclo de vida del software tiene como objetivo aumentar la productividad de todos los especialistas involucrados en ellos mediante la mejora de la tecnología utilizada, los métodos de gestión, la elección de herramientas y la formación.

personal.

Proceso de aprendizaje(proceso de entrenamiento). Abarca la formación inicial y la posterior formación continua del personal.

¡Hola, queridos khabrovitas! Creo que será interesante que alguien recuerde qué modelos de desarrollo, implementación y uso de software existían antes, qué modelos se usan principalmente ahora, por qué y qué es realmente. Este será mi pequeño tema.

En realidad, ¿qué es ciclo de vida del software- una serie de eventos que ocurren con el sistema en el proceso de su creación y uso posterior. En otras palabras, este es el tiempo desde el momento inicial de creación de un producto de software hasta el final de su desarrollo e implementación. El ciclo de vida del software se puede representar en forma de modelos.

modelo de ciclo de vida del software- una estructura que contiene los procesos de acción y tareas que se llevan a cabo durante el desarrollo, uso y mantenimiento de un producto de software.
Estos modelos se pueden dividir en 3 grupos principales:

  1. Enfoque de ingeniería
  2. Teniendo en cuenta las especificidades de la tarea.
  3. Tecnologías modernas de desarrollo rápido
Ahora consideremos modelos (subclases) directamente existentes y evaluemos sus ventajas y desventajas.

Modelo de codificación y manejo de errores.

Un modelo completamente sencillo, típico para estudiantes universitarios. Es de acuerdo con este modelo que la mayoría de los estudiantes desarrollan, digamos, trabajos de laboratorio.
Este modelo tiene el siguiente algoritmo:
  1. Formulación del problema
  2. Rendimiento
  3. Comprobando el resultado
  4. Si es necesario, vaya al primer punto
Modelo también terrible anticuado. Es típico de 1960-1970, por lo tanto, prácticamente no tiene ventajas sobre los siguientes modelos en nuestra revisión, pero tiene desventajas obvias. Pertenece al primer grupo de modelos.

Modelo de ciclo de vida del software Waterfall (Cascada)

El algoritmo de este método, que presento en el diagrama, tiene una serie de ventajas sobre el algoritmo del modelo anterior, pero también tiene una serie pesado deficiencias

ventajas:

  • Ejecución secuencial de las etapas del proyecto en un estricto orden fijo
  • Le permite evaluar la calidad del producto en cada etapa
Defectos:
  • Falta de retroalimentación entre etapas.
  • No corresponde a las condiciones reales de desarrollo de productos de software.
Pertenece al primer grupo de modelos.

Modelo Cascada con Mando Intermedio (Whirlpool)

Este modelo es casi equivalente en algoritmo al modelo anterior, sin embargo, tiene retroalimentaciones con cada etapa del ciclo de vida, generando un inconveniente muy importante: Aumento de 10 veces en los costos de desarrollo. Pertenece al primer grupo de modelos.

Modelo V (desarrollo a través de pruebas)

Este modelo está más cerca de métodos modernos El algoritmo, sin embargo, todavía tiene una serie de deficiencias. Es una de las principales prácticas de la Programación Extrema.

Desarrollo de prototipos basado en modelos

Este modelo se basa en la creación de prototipos y la creación de prototipos de productos.
creación de prototipos utilizado en las primeras etapas del ciclo de vida del software:
  1. Aclarar requisitos poco claros (prototipo de interfaz de usuario)
  2. Elija una de varias soluciones conceptuales (implementación de escenarios)
  3. Analizar la viabilidad del proyecto.
Clasificación de prototubos:
  1. Horizontal y vertical
  2. Desechable y evolutivo
  3. papel y storyboards
Horizontal prototipos: modela exclusivamente la interfaz de usuario sin afectar la lógica de procesamiento y la base de datos.
vertical prototipos - verificación de soluciones arquitectónicas.
Desechable prototipos - para un desarrollo rápido.
evolutivo los prototipos son la primera aproximación de un sistema evolutivo.

El modelo pertenece al segundo grupo.

Modelo de ciclo de vida de software en espiral

El Modelo Espiral es un proceso de desarrollo de software que combina el diseño y la creación de prototipos incrementales para combinar los beneficios de los conceptos de abajo hacia arriba y de abajo hacia arriba.

ventajas:

  • Resultados rápidos
  • Aumento de la competitividad
  • Cambiar los requisitos no es un problema
Defectos:
  • Falta de regulación escénica
El tercer grupo incluye modelos tales como Programación extrema(XP), MELÉ, modelo incremental(RUP), pero me gustaría hablar de ellos en un tema aparte.

¡Muchas gracias por su atención!

La estructura del ciclo de vida según ISO/IEC 12207 se basa en tres grupos de procesos: principal, auxiliar, organizativo.

Procesos básicos del ciclo de vida.

Los principales procesos incluyen un conjunto ciertas acciones y tareas relacionadas que deben realizarse durante el ciclo de vida del producto de software (SP).

Los principales procesos del ciclo de vida del software incluyen los procesos de adquisición, entrega, desarrollo, operación y mantenimiento.

El proceso de adquisición cubre las actividades del cliente para adquirir el software. Estas acciones incluyen:

  • 1) El inicio de la adquisición implica muchas tareas, incluida la determinación por parte del cliente de sus necesidades de adquisición, el desarrollo o la mejora del sistema PP.
  • 2) La preparación de propuestas de aplicación implica el desarrollo y preparación de propuestas, que deben contener: requisitos para el sistema que se está desarrollando o comprando; lista de software requerido; Términos y condiciones; Restricciones técnicas.
  • 3) La preparación y ajuste del contrato incluye las siguientes tareas: selección por parte del proveedor del criterio de evaluación de las propuestas; selección de un proveedor específico a partir del análisis de propuestas; preparación y conclusión de un contrato con un proveedor; hacer cambios (si es necesario) al contrato en el proceso de su implementación.
  • 4) La supervisión de las actividades de los proveedores se realiza de acuerdo con las actuaciones previstas en el proceso de evaluación conjunta de la auditoría.
  • 5) Recepción y finalización del trabajo.

Durante el proceso de aceptación, se preparan y realizan las pruebas necesarias. La finalización del trabajo bajo el contrato se lleva a cabo en caso de satisfacción de todas las condiciones de aceptación.

El proceso de suministro cubre las actividades y tareas del proveedor al suministrar al cliente un software o servicio.

Estas acciones incluyen:

  • 1) El inicio del suministro consiste en la consideración de las propuestas de oferta por parte del proveedor y la adopción de una decisión.
  • 2) La preparación de una respuesta a las ofertas se lleva a cabo de acuerdo con las decisiones tomadas.
  • 3) La preparación del contrato se lleva a cabo después de que el cliente seleccione un proveedor específico.
  • 4) La planificación se lleva a cabo después de la celebración del contrato e incluye las siguientes tareas: tomar una decisión por parte del proveedor con respecto a la realización del trabajo por su cuenta o con la participación de un subcontratista; desarrollo por parte del proveedor de un plan de gestión del proyecto que contenga estructura organizativa proyecto, división de responsabilidad, requerimientos técnicos al entorno de desarrollo, gestión de subcontratistas.
  • 5) Ejecución y control.
  • 6) Verificación y evaluación.
  • 7) La entrega y terminación de obra se realiza de acuerdo con las acciones acordadas en el proceso de iniciación para la recepción y terminación de obra.

El proceso de desarrollo cubre las acciones y tareas del desarrollador y prevé las siguientes áreas principales de trabajo:

  • 1) Creación de software y sus componentes con requisitos específicos, incluida la preparación de la documentación de diseño y operación.
  • 2) Preparación de los materiales necesarios para probar el rendimiento y la calidad del software.
  • 3) Preparación de los materiales necesarios para organizar la formación del personal, etc.

El proceso de operación cubre las acciones y tareas del operador, la organización involucrada en la operación del software desarrollado. Estas acciones incluyen: trabajos preparatorios, pruebas operativas, operación del sistema, soporte al usuario es para brindar asistencia y asesoramiento cuando se detectan errores durante la operación del software.

Proceso de seguimiento. Este proceso se activa en caso de cambios (modernización) de software y documentación relacionada causados ​​por problemas que hayan surgido.

El objetivo principal de estos procesos es la creación de un producto de software confiable que cumpla completamente con los requisitos del cliente dentro de los términos establecidos por el contrato.

Apoyo a los procesos del ciclo de vida

El objetivo principal de estos procesos es la creación de un producto de software confiable que cumpla completamente con los requisitos del cliente dentro de los términos establecidos por el contrato. Los procesos auxiliares incluyen documentación, gestión de configuración, control de calidad, verificación, certificación, evaluación conjunta, auditoría, resolución de problemas.

El proceso de documentación proporciona una descripción formalizada de la información creada durante el ciclo de vida del software.

Este proceso incluye:

  • 1) Los trabajos preparatorios que se requieran para determinar y acordar lista requerida documentos y procedimientos documentados.
  • 2) Diseño y desarrollo de documentación, que se realizan en el proceso de trabajo del software y se completan simultáneamente con la finalización de su ciclo de vida.
  • 3) Liberación de documentación, que se realiza en cuanto está lista.
  • 4) El mantenimiento incluye acciones para corregir y actualizar la documentación durante el ciclo de vida de los productos de software.

El proceso de gestión de la configuración implica la aplicación de procedimientos administrativos y técnicos a lo largo del ciclo de vida del software.

La configuración del software se entiende como la totalidad de sus funciones y características físicas, establecido en la documentación técnica e implementado en el software.

Este proceso incluye:

  • 1) El trabajo preparatorio, que consiste en planificar la gestión de la configuración.
  • 2) Identificación de configuración: establece reglas mediante las cuales es posible identificar y distinguir de manera única los componentes de software y sus versiones. Además, cada componente y sus versiones tienen un conjunto de documentación identificado de forma única.
  • 3) Control de configuración: diseñado para evaluar sistemáticamente las modificaciones propuestas del software y su implementación coordinada, teniendo en cuenta la efectividad de cada modificación y el costo de su implementación.
  • 4) Contabilidad del estado de la configuración: es el registro del estado de los componentes del software, la preparación de informes sobre todas las modificaciones implementadas y rechazadas de las versiones de los componentes del software.
  • 5) Evaluación de la configuración - consiste en evaluar la integridad funcional de los componentes del software.
  • 6) La gestión de liberación y entrega incluye la producción de copias maestras de programas y documentación, su almacenamiento y entrega a los usuarios de acuerdo con el procedimiento adoptado por la organización.

El proceso de aseguramiento de la calidad proporciona una garantía adecuada de que el producto y sus procesos de ciclo de vida cumplen con los requisitos especificados y los planes aprobados.

Para obtener estimaciones fiables del software que se está creando, el proceso de asegurar su calidad debe realizarse independientemente de los temas directamente relacionados con el desarrollo del software.

El proceso de verificación consiste en probar que el PP, que es el resultado de alguna acción, satisface plenamente los requisitos o condiciones que dependen de acciones anteriores.

La verificación puede ser realizada tanto por el propio contratista como por otro especialista de esta organización, así como por un especialista de una organización externa. Verificación en sentido estricto significa una prueba formal de la corrección del PP. Este proceso puede incluir análisis, evaluación y pruebas.

El proceso de certificación implica determinar la integridad del cumplimiento de los requisitos especificados para el sistema o software que se está creando.

La certificación generalmente se entiende como la confirmación y evaluación de la confiabilidad de las pruebas de los productos de software. La homologación debe garantizar su pleno cumplimiento, así como la posibilidad de su uso seguro y fiable por parte del usuario.

El proceso de diagnóstico participativo está diseñado para evaluar el estado del proyecto y del PP. Consiste principalmente en el control de la planificación y gestión de los recursos, personal, equipos y herramientas del proyecto.

El proceso de auditoría es una determinación del cumplimiento de los requisitos, planes y términos del contrato como el progreso del trabajo en la creación de software y el producto en sí.

La auditoría sirve para establecer la conformidad del trabajo real y los informes, por lo que los auditores (auditores) no deben depender directamente de los desarrolladores de software.

El proceso de resolución de problemas implica analizar y resolver los problemas encontrados durante el desarrollo, las operaciones y otros procesos, independientemente de su problema o fuente. Cada problema encontrado debe ser identificado, descrito, analizado y resuelto.

La resolución de problemas se lleva a cabo durante todo el ciclo de vida del SP.

Procesos del ciclo de vida organizacional

El objetivo principal de los procesos organizacionales es organizar el proceso de desarrollo de un producto de software confiable que cumpla completamente con los requisitos del cliente dentro de los términos establecidos por el contrato y administrar este proceso. Los procesos organizacionales incluyen la gestión, la creación de infraestructura, la mejora y la capacitación.

El proceso de gestión de proyectos consta de actividades y tareas que puede realizar cualquier parte que gestione sus propios procesos. Esta parte (gestor) es responsable de gestionar la liberación del producto, el proyecto y las tareas de los procesos relacionados, tales como adquisición, suministro, desarrollo, operación, mantenimiento, etc.

El proceso de creación de una infraestructura cubre la selección y soporte (mantenimiento) de tecnología, estándares y herramientas, la selección e instalación de hardware y software utilizados para desarrollar, operar y mantener productos de software.

El proceso de mejora prevé la evaluación, medición, control, mejora de los procesos del ciclo de vida del software.

La mejora de los procesos del ciclo de vida del software tiene como objetivo aumentar la productividad de todos los especialistas que intervienen en ellos mediante la mejora de la tecnología utilizada, los métodos de gestión, la elección de herramientas y la formación del personal.

El proceso de formación abarca la formación inicial y el posterior desarrollo del personal. Los principales procesos dependen en gran medida del nivel de conocimientos y cualificación del personal.

Para este proceso se deben planificar los recursos y medios técnicos de automatización necesarios.

El desarrollo de software es imposible sin comprender el llamado ciclo de vida del software. Es posible que un usuario común no necesite saber esto, pero es deseable aprender los estándares básicos (más adelante se dirá por qué es necesario).

¿Qué es el ciclo de vida en el sentido formal?

Bajo el ciclo de vida de cualquiera, se acostumbra entender el tiempo de su existencia, a partir de la etapa de desarrollo y hasta el momento del abandono completo del uso en el campo de aplicación elegido, hasta la eliminación completa de la aplicación del uso.

En lenguaje sencillo, Sistemas de información en forma de programas, bases de datos o incluso "sistemas operativos" sólo tienen demanda si los datos y las oportunidades que brindan son relevantes.

Se cree que la definición de ciclo de vida no se aplica de ninguna manera a las aplicaciones de prueba, como las versiones beta, que son las más inestables en funcionamiento. El ciclo de vida del software en sí mismo depende de muchos factores, entre los cuales uno de los roles principales lo juega el entorno en el que se utilizará el programa. Sin embargo, se puede distinguir Términos Generales y Condiciones utilizado para definir el concepto de ciclo de vida.

Requisitos iniciales

  • formulación del problema;
  • análisis de requisitos mutuos de software futuro para el sistema;
  • diseño;
  • programación;
  • codificación y compilación;
  • pruebas;
  • depuración;
  • implementación y mantenimiento del producto de software.

El desarrollo de software consta de todas las etapas mencionadas anteriormente y no puede prescindir de al menos una de ellas. Pero para controlar tales procesos, se establecen estándares especiales.

Estándares de proceso del ciclo de vida del software

Entre los sistemas que predeterminan las condiciones y requisitos para tales procesos, hoy solo se pueden nombrar tres principales:

  • GOST 34.601-90;
  • ISO/CEI 12207:2008;
  • MDL de Oracle.

Hay un análogo ruso para el segundo estándar internacional. Se trata de GOST R ISO/IEC 12207-2010, que se encarga de la ingeniería de sistemas y software. Pero el ciclo de vida del software descrito en ambas reglas es esencialmente idéntico. Esto se explica de forma bastante sencilla.

Tipos de software y actualizaciones

Por cierto, para la mayoría de los programas multimedia actualmente conocidos, son el medio para guardar los principales parámetros de configuración. El uso de este tipo de software es, por supuesto, bastante limitado, pero comprender los principios generales de trabajar con los mismos reproductores multimedia no está de más. Y es por eso.

De hecho, tienen un ciclo de vida del software solo a nivel del período de actualización de la versión del propio reproductor o la instalación de códecs y decodificadores. Y los transcodificadores de audio y video son atributos esenciales de cualquier sistema de audio o video.

Ejemplo basado en FL Studio

Inicialmente, el secuenciador de estudio virtual FL Studio se llamaba Fruity Loops. El ciclo de vida del software en su modificación principal ha expirado, pero la aplicación se ha transformado un poco y ha adquirido su forma actual.

Si hablamos de las etapas del ciclo de vida, al principio, en la etapa de establecimiento de la tarea, se establecieron varias condiciones obligatorias:

  • crear un módulo de batería similar a cajas de ritmos como la Yamaha RX, pero utilizando muestras de un solo disparo o secuencias WAV grabadas en vivo en estudios;
  • integración en sistema operativo ventanas;
  • la capacidad de exportar el proyecto en formatos WAV, MP3 y OGG;
  • Compatibilidad del proyecto con la aplicación adicional Fruity Tracks.

En la etapa de desarrollo se utilizaron las herramientas de los lenguajes de programación C. Pero la plataforma parecía bastante primitiva y no permitía al usuario final calidad requerida sonar.

En este sentido, en la etapa de prueba y depuración, los desarrolladores tuvieron que seguir el camino de la corporación alemana Steinberg y aplicar el soporte de modo Full Duplex en los requisitos para el controlador de sonido principal. La calidad del sonido ha mejorado y le permite cambiar el tempo, el tono y aplicar efectos FX adicionales en tiempo real.

Se considera que el final del ciclo de vida de este software es el lanzamiento de la primera versión oficial de FL Studio, que, a diferencia de sus antepasados, ya tenía una interfaz de secuenciador completa con la capacidad de editar parámetros en un canal virtual de 64. mesa de mezclas con adición ilimitada de pistas de audio y pistas MIDI.

Esto no fue limitado. En la etapa de gestión de proyectos, se introdujo el soporte para conectar complementos en formato VST (primero la segunda y luego la tercera versión), una vez desarrollada por Steinberg. En términos generales, cualquier sintetizador virtual que admita VST-host podría conectarse al programa.

No es sorprendente que pronto cualquier compositor pueda usar análogos de los modelos de "hierro", por ejemplo, los conjuntos completos de sonidos del alguna vez popular Korg M1. Además. El uso de módulos como Addictive Drums o el complemento universal Kontakt hizo posible reproducir los sonidos en vivo de instrumentos reales grabados con todos los tonos de articulación en estudios profesionales.

Al mismo tiempo, los desarrolladores intentaron lograr la máxima calidad mediante la creación de compatibilidad con los controladores ASIO4ALL, que resultaron estar muy por encima del modo Full Duplex. En consecuencia, la tasa de bits también aumentó. Hasta la fecha, la calidad del archivo de audio exportado puede ser de 320 kbps a una frecuencia de muestreo de 192 kHz. Este es un sonido profesional.

En cuanto a la versión inicial, se podría decir que su ciclo de vida ha terminado por completo, pero tal afirmación es relativa, ya que la aplicación solo ha cambiado de nombre y ha ganado nuevas funciones.

Perspectivas de desarrollo

Cuáles son las etapas del ciclo de vida del software ya está claro. Pero vale la pena mencionar por separado el desarrollo de tales tecnologías.

No hace falta decir que ningún desarrollador de software está interesado en crear un producto fugaz que probablemente no permanezca en el mercado durante algunos años. En el futuro, todo el mundo está mirando su uso a largo plazo. Esto se puede lograr diferentes caminos. Pero, por regla general, casi todos se reducen al lanzamiento de actualizaciones o nuevas versiones de programas.

Incluso en el caso de Windows, estas tendencias se pueden ver a simple vista. Es poco probable que hoy haya al menos un usuario usando sistemas como las modificaciones 3.1, 95, 98 o Millennium. Su ciclo de vida terminó después del lanzamiento de la versión XP. Pero las versiones de servidor basadas en tecnologías NT siguen siendo relevantes. Incluso Windows 2000 hoy en día no sólo está muy actualizado, sino que incluso supera los últimos avances en algunos parámetros de instalación o seguridad. Lo mismo se aplica al sistema NT 4.0, así como a una modificación especializada de Windows Server 2012.

Pero en relación con estos sistemas, el apoyo todavía se declara en el mismo nivel alto. Pero el sensacional Vista en su momento vive claramente el ocaso del ciclo. No solo resultó estar inacabado, sino que había tantos errores en sí mismo y brechas en su sistema de seguridad que uno solo puede adivinar cómo una solución tan insostenible podría lanzarse al mercado de software.

Pero si hablamos del hecho de que el desarrollo de software de cualquier tipo (de gestión o aplicación) no se detiene, solo es posible.Después de todo, hoy en día se trata no solo de sistemas informáticos, sino también dispositivos móviles en el que las tecnologías aplicadas suelen estar por delante del sector informático. La aparición de chips de procesador basados ​​​​en ocho núcleos, que no es el más mejor ejemplo? Pero no todas las computadoras portátiles pueden presumir de tener dicho hardware.

Algunas preguntas adicionales

En cuanto a la comprensión del ciclo de vida del software, se puede decir que terminó en algún momento específico, es muy condicional, porque los productos de software aún cuentan con el apoyo de los desarrolladores que los crearon. Más bien, el final se refiere a aplicaciones heredadas que no cumplen con los requisitos. sistemas modernos y no pueden trabajar en su entorno.

Pero incluso teniendo en cuenta el progreso tecnológico, muchos de ellos en un futuro próximo pueden resultar insostenibles. Ahí es cuando tendrá que tomar la decisión de publicar actualizaciones o revisar por completo todo el concepto que se incorporó originalmente en el producto de software. De ahí el nuevo ciclo, que implica cambiar las condiciones iniciales, el entorno de desarrollo, las pruebas y la posible aplicación a largo plazo en un área determinada.

Pero en la tecnología informática actual, se da preferencia al desarrollo de sistemas de control automatizado (ACS), que se utilizan en la producción. Incluso los sistemas operativos, en comparación con los programas especializados, pierden.

Los mismos entornos basados ​​en Visual Basic siguen siendo mucho más populares que los sistemas Windows. Y no estamos hablando de software de aplicación para sistemas UNIX en absoluto. Que puedo decir, si casi todas las redes de comunicación de los mismos Estados Unidos trabajan exclusivamente para ellos. Por cierto, sistemas como Linux y Android también se crearon originalmente en esta plataforma. Por lo tanto, lo más probable es que UNIX tenga muchas más perspectivas que otros productos combinados.

en lugar de totales

Resta añadir que en este caso sólo principios generales y etapas del ciclo de vida del software. De hecho, incluso las tareas iniciales pueden diferir de manera muy significativa. En consecuencia, se pueden observar diferencias en otras etapas.

Pero las tecnologías básicas para desarrollar productos de software con su posterior mantenimiento deben ser claras. Por lo demás, se deben tener en cuenta las características específicas del software que se está creando, los entornos en los que se supone que funciona y las capacidades de los programas proporcionados al usuario final o producción, y mucho más.

Además, a veces los ciclos de vida pueden depender de la relevancia de las herramientas de desarrollo. Si, por ejemplo, algún lenguaje de programación se vuelve obsoleto, nadie escribirá programas basados ​​​​en él, y aún más, implementarlos en sistemas automatizados gestión de la producción. Aquí, ni siquiera los programadores, pasan a primer plano, sino los mercadólogos, quienes deben responder de manera oportuna a los cambios en el mercado de las computadoras. Y no hay tantos especialistas de este tipo en el mundo. El personal altamente calificado capaz de mantenerse al día en el mercado se está convirtiendo en el más demandado. Y son ellos quienes a menudo son los llamados "cardenales grises", de los que depende el éxito o el fracaso de un determinado producto de software en el campo de TI.

Aunque no siempre entienden la esencia de la programación, son claramente capaces de determinar los modelos de ciclo de vida del software y la duración de su uso, con base en las tendencias globales en esta área. Gestión eficaz a menudo produce resultados más tangibles. Sí, al menos tecnologías de relaciones públicas, publicidad, etc. Es posible que el usuario no necesite alguna aplicación, pero si se anuncia activamente, el usuario la instalará. Esto ya es, por así decirlo, un nivel subconsciente (el mismo efecto del cuadro 25, cuando la información se pone en la mente del usuario independientemente de sí mismo).

Por supuesto, tales tecnologías están prohibidas en el mundo, pero muchos de nosotros ni siquiera nos damos cuenta de que aún pueden usarse y afectar el subconsciente de cierta manera. ¿De qué vale la "zombificación" de canales de noticias o sitios de Internet, sin mencionar el uso de medios más poderosos, como la exposición a infrasonidos (esto se usó en una producción de ópera), como resultado de lo cual una persona puede experimentar miedo o inadecuación? emociones

Volviendo al software, cabe añadir que algunos programas utilizan una señal sonora al inicio para llamar la atención del usuario. Y los estudios muestran que tales aplicaciones son más viables que otros programas. Naturalmente, el ciclo de vida del software también aumenta, sin importar la función que se le asignó originalmente. Y esto, desafortunadamente, es utilizado por muchos desarrolladores, lo que genera dudas sobre la legalidad de tales métodos.

Pero no nos corresponde a nosotros juzgar esto. Es posible que en un futuro cercano se desarrollen herramientas para identificar dichas amenazas. Hasta ahora, esto es solo una teoría, pero, según algunos analistas y expertos, antes aplicación práctica queda muy poco. Si ya están creando copias de las redes neuronales del cerebro humano, ¿qué puedo decir?

Anotación.

Introducción.

1. Ciclo de vida del software

Introducción.

Pasos del proceso de programación de Riley

Introducción.

1.1.1. Formulación del problema.

1.1.2. Diseño de solución.

1.1.3. Codificación de algoritmos.

1.1.4. Programa de apoyo.

1.1.5. Documentación de software.

Conclusión al párrafo 1.1

1.2. Definición de ZhTsPO según Lehman.

Introducción.

1.2.1 Definición del sistema.

1.2.2. Implementación.

1.2.3. Servicio.

Conclusión del punto 1.2.

1.3. Fases y Obras del Programa de Ciclo de Vida según Boehm

1.3.1. modelo en cascada.

1.3.2. Justificación económica modelo en cascada.

1.3.3. Mejora del modelo en cascada.

1.3.4. Definición de las fases del ciclo de vida.

1.3.5. Trabajo básico sobre el proyecto.

Literatura.


Introducción

La aplicación industrial de los ordenadores y la creciente demanda de programas han planteado tareas urgentes para un aumento significativo de productividad de desarrollo de software, el desarrollo de métodos industriales para planificar y diseñar programas, la transferencia de métodos, patrones y métodos organizacionales, técnicos, técnicos, económicos y sociopsicológicos desde la esfera de la producción material a la esfera de las computadoras. Un enfoque complejo a los procesos de desarrollo, operación y mantenimiento de software plantean una serie de problemas apremiantes, cuya solución permitirá eliminar los "cuellos de botella" en el diseño de programas, reducir el tiempo de ejecución, mejorar la selección y adaptación de los programas existentes, y tal vez determinar el destino de los sistemas con computadoras integradas.

En la práctica de desarrollar grandes proyectos de software, a menudo no hay enfoque unificado a la evaluación de los costos de mano de obra, términos de trabajo y costos de materiales, lo que dificulta el aumento de la productividad del desarrollo de software y, en última instancia, - gestión eficaz ciclo de vida del software. Dado que un programa de cualquier tipo se convierte en un producto (excepto, quizás, los programas educativos de simulación), el enfoque de su producción debe ser similar en muchos aspectos al enfoque de la producción de productos industriales, y los problemas de diseño de software se vuelven extremadamente importantes. . Esta idea subyace a B.U. Boehm "Software Engineering Design", que usamos para escribir esto Papel a plazo. En este libro, el diseño de software se refiere al proceso de creación de un diseño para un producto de software.


1 Ciclo de vida del software

INTRODUCCIÓN

LCPE es un proceso continuo que comienza desde el momento en que se toma una decisión sobre la necesidad de crear software y finaliza en el momento en que se retira completamente de la operación.

Existen varios enfoques para definir las fases y actividades del ciclo de vida del software (SLLC), los pasos del proceso de programación, los modelos en cascada y en espiral. Pero todos contienen componentes fundamentales comunes: planteamiento del problema, diseño de la solución, implementación, mantenimiento.

La más famosa y completa, quizás, es la estructura del ciclo de vida según Boehm, que incluye ocho fases. Se presentará con más detalle más adelante.

Uno de opciones puede servir como una descripción del nivel superior según Lehman, que incluye tres fases principales y representa una descripción del programa de ciclo de vida en el caso más general.

Y, para variar, aquí están los pasos del proceso de programación presentado por D. Riley en el libro “Using the Modula-2 Language”. Esta idea, en mi opinión, es muy simple y familiar, y comenzaremos con ella.

1.1 Pasos del proceso de programación de Riley

El proceso de programación incluye cuatro pasos (Fig. 1):

enunciado del problema, es decir obtener una idea adecuada de qué tarea debe realizar el programa;

diseñar una solución a un problema ya planteado (en general, tal solución es menos formal que el programa final);

codificación de programas, es decir, traducción de la solución diseñada a un programa que se puede ejecutar en una máquina;

apoyo al programa, es decir, un proceso continuo de corregir errores en el programa y agregar nuevas características.

Arroz. 1.Cuatro pasos de programación.

La programación comienza desde el momento en que usuario, es decir. alguien que necesita un programa para resolver un problema plantea un problema analista de sistemas. El usuario y el analista del sistema definen conjuntamente el enunciado del problema. Este último es luego transferido algoritmista quién es el responsable de diseñar la solución. Una solución (o algoritmo) es una secuencia de operaciones, cuya ejecución conduce a la solución de un problema. Dado que el algoritmo a menudo no está adaptado para ejecutarse en una máquina, debe traducirse a un programa de máquina. Esta operación la realiza el codificador. El programador acompañante es responsable de los cambios posteriores en el programa. Y el analista de sistemas, el algoritmo, el codificador y el programador que lo acompaña, todos son programadores.

En el caso de un gran proyecto de software, la cantidad de usuarios, analistas de sistemas y algoritmos puede ser significativa. Además, puede ser necesario volver a los pasos anteriores debido a circunstancias imprevistas. Todo esto sirve como argumento adicional a favor del diseño cuidadoso del software: los resultados de cada paso deben ser completos, precisos y comprensibles.

1.1.1 Planteamiento del problema

uno de los mas pasos importantes la programación es un enunciado del problema. Funciona como un contrato entre el usuario y los programadores. Al igual que un contrato legalmente mal redactado, una mala declaración de misión es inútil. Con una buena declaración del problema, tanto el usuario como el programador representan de forma clara e inequívoca la tarea a realizar, es decir. en este caso, se tienen en cuenta los intereses tanto del usuario como del programador. El usuario puede planear usar el software que aún no ha sido creado, basado en el conocimiento que puede. Un buen planteamiento del problema sirve como base para la formación de su solución.

Formulación del problema (especificación del programa); esencialmente significa una descripción precisa, completa y comprensible de lo que sucede cuando se ejecuta un programa en particular. El usuario suele ver la computadora como una caja negra: no le importa cómo funciona la computadora, pero es importante que la computadora pueda hacer lo que le interesa al usuario. La atención se centra en la interacción entre el hombre y la máquina.

Características de un buen enunciado del problema:

Exactitud, es decir. exclusión de toda ambigüedad. No debe haber dudas sobre cuál será la salida del programa para cualquier entrada dada.

lo completo, es decir. considerando todas las opciones para una entrada dada, incluyendo entradas erróneas o inesperadas, y determinando la salida apropiada.

Claridad, es decir. debe ser comprensible tanto para el usuario como para el analista del sistema, ya que el enunciado del problema es el único contrato entre ellos.

A menudo, los requisitos de precisión, integridad y claridad están en conflicto. Así, muchos documentos legales son difíciles de entender porque están escritos en un lenguaje formal que permite formular determinadas disposiciones con la máxima precisión, excluyendo hasta las discrepancias más insignificantes. Por ejemplo, algunas preguntas en los exámenes a veces están redactadas con tanta precisión que el estudiante pasa más tiempo comprendiendo la pregunta que respondiéndola. Además, es posible que el estudiante no capte el significado principal de la pregunta debido a un número grande detalles. La mejor declaración del problema es la que logra un equilibrio de los tres requisitos.

La forma estándar de declaración del problema.

Considere la siguiente declaración del problema: "Ingrese tres números y envíe los números en orden".

Tal declaración no satisface los requisitos anteriores: no es ni precisa, ni completa, ni comprensible. De hecho, ¿deberían ingresarse los números uno por línea o todos los números en una sola línea? ¿La expresión "en orden" significa ordenar de mayor a menor, de menor a mayor, o en el mismo orden en que se introdujeron?

Es obvio que tal afirmación no responde a muchas preguntas. Si tenemos en cuenta las respuestas a todas las preguntas, la declaración del problema se volverá prolija y difícil de entender. Por lo tanto, D. Riley propone utilizar el formulario estándar para plantear el problema, lo que garantiza la máxima precisión, integridad, claridad e incluye:

nombre de la tarea (definición esquemática);

descripción general (breve declaración de la tarea);

errores (las opciones de entrada inusuales se enumeran explícitamente para mostrar a los usuarios y programadores las acciones que la máquina tomará en tales situaciones);

ejemplo (un buen ejemplo puede transmitir la esencia del problema, así como ilustrar diferentes casos).

Ejemplo. Enunciado del problema en la forma estándar.

TÍTULO

Ordena tres números enteros.

DESCRIPCIÓN

Entrada y salida de tres enteros, ordenados de menor a mayor.

Se ingresan tres enteros, un número por línea. En este caso, un número entero es uno o más dígitos decimales consecutivos, que pueden estar precedidos por un signo más "+" o un signo menos "-".

Los tres enteros ingresados ​​​​se emiten, y los tres se muestran en la misma línea. Los números adyacentes están separados por un espacio. Los números se muestran de menor a mayor, de izquierda a derecha.

1) Si se ingresan menos de tres números, el programa espera una entrada adicional.