Descripción general de la ingeniería de software (crisis de software, ingeniería de software, ciclo de vida del software, proceso de software)

  • Descripción general de ingeniería de software (1)
  • Metodología estructurada orientada (2-8)
  • Metodología orientada a objetos (9-12)

1. El concepto de software

El software no es lo mismo que un programa.
¿Qué es software?

Programa + estructura de datos + documento

El software es una colección de programas de computadora, datos utilizados y documentos relacionados. De hecho, el software es un conjunto de personas desarrollado y utilizado para satisfacer determinadas necesidades de las personas. Por lo tanto, el software se compone de programas, datos, documentos y personas.

Programa: un conjunto de instrucciones que puede proporcionar la función y el rendimiento deseados durante la operación. Programa Una secuencia de oraciones descritas por un lenguaje de programación que puede ser reconocido, entendido y procesado por una computadora.
Estructura de datos: la estructura de datos que permite que el programa se ejecute correctamente.
Documento: documento que describe el proceso de desarrollo del programa y el uso de métodos. Los documentos son los materiales explicativos necesarios para registrar las actividades de desarrollo de software y los resultados por fases, y para comprender el software.

2. Crisis de software

1. El concepto de
crisis de software Crisis de software: se refiere a una serie de problemas graves encontrados durante el desarrollo y mantenimiento de software .
2. El desempeño de la crisis del software

  • Las estimaciones del costo y el cronograma de desarrollo de software son muy inexactas
  • El usuario no está satisfecho con el software "terminado" e incluso se niega a aceptarlo.
  • Calidad de software poco confiable
  • Mantenimiento deficiente del software
  • El software generalmente no tiene la documentación adecuada
  • La proporción de los costos de software en el costo total de los sistemas informáticos aumenta año tras año
  • La velocidad de desarrollo de software y la tasa de producción aumenta, lo que no puede mantenerse al día con la velocidad de desarrollo de hardware.

3. Un ejemplo clásico de crisis de software


El sistema operativo de la serie IBM360 del Aeropuerto Internacional de Denver ,
cohete ARIANE 5,
misil Patriot
2008 reactor nuclear

4. La causa raíz de la crisis del software

  • Gran escala y alta complejidad
  • El software es un producto lógico y su esencia y características no se comprenden completamente.
  • Falta de talento de alta calidad (técnico y de gestión)
  • Falta de un principio, un principio, un método y una herramienta sistemáticos y eficaces para guiar el desarrollo, la gestión y el mantenimiento del software.

Razones de la crisis del software:
① Las características del software. Las características del software incluyen conocimiento, sociabilidad, complejidad, invisibilidad, hardware y escala creciente, características que pueden dejar peligros ocultos en el desarrollo, uso y mantenimiento del software, provocando una crisis de software.
② Los métodos de desarrollo, uso y mantenimiento no son científicos. Por ejemplo, el análisis de demanda no está en su lugar; los cuatro no están desarrollados; las herramientas están al revés; no hay garantía de calidad.

3. Ingeniería de software

1. Definición de ingeniería de software
1. La ingeniería de software es un principio de ingeniería sólido establecido y utilizado para obtener de forma económica un software confiable que pueda ejecutarse eficazmente en máquinas reales.
2. Aplicar enfoques sistemáticos, estandarizados y medibles al proceso de desarrollo, operación y mantenimiento de software. Eso es aplicar la ingeniería al software.

2. Características esenciales de la ingeniería de software
Características esenciales:
① La ingeniería de software se centra en la construcción de programas a gran escala;
② El tema central de la ingeniería de software es controlar la complejidad;
③ El software cambia con frecuencia;
④ La eficiencia del desarrollo de software es muy importante;
⑤ El desarrollo es una cooperación armoniosa La clave del software;
⑥El software debe apoyar eficazmente a sus usuarios;
⑦En el campo de la ingeniería de software, las personas con un trasfondo cultural suelen crear productos para personas con otro trasfondo cultural.

