Lect1 Course Introduction
Lect1 Course Introduction
SWE2301: INTRODUCTION TO
SOFTWARE ENGINEERING
Lecture 01: Introduction
Venue: CIT Theater
Time: 10-12am
Presented by M. I. Mukhtar
SWE2301: Introduction to software Engineering 2
Course Objectives
• To introduce the concepts and methods
required for the construction of large
software system.
Course Lecture
• Monday
• 10-12pm
• Friday
• 12-1pm ----x
SWE2301: Introduction to software Engineering 4
Essential Texts
• MainText : “Software Engineering by
Sommerville”
Course Outline
• Software engineering concepts and
principles
• Introduction to software life cycle.
• Requirements, design & Software
architecture.
• Object Oriented Modelling using UML
• Software testing.
• Framework and APIs
• User Interface Design Considerations
• **Outline can be modified by the course
tutors.
SWE2301: Introduction to software Engineering 6
Course Assessment
• CA – 30%
• Exams – 70%
7 questions to answer 5
SWE2301: Introduction to software Engineering 7
Software Crisis
• Projects running over-budget and over-time.
• Software was very inefficient.
• Software was of low quality.
• Software often did not meet requirements.
• Projects were unmanageable and code difficult
to maintain.
• Software was never delivered.
• The rapid advancement of hardware = need for
new software.
• The increasing use of computers = need for the
development of more software.
SWE2301: Introduction to software Engineering 10
Software Engineering
• Software Engineering (SE) is a discipline whose
aim is the production of quality software ,
software that is delivered on time, within
budget, and that satisfies its requirements.
Software Engineering..
• SE is concerned with theories, methods and
tools for professional software development.
Software Products
• Generic products:
• stand-alone systems that are marketed and sold to
any customer,
• specification owned by the software developer,
• decisions on software change are made by the
developer.
• Customized products:
• commissioned for a specific customer to meet their
own needs,
• specification owned by the customer for the software
• decisions of software changes are made by
customers.
SWE2301: Introduction to software Engineering 14
Software Diversities
• Different types of software system:
• Stand-alone applications, Interactive transaction-
based applications, Entertainment systems,
Embedded control systems, Batch processing
systems, Data collection systems, Systems of
systems.
Software Issues
• Three (3) general issues:
• Heterogeneity: The need to operate systems as
distributed systems across networks that
include different types of computer and mobile
devices and to integrate new with old systems
Modularity
Modularity
Coupling Cohesion
Cohesion and coupling are important in making every software reliable and
extendable. A software engineer must design the modules with goal of low
coupling and high cohesion
12/28/2021 Software Design 19
Coupling
• Coupling is the measure of the degree of
interdependence between modules.
Cohesion
• Cohesion is a measure of the degree to
which the elements of a module are
functionally related.
Summary
• Software engineering is an engineering
discipline that is concerned with all aspects of
software production.
Question ??