0% found this document useful (0 votes)
41 views

Week 1 Lecture 01

The document provides an introduction to software engineering including definitions of software, software engineering, and the importance of software engineering. It discusses topics like the software development process, costs of software, types of software products, and issues that affect software engineering.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views

Week 1 Lecture 01

The document provides an introduction to software engineering including definitions of software, software engineering, and the importance of software engineering. It discusses topics like the software development process, costs of software, types of software products, and issues that affect software engineering.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 38

Chapter 1- Introduction

By: Irum Sindhu

Chapter 1 Introduction 1
Topics covered

• Professional software development


• What is meant by software engineering.
• Software engineering ethics
• A brief introduction to ethical issues that affect software engineering..

Chapter 1 Introduction 2
What is Software

• Software is

• Computer Program
• Data on which program operates
• Documentation

• Software is not just only the code


Importance of Software

• Software plays a vital role in every field / areas.


• The economies of ALL developed nations are
dependent on software.
• More and more systems are software controlled
• Some major areas are;

• Business decision making


• Games
• Embedded Systems
• Education
Chapter 1 Introduction 5
Engineering
• The process of productive use of scientific
knowledge
Professional software development

Chapter 1 Introduction 7
Software engineering

• Software engineering is concerned with theories,


methods and tools for professional software
development.

Chapter 1 Introduction 8
Software engineering

• Software engineering is an engineering discipline that is concerned


with all aspects of software production
• From the early stages of system specification to maintaining the system.
• Engineering discipline
• Using appropriate theories and methods to solve problems bearing in mind
organizational and financial constraints.

Chapter 1 Introduction 9
Software Crisis

• Software Engineering term was first coined in 1968


• Individual approaches to program development can’t be scaled up
• Need of some software engineering techniques

Chapter 1 Introduction 10
CS v/s SE
• Every branch of engineering such as civil, mechanical, etc are based on
Physics

• Physics itself is not an engineering but the use of physics in making


buildings, electronic devices and machines is engineering

• When we use Physics in:


• constructing the buildings  Civil Engineering
• making machines like engines or cars  mechanical engineering
• developing electronic devices  Electrical Engineering
CS v/s SE
• The relationship of computer science and software engineering is similar
as the relationship of Physics with mechanical, civil and electrical
engineering.
• So, in above context we can define SE as under:

• “Process of utilizing our knowledge of Computer Science in effective


production of software systems”.
Why one should study Software
Engineering??

Chapter 1 Introduction 13
Importance of software engineering

• More and more, individuals and society rely on advanced software


systems.
• Need to produce reliable and trustworthy systems economically and
quickly.
• It is usually cheaper, in the long run, to use software engineering
methods and techniques for software systems
• Majority of costs are the costs of changing the software after it has gone into
use.

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

• Software specification, where customers and engineers define the


software that is to be produced and the constraints on its operation.
• Software development, where the software is designed and
programmed.
• Software validation, where the software is checked to ensure that it
is what the customer requires.
• Software evolution, where the software is modified to reflect
changing customer and market requirements.

Chapter 1 Introduction 16
Software costs

• Software costs often dominate computer 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.

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

Product characteristic Description

Maintainability Software should be written in such a way so that it can evolve to


meet the changing needs of customers. This is a critical attribute
because software change is an inevitable requirement of a
changing business environment.
Dependability and Software dependability includes a range of characteristics
security including reliability, security and safety. Dependable software
should not cause physical or economic damage in the event of
system failure. Malicious users should not be able to access or
damage the system.
Efficiency Software should not make wasteful use of system resources such
as memory and processor cycles. Efficiency therefore includes
responsiveness, processing time, memory utilisation, etc.

Acceptability Software must be acceptable to the type of users for which it is


designed. This means that it must be understandable, usable and
compatible with other systems that they use.

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.

• Business and social change


• Business and society are changing incredibly quickly as emerging economies
develop and new technologies become available. They need to be able to
change their existing software and to rapidly develop new software.