3. Roles en
ingeniería de software Los roles en ingeniería de software incluyen gerentes de proyecto, gerentes de producto, diseñadores analíticos, programadores, evaluadores, implementación, mantenimiento, capacitadores y ventas.
4. Principios básicos de la ingeniería de software

  • Gestión estricta con un plan de ciclo de vida por fases
  • Insiste en la revisión del escenario
  • Implementar un estricto control de productos
  • Usando tecnología de programación moderna
  • Los resultados deben ser claramente revisables.
  • El equipo de desarrollo debe ser pequeño y capacitado
  • Reconocer la necesidad de mejorar continuamente las prácticas de ingeniería de software.

4. Metodología de ingeniería de software

Un conjunto de métodos técnicos utilizados en todo el ciclo de vida del software generalmente se denomina metodología.

Tres elementos de la metodología de la ingeniería de software:

Método: es el método técnico para completar las tareas de desarrollo de software.
Tool: es un entorno de ingeniería de software automático o semiautomático que se proporciona para aplicar métodos.
Proceso: es un marco de una serie de tareas que deben completarse para obtener un software de alta calidad, especifica los pasos de trabajo para completar cada tarea.

Metodología de ingeniería de software:
1. Metodología tradicional Metodología de
ciclo de vida
Paradigma estructurado

2. Metodología orientada a objetos

Objeto: Un componente de software unificado que integra datos y operaciones sobre los datos.
Divida todos los objetos en clases.
Las clases principales y las subclases forman un sistema jerárquico. Los
objetos solo pueden comunicarse entre sí mediante el envío de mensajes.

La metodología orientada a objetos considera que los datos y el comportamiento son igualmente importantes. Es un método que toma los datos como línea principal e integra estrechamente los datos y las operaciones sobre los datos.

Cinco, ciclo de vida del software

Fase del modelo del ciclo de vida del software

(1) Definición del problema;
(2) Estudio de viabilidad;
(3) Análisis de demanda;
(4) Diseño general;
(5) Diseño detallado;
(6) Codificación y pruebas unitarias;
(7) Pruebas integrales;
(8) Mantenimiento de software .

Seis, proceso de software

1. Modelos de procesos de software comunes
(1) Modelo de cascada;
(2) Modelo de prototipo;
(3) Modelo incremental;
(4) Modelo en espiral;
(5) Modelo de fuente;
(6) Modelo ágil;
(7) Modelo de proceso unificado .

Modelo de desarrollo progresivo: creación rápida de prototipos, incremental, espiral

2.
Secuencia y dependencia del modelo en cascada (irreversible)
Implementación retrasada
Garantía de calidad
3.
Un programa que se puede ejecutar en una computadora rápidamente establecido por un modelo de creación rápida de prototipos Las funciones que puede completar son a menudo las del producto de software final. Un subconjunto.
4. El modelo incremental (modelo incremental)
utiliza productos de software como una serie de componentes incrementales para diseñar, codificar, integrar y probar. Cada componente está compuesto por varios módulos que interactúan y puede realizar funciones específicas.
5. Modelo en espiral

Modelo de cascada + prototipos rápidos + análisis de riesgos

Utilice prototipos y otros métodos para minimizar el riesgo. Una manera fácil de entender este modelo es pensar en él como un modelo de prototipo rápido que agrega un proceso de análisis de riesgo antes de cada etapa.

6. Modelo de fuente

  • Iteración: Cada actividad de desarrollo a menudo repite el trabajo muchas veces y las funciones relacionadas se agregan al sistema evolucionado en cada iteración.

  • Sin brechas: no hay límites claros entre las actividades de desarrollo.
    7, proceso unificado racional

Ideas:
1. Centrarse en la arquitectura del sistema
2. Basado en casos de uso
3. Desarrollo iterativo

