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.


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

    SCM is truly Software Engineering.


    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 Configuration Management Table of Contents

    Software Configuration Management Software Configuration Management are the practices and procedures for administering source code, producing software development builds, controlling change, and managing software configurations.

    Software Configuration Management Software Configuration Mgmt is a software development support and control function. Specializing in software building, installation packaging, change control and configuration management.

    Software Configuration Management Plan This document will cover source code administration, build environment standards and define the process by which new components will be added to builds, and a common understanding of how we will manage broken builds.

    Software Configuration Management Systems Software Configuration Management Systems are the end-to-end tools and procedures that encompass the Software Configuration Management Systems. These are more than just software builds and version control tools. These are the processes you build that surround these tools.

    Software Configuration Management Strategies Software Configuration Management Strategies can be difficult to define. Your SCM strategies can be as simple as providing excellent SCM service, but they can be more complex by introducing process improvement to your already existing service.

    Software Configuration Management Best Practices Software Configuration Management Best Practices are designed and implemented to ensure software quality, integrity and reproducibility. Best Practices are methods and techniques that are proven to be the most effective way of ensuring repeatability of a processes.

    General Best Practices Software Configuration Management Best Practices are designed and implemented to ensure software quality, integrity and reproducibility. Best Practices are methods and techniques that are proven to be the most effective way of ensuring repeatability of a processes.

    SCM Plan This SCM Plan is a template model for software applications that require a disaster recovery plan.

    SCM Books SCM Books is a collection of books and descriptions that can be a valuable resource and background for installation packaging, software builds, source control, software engineering or engineering in general

    Genius Richard Feynman Genius Richard Feynman was written by James Gleick. Genius - The Life and Science of Richard Feynman a 20th century Physics.

    Genius James Gleick Genius James Gleick - The Life and Sciences of Richard Feynman.

    SCM Performance Goals SCM Performance Goals are set to help the SCM Engineer achieve high performance standards. The goals need to be clear, direct and ongoing feedback from management.

    SCM Goals SCM Goals are a sample set of performance objectives that can be used as an example of typical Software Configuration Management Goals.

    Forrester Reports This page contains a listing of Forrester Reports for SCM tools. Forrester is a leading company in discovering vendor tool directions and consumer trends. This is a listing of Forrester Reports of SCM tools.

    Software Engineering 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.

    SCM War Stories SCM War Stories are a collection of typical SCM anti-patterns that most experienced SCM Engineers have all lived through.

    Circumventing Build Process Circumventing Build Process happens for many reasons. For example, it can happen because someone decides schedule is more important than software quality. Another example, might be that the person making the decision to circumvent the build process does not understand the implications of their decision.

    Untested Software Untested software is an anti pattern due to a project that is behind schedule. A decision to proceed with the delivery to demonstrate progress of a project over the proper testing has taken place to ensure quality. Untested Software is a common Software Engineering Antipattern.

    What is Software Configuration Management What is Software Configuration Management? SCM encapsulates the practices and procedures for administering source code, producing software development builds, controlling change, and managing software configurations. Specifically, SCM ensures the integrity, reliability and reproducibility of developing software products from planning to release.

    Why Use Software Configuration Management Why Use Software Configuration Management? Software Configuration Management ensures software build repeatability and reproducibility. SCM enforces Source Code Administration Best Practices and proper Software Change Management practices are followed.

    What is SCM What is SCM? SCM encapsulates the practices and procedures for administering source code, producing software development builds, controlling change, and managing software configurations. Specifically, SCM ensures the integrity, reliability and reproducibility of developing software products from planning to release.

    Why Use SCM Why Use SCM? Software Configuration Management ensures software build repeatability and reproducibility. SCM enforces Source Code Administration Best Practices and proper Software Change Management practices are followed.

    SCM Websites Software Configuration Management Websites a listing of top SCM sites and other interesting Websites. This page attempts to identify the truly unique Websites. Please visit them.

    SCMWise Software Configuration Management SCMWise is dedicated to SCM. This site is a central repository for the collection of best practices, processes, methodologies and tools that surround SCM.



  • Salary Surveys

    This is a collection of Salary Surveys from Professions closely surrounding Software Configuration Management


    SCM Salaries

    Add Your SCM Salary


    Configuration Management Salaries

    Add Your CM Salary


    Project Manager Salaries

    Add Your PM Salary


    Webmaster Salaries

    Add Your Web Salary




    SCMWise Preferred Partner

    SBI! 2.0


    SCMWise Recommends

    Site Build It!


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


    © Copyright 2007 - 2010
    Powered by Site Build It!
    Page copy protected against web site content infringement by Copyscape SCMWise.com's Privacy Policy
    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