Tipos de Software

February 2, 2023 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Tipos de Software...

Description

 

Tipos de Software y sus Cualidades Unidad de Competencia I Curso Ingeniería de Software

1

 

Tipos de software y su desarrollo Para realizar una tarea en una computadora, es necesario darle instrucciones a través del software. Software es el nombre asignado a las aplicaciones o programas que se ejecutan en la l a computadora. El conteni contenido do y el determinism determinismo o de la información son factores importantes a considerar para determinar la naturaleza naturale za de una aplicación de software. software. El contenid contenido o se refiere significado y a la forma de la información de entradaal y salida. Algunas veces es difícil establecer categorías genéricas para las aplicaciones del software que sean significativas. INSTITUTO TECNOLÓGICO DE SONORA INGENIERÍA DE SOFTWARE

2

2

 

Tipos de software y su desarrollo  –

 –

 –

 –

 –

 –

 –

 –

Software de Sistemas Software de Tiempo Real Software de Gestión Software de Ingeniería y científico Software empotrado Software de computadoras personales Software basado en Web Software de Inteligencia Artificial Programación en Computadoras Unidad I INTRODUCCIÓN

3

3

 

Software de Sistemas •



• •

• •

Programas que han sido escritos para servir a otros programas. Se caracterizan por una fuerte interacción con el hardware de la computadora  Compartir recursos Sofisticada gestión de procesos Estructuras de datos complejas Múltiples interfaces externas Ejemplo: compiladores, editores y utilidades de gestión de archivos, ciertos componentes del sistema operativo, utilidades de manejo de periféricos, procesadores de telecomunicaciones, etc. 4

4

 

Software de Tiempo Real •



Coordina/analiza/controla sucesos del mundo real conforme ocurren. Integra diferentes componentes:  –

 –

 –

 –

 –

 –

Recolección de datos Dar formato a la información recibida del exterior De análisis para transf transformar ormar la información De Control/salida que responda al exterior De Monitorización Monitorización que coordine a todos los componentes En un tiempo de entre 1 milisegundo a 1 segundo. 5

5

 

Software de Gestión El proceso de la información comercial constituye la mayor de las áreas de aplicación del software.



Han evolucionado hacia el software de sistemas de información de gestión (SIG) que accede a una o más bases de datos que contienen información comercial •

Por ejemplo: cuentas de haberes-débitos, inventarios, etc.nóminas,  

Se realizan tareas convencionales de procesamientos de datos 6

6

 

Software de Ingeniería y científico •

(conjunto finito de instrucciones o Está caracterizado por los algoritmos pasos que sirven para ejecutar una tarea o resolver un problema ) de manejo de números

Ejemplo: Astronomía,dinámica vulcanología, análisis presión de los automotores, orbital de de lasla lanzaderas espaciales, biología molecular, fabricación automática.

Pero las nuevas aplicaciones del área de ingeniería se han alejado de los algoritmos convencionales numéricos. El diseño asistido por computadora (del inglés CAD), la simulación de sistemas y otras aplicaciones interactivas, han comenzado a coger características del software de tiempo real e incluso del software de sistemas. 7

7

 

Software empotrado Reside en memoria de sólo lectura Se utiliza para controlar productos y sistemas





de los mercados industriales y de consumo Ejecuta funciones muy limitadas limitadas •

Ejemplo: El control de las teclas de un horno de microondas, control de la gasolina de un automóvil, sistemas de frenado, etc. 

8

8

 

Software de computadoras personales El mercado del software de computadoras personales ha germinado en las pasadas dos décadas. Aplicaciones que pertenecen a esta categoría: El procesamiento de textos Hojas de cálculo Los gráficos por computadora









Multimedia Entretenimientos Gestión de bases de datos Aplicaciones financieras, de negocios y personales







Redes o acceso a bases de datos externas



9

9

 

Software basado en W Web eb •

Las páginas Web buscadas por un explorador son software que incorpora instrucciones ejecutables (por ejemplo, HTML, Perl, o Java), Java), y datos (por ejemplo, hipertexto y una variedad de formatos hipertexto formatos de audio y visuales).



En esencia, la red viene a ser una gran comput computadora adora que proporciona un recurso software casi ilimitado que puede ser accedido por cualquier persona con un MODEM. 10

10

 

