Introduce to Software Engineering - Physical Engineering - Lecture Slides, Slides of Engineering Physics

These are the Lecture Slides of Physical Engineering which includes Gain of Heat, Loss of Heat, Adiabatic Expansion, Expense of Internal Energy, Kinetic Theory of Gases, Continuous Motion, Pumping Speed of System, Thermal Equilibrium etc. Key important points are: Introduce to Software Engineering, Computer Science, System Engineering, Software Process, Software Process Model, Computer Programs, Types of Software, Database Management Systems

Typology: Slides

2012/2013

Uploaded on 03/22/2013

dheerandra
dheerandra 🇮🇳

4.4

(43)

141 documents

1 / 90

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Introduction
Getting started with
Software Engineering
Docsity.com
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a

Partial preview of the text

Download Introduce to Software Engineering - Physical Engineering - Lecture Slides and more Slides Engineering Physics in PDF only on Docsity!

Introduction

• Getting started with

Software Engineering

software engineering

  • What is software?
  • What is software engineering?
  • What is the difference between software

engineering and computer science?

  • What is the difference between software

engineering and system engineering?

  • What is a software process?
  • What is a software process model?

What is software?

  • Computer programs and associated

documentation

  • Software products may be developed for a

particular customer or may be developed for a general market

  • Software products may be
    • Generic - developed to be sold to a range of different

customers

  • Custom - developed for a single customer according to

their specification

What is Software?

  • Software is the Definition and Organization of a Set of Tasks and Functionality Encapsulated into a Form that is Executable on a Computer
  • What are Different Types of Software?
    • Commercial-Off-the-Shelf (COTS)
    • Government-Off-the-Shelf (GOTS)
    • Legacy: Written in an “Old” Programming Language
      • Cobol, PL/1 (Y2k/SNET), Fortran, etc.
      • C and C++!
    • Customized New Software
    • Client vs. Server Software
    • Database Management Systems/Applications

What are the key challenges facing software engineering?

  • Coping with legacy systems, coping with increasing diversity and coping with demands for reduced delivery times
  • Legacy systems
    • Old, valuable systems must be maintained and updated
  • Heterogeneity
    • Systems are distributed and include a mix of hardware and software
  • Delivery
    • There is increasing pressure for faster delivery of software

Software engineering

  • The economies of ALL developed nations are dependent on software
  • More and more systems are software controlled
  • Software engineering is concerned with theories, methods and tools for professional software development
  • Software engineering expenditure represents a significant fraction of GNP in all developed countries
  • The Application Of Engineering To SoftwareWhat^ is^ Software^ Engineering?
  • Field of CSE Dealing with Software Systems
    • Large and Complex
    • Built By Teams
    • Exist In Many Versions
    • Last Many Years
    • Undergo Changes
  • Definitions:
    • Application of a Systematic, Disciplined, Quantifiable Approach to the Development, Operation, and Maintenance of Software (IEEE 1990)
    • Multi-person Construction of Multi-version Software (Parnas

Software Engineering

Software Engineering process can be described using three generic phases: definition, development, and maintenance phase.

Software engineering comprises a process, management techniques, technical methods, and the use of tools.

Process

Methods

Software engineering is a layered Tools technology. The foundation of software engineering is Process layer.

Software Engineering

Development phase: focuses on how (software design, code generation, software testing).

Software developer attempts to define how :

  • Data structure are to be designed
  • Software architecture are to be designed
  • Procedural details are to be implemented
  • Design will be translated into programming language
  • Testing will be performed

Software Engineering

Maintenance phase: focuses on change

Corrective: Even with the best software quality assurance activities, it is possible that the customer will uncover defects in the software. Using corrective maintenance techniques, changes are made in the software to correct defects.

Adaptive: Over the time, the original environment for which software was developed is likely to change. Adaptive maintenance results in modifications to the software to accommodate changes to the environment.

Enhancement (Perfective): After using the software user recognizes additional functions that can be performed or business requirement could change. Perfective maintenance extends the functionality beyond the original requirements.

Why Software Engineering?

  • Program Complexity Transcends Individual or Lone Programmer
  • Software Engineering Targeted for
    • Constructing Large Software Applications
    • Defining Problem Clear and Completely
    • Tools and Techniques to Support Process
    • Team-Oriented Experience
  • Software Engineering must Evolve to be an Engineering Discipline
  • Software Engineering Must Promote and Support Multi- Person Construction of Multi-Version Software

Software Engineering - Historically

  • “Early Days”
    • 1950’s Programmers Wrote Programs
    • Early 1960’s - Very Large Software Projects Constructed by “Experts”
    • Mid-Late 1960’s - Advent of Large Commercial Software Applications - Large Systems Involved Teams of Individuals - Coining the Term “Software Engineering”
  • Towards a Software Engineering Discipline
    • Individuals Couldn’t see “Big Picture”
    • Increase in Communication Time
    • Personnel Changes Impact on Productivity
  • SE: Management, Organization, Tools, Theories, Methodologies, Techniques, etc.

Programmer vs. Software Engineer

  • Individual with Good Skills
  • Programming-in-the-Small
  • Knowledge on
    • Data Structures
    • Algorithms
  • Fluent in Several Programming Languages
  • May Lack Formal Training
  • Minimal Exposure to CS
    • Part of a Team
    • Programming-in-the-Large
    • Design Approaches
      • OO, Modules, etc.
      • Top-Down/Bottm-Up
    • Translates Requirements into Specifications
    • Familiarity in Multiple Application Areas
    • Converses with Users
    • Sees “Big Picture”
    • Can Model Application
    • Good Communication and Interpersonal Skills

Software costs

  • Software costs often dominate system costs.

The costs of software on a PC are often greater than the hardware cost

  • Software costs more to maintain than it does

to develop. For systems with a long life, maintenance costs may be several times development costs

  • Software engineering is concerned with cost-

effective software development