Software Engineering PowerPoint.ppt

download Software Engineering PowerPoint.ppt

of 16

Transcript of Software Engineering PowerPoint.ppt

  • 7/27/2019 Software Engineering PowerPoint.ppt

    1/16

    Software Engineering

  • 7/27/2019 Software Engineering PowerPoint.ppt

    2/16

    Why Software Engineering?

    As technology advanced, so did the need to build biggerand ever more complex programs. Softwaredevelopmentreached a point where it had to bedeveloped by teams.

    There had to be:- requirements, plans, detailed designs, actual building,

    testing, development of efficient, intuitive user interfaces,and integration into larger systems of computers,machines, and people.

    The discipline to develop software in this manner isknown as software engineering, a complex process thatitself requires many sub-processes.

  • 7/27/2019 Software Engineering PowerPoint.ppt

    3/16

    What is Software Engineering?

    The application of a systematic,

    disciplined, quantifiable approach

    to the development, operation, andmaintenance of software; that is,

    the application of engineering to

    software.

  • 7/27/2019 Software Engineering PowerPoint.ppt

    4/16

    What is Software Engineering?

    Software engineering is also defined as the

    field of computer science that deals with

    the building of software systems which are

    so large or so complex that they are built

    by a team or teams of engineers.

  • 7/27/2019 Software Engineering PowerPoint.ppt

    5/16

    What is Software Engineering?

    Usually these software systems exist in

    multiple versions and are used for many

    years.

    During their life-time, they undergo many

    changesto fix defects, to enhance

    existing features, to add new features, to

    remove old features or to be adapted torun in the new environment.

  • 7/27/2019 Software Engineering PowerPoint.ppt

    6/16

    Why a structured approach to the

    software development process?

    Increased dependence of many organizationson their computer systems

    Crises in previous developments; for example:* increasing costs of softwaredevelopment

    * dissatisfaction of users and management

    with the quality and suitability of software* increasing length and complexity of thesoftware.

  • 7/27/2019 Software Engineering PowerPoint.ppt

    7/16

    Why a structured approach to the

    software development process?

    Requirements for standard interfaces, both to

    users and other software.

    Need for tighter control and management ofprocess (visibility of the process, risk

    management)

    Importance of the need for the involvement of

    end users and management.

  • 7/27/2019 Software Engineering PowerPoint.ppt

    8/16

    Attributes of a well-engineered

    software product

    The attributesof a software product are thecharacteristics displayed by the product, once itis installed and put in use.

    They are notthe services provided by theproduct.

    Rather, they are concerned with the productsdynamic behavior and the use made of theproduct.

  • 7/27/2019 Software Engineering PowerPoint.ppt

    9/16

    Attributes of a well-engineered

    software product

    maintainability

    dependability

    efficiency usability

    portability

    availability of appropriatedocumentation

    f

  • 7/27/2019 Software Engineering PowerPoint.ppt

    10/16

    Attributes of a well-engineered

    maintainability

    It should be possible to evolve software to

    meet the changing needs of the customer.

    A ib f ll i d

  • 7/27/2019 Software Engineering PowerPoint.ppt

    11/16

    Attributes of a well-engineered

    dependability

    Software dependability includes a range of

    characteristics including reliability, security

    and safety. Dependable software should

    not cause physical or economic damage inthe event of system failure.

  • 7/27/2019 Software Engineering PowerPoint.ppt

    12/16

    Attributes of a well-engineered

    efficiency

    Software should not make wasteful use of

    system resources such as memory and

    processor cycle.

  • 7/27/2019 Software Engineering PowerPoint.ppt

    13/16

    Attributes of a well-engineered

    usability

    Software should have an appropriate user

    interface and documentation

  • 7/27/2019 Software Engineering PowerPoint.ppt

    14/16

    Attributes of a well-engineered

    portability

    This refers to the ability to reuse the existing code

    instead of creating new code when moving

    software from one environment to another.

    Software portability may be achieved on threedifferent levels:

    Installed program files may be transferred to another computer.

    The program may be reinstalled (from the distribution files) on

    another computer.

    The source filesmay be compiledfor another computer.

    http://en.wikipedia.org/wiki/Source_filehttp://en.wikipedia.org/wiki/Compilehttp://en.wikipedia.org/wiki/Compilehttp://en.wikipedia.org/wiki/Source_file
  • 7/27/2019 Software Engineering PowerPoint.ppt

    15/16

    Attributes of a well-engineered

    availability of appropriate documentation

    Computer Software that is accompanied with

    written text on software documentationor

    source code documentation. It either explainshow it operates or how to use it .

    Types of documentation include: Requirements- Statements that identify attributes, capabilities,

    characteristics, or qualities of a system. This is the

    foundation for what shall be or has been implemented. Architecture/Design- Overview of software. Includes relations to an

    environment and construction principles to be

    used in design of software components.

    Technical - Documentation of code, algorithms, interfaces, and APIs.

    End User- Manuals for the end-user, system administrators and support staff.

    Marketing- How to market the product and analysis of the market demand.

  • 7/27/2019 Software Engineering PowerPoint.ppt

    16/16

    Attributes of a well-engineered

    availability of appropriate documentation

    Types of documentation include: Requirements- Statements that identify attributes, capabilities,

    characteristics, or qualities of a system. This is the

    foundation for what shall be or has been implemented.

    Technical - Documentation of code, algorithms, interfaces, and APIs.

    API Applications Programming Interface

    End User- Manuals for the end-user, system administrators and

    support staff.

    Marketing- How to market the product and analysis of the market

    demand.