Software de Inteligencia Artificial Este tipo de Softwar Este Softwaree hace uso de algoritmos no numéricos para resolver problemas complejos para los que no son adecuados el cálculo o el análisis direct directo. o. •

Ejemplos: Los sistemas expertos, expertos, reconocimient reconocimiento o de  patrones (imágenes y voz), redes neuronales  prueba de teoremas y juegos. 11

11

 

Características que diferencian a un software de otro. •









Complejidad Significado Signifi cado y forma de la información de entrada y salida. entrada Compartir recursos La interacción con el Hardware (HW) El objetivo para lo que fueron diseñados

12

12

 

Cualidades del Software

¿Qué es un buen software?

13

 

Clasificación de las cualidades •

Externas: son visibles a los usuarios.



Internas: son visibles a los





desarrolladores. Del producto: son observables en los distintos productos y subproductos del ciclo de vida. Del proceso: describen a la forma forma en que el producto es producido. 14

 

Cualidades del Software 















Correcto (Correctness) Confiable (Reliability) Robusto (Robustness) Eficiente (Eficciency) “Amigable Amigable”” (Friendliness ) Verificable (Verifiability)







 





Reusable (Reusability) “Portable” (Portability)



Interoperable (Interoperability) Interoperable (Interoperability) Productivo (Productivity) A tiempo (Timeliness) Visible (Visibility) Cohesivo Desacoplado Comprensible (Understandability) “Mantenible” (Maintainability)

15

 

Correcto 

Un software es correcto si se comporta de acuerdo a su especificación La definición supone: 





Especificación de Requerimientos

La existencia es una especificación de requisitos. La posibilidad de determinar sin ambigüedad la correspondencia entre la especificación y el diseño.

Lo correcto del software puede probarsee ejecutándolo o mediante probars análisis.

Diseño

16

 

Confiable 







El software se comporta de acuerdo con lo esperado por el usuario. A diferencia de la corrección, la confiabilidad es algo relativo. El mercado admitir algunos errores en elpuede software siempre que en general se comporte en forma esperada. La confiabilidad es relativa: puede aún ser confiable si laun SW consecuencia de un error no es seria; o si la cantidad de error errores es por unidad de tiempo no es alta.

Correcto

Confiable 17

 

Robusto Un software es robusto robusto si se comporta en forma razonable razonable aún en situaciones no anticipadas. 





Datos entrada incorrectos o fallas de hardware son lasde situaciones mas frecuentes. La cantidad de código que se dedica a hacer el software robusto depende de la experiencia de los usuarios o lo crítico de su misión. Si algo se especifica como requerimiento, requerimiento, cumplirlo es cuestión de corrección; si no está en los requerimientos es cuestión de robustez. robustez. 18

 

Eficiencia-Performance Un sistema de software es eficiente si usa sus recursos en forma económica. 





Muy lento baja la productividad de los usuarios. Usa mucho disco puede ser muy caro ejecutarlo. Usa mucha memoria puede afectar la performance de otros sistemas





Los criterios de eficiencia varían con la tecnología y el tiempo. Métodos de evaluación de performance: 





Monitoreo Análisis Simulación

• Usualmente es muy difícil mejorar considerablemente el

performance sin rediseñar. No es bueno evaluar el performance sólo después que el producto esté listo, listo, sino durante todo el proceso.



19

 

Amigable Un software es amigable si sus usuarios lo l o encuentran fácil de utilizar. 



La interfaz con los usuarios es ser parte esencial de amigable Depende de los usuarios: Novicios: lo mejor son  –

 –

largos mensajes explicativos Expertos aprecian los atajos.



Otros factores importantes para lograr esta cualidad son la facilidad en la configuración configur ación y el proceso para realizar una tarea.

20  

Verificable El software es verificable si sus propiedades pueden ser comprobadas. •La corrección y el

•También se verifica:

performance pueden verificarse

•Monitoreos de código

fácilmente •La verificación puede hacerse

•Disciplina en la

mediante el análisis o testing.

programación adecuado.

•Diseño modular

codificación •Lenguaje de

21  

“Reusable”/Re-utilizable “Reusable”/Re-utilizable construido se usa con pocos o Software ya construido ningún cambio. reutilización es mas apropiada para para componentes componentes que •La reutilización para sistemas completos •Las bibliotecas (librerías) científicas FORTRAN son los ejemplos más conocidos y Java Java API’s API’s son ejemplos más

