Week 1 Lecture 01
Week 1 Lecture 01
Chapter 1 Introduction 1
Topics covered
Chapter 1 Introduction 2
What is Software
• Software is
• Computer Program
• Data on which program operates
• Documentation
Chapter 1 Introduction 7
Software engineering
Chapter 1 Introduction 8
Software engineering
Chapter 1 Introduction 9
Software Crisis
Chapter 1 Introduction 10
CS v/s SE
• Every branch of engineering such as civil, mechanical, etc are based on
Physics
Chapter 1 Introduction 13
Importance of software engineering
Chapter 1 Introduction 14
• Software is almost everywhere..
• The thing about software is that, it is intangible.
• we cannot see when we have made mistakes
• Frequency of change..
• Standish Group of Chaos in 2015 reported that about $81 billion are
wasted in canceled projects.
• Catalogue of Catastrophe
• http://calleam.com/WTPF/?page_id=3
Chapter 1 Introduction 15
Software process activities
Chapter 1 Introduction 16
Software costs
Chapter 1 Introduction 17
Software products
• Generic products
• Stand-alone systems that are marketed and sold to any customer who wishes
to buy them.
• Examples – PC software such as graphics programs, project management
tools; CAD software; software for specific markets such as appointments
systems for dentists.
• Customized products
• Software that is commissioned by a specific customer to meet their own
needs.
• Examples – embedded control systems, air traffic control software, traffic
monitoring systems.
Chapter 1 Introduction 18
Product specification
• Generic products
• The specification of what the software should do is owned by the software
developer and decisions on software change are made by the developer.
• Customized products
• The specification of what the software should do is owned by the customer
for the software and they make decisions on software changes that are
required.
Chapter 1 Introduction 19
Essential attributes of good software
Chapter 1 Introduction 20
General issues that affect software
• Heterogeneity
• Increasingly, systems are required to operate as distributed systems across
networks that include different types of computer and mobile devices.
Chapter 1 Introduction 21
General issues that affect software
• Scale
• Software has to be developed across a very wide range of scales, from very
small embedded systems in portable or wearable devices through to
Internet-scale, cloud-based systems that serve a global community.
Chapter 1 Introduction 22
Software engineering diversity
Chapter 1 Introduction 23
Application types
• Stand-alone applications
• These are application systems that run on a local computer, such as a PC.
They include all necessary functionality and do not need to be connected to a
network.
• Interactive transaction-based applications
• Applications that execute on a remote computer and are accessed by users
from their own PCs or terminals. These include web applications such as e-
commerce applications.
• Embedded control systems
• These are software control systems that control and manage hardware
devices. Numerically, there are probably more embedded systems than any
other type of system.
Chapter 1 Introduction 24
Application types
Chapter 1 Introduction 25
Application types
Chapter 1 Introduction 26
Software engineering fundamentals
• Where appropriate, you should reuse software that has already been
developed rather than write new software.
Chapter 1 Introduction 27
Internet software engineering
Chapter 1 Introduction 28
Software engineering ethics
Chapter 1 Introduction 29
Software engineering Ethics
• Ethical behaviour is more than simply upholding the law but involves
following a set of principles that are morally correct.
Chapter 1 Introduction 30
Issues of professional responsibility
• Confidentiality
• Engineers should normally respect the confidentiality of their employers or
clients irrespective of whether or not a formal confidentiality agreement has
been signed.
• Competence
• Engineers should not misrepresent their level of competence. They should
not knowingly accept work which is outwith their competence.
Chapter 1 Introduction 31
Issues of professional responsibility
Chapter 1 Introduction 32
ACM/IEEE Code of Ethics
Chapter 1 Introduction 33
Rationale for the code of ethics
Chapter 1 Introduction 34
The ACM/IEEE Code of Ethics
ACM/IEEE-CS Joint Task Force on Software Engineering Ethics and Professional Practices
PREAMBLE
The short version of the code summarizes aspirations at a high level of the abstraction; the
clauses that are included in the full version give examples and details of how these
aspirations change the way we act as software engineering professionals. Without the
aspirations, the details can become legalistic and tedious; without the details, the
aspirations can become high sounding but empty; together, the aspirations and the details
form a cohesive code.
Software engineers shall commit themselves to making the analysis, specification, design,
development, testing and maintenance of software a beneficial and respected profession. In
accordance with their commitment to the health, safety and welfare of the public, software
engineers shall adhere to the following Eight Principles:
Chapter 1 Introduction 35
Ethical principles
1. PUBLIC - Software engineers shall act consistently with the public interest.
2. CLIENT AND EMPLOYER - Software engineers shall act in a manner that is in the best
interests of their client and employer consistent with the public interest.
3. PRODUCT - Software engineers shall ensure that their products and related
modifications meet the highest professional standards possible.
4. JUDGMENT - Software engineers shall maintain integrity and independence in their
professional judgment.
5. MANAGEMENT - Software engineering managers and leaders shall subscribe to and
promote an ethical approach to the management of software development and
maintenance.
6. PROFESSION - Software engineers shall advance the integrity and reputation of the
profession consistent with the public interest.
7. COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues.
8. SELF - Software engineers shall participate in lifelong learning regarding the practice of
their profession and shall promote an ethical approach to the practice of the profession.
Chapter 1 Introduction 36
Let’s have a Quick Recap