Download as pdf or txt
Download as pdf or txt
You are on page 1of 24

Software engineering(ECEg4183)

Target: Computer Engineering


4th year ,semester II
1
Lec1
Introduction

2
Lecture outline:
• Software
• Software Engineering
• Software Myths
• Professional ethics of Software Engineers
3
Software
4

Computer software is the product that software professionals build


and then support over the long term.
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

Computer software continues to be the single most important


technology on the world stage
Cont…
5
Software is being applied in most aspects of daily activities
Transportation
Entertainment
Healthcare
industry,
Etc.

 As software’s importance has grown, the software community has


continually attempted to develop technologies that will make it
 easier, faster, and less expensive to build and maintain high-quality computer
programs.
 These may target at different domains
 Specific applications, big systems domains,
Cont…
6
 software takes on a dual role
 It is a product,
 vehicle for delivering a product, such as
 Control computer (OS)
 Communication
 Tools

 Software delivers the most important product of our time—information


Cont…
7
 Software Characteristics

 logical system element


 developed/engineered
 Doesn’t wear out but deteriorate
 Usually custom-built
Cont…
8
As stated in the previous slide, software is being applied in most
aspects of daily activities
But we still need that does all these domains thereby improve users
services provided through the software

Therefore, this course focuses on bringing or adopting a framework


that cab be used by those who build the software with the intent to
provide a software with higher quality.
This framework encompasses
A process
A set of methods that we call as software engineering
An array of tools
9
Cont…

Software Applications

 Today, there are many categories of computer software present continuing


challenges for software engineers
 System Software: a collection of programs written to service other
programs.
 Compilers, editors, and file management utilities.
 Operating system components, drivers, telecommunications processors.
 Application software—stand-alone programs that solve a specific business
need
10
Cont…
Software Applications…

 Engineering/Scientific Software:
 CAD , 3D Design
 System simulation
…
 Embedded Software:
 resides within a product or system
 is used to implement and control features and functions for the end user and
for the system itself
 Embedded software can perform limited functions or provide significant
function and control capability
11
Cont…
Software Applications…

 Web-based Software
 AI Software: makes use of non-numerical algorithms to solve complex
problems that are not amenable to computation or straightforward
analysis
 Knowledge-base Systems
 Pattern recognition (image and voice)
 Artificial neural networks
 Etc…
 Etc………………
12
Software Engineering
The role of computer software has undergone significant change
over the last half-century.

Today, a huge software industry has become a dominant factor in


the economies of the industrialized world.
Teams of software specialists, each focusing on one part of the
technology required to deliver a complex application, have replaced
the lone programmer of an earlier era
Questions were asked in these industries similar to those asked
during the lone programmer
Cont…
13

Some of these questions were:


Why does it take so long to get software finished?
Why are development costs so high?
Why can’t we find all the errors before we give the software to
customers?
Why do we continue to have difficulty in measuring progress as
software being developed?
These, and many other questions, are a manifestation of the concern
about software and the manner in which it is developed
a concern that has led to the adoption of software engineering
practice
Cont…
14

Individuals, businesses, and governments increasingly rely on


software for strategic and tactical decision making as well as day-
to-day operations and control.
What If the software fails?
The people/enterprises may experience small or huge catastrophic
failures
So, it requires that software products should exhibit high quality
When use time of a software increases and the perceived value of
it increases, the demands for adaptation and enhancement also
grows
This requires that software should be maintainable
These realities lead the software be engineered -thus software
engineering is needed
Cont…
15

Software engineering is a layered technology

any engineering approach (including software engineering) must


rest on an organizational commitment to quality.
Cont…
16

The basic idea that supports software engineering is a quality


focus.
The foundation for software engineering is the process layer.
software engineering process holds the technology layers together
and
 enables rational and timely development of computer software

Software engineering methods provide the technical how-to’s for


building software.
Methods encompass a broad array of tasks such as requirement
analysis, design…
Cont…
17

Software engineering tools provide automated or semi-automated


support for the process and the methods
When tools are integrated to use each other, computer-aided
software engineering(CASE), is established

Software engineering is therefore a discipline that integrates


methods, tools, and processes for the development of quality
computer software.
Software myths
18
 Today, most knowledgeable professionals recognize myths for what they are—
misleading attitudes that have caused serious problems for managers and
technical people alike
 Management Myths:
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?
if I decide to outsource the software project to a third party, I can just
relax and let that firm build it.

If we get behind schedule, we can add more programmers and catch up
Cont…
19

 Software myths..
 Management Myths…
 But
 is the book complete?
 Does it reflect modern software engineering practice?
 Is it adaptable?...

 If you do not understand, you will get into difficulty to manage the outsourced project
 as new people are added, people who were working must spend time educating the
newcomers
Cont…
20
Software myths…

 Customer Myths
 A general statement of objectives is sufficient to begin writing
programs – we can fill in the details later
 Project requirements continually change, but change can be easily
accommodated because software is flexible
 But
 an ambiguous statement of objectives causes for disaster
 but the impact of change varies with the time at which it is introduced,
Changes should be fixed on time
Cont…
21
Software myths…

 Practitioner’s Myths
 Once we write the program and get it to work, our job is done
 Until I get the program “running” I really have no way of assessing its
quality
 The only deliverable for a successful project is the working program
 But
 the sooner you begin ‘writing code,’ the longer it’ll take you to get
done
 One of the most effective software quality assurance mechanisms the
technical review
Professional ethics of Software Engineers
22

 Software engineers shall commit themselves to do the software


processes of the beneficial and the profession
 In accordance with their commitment to the health, safety, and
welfare of the public, software engineers shall adhere to the following
Eight 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.
Judgment—Software engineers shall maintain integrity and independence in
their professional judgment
Cont…..
23
 …software engineers shall adhere to the following Eight Principles…

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
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.
24

You might also like