Top Banner
1st Semester MTCE 601A COMPUTER SYSTEM SOFTWARE
17

1st Semester MTCE 601A COMPUTER SYSTEM SOFTWARE · LECTURE-1 . Syllabus Introduction • 1.1 Introduction to Object Oriented • 1.2 Introduction to UML • 1.3 Software Process and

Aug 26, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 1st Semester MTCE 601A COMPUTER SYSTEM SOFTWARE · LECTURE-1 . Syllabus Introduction • 1.1 Introduction to Object Oriented • 1.2 Introduction to UML • 1.3 Software Process and

1st Semester MTCE 601A

COMPUTER SYSTEM SOFTWARE

Page 2: 1st Semester MTCE 601A COMPUTER SYSTEM SOFTWARE · LECTURE-1 . Syllabus Introduction • 1.1 Introduction to Object Oriented • 1.2 Introduction to UML • 1.3 Software Process and

LECTURE-1

Page 3: 1st Semester MTCE 601A COMPUTER SYSTEM SOFTWARE · LECTURE-1 . Syllabus Introduction • 1.1 Introduction to Object Oriented • 1.2 Introduction to UML • 1.3 Software Process and

Syllabus Introduction

• 1.1 Introduction to Object Oriented

• 1.2 Introduction to UML

• 1.3 Software Process and OOA&D

• 1.4 Component and CBSD

• 1.5 Patterns and Architecture

Page 4: 1st Semester MTCE 601A COMPUTER SYSTEM SOFTWARE · LECTURE-1 . Syllabus Introduction • 1.1 Introduction to Object Oriented • 1.2 Introduction to UML • 1.3 Software Process and

1.1 Introduction to Object-Oriented

• OO Programming (procedural V.S. OO)

• Basic concepts of OO

Page 5: 1st Semester MTCE 601A COMPUTER SYSTEM SOFTWARE · LECTURE-1 . Syllabus Introduction • 1.1 Introduction to Object Oriented • 1.2 Introduction to UML • 1.3 Software Process and

OO Programming

Page 6: 1st Semester MTCE 601A COMPUTER SYSTEM SOFTWARE · LECTURE-1 . Syllabus Introduction • 1.1 Introduction to Object Oriented • 1.2 Introduction to UML • 1.3 Software Process and

Designing Programs

Software Development – Solving Problem

Problem Space

Business Process

Place Order

Inventory

Shipping

Computer System

Descriptions of problem (Human: Requirements) Natural Language

Descriptions of solution (Human: Designing Program )

Programming Language

Execution of program Solution Space

A Gap between languages

Page 7: 1st Semester MTCE 601A COMPUTER SYSTEM SOFTWARE · LECTURE-1 . Syllabus Introduction • 1.1 Introduction to Object Oriented • 1.2 Introduction to UML • 1.3 Software Process and

Software Development – Solving Problem

Problem Space

Computer System

Descriptions of problem (Human: Requirements) Natural Language

Descriptions of solution (Human: Designing Programs)

Programming Language

Execution of program Solution Space

A Gap between languages

Machine Language

Assembly Language

High-Level Language (Procedural) e.g. C, BASIC

High-Level Language (Object-Oriented) e.g. C++ Java

Place Order

Inventory

Shipping

Business Process

Page 8: 1st Semester MTCE 601A COMPUTER SYSTEM SOFTWARE · LECTURE-1 . Syllabus Introduction • 1.1 Introduction to Object Oriented • 1.2 Introduction to UML • 1.3 Software Process and

Procedural Programming • This programming paradigm is essentially an abstraction

of machine /assembly language.

• Program is organized around procedures.

• Focus on data structures, algorithms and sequencing of steps

Programs = Algorithm + Data Structure

An algorithm is a set of instructions for solving a problem

A data structure is a construct used to organize data in a specific way.

Most computer languages, from early examples like FORTRAN and ALGOL to more recent languages like C and Ada, have been imperative or procedural.

Page 9: 1st Semester MTCE 601A COMPUTER SYSTEM SOFTWARE · LECTURE-1 . Syllabus Introduction • 1.1 Introduction to Object Oriented • 1.2 Introduction to UML • 1.3 Software Process and

Procedural Programming - Example

• Writing a program to handle bank accounts

– Customer can open different type of accounts, such as cash account, check account and Loan account.

