Welcome to colleges9.in
Software - Engineering

Software engineering (SE) is a profession dedicated to designing, implementing, and modifying software so that it is of higher quality, more affordable, maintainable, and faster to build. It is a "systematic approach to the analysis, design, assessment, implementation, test, maintenance and reengineering of software, that is, the application of engineering to software.”

Software development, a much used and more generic term, does not necessarily subsume the engineering paradigm. Although it is questionable what impact it has had on actual software development over the last more than 40 years, the field's future looks bright according to Money Magazine and Salary.com.

Sub-disciplines:

Software engineering can be divided into ten sub disciplines. They are:

Software requirements:

The elicitation, analysis, specification, and validation of requirements for software.

Software architecture:

The elicitation, analysis, specification, definition and design, and validation and control of software architecture requirements.

Software design:

The design of software is usually done with Computer-Aided Software Engineering (CASE) tools and use standards for the format, such as the Unified Modeling Language (UML).

Software development:

The construction of software through the use of programming languages.

Software maintenance:

Software systems often have problems and need enhancements for a long time after they are first completed. This subfield deals with those problems.

Software configuration management:

Since software systems are very complex, their configuration (such as versioning and source control) has to be managed in a standardized and structured method.

Software engineering management:

The management of software systems borrows heavily from project management, but there are nuances encountered in software not seen in other management disciplines.

Software development process:

The process of building software is hotly debated among practitioners; some of the better-known processes are the Waterfall Model, the Spiral Model, Iterative and Incremental Development, and Agile Development.

Related Disciplines:

 

Systems engineering:

Systems engineers deal primarily with the overall system design, specifically dealing more with physical aspects which include hardware design. Those who choose to specialize in computer hardware engineering may have some training in software engineering.

Computer Software Engineers:

Computer Software Engineers are usually systems level (software engineering, information systems) computer science or software level computer engineering graduates. This term also includes general computer science graduates with a few years of practical on the job experience involving software engineering.