What is Software Engineering?

            What is Software?

  • Software is not just the programs, but also associated documentation and configuration data (to operate the program) needed to make the programs operate correctly.

  • A Software system consists of
    1. Number of separate programs
    2. Configuration files used to setup the programs
    3. System documentation – describes the structure of the system
    4. User documentation – explains how to use the system

  • Software Products may be
    1. Generic Developed to be sold to a range of different customers
    E.g. Operating Systems(Microsoft Windows) Database Management Systems(Oracle) Banking Software
    2. Bespoke Developed for a single customer according to their specification

            Programs Vs Software Products 

            Program 

  •  Small
  •  Single developer
  •  Small in size 
  •  Limited Functionality
  •  Single user (author)
  •  Simple user interface
  •  Sparse documentation
  •  No user manual
  •  Ad hoc development 

            Software Product

  •  Large
  •  Team of developers
  •  Multiple users (customer)
  •  Complex user interfaces
  •  Detailed documentation
  •  User manual
  •  Systematic development

          What is Software Engineering?

  • Software engineering is an engineering discipline, concerned with all aspects of software production from early stages of system specification through maintaining the system.
    1. Engineering discipline – make things work by applying theories, methods and tools where appropriate and also try to find solutions to problems when there’s no suitable theories/methods.
    2.  All aspects of software production – not just technical, but project management and development of tools, methods and theories to support S/W production.

  • Software engineers should adopt a systematic and organized approach to their work and use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available.

  • IEEE Definition of Software Engineering:
    The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.
    IEEE Standard 610.12-1990, 1993.


        Developing a Program

  1. Analyze the problem
  2. Develop a solution
  3. Code the solution
  4. Test and Debug

            What about a Real Software?

    • There will be a real user (Customer) who would need to use the software.
    1. You have to find out what the customer wants (Requirements Gathering)
    2. Analyze the problem
    3. Develop a solution (Design)
    4. Code the solution
    5. Test and Debug
    6. Maintenance
      Note : In addition in the beginning there can be a Feasibility Study.

            Characteristics of Software Engineering

    • Software Engineering deals with team-based production of large software systems: 
    1.  No single person has complete knowledge of all the details of a software engineering project. 

    • Software Engineering borrows from: 
    1. Computer Science & Information Technology 
    2. Electrical & Computer Engineering  Mathematics & Physics 
    3. Business & Management 
    4. Psychology & Sociology

    • Modern engineering is based on the systematic collection of past experience:
    1. methodologies; techniques; guidelines.

    •  It involves trade offs between alternatives:
    1. A pragmatic approach to cost-effectiveness;
    2. A rigorous approach to quality and safety!

    • It uses a variety of quantitative techniques
    1. with a sound theoretical basis:
    2. Yet many SE techniques are just rules of thumb.


    No comments:

    Configuring Windows Server on AWS

    ads
    Powered by Blogger.