SCMWise.com

Software Engineering


Definition

The IEEE Computer Society defines Software Engineering as the application of a systematic, disciplined and quantifiable approach to the development, maintenance and operation of software.


History

  • In the 1940s, the first software programs were written in machine code.

  • In the 1950s macro assemblers and interpreters were created to improve productivity and quality.

  • In the 1960s, the second generation of compilers and interpreters were being used.

  • The 1970s gave rise to the microprocessor and the gain of software collaboration tools.

  • In the 1980s, saw the personal computer land on everyone's desk.

  • The 1990s saw the development of object-oriented programming and the further maturity of the Software Engineering practices.

  • 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.


    Software Engineering Considerations

    In addition to meeting the requirements, there are many considerations to weigh when designing a software product.

    • Compatibility
    • Extensibility
    • Maintainability
    • Reliability
    • Robustness
    • Security


    Software Design

    A smart design will greatly aid in a development organization's ability to support a software product.


    Software Construction

    Software building is the process of coding, compiling, verifying, testing and debugging of software.


    Software Testing

    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

    SCM 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

    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

    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.

  • Determining Quality Requirements

  • Determining the Processes to Achieve the Quality Levels


    Software Tools and Engineering

    Software Processes

    For the most comprehensive discussion


    Links



  • Take our SCM Salary Survey

    This is a collection salaries of SCM Professionals of different backgrounds, education, experiences and locations

    Please add your information to the collection

    To Participate



    Survey of SCM Salaries

    What are other SCM Professionals making?

    Interested???



    XML RSS
    What is this?
    Add to My Yahoo!
    Add to My MSN
    Add to Google


    ADD TO YOUR SOCIAL BOOKMARKS: add to BlinkBlink add to Del.icio.usDel.icio.us add to DiggDigg
    add to FurlFurl add to GoogleGoogle add to SimpySimpy add to SpurlSpurl Bookmark at TechnoratiTechnorati add to YahooY! MyWeb


    © Copyright 2007 - 2010

    SCMWise.com's Privacy Policy

    Page copy protected against web site content infringement by Copyscape

    Return to top