¡Usar RUP significa enormes costos de compra de herramientas y costos de aprendizaje! El
ciclo de vida del desarrollo de software RUP es un modelo de ciclo de vida bidimensional, el eje horizontal representa el tiempo y el eje vertical representa el flujo de trabajo central.

Cuatro etapas:
etapa inicial, etapa de
esencia,
etapa de construcción,
etapa de entrega

8. Proceso ágil y programación extrema
El proceso ágil es un proceso ágil (método ligero)

Adecuado para situaciones en las que se utiliza el método ágil:
requisitos inciertos y volátiles (volátiles, lo que significa que los requisitos de hoy no serán necesarios mañana)
Desarrolladores responsables y motivados, los
usuarios son fáciles de comunicar y pueden participar

Extreme Programming es el más famoso de los métodos ágiles.

9. Proceso de Microsoft

  • Etapa de planificación

Lleve a cabo estudios e investigaciones de mercado y combine la estrategia de la empresa para formar el objetivo a largo plazo del producto.

  • fase de diseño

De acuerdo con el objetivo a largo plazo del producto, complete la especificación funcional y el diseño general del software y determine el progreso principal del desarrollo del producto.

  • etapa de desarrollo

    Toda la tarea de desarrollo se divide en varias etapas progresivas y se establece en hitos internos como M1, M2, Mn, y los resultados del trabajo por fases se envían en cada hito.

  • Fase estable

Realice pruebas completas internas y externas y, finalmente, cree una versión RTM liberable.

  • Etapa de lanzamiento

Después de confirmar que la calidad del producto cumple con los estándares de lanzamiento, publique el producto y las noticias relacionadas.

Siete, las ventajas y desventajas de RUP y procesos ágiles

(1)
Las ventajas de RUP RUP:
RUP se basa en excelentes principios de ingeniería de software, como la iteración, el desarrollo de procesos estructurado y impulsado por la demanda.
② RUP proporciona varios métodos, por ejemplo, cada iteración genera un prototipo de trabajo y decide si continuar el proyecto al final de cada etapa, estos métodos proporcionan una gestión muy intuitiva del proceso de desarrollo.
La empresa racional ha desarrollado y seguirá desarrollando RUP, de modo que este proyecto de software basado en html se puede adaptar a las necesidades reales de su organización.
Desventajas de RUP:
RUP solo incluye el proceso de desarrollo. No cubre completamente el proceso de software, es obvio en la Figura 1 que ha perdido las dos etapas importantes de mantenimiento y soporte técnico.
② RUP no admite el desarrollo de proyectos múltiples dentro de la organización, lo que conduce al fracaso de la reutilización a gran escala dentro de la organización.
③ RUP carece del apoyo de los desarrolladores. ¿Puede automatizar todos los aspectos del proceso de software? Rational proporciona todas las herramientas para que usted elija, como si existe una mesa de ayuda racional o un modelo de persistencia racional 4. RUP tiene defectos en la gestión de medidas, gestión de reutilización, gestión de personal y pruebas.
(2) Agile procesar
Las ventajas del proceso ágil:
①Individuals y las interacciones son mejores que los procesos y las herramientas
de software ②Workable es mejor que los documentos completos
cooperación ③Customer es mejor que la negociación del contrato
④Responding a los cambios es mejor que planes siguientes
desventajas de proceso ágil:.
Enfoque ágil La comunicación del personal ignora la importancia de la documentación. Si el flujo de personal del proyecto es demasiado grande, traerá mucha dificultad al mantenimiento. Cuando hay más novatos en proyectos especiales, los empleados mayores están más cansados

8. Resumen

El software es una colección de programas, datos y documentos relacionados.
Una de las causas fundamentales de la crisis del software es la falta de métodos sistemáticos y guía de herramientas.
Ingeniería de software: métodos, herramientas y procesos.
Principios básicos de la ingeniería del
software Ciclo de vida del
software Modelo de proceso del software

Supongo que te gusta

Origin blog.csdn.net/weixin_44366125/article/details/105875914
Recomendado
Clasificación