Documente Academic
Documente Profesional
Documente Cultură
Paul Russell
02/02/2015
Summary/Abstract
This report investigates the many different methods and techniques that are
used in software development and in system design to minimize errors in
such systems/software. There are many key elements that come into play
when developing software while at the same time eliminating the chance of
bugs or errors occurring. This report covers Continuous Integration (a widely
used software development approach), Agile Software Development with
Scrum (a framework used in software development), Risk Assessment and
Risk Management.
Continuous Integration
Paul Duvalls book Continuous Integration: Improving Software Quality with
Continuous Integration describes this method of development very precisely
and shows steps for its use in a wide variety of applications. The primary aim
of CI is to reduce risk and improve software quality of the project/system
being developed. CI is basically building the code every a time a change is
made to it, these changes are noted and if an error occurs the new code is
changed back to the most recent fully operational code that contained no
errors. CI is important because integrating software often decreases the lifespan of a defect Duvall (2007).
There are few requirements if CI is to be put into practice, the first one being
a reliable build process, such as Maven. Maven is a build automation tool
used primarily for Java projects, it holds information on how software is built
and also describes its dependencies, such as the build order and external
plug-ins. In conjunction with a build processor a Software configuration
management (SCM) system is also used. This module handles the tracks all
changes made to the software, it also has the ability to identify what went
wrong in a system and what was changed to cause the error. It does not
handle the management of source code, this is handled by a Revision Control
System (RCS). The final element of CI is the Continuous Integration Server
(CIS) such as CruiseControl. This is an automated build server where a team
of developers commit their code frequently, each integration of code is
verified by the CIS.
Duvall outlines that the use of broad software builds is essential, this is
because it will increase visibility. The code must be test before it is
committed to a build, test failure is build failure. Duvall (2007). Software
inspection is the last element of CI, it is divided up into five primary groups;
Complexity, duplication, dependencies, coding standards and code coverage.
Complexity in code means that there are more paths, therefore more cost
and it also lead to decrease in the comprehensibility of the code, making it
less flexible. Code duplication can replicate defects, shows poor design and
is not good practice. Dependencies [FINISH].
Coding standards enforce consistency, increase comprehensibility and
decrease defects due to common effect patterns Duvall (2007), and finally
code coverage, this helps identify what code has been tested and promotes
collaboration between development and quality assurance.
Bibliography