Software Engineering Tools

Software development has seen an increase in globally dispersed teams. Global software engineering is distributed engineering at its maximum dispersion.

CDE - collaborative development environment

Distance Creates Problems

  • geographical distance, temporal distance, socio-cultural distance.
  • Loss of synchronous communication and team interaction
  • Control and coordination breakdown
  • Loss of communication - Richest interaction is face-to-face
  • Loss of team spirit and trust
  • Cultural differences

Tooling Categories

Tool categoryAbbreviationTool examplesUsage
Software requirement toolsSRTrequirements modelling tools for eliciting (pulling out), analyzing, specifying and validating requirements
Software design toolsSDTCreating and checking software designs
Software construction toolsSCTProgram editors, compilers, code generators, interpretters and debuggers
Software testing toolsSTTTest generators, text execution frameworks, test evaluation tools, test management tools, performance analysis tools
Software maintenance toolsSMTvisualisation tools, reengineering tools
Software configuration management toolsSCMTdefect, enhancement, issue and problem tracking, version management, release and build toolsSharing of software artefacts in a controlled manner and keep track of issues, features and requests in the form of tickets
Software engineering management toolsSEMTproject planning and tracking, risk management and measurement
Software engineering process toolsSEPTprocess modelling, process management, integrated CASE environments, process-centered SE environements
Software quality toolsSQTreview and audit, static analysis, inspection tools
Miscellaneous tool issuesMTImeta tools, integration tools (tools that integrate several tools)
Knowledge management toolsKMTknowledge lifecycle processes, wiki’s, document management, blog
Virtual meeting toolsVTMvideo conference/ virtual rooms
Socio-cultural toolsSCTsocial networks
Build toolsn/aremote repositories and workflowsworkflows entail continuous integrations, compiling binaries, invoking test frameworks, deploying to production systems, sending email notifications

References

  • Tools used in Global Software Engineering - A systematic mapping review
  • Collaboration Tools for Global Software Engineering