Chapter 1 Introduction 21
General issues that affect software

• Security and trust


• As software is intertwined with all aspects of our lives, it is essential that we
can trust that 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

• There are many different types of software system and there is no


universal set of software techniques that is applicable to all of these.

• The software engineering methods and tools used depend on the


type of application being developed, the requirements of the
customer and the background of the development team.

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

• Batch processing systems


• These are business systems that are designed to process data in large
batches. They process large numbers of individual inputs to create
corresponding outputs.
• Entertainment systems
• These are systems that are primarily for personal use and which are intended
to entertain the user.
• Systems for modeling and simulation
• These are systems that are developed by scientists and engineers to model
physical processes or situations, which include many, separate, interacting
objects.

Chapter 1 Introduction 25
Application types

• Data collection systems


• These are systems that collect data from their environment using a set of
sensors and send that data to other systems for processing.

Chapter 1 Introduction 26
Software engineering fundamentals

• Some fundamental principles apply to all types of software system,


irrespective of the development techniques used:
• Systems should be developed using a managed and understood development
process. Of course, different processes are used for different types of
software.

• Dependability and performance are important for all types of system.

• Understanding and managing the software specification and requirements


(what the software should do) are important.

• Where appropriate, you should reuse software that has already been
developed rather than write new software.

Chapter 1 Introduction 27
Internet software engineering

• The Web is now a platform for running application and organizations


are increasingly developing web-based systems rather than local
systems.

• Web services (discussed in Chapter 19) allow application functionality


to be accessed over the web.

• Cloud computing is an approach to the provision of computer


services where applications run remotely on the ‘cloud’.
• Users do not buy software buy pay according to use.

Chapter 1 Introduction 28
Software engineering ethics

Chapter 1 Introduction 29
Software engineering Ethics

• Software engineering involves wider responsibilities than simply the


application of technical skills.

• Software engineers must behave in an honest and ethically


responsible way if they are to be respected as professionals.

• 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

• Intellectual property rights


• Engineers should be aware of local laws governing the use of
intellectual property such as patents, copyright, etc. They should be
careful to ensure that the intellectual property of employers and
clients is protected.
• Computer misuse
• Software engineers should not use their technical skills to misuse
other people’s computers. Computer misuse ranges from relatively
trivial (game playing on an employer’s machine, say) to extremely
serious (dissemination of viruses).

Chapter 1 Introduction 32
ACM/IEEE Code of Ethics

• The professional societies in the US have cooperated to produce a


code of ethical practice.
• Members of these organisations sign up to the code of practice when
they join.
• The Code contains eight Principles related to the behaviour of and
decisions made by professional software engineers, including
practitioners, educators, managers, supervisors and policy makers, as
well as trainees and students of the profession.

Chapter 1 Introduction 33
Rationale for the code of ethics

• Computers have a central and growing role in commerce, industry,


government, medicine, education, entertainment and society at large.
Software engineers are those who contribute by direct participation or by
teaching, to the analysis, specification, design, development, certification,
maintenance and testing of software systems.
• Because of their roles in developing software systems, software engineers
have significant opportunities to do good or cause harm, to enable others to
do good or cause harm, or to influence others to do good or cause harm. To
ensure, as much as possible, that their efforts will be used for good, software
engineers must commit themselves to making software engineering a
beneficial and respected profession.

Chapter 1 Introduction 34
The ACM/IEEE Code of Ethics

Software Engineering Code of Ethics and Professional Practice

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

• What is software and its importance?


• What is software Engineering?
• Software Crisis?
• SE Vs CS
• Attributes of a Good Software
• General Issues that affect software
• Application Types
• Ethical Principles

19/08/2019 Chapter 1 Introduction 37


Next Class Task 

• Read the three case studies:


• 1. An Insulin Pump Control System
• 2. A patient information system for mental health care
• 3. A wilderness weather station
• From Page No. 15 to 21
• Enjoy reading…

30/10/2014 Chapter 1 Introduction 38

You might also like