– For each account, customer can deposit, withdraw or transfer.

• How to write this program with C ?

Page 10: 1st Semester MTCE 601A COMPUTER SYSTEM SOFTWARE · LECTURE-1 . Syllabus Introduction • 1.1 Introduction to Object Oriented • 1.2 Introduction to UML • 1.3 Software Process and

Procedural Programming - Example

• A procedural programming language usually consists of : – A collection of variables, each of which at any stage contains a certain

value (a number, a character, a string of characters, etc)

– A collection of statements that change the values of these variables.

• The building-block of this type program is the procedure or function.

Programs = Algorithm + Data Structure

Struct account { char name; int accountId; float balance; float interestYTD; char accountType; };

Data Structure:

Bank Account

Procedure 1: Deposit() {...}

Procedure 1: Withdraw() {...}

Procedure 1: Transfer() {...}

Page 11: 1st Semester MTCE 601A COMPUTER SYSTEM SOFTWARE · LECTURE-1 . Syllabus Introduction • 1.1 Introduction to Object Oriented • 1.2 Introduction to UML • 1.3 Software Process and

Procedural Programming - Disadvantages • Procedures and data are clearly separated.

• Transformation of concepts between analysis & implementation.

• Design models are a long step from implementation.

• Procedures are often hard to reuse.

• Programs are often hard to extend and maintain.

Data Procedure

Hudson river NJ NY

a gap Analysis Design

Hudson river NJ NY

a gap

Page 12: 1st Semester MTCE 601A COMPUTER SYSTEM SOFTWARE · LECTURE-1 . Syllabus Introduction • 1.1 Introduction to Object Oriented • 1.2 Introduction to UML • 1.3 Software Process and

Object-Oriented Programming: OOP • A design and programming technique

• Some terminology: – object - usually a person, place or thing (a noun)

– method - an action performed by an object (a verb)

– type or class - a category of similar objects (such as automobiles)

• Objects have both data and methods

• Objects of the same class have the same data elements and methods

• Objects send and receive messages to invoke actions

Page 13: 1st Semester MTCE 601A COMPUTER SYSTEM SOFTWARE · LECTURE-1 . Syllabus Introduction • 1.1 Introduction to Object Oriented • 1.2 Introduction to UML • 1.3 Software Process and

Object-Oriented Programming - Example • Writing a program to handle bank accounts

– Customer can open different type of accounts, such as cash account, check account and Loan account.

– For each account, customer can deposit, withdraw or transfer.

• How to write this program with C++ or Java ?

Page 14: 1st Semester MTCE 601A COMPUTER SYSTEM SOFTWARE · LECTURE-1 . Syllabus Introduction • 1.1 Introduction to Object Oriented • 1.2 Introduction to UML • 1.3 Software Process and

Object-Oriented Programming - Example • Object-Oriented approach

– combine the accounts (data) with the operations on the accounts to objects.

– A new kind of data type: BankAccount class

• C++ code: Class BankAccount {

private:

float balance;

float interestYTD;char * owner;

int account_number;

public:

void Deposit (float amount) {...}

float WithDraw (float amount) {…}

bool Transfer (BankAccount & to, float amount) {…}

};

Page 15: 1st Semester MTCE 601A COMPUTER SYSTEM SOFTWARE · LECTURE-1 . Syllabus Introduction • 1.1 Introduction to Object Oriented • 1.2 Introduction to UML • 1.3 Software Process and

Object-Oriented Programming - Example • The building-block of this type program is class

or objects.

Page 16: 1st Semester MTCE 601A COMPUTER SYSTEM SOFTWARE · LECTURE-1 . Syllabus Introduction • 1.1 Introduction to Object Oriented • 1.2 Introduction to UML • 1.3 Software Process and

What Is Object Technology? • Object Technology

– A set of principles guiding software construction together with languages, databases, and other tools that support those principles. (Object Technology - A Manager’s Guide, Taylor, 1997)

Page 17: 1st Semester MTCE 601A COMPUTER SYSTEM SOFTWARE · LECTURE-1 . Syllabus Introduction • 1.1 Introduction to Object Oriented • 1.2 Introduction to UML • 1.3 Software Process and

The History of Object Technology • Major object technology milestones

Simula

1967

C ++

Late 1980s

Smalltalk

1972

Java

1991

The UML

1996

???

2000+