[go: up one dir, main page]

0% found this document useful (0 votes)
20 views24 pages

Lec1 Introduction

This document provides an overview of a software engineering course, including: - An introduction to software and software engineering concepts like processes, methods, and tools. - Different types of software applications like system software, embedded software, and web-based software. - Common myths about software development that can mislead managers and practitioners. - The importance of professional ethics for software engineers in serving the public interest and ensuring high quality products.

Uploaded by

Ante
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)
20 views24 pages

Lec1 Introduction

This document provides an overview of a software engineering course, including: - An introduction to software and software engineering concepts like processes, methods, and tools. - Different types of software applications like system software, embedded software, and web-based software. - Common myths about software development that can mislead managers and practitioners. - The importance of professional ethics for software engineers in serving the public interest and ensuring high quality products.

Uploaded by

Ante
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
You are on page 1/ 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