¿Qué incluye principalmente el informe de investigación?
(1) Introducción: Indique el propósito de redactar este documento; el nombre y los antecedentes del proyecto; los términos técnicos y las referencias utilizadas en este documento;
(2) Premisa del estudio de viabilidad: Premisa del estudio de viabilidad. Describir las funciones, desempeño y requisitos básicos del proyecto de desarrollo; los objetivos a alcanzar; los diversos métodos de estudio de viabilidad y los principales factores que determinan la viabilidad;
(3) Análisis del sistema existente: explique el flujo de procesamiento y el flujo de datos del sistema existente; diversos gastos; la cantidad de personal profesional y técnico requerido; Qué hay de malo en el sistema; ?
(4) Análisis de viabilidad técnica del sistema propuesto: breve descripción del sistema propuesto; flujo de procesamiento y flujo de datos; ventajas en comparación con los sistemas existentes, impacto en los usuarios del sistema propuesto; equipo, software existente, entorno de desarrollo y entorno operativo; evaluación del impacto en los gastos;
(5) Análisis de viabilidad económica del sistema propuesto: explicar los diversos gastos y beneficios del sistema propuesto, el índice de inversión de ingresos y el ciclo de recuperación de la inversión;
(6) Análisis de viabilidad de factores sociales: explique los factores legales, analice la responsabilidad contractual, la infracción de patentes, la infracción de derechos de autor y otras cuestiones, explique la viabilidad del uso del usuario y si es coherente con la administración del usuario y el sistema de trabajo; y requisitos de calidad del personal.
(7) Otras alternativas: Explique las otras alternativas una por una, y explique los motivos por los que no son recomendables.
(8) Conclusión: Explique si el proyecto se puede desarrollar; qué condiciones se necesitan para el desarrollo; qué cambios hay en los objetivos del proyecto, etc.
[Análisis] El propósito de realizar un estudio de viabilidad de software es determinar si el proyecto de software se puede desarrollar, si vale la pena desarrollarlo y si el problema se puede resolver en el menor tiempo y con el menor costo. . El informe se divide en ocho contenidos básicos.
2. ¿Cuál es el contenido del diseño del sistema?
Solución: En la fase de diseño del sistema, comenzar desde el nivel superior y luego perfeccionar. El diseño del sistema determina la estructura y el estilo generales, proporcionando la base para un diseño estratégico más detallado en las etapas posteriores de diseño.
(1) Descomposición del sistema. El componente principal del sistema se llama subsistema, que no es ni un objeto ni una función, sino una colección de clases, asociaciones, operaciones, tiempos y restricciones. El número de subsistemas que se pueden descomponer al mismo tiempo no puede ser demasiado, y el subsistema más bajo se llama módulo.
(2) Determinar la concurrencia. Muchos objetos en los modelos analíticos, el mundo real y el hardware son concurrentes. Un objetivo importante del diseño de sistemas es determinar qué objetos deben actuar simultáneamente y cuáles no. Estos últimos pueden juntarse e integrarse en una única línea o tarea de control.
(3) Procesador y asignación de tareas. Cada subsistema concurrente debe asignarse a una única unidad de hardware, que puede ser un procesador de propósito general o una unidad funcional específica, y debe completar las siguientes tareas: estimar los requisitos de rendimiento y de recursos, seleccionar el hardware y el software para implementar el subsistema, integrar Los subsistemas de software se asignan a cada procesador para cumplir con los requisitos de rendimiento y minimizar la comunicación entre procesadores, decidiendo cómo implementar cada unidad física de cada subsistema.
(4) Gestión del almacenamiento de datos. El almacenamiento y gestión de datos internos y externos del sistema es una tarea importante. Normalmente, cada almacén de datos puede combinar estructuras de datos, archivos y bases de datos, y diferentes almacenes de datos deben tener compensaciones entre costo, tiempo de acceso, capacidad y confiabilidad.
(5)Procesamiento de recursos globales. Se deben identificar los recursos globales y se deben desarrollar estrategias para adquirir recursos globales. Los recursos globales incluyen: recursos físicos, como procesadores y unidades; espacio, como espacio en disco y pantallas de estaciones de trabajo, como identificadores de objetos, nombres de clases, nombres de archivos, etc.
Si el recurso es un objeto físico, se puede acceder al sistema concurrente estableciendo un protocolo para lograr un control autónomo; si un recurso es una entidad lógica, como un identificador de objeto, entonces el acceso puede ocurrir en un Conflicto en el entorno compartido. Por ejemplo, las transacciones independientes pueden utilizar el mismo identificador de objeto al mismo tiempo, entonces cada recurso global debe tener un objeto de protección y el objeto de protección controla el acceso al recurso.
(6) Seleccionar el mecanismo de control del software. Todas las interacciones en el modelo analítico se representan como eventos entre objetos. Los diseñadores de sistemas deben elegir uno de varios métodos para implementar el control de software.
(7) Diseño de interfaz persona-ordenador. Gran parte del trabajo de diseño se ocupa del comportamiento en estado estacionario, pero se debe considerar el uso de la interfaz del sistema por parte del usuario.
[Análisis] El diseño de sistemas es una estrategia de alto nivel para resolver problemas y construir soluciones. Es necesario encontrar una solución fundamental a este problema. La estructura de alto nivel del sistema incluye la descomposición de subsistemas, su concurrencia inherente, asignación de hardware y software por subsistemas, gestión del almacenamiento de datos, coordinación de recursos, implementación de control de software e interfaz de interacción persona-computadora.
3. ¿Qué es una crisis de software? ¿Cuáles son las manifestaciones de la crisis del software? ¿Cuál es la razón de esto?
Solución: Al final de la segunda etapa de desarrollo de software, debido al avance de la tecnología de hardware, la velocidad de funcionamiento, la capacidad y la confiabilidad de las computadoras han mejorado significativamente y los costos de producción se han reducido significativamente. , allanando el camino para el uso generalizado de las computadoras. Se han propuesto algunos proyectos complejos de desarrollo de software a gran escala, pero el avance de la tecnología de desarrollo de software ya no puede satisfacer las necesidades de desarrollo. Los problemas encontrados en el desarrollo de software no se pueden resolver, lo que hace que los problemas se acumulen y formen conflictos agudos, lo que lleva a crisis de software.
La crisis del software se manifiesta en los siguientes cuatro aspectos:
(1) A menudo se superan los presupuestos y el tiempo de finalización se retrasa repetidamente. Debido a la falta de experiencia en desarrollo de software y la acumulación de datos de desarrollo de software, es difícil formular un plan de desarrollo. Los planes se elaboran subjetiva y ciegamente, y la brecha entre la implementación y las condiciones reales es grande, lo que resulta en avances en los fondos de desarrollo una y otra vez. Debido a que se subestimó la carga de trabajo y la dificultad del desarrollo, el progreso no se pudo completar a tiempo y el tiempo de desarrollo se retrasó repetidamente.
(2) El software desarrollado no puede cumplir con los requisitos del usuario. En las primeras etapas de desarrollo, no existe una comprensión clara de las necesidades del usuario y la capacidad de expresarlas claramente. Después de que comenzó el trabajo de desarrollo, el personal del software y los usuarios no intercambiaron opiniones de manera oportuna, lo que provocó que algunos problemas no se resolvieran a tiempo, lo que provocó que el software desarrollado no cumpliera con los requisitos del usuario, lo que provocó una falla en el desarrollo.
(3) El software desarrollado tiene poca mantenibilidad. No existen normas acordadas para el proceso de desarrollo. Los desarrolladores de software trabajan según su propio estilo y no existe una documentación completa y estandarizada durante el proceso de desarrollo. Si se encuentran problemas, se modificarán aleatoriamente. La estructura del programa no es buena y los errores encontrados durante la operación son difíciles de modificar, lo que resulta en una mala capacidad de mantenimiento.
(4) La confiabilidad del software desarrollado es pobre. Dado que no existen sistemas ni medidas para garantizar la calidad del software durante el proceso de desarrollo, y no existen pruebas estrictas, suficientes y completas durante las pruebas de software, la calidad del software enviado a los usuarios es deficiente y quedan expuestos una gran cantidad de problemas. durante la operación.
Las razones de la crisis del software son:
(1) La escala del software es cada vez mayor y la estructura se vuelve cada vez más compleja.
(2) La gestión del desarrollo de software es difícil y compleja.
(3) El coste del desarrollo de software está aumentando.
(4) La tecnología de desarrollo de software está atrasada.
(5) Métodos de producción atrasados.
(6) Las herramientas de desarrollo están atrasadas y la mejora de la productividad es lenta.
Debido al surgimiento de la crisis del software, la gente comenzó a utilizar ideas de ingeniería para desarrollar software. Desde entonces, la producción de software ha entrado en la era de la ingeniería de software.
4. ¿Qué aspectos se deben abordar en el aseguramiento de la calidad del software?
Solución: El aseguramiento de la calidad del software es una parte importante de la gestión de la ingeniería del software. En el aseguramiento de la calidad del software se deben realizar los siguientes aspectos:
(1) Utilizar medios y herramientas técnicas. Para realizar el proceso de desarrollo, las actividades de aseguramiento de la calidad deben emplear medios y herramientas técnicas, especialmente el entorno de desarrollo de software.
(2) Organizar una revisión técnica formal. Al final de cada fase del desarrollo de software, se debe organizar una revisión técnica formal. Los estándares nacionales requieren que cada unidad adopte medios específicos como revisión, revisión de documentos, revisión de diseño, auditoría y pruebas para garantizar la calidad.
(3) Fortalecer las pruebas de software. Las pruebas de software son un medio importante para garantizar la calidad porque las pruebas pueden encontrar la mayoría de los errores potenciales en el software.
(4) Implementar especificaciones de ingeniería de software (estándares).
Los usuarios pueden formular sus propias especificaciones (estándares) de ingeniería de software, pero una vez que se determinan los estándares, deben implementarse.
(5) Cambios de software de control. Las modificaciones y cambios de software a menudo conducen a errores potenciales, por lo que las modificaciones y cambios de software deben controlarse estrictamente.
(6) Medir la calidad del software. Es decir, realizar un seguimiento de la calidad del software, registrar y generar informes sobre la calidad del software de manera oportuna.
El aseguramiento de la calidad del software es proporcionar a los usuarios y a la sociedad productos satisfactorios de alta calidad. Es una actividad para garantizar la calidad de los productos de software en todas las etapas desde el nacimiento hasta la muerte. gestión.