2000s have seen the rapid advancement of the performance and
storage of computer servers and personal computers.
SE Disciplines
Requirements Engineering is the systematic collection of
customer needs or conditions for a new software application, or a new
release of a already existing application.
The requirements must be measurable and testable. Prototyping and
use case creation are examples of solutions to the difficult process
of gathering, analyzing and documenting of the customer requirements.
Software Design After the Requirements Engineering is
done, software architects begin the process of planning and
designing the software to meet software requirements.
In addition to meeting the requirements, there are many considerations
to weigh when designing a software product.
Security
A smart design will greatly aid in a development organization's
ability to support a software product.
Software Construction is the process of coding, compiling,
verifying, testing and debugging of software.
Software Testing is the process of measuring the
behavior of a software program. The quality of the testing
process usually measured for correctness, completeness and security.
Software testing has evolved from an activity performed after the
product is considered code complete. To function performed
all the way through and after the construction phase.
Software Configuration Management are the practices
and procedures for administering source code, producing software
builds, controlling change, configuration management and 3rd party
software control.
Specifically, SCM ensures the integrity, reliability and
reproducibility of developing software products from conception
to release. During projects and releases, SCM facilitates timely
communication, enforces policy and technical standards and
manages hand offs between environments and teams.
Software Maintenance and Support is the phase after
the product is deployed or sold to customers. It is the processes
and practices evolved with keeping the product running and in
good health.
Many software development organizations have attempted to
invest as little as possible in the maintenance and support.
It was believed that investing more in the development of the
software was a more cost beneficial to the organization.
However, it is now accepted that prolonging the life of a
release can be more beneficial use of resources. So, instead of
staffing the Support team with less experience software engineers,
they are now use more experienced software engineers to prolong the
life of a given product.
Traditionally, Software Maintenance and Support dealt with the
fixing of defects, performance improvements or the customer
specific customizations to adequately run the software.
Software Quality at it's essence is the processes
involved with achieving a predetermined level of customer
requirements and product performance.
The ability to achieve a specific level of Software Quality
requires.