0% found this document useful (0 votes)
8 views30 pages

Overview of Software Engineering Concepts

The document provides an overview of software, its classifications, importance, and characteristics, along with the principles of software engineering. It discusses the software development process, common myths, challenges, and ethical considerations in the field. Additionally, it highlights the distinction between computer science and software engineering, emphasizing the practical aspects of software production.

Uploaded by

bscs24f11
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views30 pages

Overview of Software Engineering Concepts

The document provides an overview of software, its classifications, importance, and characteristics, along with the principles of software engineering. It discusses the software development process, common myths, challenges, and ethical considerations in the field. Additionally, it highlights the distinction between computer science and software engineering, emphasizing the practical aspects of software production.

Uploaded by

bscs24f11
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Introduction to SE

Software
Computer software continues to be the single most important technology
on the world stage.

● It encompasses programs that execute within a computer of any size and


architecture, content that is presented as the computer programs execute, and
descriptive information in both hard copy and virtual forms.
Classes of Software
Software is classified into two classes:

1. Generic Software: Designed for broad customer market whose requirements


are very common, fairly stable and well understood.
2. Customized Software: Developed for the customer where domain,
environment and requirements are being unique to that customer and cannot
be satisfied by generic products.
Application Software Domains
1. Business / Information Systems
2. Engineering/Scientific software
3. Embedded Software
4. Web/Mobile Application
5. AI and Data-driven Software
6. Entertainment & Gaming
7. Real-time & Critical Systems
Name five software
you used today
before coming to
class.
Why is Software Important?
● More and more systems are becoming software controlled.
● All of the major world economies rely on software's.
● They have become essential in the work place.
● They have are essential for societal development.
What, in your
opinion, makes
software 'good'?
What is Good Software?
Good software should deliver the required functionality and performance to the
user and should be maintainable, dependable, efficient and usable.
Software Characteristics
Software has characteristics that differ considerably from those of hardware:
● Intangible
● Easy to reproduce
● Does not wear out
● Highly malleable
● Complex
● Engineered, not manufactured
● Often unique
● Dependent on people
Software Failures
● Therac-25 (1985): radiation overdoses due to faulty software, killing patients.
(Read More)
● LAS-CAD (1992): London’s ambulances failed at launch, causing severe delays
in response times and significant public harm. (Read More)
● Ariane 5 rocket (1996): exploded because of a software error in a 64-bit to
16-bit conversion. (Read More)
● Knight Capital (2012): lost $440 million in 45 minutes because of a bug. (Read
More)
Engineering
Engineering is the application of scientific and mathematical principles, along with
practical knowledge and creativity, to design, build, and maintain systems,
structures, machines, processes, and technologies that serve human needs.
READ MORE :
Link 1, Link 2

1968 NATO Software Engineering Conference


Software Engineering
“Software engineering is the establishment and use of sound engineering
principles in order to obtain economically software that is reliable and works
efficiently on real machines.”
(1968, NATO Conference)
Software Engineering
“Software Engineering is the application of a systematic, disciplined,
quantifiable approach to the development, operation, and maintenance of
software.”
(Source: IEEE Standard 610.12-1990, Glossary of Software Engineering Terminology)

“Software engineering is an engineering discipline that is concerned with all


aspects of software production from the early stages of system specification
through to maintaining the system after it has gone into use.”
(Source: Sommerville, Software Engineering, 10th Edition)
Software Engineering as a Layered Technology
“Software engineering is a layered technology and a process of analyzing user
requirements and then designing, building, and testing software applications
which will satisfy those requirements.”
(Source: Pressman, Software Engineering: A Practitioner’s Approach)
Computer Science VS Software Engineering

Computer science is concerned with the theories and methods that


underlie computers and software systems, whereas software engineering
is concerned with the practical problems of producing software.
The Process

● A process is a collection of activities, actions, and tasks that are


performed when some work product is to be created.
● A software process is a sequence of activities that leads to the
production of a software product.
Software Process Framework
● Software process includes :
○ Tasks – focus on a small, specific
objective.
○ Action – set of tasks that produce a
major work product.
○ Activities – group of related tasks
and actions for a major objective.
The Software Process - Activities

1. Communication: Collaborate with customers and stakeholders to


understand project objectives and gather requirements.
2. Planning: Develop a software project plan outlining tasks, risks,
resources, deliverables, and schedule.
3. Modeling: Create models to visualize and refine software
requirements and design solutions.
4. Construction: Build the software through code generation and testing
to uncover errors.
5. Deployment: Deliver the software to customers for evaluation and
feedback.
The Software Process - Umbrella Activities

No matter which process you use these activities run across the entire
process:

1. Software project management


2. Quality assurance
3. Configuration management
4. Documentation
5. Risk management
6. Measurement
Software Development Myths
Erroneous beliefs about software and the process that is used to build it.

Management Myths:

1. We already have a book that's full of standards and procedures for


building software. Won't that provide my people with everything they
need to know?
2. If we get behind schedule, we can add more programmers and catch
up.
3. If I decide to outsource the software project to a third party, I can just
relax and let that firm build it.
Software Development Myths
Customer Myths:

1. A general statement of objectives is sufficient to begin writing


programs—we can fill in the details later.
2. Software requirements continually change, but change can be easily
accommodated because software is flexible.
Software Development Myths
Practitioner’s Myths:

1. Once we write the program and get it to work, our job is done.
2. Until I get the program “running” I have no way of assessing its quality.
3. The only deliverable work product for a successful project is the
working program.
4. Software engineering will make us create voluminous and
unnecessary documentation and will invariably slow us down.
The Challenges in Software Engineering
1. Requirements Volatility
2. Complexity
3. Invisibility
4. Time and Cost Pressure
5. Security and Reliability
6. Maintenance Burden
7. Heterogeneity
8. Scalability
9. Software Testing Conflicts
Software Engineering Ethics
Ethics in software engineering is about making decisions that respect user
privacy, promote fairness, and benefit society. It involves adhering to
professional codes, navigating ethical dilemmas, and understanding the
impact of unethical practices.
Public Interest First!
Software Engineering Ethics
As a software engineer, you must accept that your job involves wider
responsibilities than simply the application of technical skills.

● Confidentiality
● Competence
● Intellectual Property Rights
● Computer Misuse
READ MORE : Link
DIY - Case Studies
Discuss the following case studies with your group: Case Studies Link.

Give answer to the following questions:

1. What are facts of the case study?


2. What is the moral problem here?
3. Consult the list of fundamental principles (IEEE/ACM/BCS) and identify
those that are relevant to the moral problem
4. What are the alternative courses/directions/solutions of action?
5. What will be the effect of your decision on the society/user/employer?
Readings
Link 1: Click Here

You might also like