Introduction to software engineering
This presentation is the property of its rightful owner.
Sponsored Links
1 / 22

Introduction to Software Engineering PowerPoint PPT Presentation


  • 94 Views
  • Uploaded on
  • Presentation posted in: General

Introduction to Software Engineering. Why SE?. Software crisis manifested itself in several ways [1]: Project running over-time. Project running over-budget. Software was very inefficient. Software was low quality. Software often did not meet requirements.

Download Presentation

Introduction to Software Engineering

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Introduction to Software Engineering


Why SE?

  • Software crisis manifested itself in several ways [1]:

    • Project running over-time.

    • Project running over-budget.

    • Software was very inefficient.

    • Software was low quality.

    • Software often did not meet requirements.

    • Projects were unmanageable and code difficult to maintain.

    • Software was never delivered.


What is software?

  • Software is not just the programs but also associated documentation and configuration data [2].

  • Software products may be developed for a particular customer or may be developed for a general market [2].


Types of Software Products

  • Generic products are produced by a development organisation and sold on the open market to any customer who is able to buy them.

  • Bespoke (or customised) products are developed specially for customers by a software contractor.


What is Software Engineering?

  • SE is an engineering discipline which is concerned with all aspects of software production from the early stages of system specification through to maintaining the system.

  • SE adopt a systematic and organised approach to their work as this is often the most effective way to produce high-quality software.


Key Phrases to Definition

  • ‘Engineering discipline’ Engineers apply theories, methods and tools to discover solutions even there are no applicable theories and methods.

  • ‘All aspects of software production’ are the activities such as: software project management and with the development of tools, methods and theories to support software production.


Software Quality

  • Software quality can be categorized in two groups:

    • Factors that can be directly measured e.g., errors/KLOC/unit-time

    • Factors that can be measured only indirectly e.g., usability or maintainability…


P

R

O

D

U

C

T

R

E

V

I

S

I

O

N

P

R

O

D

U

C

T

R

E

V

I

S

I

O

N

P

R

O

D

U

C

T

T

R

A

N

S

I

T

I

O

N

P

R

O

D

U

C

T

T

R

A

N

S

I

T

I

O

N

P

R

O

D

U

C

T

O

P

E

R

A

T

I

O

N

P

R

O

D

U

C

T

O

P

E

R

A

T

I

O

N

Software QualityAttributes

  • Portability (Will I be able to use it on another machine?)

  • Reusability (Will I be able reuse some of the software?)

  • Interoperability (Will I be able to interface it with another system?)

-Maintainability (Can I fix it?)

-Flexibility (Can I change it?)

-Testability (Can I test it?)

-Correctness (Does it do what I want?)

-Reliability (Does it do it accurately all of the time?)

-Efficiency (Will it run on my hardware as well as it can?)

-Integrity (Is it secure?)

-Usability (Is it designed for the user?)


What are the attributes of good software?


What is the difference between Software Engineering and Computer Science?

  • Computer science is concerned with theory and fundamentals;

  • Software engineering is concerned with the practicalities of developing and delivering useful software.

  • Software engineers must often use ad hoc approaches to develop the software.

  • Elegant theories of computer science cannot always be applied to real, complex problems.


What is the difference between Software Engineering and System Engineering?

  • System Engineering is concerned with all aspects of computer-based systems development, including hardware, software and process engineering.


What is Software Process?

  • Software Process is a set of activities whose goal is the development or evolution of software.


Software Process Activities

  • Software Specification. The functionality of the software and constraints on its operation must be defined.

  • Software Development. The software to meet the specification must be produced.

  • Software Validation. The software must be validated to ensure that it does what the customer wants.

  • Software Evaluation. The software must evolve to meet changing customer needs.


What is CASE?

  • Computer-Aided Software Engineering

  • CASE are software systems which are intended to provide automated support for software process activities.


What is a Software Process Model?

  • A Software Process Model is a simplified description of a software process which is presented from a particular perspective.


Types of Software Process Model

  • A Workflow model This shows the sequence of activities in the process along with their inputs, outputs and dependencies.

  • A data-flow or activity model The process as a set of activities each of which carries out some data transformation.

  • A role/action model The roles of the people involved in the software process and the activities for which they are responsible.


Software Application

  • Application software is computer software designed to help the user to perform singular or multiple related specific tasks.

  • Examples include:

    • System software is a collection of programs written to service programs. E.g., compiler, editors, operating system components, drivers,…


Software Application

  • Real-time software. Software that monitors/analyzes/controls real world events as they occur is call real time.

  • Business software. Business information processing is the largest single software application area.

  • Engineering and Scientific Software. Software has been characterized by “number crunching” algorithms. E.g., Computer-Aided Design, system simulation and so on.


Software Application

  • Embedded Software. Intelligent products have become commonplace in nearly every consumer and industrial market.

  • Personal Computer Software. E.g., word processing, computer graphics, multimedia, and so on.

  • Web-based software. The web pages retrieved by a browser are software that incorporates executable instructions, e.g., HTML, Perl or Javeand so on.


Software Application

  • Artificial Intelligence Software. Software makes use of nonnumericalalgorithms to solve complex problems that are not amenable to computation or straightforward analysis. E.g., knowledge-based systems, pattern recognition (image and voice), artificial neural networks, and game playing are representative of applications.


Key Points

  • Software Engineering is an engineering discipline which is concerned with all aspects of software production.

  • Software products consist of developed programs and associated documentation.

  • The software process consists of activities which are involved in developing software products. Basic activities are software specification, development, validation and evolution.


Literatures

  • en.wikipedia.org

  • Ian Sommerville“Software Engineering 6th Edition” – 2000.


  • Login