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

Software Engineering Lecture 1

The document outlines the objectives and course outline for a Software Engineering class, emphasizing the development of high-quality software and the importance of various software engineering principles. It covers topics such as software processes, requirements engineering, system modeling, software architecture, testing, and ethics in software engineering. Additionally, it distinguishes between software engineering and computer science, and provides guidelines for ethical practices in the field.

Uploaded by

namrach62
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Software Engineering Lecture 1

The document outlines the objectives and course outline for a Software Engineering class, emphasizing the development of high-quality software and the importance of various software engineering principles. It covers topics such as software processes, requirements engineering, system modeling, software architecture, testing, and ethics in software engineering. Additionally, it distinguishes between software engineering and computer science, and provides guidelines for ethical practices in the field.

Uploaded by

namrach62
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 29

Software Engineering

(Spring 2023)

Lecture 1

Introduction
Course Objectives

• To help students to develop skills that will enable


them to construct software of high quality –
software that is reliable, and that is reasonably
easy to understand, modify and maintain.

• To foster an understanding of why these skills are


important.
Course Outline
Introduction to Software and Software Engineering
• Definitions
• Differences
• Importance
• History and ethics of software engineering

Software Process and Process Models


• What is software process?
• Software Construction and Management
• Different Software Process Models

Requirements Engineering
• Definitions
• Types of Requirements
• Steps of Requirement Engineering
Course Outline
System Modelling
Context Modelling
• Context Diagram
• Activity Diagram
• Interaction Modelling
• Use Case Diagram
• Sequence Diagrams
• Behavioural Modelling
• State Transition
• Collaboration Diagram
• Data Flow Diagrams
• Structural Modeling
• Class Diagrams and their relationships
Course Outline
• Software Architecture and Design

• Software Testing
• Verification vs Validation
• Types of Testing

• Software Configuration Management


Text Books

• Software Engineering by Ian Sommerville (9th


Edition)

• Software Engineering: A Practitioner’s


Approach by Roger S. Pressman (7th Edition)
Reference Books
• sAms Teach yourself UML in 24 Hours

• The Unified ModelingLanguage User Guide


by Booch, Rumbaugh, and Jacobson

• Applying UML and Patterns by Craig Larman (2nd


Edition)
Rules
• Arrive on time in class
• If you do not understand a point, raise your hand
and ask me to explain or contact during office
hours
• No disturbance!!!! No Misconduct!!!!
• REMEMBER: Your first priority must be your
studies
• Any other define by you?
What is
Software?
• Computer Programs
• Data
• Documentation
What is Software?
We can define it as:
• Instructions (Computer Programs) that
when executed provide
• Desired features
• Functions and
• Performance.
• The data on which the program operates is
also considered as a part of the software.
• Documents related to software.
Role of Software
A person might be involved with software more than 100 times,
often without even realizing that.

We might use a computer

• To check email or weather


• Kitchen appliances
• Traffic signals are now computer controlled
• Mostly we use credit cards in a computerized gasoline
pumps.
Role of
Software
• Our bank system is highly computerized
• Use of telephones, fax, e-mail or internet, all of these requires
Software
• Hotel arrangements will be handled by computers and software
• Air plane & Air traffic control is highly computerized
• Medical Instruments and diagnostic procedures are
now
computerized
What is the difference between
Software and other systems?
Attributes of Good Software
• Should deliver the required functionality and performance to
the user.
• It is reliable
• It has good user-interface
• Should be maintainable and reusable
Categories of Computer
Software
System Software
• Collection of programs written to service other programs(e.g.
operating system, drivers..)

Application Software
• Stand-alone programs that solve a specific business need.

Engineering/Scientific Software
• Systems for modelling and simulations.

Embedded Software
• Resides within a product or system(e.g., Keypad control
for a microwave oven)
Categories of Computer Software
Web Applications
• Called “Web Apps”, set of linked hypertext files that present
information using text and graphics.

Computer Programming/ software development tool


• A programming tool or software development tool is a
computer program that software developers use to create,
debug and maintain.

• Artificial Intelligence Software


• This area include robotics, pattern recognition(image and
voice)
and game playing.
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 word
processors, drawing packages, and project management
tools.

Customized products
• Software that is commissioned by a specific customer to
meet their own needs.
• Examples–systems written to support a particular business
process and air traffic control software.
Software
Crises
• In the early 60s, software suffered from a problem, which we
call the Software Crisis

• The techniques that were used to develop small software were


not applicable for large software systems.

• In most of the cases the software that was built using the old
tools and techniques was not complete.
Software Crises
• Most of the time it was delivered too late.
• Most of the projects were over-budgeted.
• And, in most of the cases, systems built using these techniques
were not reliable.
• A conference was held in 1960 in which the
term “software crisis” was introduced
Conclusion:
• Software engineering is the result of the software crisis when
people realized that it was not possible to construct complex
software using the techniques applicable in 1960s.
• An important result of this was that people realized that
just coding was not enough; we also need to apply
engineering principles.
What is
Engineering?
• The process of productive use of scientific knowledge
is called Engineering.

• The process of utilizing knowledge and principles


to design, build, and analyze objects.
Software
Engineering

The science concerned with putting computer science


knowledge to practical use.
Software Engineering -
IEEE
The application of a systematic, disciplined, quantifiable
approach to the development, operation, and
maintenance of software; that is, the application of
engineering to software.
Software Engineering - Sommerville

‘All of software production’


engineering
aspects is not
Software
just concerned with the technical
processes of software development but also with
activities such as software project management and
with the development of tools, methods and theories
to support software production.
Computer Science vs. Software Engineering

Computer science focuses on theory and fundamentals;


software engineering is concerned with the practicalities of
developing and delivering useful software.

System engineering vs. Software 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.
Software Engineering Ethics
“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.”
 Confidentiality
should normally respect the confidentiality of your employers or
clients irrespective of whether a formal confidentiality
agreement has been signed.
 Competence
You should not misrepresent your level of competence. You
should not knowingly accept work that is outside your
competence.
Software Engineering Ethics
 Intellectual property rights

You should be aware of local laws governing the use of intellectual


property such as patents and copyright. You should be careful to
ensure that the intellectual property of employers and clients is
protected.

 Computer misuse

You should not use your 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).
30

ACM/IEEE-CS Code of Ethics


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.
ACM/IEEE-CS Code of Ethics
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
FAQ about Software
Engineering
Question Answer

What is software? Computer programs, data structures and


associated
documentation. Software products may be developed for a
particular customer or may be developed for a general
market.
What are the attributes of good software? Good software should deliver the required functionality and
performance to the user and should be maintainable,
dependable and usable.

What is software engineering? Software engineering is an engineering discipline that is


concerned with all aspects of software production.

What is the difference between Computer science focuses on theory and fundamentals;
software engineering and computer science? software engineering is concerned with the practicalities of
developing and delivering useful software.

What is the difference between System engineering is concerned with all aspects of
software engineering and system computer-based systems development including hardware,
engineering? software and process engineering. Software engineering is
part of this more general process.

You might also like