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

Lect1 Course Introduction

This document provides an introduction to the SWE2301 Introduction to Software Engineering course. It outlines the course objectives, which are to introduce concepts and methods for developing large, high-quality software. It also details the course structure, including lectures, texts, topics, and assessment breakdown. Additionally, it provides background on the history and need for software engineering as a discipline, and covers fundamental concepts like the software life cycle, engineering principles, and modularity.

Uploaded by

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

Lect1 Course Introduction

This document provides an introduction to the SWE2301 Introduction to Software Engineering course. It outlines the course objectives, which are to introduce concepts and methods for developing large, high-quality software. It also details the course structure, including lectures, texts, topics, and assessment breakdown. Additionally, it provides background on the history and need for software engineering as a discipline, and covers fundamental concepts like the software life cycle, engineering principles, and modularity.

Uploaded by

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

SWE2301: Introduction to software Engineering 1

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.

• To help students to acquire skills that will


enable them to develop software of high
quality- software that is reliable, and that is
reasonably easy to understand, modify and
maintain
SWE2301: Introduction to software Engineering 3

Course Lecture
• Monday

• 10-12pm

• Friday

• 12-1pm ----x
SWE2301: Introduction to software Engineering 4

Essential Texts
• MainText : “Software Engineering by
Sommerville”

• Other Text: “Software Engineering by K.K.


Aggarwal and Yogesh Singh”
SWE2301: Introduction to software Engineering 5

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

… end of the road


• Students will be able understand the
issues affecting the analysis, design,
implementation, testing and maintenance
of large systems.

• Students will be able to read and


understand the professional and technical
literature on software engineering
History of Software Engineering
• Software used to be quite simple.
• Developed for use by the developer, no rules.

• Software got more and more complicated,


and because of lack of systematic methods,
software projects increasingly failed.

• In 1968, a big software engineering


conference was organized to solve software
failures (crisis)
• birth of software engineering as a distinct
discipline.
SWE2301: Introduction to software Engineering 9

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.

• SE is an engineering discipline that is


concerned with all aspects of software
production from the early stages of system
specification through to maintaining the
system after it has gone into use.
SWE2301: Introduction to software Engineering 11

Software Engineering..
• SE is concerned with theories, methods and
tools for professional software development.

• SE is not a static discipline, there are


unresolved debates and controversies.
SWE2301: Introduction to software Engineering 12

Software Engineering Concepts


• Some important concepts in SE include:
• Software Product
• Software Diversities
• Software Issues
• Software Ethics
• Software Principles
SWE2301: Introduction to software Engineering 13

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.

• No universal set of software techniques that is


applicable to all of these.

• Methods and tools used depend on application


type, requirements and development team.
SWE2301: Introduction to software Engineering 15

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

• Business and Social Change: The need to adapt


systems to respond rapidly to changes.

• Security and Trust: The need to prevent


unauthorized access to software especially those
that can be accessed over the network.
SWE2301: Introduction to software Engineering 16

Software Engineering Ethics


• Software engineering is carried out within a
social and legal framework that restricts the
freedom of people working in the area.

• Software engineer must uphold


Confidentiality, Competence, Intellectual
property right and avoid Computer misuse.
SWE2301: Introduction to software Engineering 17

Software Engineering Principles


• Separation of Concerns: “Divide and Conquer”
• Modularity: Separating software into components
based on functions and responsibility--- next
slide
• Abstraction: Separating “What” from “How”
• Anticipation of Change: Main requirements must
be worked out early but changes can be made
later
• Generality: Software should be designed to be as
general as possible.
• Incremental Development: Developing in small
increments eases the task.
12/28/2021 Software Design 18

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.

• Three (3) types:

Uncoupled loosely coupled highly coupled


12/28/2021 Software Design 20

Cohesion
• Cohesion is a measure of the degree to
which the elements of a module are
functionally related.

• Cohesion is the measure of functional


strength of a module.

• Types of cohesion include functional,


sequential, coincidental and Temporal.
SWE2301: Introduction to software Engineering 21

Summary
• Software engineering is an engineering
discipline that is concerned with all aspects of
software production.

• There are many different types of system and


each requires appropriate software engineering
tools and techniques for their development.

• Concepts such as principles, ethics, issues are


important in understanding SE.
SWE2301: Introduction to software Engineering 22

Question ??

You might also like