Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
2 views

Module 1.1-1

The document introduces software engineering, highlighting the distinction between hardware and software, the importance of software engineering, and the ethical responsibilities of software engineers. It discusses the software crisis, the need for systematic approaches in software development, and the challenges faced in the field. Additionally, it outlines the ACM/IEEE Code of Ethics, emphasizing the professional conduct expected from software engineers.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Module 1.1-1

The document introduces software engineering, highlighting the distinction between hardware and software, the importance of software engineering, and the ethical responsibilities of software engineers. It discusses the software crisis, the need for systematic approaches in software development, and the challenges faced in the field. Additionally, it outlines the ACM/IEEE Code of Ethics, emphasizing the professional conduct expected from software engineers.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

An Introduction to Software

Engineering
Objectives
• To differentiate hardware and Software
• To introduce software engineering and to explain its importance
• To introduce ethical and professional issues and to explain why they
are of concern to software engineers
Topics covered

• Difference between Hardware & Software


• What is Software Crisis.
• Definition of Software Engineering
• Importance of Software Engineering.
• Professional and ethical responsibility.
Hardware & Software
Computer hardware is any physical device
used in or with your machine, whereas
Software is a set of instructions for a
computer to perform specific operations.

All software utilizes at least one hardware


device to operate. For example, a video
game, which is software, uses the
computer processor (CPU), memory
(RAM), hard drive, and video card to run.
What is software?
• Computer programs and associated documentation such as
requirements, design models and user manuals.
• 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 e.g. PC
software such as Excel or Word.
• Bespoke (custom) - developed for a single customer according to their
specification.
• New software can be created by developing new programs,
configuring generic software systems or reusing existing software.
Importance of software
Software can have a huge impact in any aspect of society.
Where can you find
software?
Application of software
1) System software.
2) Application software.
3) Engineering/scientific software.
4) Embedded software.
5) Product line software.
6) Web application software.
7) Artificial intelligence software (AI).
Software Engineering
• Why software engineering:-
1) In the late 1960’s hardware price were falling but software price
rising.
2) Many software projects failed.
3) Large software project required large development loams.
4) Many software project late and over budget.
5) Complicity of software project is increased.
6) Demand for new software on the market
Software Crisis
Malfunctioning of software systems, inefficient
development of software, and the most important,
dissatisfaction amongst the users of the software.
Impacts of Software Crisis:
1) Northeast blackout in 2003
2) Year 2000 (Y2K) problem
3) Arian-5 space rocket Crash
4) US bank Attack.
Need for 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.
• Expenditure on software represents a
significant fraction of GNP in all
What is software engineering?
• Software engineering is an engineering discipline that is concerned with
all aspects of software production.
• Software engineers should adopt a systematic and organised approach to
their work and use appropriate tools and techniques depending on the
problem to be solved, the development constraints and the resources
available.

the application of a systematic, disciplined, quantifiable approach to


the development, operation, and maintenance of software – IEEE

Software engineering is the application of engineering to the design,


development, implementation, testing and maintenance of software
in a systematic method - ACM
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.
• Computer science theories are still insufficient to act as a complete
underpinning for software engineering (unlike e.g. physics and
electrical engineering).
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. Software engineering is part of this process
concerned with developing the software infrastructure, control,
applications and databases in the system.
• System engineers are involved in system specification, architectural
design, integration and deployment.
What are the key challenges facing software
engineering?
• Heterogeneity, delivery and trust.
• Heterogeneity
• Developing techniques for building software that can cope with
heterogeneous platforms and execution environments;
• Delivery
• Developing techniques that lead to faster delivery of software;
• Trust
• Developing techniques that demonstrate that software can be trusted
by its users.
Professional and ethical
responsibility
• 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.
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.
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).
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.
Code of ethics - principles
• PUBLIC
• Software engineers shall act consistently with the public interest.
• 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.
• PRODUCT
• Software engineers shall ensure that their products and related
modifications meet the highest professional standards possible.
Code of ethics - principles
• JUDGMENT
• Software engineers shall maintain integrity and independence in their
professional judgment.
• MANAGEMENT
• Software engineering managers and leaders shall subscribe to and
promote an ethical approach to the management of software
development and maintenance.
• PROFESSION
• Software engineers shall advance the integrity and reputation of the
profession consistent with the public interest.
Code of ethics - principles
• COLLEAGUES
• Software engineers shall be fair to and supportive of their colleagues.
• 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.
Professional Email ID
• Create your Email ID with Professional touch.
• name@domainname.com
• To ensure uniqueness use your year of birth/Reg.no/roll no along
with your name.

You might also like