Enxeñaría de software: Diferenzas entre revisións

Contido eliminado Contido engadido
Elisardojm (conversa | contribucións)
a orde
m +control autoridades using AWB
Liña 47:
 
== Xestión de proxectos ==
A [[xestión de proxectos]] ocúpase de entregar o produto de [[software]] no prazo e conforme os requisitos establecidos, tendo en conta sempre as limitacións de orzamento e tempo. O obxectivo é "facer o produto apropiado, de xeito correcto, e xestionado de forma axeitada"<ref>{{Cita web|url=https://www.coursera.org/learn/software-processes-and-agile-practices/lecture/E6jXr/introduction-to-software-processes-and-agile-practices|páxina-web=Coursera|título=Introduction to Software Processes and Agile Practices - Module 1: Introduction to Processes {{!}} Coursera|data-acceso=2018-02-28|lingua=en-US}}</ref>, é dicir, que importa tanto o resultado, como a forma de execución, coma a calidade da metodoloxía da xestión do proxecto.
 
A xestión de proxectos de software caracterízase, a diferenza da xestión de proxectos noutras industrias, por tratar sobre un produto intanxible, moi flexible e cun proceso de desenvolvemento con baixa estandarización.
 
Dependendo da metodoloxía que se siga, as '''fases''' destes proxectos chamaranse de xeitos diferentes, pero habitualmente<ref name="coursera.org">{{Cita web|url=https://www.coursera.org/learn/software-processes-and-agile-practices/lecture/CbKBT/2-1-1-processes-and-practices|páxina-web=Coursera|título=2.1.1: Processes and Practices - Module 1: Introduction to Processes {{!}} Coursera|data-acceso=2018-02-28|lingua=en-US}}</ref><ref>{{Cita web|url=https://www.coursera.org/learn/software-processes-and-agile-practices/lecture/L5eNf/2-1-2b-software-engineering-activities|páxina-web=Coursera|título=2.1.2B: Software Engineering Activities - Module 1: Introduction to Processes {{!}} Coursera|data-acceso=2018-03-01|lingua=en-US}}</ref> trátase de:
* '''planificación'''
* '''especificación'''
* '''deseño e implementación'''
* '''verificación e validación''', fase en que se testa que o produto traballa correctamente e que o que fai se corresponde co que o cliente necesita que faga, respectivamente, mediante testaxes, [[Prototipo|prototiposprototipo]]s etc.
Dentro da planificación inclúese a '''organización do proxecto''', é dicir, a composición e estruturación do equipo, incluíndo a definición de responsabilidades, a '''estruturación de tarefas''', a elaboración dun '''cronograma''', a '''[[Orzamento|orzamentación]]''' e a '''[[análise de riscos]]'''. Como calquera outro tipo de proxecto, nos proxectos de software a [[produtividade]] non é lineal en relación ao tamaño do equipo, e o aumento de produtividade non é inmediato logo do aumento do equipo, por mor dos custos de aprendizaxe. A especialización dos proxectos ([[Linguaxe de programación|linguaxes]], metodoloxías) fai que estes custos de aprendizaxe sexan maiores en software ca noutros campos.
 
Unha vez resolta a planificación, a xestión dun proxecto de software ocúpase da vixilancia da execución do proceso do desenvolvemento do software. Ese proceso pode referirse ao ciclo de vida do produto, desde que se publica ata que se retira do mercado, ou a subprocesos.
 
A '''especificación''' é a fase en que se concibe o produto e cando se enuncian os requisitos que debe ter o software. Os requisitos poden ser funcionais (ou non funcionais), de usuario (solicitados polo cliente) ou de sistema (necesarios pola estrutura da programación), etc. É común que o cliente non saiba o que realmente necesita, que as súas necesidades muden ao longo do proceso de desenvolvemento e que haxa problemas na comunicación. Todos eses factores vense agravados pola intanxibilidade do software, e pola imprevisibilidade dos custos de cada requisito.
Liña 64:
A fase de '''deseño e implementación''' é cando se deseña e se desenvolve o software.Inclúe acttividades como o deseño da [[Arquitectura da información|arquitectura]], o deseño das [[Base de datos|bases de datos]] e das [[Interface gráfica de usuario|interfaces]] gráficas, loxicamente a escriutura do [[Código fonte|código]] (a programación), pero tamén a integración das funcionalidades, e mais a [[documentación]].
 
As fases divídense á súa vez en '''actividades''', que son agrupacións de tarefas relacionadas entre si. As '''tarefas''' son os pasos pequenos e manexables do proxecto, onde se fai o traballo. Algunhas destas tarefas teñen interdependencias, é dicir, que a execución dunha tarefa depende da execución doutra<ref>{{Cita web|urlname=https://www."coursera.org"/learn/software-processes-and-agile-practices/lecture/CbKBT/2-1-1-processes-and-practices|páxina-web=Coursera|título=2.1.1: Processes and Practices - Module 1: Introduction to Processes {{!}} Coursera|data-acceso=2018-02-28|lingua=en-US}}</ref>.
 
As tarefas tamén se relacionan cos '''roles''', é dicir, a específica responsabilidade dunha persoa das que forman o equipo<ref>{{Cita web|url=https://www.coursera.org/learn/software-processes-and-agile-practices/lecture/muyVm/2-1-1a-processes-and-practices|páxina-web=Coursera|título=2.1.1A: Processes and Practices - Module 1: Introduction to Processes {{!}} Coursera|data-acceso=2018-02-28|lingua=en-US}}</ref>. O resultado dunha tarefa é un "'''produto de traballo'''", que á súa vez pode ser o input doutra tarefa. Unha tarefa consome un '''recurso''', que pode ser tempo, tecnoloxía, coñecemento, cartos ou persoas.
 
A diminución de calidade para acelerar o desenvolvemento prexudica sempre a produtividade futura.
Liña 110:
 
{{Proceso de desenvolvemento SW}}
 
{{Control de autoridades}}
 
[[Categoría:Enxeñaría de software| ]]