Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Engineering
(Fall 2018)
Lecture 1
Introduction
9/5/2018 CSE291 - Introduction to Software Engineering 2
Course Objectives
Course Outline
• Introduction to Software and Software Engineering
• Definitions
• Differences
• Importance
• Requirements Engineering
• Definitions
• Types of Requirements
• Steps of Requirement Engineering
9/5/2018 CSE291 - Introduction to Software Engineering 4
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
9/5/2018 CSE291 - Introduction to Software Engineering 5
Course Outline
• Software Architecture and Design
• Software Testing
• Verification vs Validation
• Types of Testing
Text Books
Reference Books
Course Website
• Course Handbook
• Deadlines & Important Information
• Course Material (Lecture Notes and Lab Tasks)
• Assignments
• Quiz Solutions
9/5/2018 CSE291 - Introduction to Software Engineering 9
Course Assessment/Grading
Rules
• Mobile phones – Silent or switch off
• 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
9/5/2018 CSE291 - Introduction to Software Engineering 11
What is Software?
• Computer Programs
• Data
• Documentation
9/5/2018 CSE291 - Introduction to Software Engineering 12
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 that describe the use of the Programs.
9/5/2018 CSE291 - Introduction to Software Engineering 13
Role of Software
A person might be involved with software more than 100 times,
often without even realizing that.
Role of Software
• Our bank system is highly computerized
• Could operate with out high quality software?
• System Software
• Application Software
• Engineering/Scientific Software
• Embedded Software
• Web Applications
• Computer Programming tools
• Artificial Intelligence Software
9/5/2018 CSE291 - Introduction to Software Engineering 18
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 editing, graphics
programs, project management tools, databases and
drawing packages.
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.
9/5/2018 CSE291 - Introduction to Software Engineering 19
Software Products
• The distinction in generic and customized software
products is becoming blurred.
• More and more systems are being built with a generic
product as a base, which is then adapted to suit the
requirements of a customer.
Software Crises
• In most of the cases the software that was built using the old
tools and techniques was not complete.
9/5/2018 CSE291 - Introduction to Software Engineering 21
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.
9/5/2018 CSE291 - Introduction to Software Engineering 22
What is Engineering?
Software Engineering
Software Costs
Confidentiality
Competence
Intellectual property rights
Computer misuse
9/5/2018 CSE291 - Introduction to Software Engineering 30
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 the difference between software Computer science focuses on theory and fundamentals;
engineering and computer science? software engineering is concerned with the practicalities of
developing and delivering useful software.
What is the difference between software System engineering is concerned with all aspects of
engineering and system engineering? computer-based systems development including hardware,
software and process engineering. Software engineering is
part of this more general process.
32