Software Engineering Lecture 1
Software Engineering Lecture 1
(Spring 2023)
Lecture 1
Introduction
Course Objectives
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
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.
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
• 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.
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
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.