Lecture Human Computer Interaction Note
Lecture Human Computer Interaction Note
SOFTWARE ENGINEERING
Lecturer:
Matthew Cobbinah
Email: [email protected]
[email protected]
Contact: +233 547 900 989
COURSE OUTCOMES
▪ Explain the issues of producing quality software
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 3
COURSE MATERIALS
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 4
COURSE OVERVIEW
Introduction to Software Engineering (Agarwal etal,
pages 3-26)
Software and software engineering
Various types and classes of softwares
Software component
Software characteristics
Software crises and causes
Software Myths
Engineering processes
Software Evolutions (Eras of software)
Terminologies in software engineering
Professional software development (Ian, page 5)
Software engineering ethics (Ian, page 14)
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 5
COURSE OVERVIEW
The Software Life Cycle (Agarwal etal, pages 29-50)
Software-Development Life-Cycle
Waterfall Model
Prototyping Model
Spiral Model
Evolutionary Development Model
Iterative-Enhancement Model
RAD Model
Comparison of Various Process Models
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 6
COURSE OVERVIEW
Agile methods
Plan-driven and agile development
Extreme programming
Agile project management
Scaling agile methods
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 7
COURSE OVERVIEW
Software quality
Software standards
Reviews and inspections
Software measurement and metrics
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 8
COURSE OVERVIEW
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 9
COURSE OVERVIEW
Context models
Interaction models
Structural models
Behavioral models
Model-driven engineering
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 10
COURSE OVERVIEW
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 11
COURSE OVERVIEW
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 12
COURSE OVERVIEW
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 13
COURSE OVERVIEW
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 14
MODE OF DELIVERY
This course will be delivered via both a face to face lectures and
online interaction
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 15
MODE OF ASSESSMENT & EVALUATION
1. Assignments/Quizzes = 10mks
2. Midsemester Exam = 15mks
3. Lecture Attendance = 5mks
4. End of term Exam= 70mks
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 16
LECTURE ONE:
INTRODUCTION TO SOFTWARE
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 17
INTRODUCTION TO SOFTWARE ENGINEERING
▪ WHAT IS SOFTWARE?
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 18
INTRODUCTION TO SOFTWARE ENGINEERING
▪ WHAT IS SOFTWARE?...
▪ According to IEEE,
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 19
INTRODUCTION TO SOFTWARE ENGINEERING
▪ Software:
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 20
INTRODUCTION TO SOFTWARE ENGINEERING
▪ SOFTWARE COMPONENTS
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 21
INTRODUCTION TO SOFTWARE ENGINEERING
▪ SOFTWARE COMPONENTS…
The component needs:
▪ To be fully documented;
▪ To be more thoroughly tested;
▪ To have robust input validity checking;
▪ To pass back useful error messages as appropriate;
▪ To be built with an awareness that it will be put to
unforeseen uses
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 22
INTRODUCTION TO SOFTWARE ENGINEERING
▪ WHY SOFTWARE?
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 23
INTRODUCTION TO SOFTWARE ENGINEERING
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 24
INTRODUCTION TO SOFTWARE ENGINEERING
▪ TYPES OF SOFTWARE
1. System software
2. Application software
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 25
INTRODUCTION TO SOFTWARE ENGINEERING
▪ TYPES OF SOFTWARE
1. System software
▪ Includes the operating system and all utilities that enable the
computer to function.
▪ They are low-level programs that interact with the computer at a
very basic level.
Types:
▪ Operating Systems
▪ Utilities Programs
▪ Device drivers
▪ Language Translators
Compilers
Interpreters and
Assemblers
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 26
INTRODUCTION TO SOFTWARE ENGINEERING
▪ TYPES OF SOFTWARE
1. System software…
Operating Systems
▪ The operating system provides interface between the
user and the hardware
▪ It manages hardware, such as memory, CPU, input/
output devices, files, etc., for the user
Examples:
▪ Microsoft Windows,
▪ DOS,
▪ Mac OS,
▪ Linux, etc
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 27
INTRODUCTION TO SOFTWARE ENGINEERING
▪ TYPES OF SOFTWARE
1. System software…
Utility Programs
▪ Perform the specification tasks related to managing
system resources.
▪ These programs mostly act as the ‘Zoom lions’ for the
operating systems.
Examples:
▪ Anti-virus
▪ Disk cleaners
▪ System diagnostics
▪ Backup
▪ Data recovery SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 28
INTRODUCTION TO SOFTWARE ENGINEERING
▪ TYPES OF SOFTWARE
1. System software…
Device drivers
▪ Device drivers contains the detail machine language
necessary to control each device.
▪ These can be viewed as “divisional managers”.
▪ The operating system commands the driver, which in
turn commands the peripheral devices.
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 29
INTRODUCTION TO SOFTWARE ENGINEERING
▪ TYPES OF SOFTWARE
1. System software…
Language Translators
▪ Any computer package capable of translating a source
program written in either a high level language or an
assembly language into a machine language.
Types:
▪ Compilers
▪ Interpreters, and
▪ Assemblers
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 30
INTRODUCTION TO SOFTWARE ENGINEERING
▪ TYPES OF SOFTWARE
1. System software…
Language Translators…
▪ A compiler translates source code into object code.
▪ The compiler derives its name from the way it works,
looking at the entire piece of source code and
collecting and reorganizing the instructions.
▪ Programs produced by compilers run much faster than
the same programs executed by an interpreter
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 31
INTRODUCTION TO SOFTWARE ENGINEERING
▪ TYPES OF SOFTWARE
1. System software…
Language Translators…
▪ Interpreter analyses and executes each line of source
code in succession, without looking at the entire
program.
▪ The advantage of interpreters is that they can execute
a program immediately, as opposed to compilers which
require some time before executing a program
▪ TYPES OF SOFTWARE
1. System software…
Language Translators…
▪ An Assembler translates and assembles a program
written in assembly code into machine (object) code.
▪ The assembler translates the symbolic function codes
into the equivalent machine operation code; symbolic
addresses are allocated actual internal memory
locations
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 33
INTRODUCTION TO SOFTWARE ENGINEERING
▪ TYPES OF SOFTWARE
2. Application software
▪ Special softwares that are designed to perform
particular task.
▪ Consist of programs that do real work for users.
▪ They sits above system software because they need
the help of system software to run.
▪ Thus, system software provides the platform for
running application softwares.
Examples/Types:
Word Processing, spreadsheet, presentation, database
management systems, image processing softwares, etc.
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 34
INTRODUCTION TO SOFTWARE ENGINEERING
▪ CLASSES OF SOFTWARE:
▪ Two main classes:
Generic and Customized softwares
▪ Generic Softwares are designed for a broad customer
market whose requirements are very common, fairly
stable, and well-understood by the software engineer.
▪ Examples are Database systems, web browsers,
ERP/CRM packages, and system softwares
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 35
INTRODUCTION TO SOFTWARE ENGINEERING
▪ CLASSES OF SOFTWARE:
▪ Two main classes:
Generic and Customized softwares
▪ Customized Softwares are those that are developed for
unique customer domain, which the generic ones cannot
be used to meet them.
▪ Examples are traffic-management systems, hospital-
management systems, school management systems,
etc.
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 36
T FOR THANKS
ANY QUESTION