Entradas recientes
LIMITACIONES
Si comparamos una solución por software program a una solución dada por la mente humana, la limitación más evidente es que un software program no tiene inteligencia de por sí, 也就是说, sólo tiene funciones predefinidas que abarcan un conjunto de soluciones que para ciertas aplicaciones puede llegar a ser limitado.
Pese a que un software program no tiene inteligencia, ésta se puede emular. Es lo que se conoce como inteligencia artificial. Pero emular inteligencia es costoso en términos computacionales, ya que se necesita de una gran cantidad de memoria de trabajo. Por ello, muchos dicen que el cerebro humano tiene memoria infinita”.
Actualmente la inteligencia artificial puede emular redes neuronales y muchas cosas, pero aún así no puede emular el pensamento” humano, ya que el software program actúa bajo condiciones que, son completamente verdaderas, completamente falsas.
Otra limitación common de un software es que, por el hecho de que un software que retroalimente soluciones alternativas y de bajo tiempo de ejecución a un problema necesariamente requiere mayor esfuerzo y ello no es rentable, hay soluciones a ciertos problemas que emplean tiempos elevados de ejecución, y ello se intenta compensar siempre ejecutando el software en máquinas de mayor capacidad. Ello se puede notar en problemas que requieren de características del pensamiento humano, en los cuales un procedimiento mecánico” para hallar una solución es poco eficiente.
ESPECIFICACION DE REQUISITOS DEL SOFTWARE
Una especificación de requisitos del software es una descripción completa del comportamiento del sistema a desarrollar. Incluye un conjunto de casos de uso que describen todas las interacciones que se prevén que los usuarios tendrán con el software. También contiene requisitos no funcionales ( suplementarios). Los requisitos no funcionales son los requisitos que imponen restricciones al diseño funcionamiento del sistema (tal como requisitos de funcionamiento, estándares de calidad, requisitos del diseño).
Las estrategias recomendadas para la especificación de los requisitos de software program están descritas por el estándar IEEE 830 -1998. Este estándar describe las estructuras posibles, contenido deseable y calidades de una especificación de requisitos del software.
Los requisitos se dividen en tres:
Funcionles:
Son declaraciones de los servicios que proveerá el sistema, de la manera en que éste reaccionará a entradas particulares. En algunos casos, los requerimientos funcionales de los sistemas también declaran explícitamente lo que el sistema no debe hacer.
Los requerimientos funcionales de un sistema describen la funcionalidad los servicios que se espera que éste provea. Estos dependen del tipo de software y del sistema que se desarrolle y de los posibles usuarios del software program. Cuando se expresan como requerimientos del usuario, habitualmente se describen de forma common mientras que los requerimientos funcionales del sistema describen con detalle la función de éste, sus entradas y salidas, excepciones, 等等.
Muchos de los problemas de la ingeniería de software provienen de la imprecisión en la especificación de requerimientos. Para un desarrollador de sistemas es natural dar interpretaciones de un requerimiento ambiguo con el fin de simplificar su implementación. 然而, a menudo no es lo que el cliente desea. Se tienen que estipular nuevos requerimientos y se deben hacer cambios al sistema, retrasando la entrega de éste e incrementando el costo.
En principio, la especificación de requerimientos funcionales de un sistema debe estar completa y ser consistente. 完整性意味着用户请求的所有服务都有定义. 一致性意味着需求没有互相矛盾的定义. 在实践中, 对于大型且复杂的系统, 不可能同时满足一致性和完整性的需求. 其原因部分在于系统固有的复杂性,部分在于不同的观点有不一致的需求. 当需求首次被指定时,这些不一致是显而易见的. 深入分析后问题会出现. 一旦这些问题在生命周期后期的不同评审中被发现, 就必须在需求文档中进行修正.
例如。. 系统在生成货物交付时必须开具可验证凭证.
非功能性:
是系统所提供的服务功能的约束. 包括时间限制, 关于开发过程, 标准, 等等.
是那些不直接涉及系统提供的具体功能的需求, 而是涉及系统的特性,如可靠性, 响应时间和存储能力. 另外, 定义系统的约束,例如输入/输出设备的能力以及系统界面中使用的数据表示方法.
许多非功能性需求是针对整个系统的,而不是系统的特定特征. Esto significa que a menudo con más críticos que los requerimientos funcionales particulares. Mientras que el incumplimiento de este último degradará el sistema, una falla en un requerimiento no funcional del sistema lo inutiliza.
Los requerimientos no funcionales surgen de la necesidad del usuario, debido a las restricciones en el presupuesto, a las políticas de la organización, a la necesidad de interoperabilidad con otros sistemas de software program hardware a factores externos como los reglamentos de seguridad, las políticas de privacidad, etcétera.
例如。: el soporte de almacenamiento a usar debe ser MySQL.
Empresariales u Organizacionales: son el marco contextual en el cual se implantaría el sistema para conseguir un objetivo marco. Ej: abaratar costos de expedición.
Estos diferentes tipos de requerimientos se clasifican de acuerdo con sus implicaciones.
• Requerimientos del producto: Especifican el comportamiento del producto; como los requerimientos de desempeño en la rapidez de ejecución del sistema y cuánta memoria se requiere; los de fiabilidad que fijan la tasa de fallas para que el sistema sea aceptable; los de portabilidad y los de usabilidad.
• Requerimientos organizacionales: Se derivan de las políticas y procedimientos existentes en la organización del cliente y en la del desarrollador: estándares en los procesos que deben utilizarse; requerimientos de implementación como los lenguajes de programación el método de diseño a utilizar, y los requerimientos de entrega que especifican cuándo se entregará el producto y su documentación.
• Requerimientos externos: Se derivan de los factores externos al sistema y de su proceso de desarrollo. Incluyen los requerimientos de interoperabilidad que definen la manera en que el sistema interactúa con los otros sistemas de la organización; los requerimientos legales que deben seguirse para asegurar que el sistema opere dentro de la ley, y los requerimientos éticos. Estos últimos son impuestos al sistema para asegurar que será aceptado por el usuario y por el público en basic.
Un problema común con los requerimientos no funcionales es que algunas veces son difíciles de verificar. Se redactan para reflejar las metas generales del usuario, como la facilidad de uso, la capacidad del sistema para recuperarse de las fallas 人工智能 la respuesta rápida al usuario. Estos requerimientos causan problemas a los desarrolladores del sistema puesto que dejan abierta la posibilidad a la interpretación, lo que provoca discusiones subsecuentes una vez que el sistema se entregue.
De forma excellent, los requerimientos no funcionales no se deben expresar de manera cuantitativa utilizando métricas que se puedan probar de forma objetiva.
在实践中, la especificación cuantitativa de requerimientos es difícil. A los clientes no les es posible traducir sus metas en requerimientos cuantitativos; para algunas de éstas, como las de mantenimiento, no existen métricas que se puedan utilizar; 客观验证定量非功能性需求的成本非常高.
En principio, 功能性需求和非功能性需求在需求文档中是区分开的. 在实践中, 这很困难. 如果非功能性需求单独于功能性需求声明, 有时很难看到它们之间的关系. 如果它们与功能性需求一起声明, 很难区分功能性和非功能性条件,并识别那些针对整个系统的需求. 必须根据要指定的系统类型找到适当的平衡. 然而, 那些明确涉及系统显性属性的需求应当突出显示. Esto se hace colocándolos en una sección aparte diferenciándolos, de alguna forma, de los otros requerimientos del sistema.
CARACTERISTICAS DEL SOFTWARE PROGRAM
1. El software program se desarrolla construye; no se manufactura en el sentido clásico.
A pesar de que existen similitudes entre el desarrollo del software y la manufactura del hardware, las dos actividades serian diferentes en lo fundamental. En ambas la alta calidad se alcanza por medio del buen diseño, la fase de manufactura del hardware puede incluir problemas de calidad existentes en el software program.
2. El software program no se desgasta.
El software program es inmune a los males ambientales que desgasten el hardware. 因此,软件程序的故障率曲线应该呈现理想化的曲线形状. 未发现的缺陷会导致程序生命早期故障率高. 然而, 错误被纠正后,曲线会趋于平缓: 软件不会磨损, 但会退化.
三. 尽管业界有向组件化构建的趋势, 大多数软件程序仍然是定制构建的.
软件组件应设计和实现为可以在许多不同程序中使用.
现代可重用组件封装了数据以及应用于这些数据的过程, 这使得软件工程师能够从可重用的部分创建新的应用程序.
分享这个:
%d个博主喜欢这个: