Lecture 01 Software & Software Engineering, Slides of Introduction to Software Engineering

Lecture slides on software engineering, its importance, and the difference between software and other systems. It also covers the activities involved in software development, the layered technology, and the essence of practice. The document also includes Hooker's general principles and software myths.

Typology: Slides

2022/2023

Available from 11/23/2022

razaroghani
razaroghani 🇵🇰

4.5

(4)

151 documents

1 / 38

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Lecture 01
Software & Software Engineering
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill 2009).
1
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

Partial preview of the text

Download Lecture 01 Software & Software Engineering and more Slides Introduction to Software Engineering in PDF only on Docsity!

Lecture 01

Software & Software Engineering

These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009).

Course Schedule

  • Lectures — Tuesday, Wednesday, Thursday: 11:30-12:30AM
  • Sessional Marks — Assignments 10% — Quizzes 10%
  • Midterm exam — 30%
  • Final exam — 50%

Expectations

What do you want (or expect) to learn from

this course?

Expectations (cont…)

  • This course IS NOT about …

—Programming

What is Software?

When we write a program for computer we named it as software. But software is not just a program; many things other than the program are also included in software.

1.Program: The program or code itself is definitely

included in the software.

2.Data : The data on which the program operates is also

considered as part of the software.

3.Documentation: that describes the operation and use of

the programs.

Software Applications

  1. Business decision-making:
  2. Modern scientific investigation and engineering problem solving:
  3. Games
  4. Embedded systems
  5. Education
  6. Office automation
  7. Communication

Difference Between Computer Science and

Software Engineering

  • This is the process of utilizing our knowledge of computer science in effective production of software systems.
  • Just like the relation between:

Physics and electrical Engineering

Physics and Civil Engineering

Difference Between Software and

Other Systems

  • The main difference between software and any other system is: 1. Software does not wear out.
  • A car may be malfunctioned due to some problem in engine while driving. Similarly an electric bulb may be fused while glowing and a TV could be dysfunctional while working. This means they are affected by the phenomenon of wear and tear.
  • Software systems are not affected by the phenomenon of wear and tear. If a software has any defect then that defect will be there from the very first day and that defect normally called bug.

Software Crisis

  • Computer systems were very new and primitive in early fifties and the use of software was also very limited.
  • In 1960s a great amount of rapid improvement was made in hardware. New hardware and new computer systems were made available requiring more powerful and complex software.
  • Techniques that were used to develop small software were not applicable for large software systems. This thing resulted in the following consequences.

In most of the cases that software which was tried to be built using those old tools and techniques were not complete.

Most of the times it was delivered too late.

Most of the projects were over-budgeted.

And in most of the cases, systems developed using these techniques were not reliable meaning that they were not be able to do what they were expected to do.

Why Software Engineering?

  • People think that if one knows how to code then that’s sufficient.
  • But just writing code is not the whole story.
  • People have realized this fact way back in 1960s that only coding is not sufficient to develop software systems, we also need to apply engineering principles.
  • Software is developed or engineered, it is not manufactured in the classical sense.

Software Engineering

  • Software Engineering is the combination of all the tools, techniques, and processes that are used in software production. Therefore Software Engineering encompasses all those things that are used in software production like:

Programming Language

Programming Language Design

Software Design Techniques

Tools

Testing

Maintenance

Development etc.

Well-Engineered Software

Well-engineered software is one that has the following characteristics.

  • It is reliable
  • It has good user-interface
  • It has acceptable performance
  • It is of good quality
  • It is cost-effective
  • Maintainable

Law of diminishing returns

Software Development Activities

  • The activities involved in software development can broadly be divided into two major categories; first is construction and second is management.