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

Lecture Human Computer Interaction Note

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

Lecture Human Computer Interaction Note

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

ICT 319

SOFTWARE ENGINEERING
Lecturer:

Matthew Cobbinah
Email: [email protected]
[email protected]
Contact: +233 547 900 989
COURSE OUTCOMES
▪ Explain the issues of producing quality software

▪ Design systems using UML notation

▪ Explain human issues in the software engineering


profession: ethics and professional practice

▪ Discuss the different aspects of project management


in producing secure quality software

SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 3
COURSE MATERIALS

1. Software engineering and testing (Agarwal etal., 2010)

2. Software Engineering, 9th Edition (Sommerville, 2011)

3. Software Engineering, 10th Edition (Sommerville, 2015)

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 Software Developpent (Ian, pages 56-74)

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 Management (Ian, pages 651-668)

Software quality
Software standards
Reviews and inspections
Software measurement and metrics

SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 8
COURSE OVERVIEW

Requirements Engineering (Ian , pages 82-111)

Functional and non-functional requirements


The software requirements document
Requirements specification
Requirements engineering processes
Requirements elicitation and analysis
Requirements validation
Requirements management

SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 9
COURSE OVERVIEW

System Modeling (Ian, pages 118-138)

Context models
Interaction models
Structural models
Behavioral models
Model-driven engineering

SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 10
COURSE OVERVIEW

Software Architecture (Ian, pages 147-164)

Architectural design decisions


Architectural views
Architectural patterns
Application architectures

SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 11
COURSE OVERVIEW

Software Design and implementation (Ian, pages 176-


198)

Object-oriented design using the UML


Design patterns
Implementation issues
Open-source development

SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 12
COURSE OVERVIEW

Software Testing and strategies (Ian and Agarwal etal)


Testing (Ian, pages 205-228)
Development testing
Test-driven development
Release testing
User testing
Strategies (Agarwal etal, pages 181-189)
Static-Testing Strategies
Debugging
Error, Fault, and Failure

SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 13
COURSE OVERVIEW

Software Maintenance (Agarwal etal, pgs 193, 202-204,


215)
Software as an Evolution Entity
Need for Maintenance
Categories of Maintenance
Maintenance Costs
Software-Risk Analysis and Management

SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 14
MODE OF DELIVERY

In order to complete the semester work and to enable


students gain a rich learning experience;

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

Assessment and Evaluation will be based on:

1. Assignments/Quizzes = 10mks
2. Midsemester Exam = 15mks
3. Lecture Attendance = 5mks
4. End of term Exam= 70mks

TOTAL (1+2+3+4) = 100mks

SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 16
LECTURE ONE:

INTRODUCTION TO SOFTWARE

SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 17
INTRODUCTION TO SOFTWARE ENGINEERING

▪ WHAT IS SOFTWARE?

▪ The set of computer programs, procedures, and associated


documents (flowcharts, manuals, etc.) that describe the programs
and how they are to be used.

▪ A collection of programs whose objective is to enhance the


capabilities of the hardware.

▪ A set of instructions used to acquire inputs and to manipulate


them to produce the desired output in terms of functions and
performance as determined by the user of the software.

SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 18
INTRODUCTION TO SOFTWARE ENGINEERING

▪ WHAT IS SOFTWARE?...

▪ According to IEEE,

▪ Software is the collection of computer programs, procedure


rules and associated documentation and data

SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 19
INTRODUCTION TO SOFTWARE ENGINEERING

▪ Software:

Softwares comprises of Source Codes, Executables, Design


Documents, Operations, System Manuals and ‘Installation and
Implementation Manuals’.

Typically, a software includes;


1. Instructions (computer programs) that when executed provide desired
functions and performance.
2. Data structures that enable the programs to adequately manipulate
information.
3. Documents that describe the operation and use of the programs.

SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 20
INTRODUCTION TO SOFTWARE ENGINEERING

▪ SOFTWARE COMPONENTS

▪ A component is an object written to a specification.

▪ A software component is a system element offering a


predefined service and is able to communicate with other
components.

▪ It takes significant effort and awareness to write a software


component that is effectively reusable.

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?

1. It is the engine that drives business decision making.

2. It serves as the basis for modern scientific investigation


and engineering problem-solving.

3. It is embedded in all kinds of systems, such as


transportation, medical, telecommunications, military,
industrial processes, entertainment, office products, etc.
.

SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 23
INTRODUCTION TO SOFTWARE ENGINEERING

▪ Qualities of a good software

▪ Good software should deliver the required functionality and


performance to the user

▪ A good software should be maintainable, dependable, and


usable

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

▪ An interpreter usually gives better error diagnostics


than a compiler, because it executes the source
program statement by statement.
SOFTWARE ENGINEERING:
LECTURER: MATTHEW COBBINAH 32
INTRODUCTION TO SOFTWARE ENGINEERING

▪ 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

You might also like