nuevos. • Debe apuntarse a ella desde el diseño. •La reutilización es una cualidad difícil (imposible) de conseguir a posteriori. •La orientación a objetos tiene potencial para mejorar la

reutilización y la evolución.

22  

Portable Un SW es portable si puede ejecutarse en distintos ambientes (hardware, sistemas operativos, etc.) • Una forma de lograr portabilidad es suponer la

mínima configuración.

• Esto penaliza los sistemas que podrían ejecutars ejecutarsee

mejor haciendo uso del ambiente disponible. • Otra opción es determinar sobre la marcha las disponibilidades del ambiente.

23  

Interoperable Un sistema es interoperable si puede coexistir y cooperar con otros sistemas. •Las componentes reutiliz reutilizables ables son inter interoperables. operables. •La estandarización de las interfaces promueve la

interoperabilidad. • Los sistemas abiertos son casos típicos de sistemas sistemas interoperables.

24  

Productivo La productividad es la eficiencia del proceso de desarrollo del software. La productividad de un equipo de desarrollo es generalmente gener almente menor que la suma de las productividades individuales. •

Existen métricas para medir la productividad (LOCK, puntos puntos de función, etc.) •

La automatización y el soporte del software de desarrollo aumenta la productividad. •

25  

Visible Un proceso de desarrollo de software es visible si todos sus pasos están claramente documentados, y se puede saber su estado de avance en cada momento. •Diseño, testing, codificación e integración

pueden suceder simultáneamente, pero deben coordinarse. •La visibilidad ayuda a evaluar el impacto

de las decisiones. •También

es

esencial

rotación en el personal.

cuando

existe

26  

Cohesión Medida de la relación entra las partes de un componente.

Diferentes tipos: •Coincidental: No

relacionados.

•Comunicacional: Comparten el

Input (emtrada).

Secuencial: Output de uno es input de otro. •

•Lógica: Funciones similares.

•Temporal: Ejecución

simultanea. •Procedural: Secuencia de

control.

Funcional: Todas las partes son necesaria para la función. •

Objeto: Todas las acciones



actúan sobre los mismos datos del objeto.

27  

Acoplamiento Medida de la interdependencia de distintas componentes.

Módulo

Módulo

A

B

Módulo

Módulo

C

D

Área de datos compartidos

•Sistemas muy acoplados

*Comparten variables o información de control.

Módulo A Datos A

•Sistemas desacoplados

*Interfaces definidas con listas de parámetros.

Móulo B

Módulo C

Datos B

Datos C

Módulo D Datos D

28  

Comprensible Un sistema es comprensible si es fácil de comprender compren der cómo funciona. •Caracterís Características ticas que afectan la comprensibilidad del sistema

*Cohesión y acoplamiento *Nombres *Documentación *Complejidad •Si un sistema es comprensible, es también más Mantenible y

verificable. •Desde un punto de vista del usuario, ser comprensible es ser amigable y

robusto.

29  

Mantenible Un sistema es Mantenible si es fácil modificarlo. •Tipos de mantenimient mantenimiento: o:

•Condiciones

*Correctivo (aprox. 20%) *Adaptativo (aprox. 20%)

*Número de componentes, *Acoplamiento

*Perfectivo (aprox. 50%)

*Documentación: Completa, Comprensible o al día.

•Software Mantenible:

*Reparable : que permite corregir defectos, *Evolucionable: facilita la introducción de nuevas

*Uso de componentes estándar •La evolucionabilidad decrece

con cada versión del software.

funcionalidades

30

 

Evolucionabilidad •

Un SW es evolucionable si permite cambios que lo hacen capaz de satisfacer nuevos



requerimientos. Se logra mediante modularización; los sucesivos cambios tienden a reducir la



modularización. El diseño original y cada cambio deben hacerse con esta cualidad en mente.

31  

A tiempo El proceso de desarrollo debe obtener su producto en el tiempo planeado. •Tener el producto a tiempo da una mejor o oportunidad portunidad comercial, y a

veces hace que el producto sea útil o inútil. •Tener un producto a tiempo sin confiabilidad o eficiencia tampoco

es útil. •Requiere:

•Planificación •Estimación del trabajo •Hitos verificables (metas parciales)

32  

Bibliografía •Pressman, Roger. Roger. (2002). Ingeniería del Software. Un enfoque práctico. 5ta. Ed. Mc Graw Gra w Hill: España.

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF