Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Web Analytics
Cookie Policy Terms and Conditions Enxeñaría de software - Wikipedia

Enxeñaría de software

Na Galipedia, a wikipedia en galego.

Enxeñaría de software é unha área do coñecimento orientada á especificación, desenvolvimento e mantimento de sistemas de software aplicando tecnoloxías e prácticas de ciencia da computación, xestión de proxectos e outras disciplinas, considerando productividade e calidade.

Actualmente, estas tecnoloxías e prácticas engloban linguaxes de programación, bases de dados, ferramentas, plataformas, bibliotecas, patróns e procesos.

Os fundamentos científicos para a enxeñaría de software comprenden o uso de modelos abstractos e precisos que permiten ao enxeñeiro especificar, proxectar, implementar e manter sistemas de software, evaluando e garantizando as súas calidades. Ademais disto, a enxeñaría de software debe ofrecer mecanismos para se planexar e xestionar o proceso de desenvolvimento.

A Enxeñaría do Software está composta por tres elementos:

  • Os métodos: que indican como construir técnicamente o SW, abarcando tareas como a planificación, estimación de proxectos, análisis de requerimentos, deseño de estructuras, codificación, probas e mantemento.
  • As ferramentas: dan o suministro automático ós métodos. Actualmente existen ferramentas para soportar cada un dos métodos citados anteriormente.
  • Os procedementos: propoñen, entre outras cousas, o orden en que aplica-los métodos, as entregas requeridas (documentación, informes, etc.), os controles que axudan a asegurar a calidade e coordina-los cambios e as directrices que axudan ós xestores do SW a evalua-lo progreso.

Índice

[editar] Historia

A Enxeñaría de Software (ES) surxiu a meiados dos anos 1970 nunha tentativa de tratar coa a crise do software e dar un tratamento de enxeñaría (máis sistemático e controlado) ao desenvolvimento de sistemas de software complexos. Un sistema de software complexo se caracteriza por un conxunto de componentes abstractos de software (estruturas de dados e algoritmos) encapsulados na forma de procedimentos, funcións, módulos, obxectos ou axentes interconectados entre si, compondo a arquitetura do software, que deberán ser executados en sistemas computacionais.

[editar] Definición

Segundo Fritz Bauer, "Enxeñaría de software é a criación e a utilización de sólidos principios de enxeñaría a fin de obter software de maneira económica, que sexa confiable e que traballe eficientemente en máquinas reais". O proprio significado de enxeñaría xa trai os conceitos de criación, construción, análise, desenvolvimento e mantimento.

A enxeñaría de software concéntrase nos aspectos prácticos da produción dun sistema de software, mentres que a ciencia da computación estuda os fundamentos teóricos dos aspectos computacionais.

A enxeñaría de sistemas é unha área máis ampla por tratar de todos os aspectos de sistemas baseados en computadores, incluindo hardware e enxeñaría de procesos ademais do software.

Dito de outro modo, a Enxeñaría do Software trata sistemáticamente toda-las fases do ciclo de vida do software

[editar] Produccion de Software

A produccion de software é un conxunto coherente de prácticas que obxetiva o desenvolvimento ou evolución de sistemas de software. Estas prácticas engloban as actividades de especificación, proxecto, implementación e testes e caracterizanse pola interacción de ferramentas, persoas e métodos.

[editar] Modelos de Ciclos de Vida

  • Secuencial ou Cascada (do inglés waterfall) - con fases distintas de especificación, proxecto e desenvolvimento.
  • Evolutivo - especificación, proxecto e desenvolvimento son entrelazados.
  • En espiral - evolución a través de varios ciclos completos de especificación, proxecto e desenvolvimento.
  • Componentizado - reuso a través de montaxe de compoñentes xa existentes.
  • Formal - implementación a partir de modelo matemático formal.
  • RAD
  • Cuarta xeración

[editar] Metodoloxías

  • Rational Unified Proces (RUP)
  • Programación extrema (XP)
  • Microsoft Solution Framework (MSF)

[editar] Modelos de Madurez

Os modelos de madurez surxiron para evaluar a calidade dos procesos de software aplicados nunha organización (empresa ou institución). O máis coñecido é o Capability Maturity Model Integration (CMMI), do Software Engineering Institute (SEI).

[editar] Xestión de Proxectos

A xestión de proxectos preocupase en entregar o sistema de software no prazo e de acordo cos requisitos establecidos, levando en conta sempre as limitacións de orzamento e tempo.

A xestión de proxectos de software caracterizase por tratar sobre un produto intanxible, moi flexible e cun proceso de desenvolvimento con baixa padronización.

[editar] Planexamento

O planexamento dun proxecto de desenvolvimento de software inclúe:

  • organización do proxecto (incluindo equipos e responsabilidades)
  • estruturación das tarefas (do inglés work breakdown structure, WBS)
  • cronograma do proxecto (do inglés project schedule)
  • análise de riscos

Esas actividades sofren as dificuldades típicas de desenvolvimento de software. A produtividade non é linear en relación ao tamaño da equipe e o aumento de produtividade non é inmediato debido á custos de aprendizaxe de novos membros. A diminución de calidade para acelerar o desenvolvimento constantemente prexudica a produtividade futura.

A estimativa de dificuldades e custos de desenvolvimentos son moi difíceis, alén do surximento de problemas técnicos. Eses factores requeren unha análise de riscos cuidadosa.

[editar] Análise

As atividades de análise concentranse na identificación, especificación e descripción dos requisitos do sistema de software. En resumo, requisito é unha necesidade que o software debe cumprir.

Hai varias interpretacións e clasificacións sobre requisitos, entre elas:

  • funcional ou non funcional
  • de usuario ou de sistema

É común que o cliente non saber o que el realmente desexa, que haxa problemas na comunicación e aínda que haxa mudanza constante de requisitos. Todos eses fatores son recrudecidos pola intanxibilidade sobre característicos de sistemas de software, principalmente sobre o custo de cada requisito.

[editar] Modelado

A abstracción do sistema de software a través de modelos que o descreben é un poderoso instrumento para o entendimento e comunicación do produto final que será desenvolvido.

A maior dificuldade nesta atividade está no equilíbrio (tradeoff) entre simplicidade (favorecendo a comunicación) e a complexidade (favorecendo a precisión) do modelo.

É común a utilización de linguaxes para Modelado como UML.

[editar] Xestión

  • de Persoal
  • de Produto
  • de Proceso
  • de Proxecto

[editar] Tecnoloxías e Prácticas

A enxeñaría de software aborda unha serie de prácticas e tecnoloxías, principalmente estudadas pola ciencia da computación, enfocando o seu impacto na produtividade e calidade de software.

Destacanse o estudo de linguaxe de programación, bancos de datos e paradigmas de programación, como:

  • Programación estruturada
  • Programación funcional
  • Programación orientada a obxectos
  • Componentes de Software
  • Programación orientada a aspecto

[editar] Ferramentas

Outro ponto importante é o uso de ferramentas CASE (do inglés Computer-Aided Software Engineering). Esa clasificación abranxe toda ferramenta baseada en computadores que auxilian actividades de enxeñaría de software, desde de análise de requisitos e Modelado ata programación e testes.

Os ambientes de desenvolvimento integrado (IDEs) teñen maior destaque e suportan:

  • Editor
  • Compilador
  • Depurador (Debugger)
  • Xeración de código
  • Modelado
  • Desplegue (Deployment)
  • Testes automatizados
  • Refactoración
Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu