1st semester mtce 601a computer system software · lecture-1 . syllabus introduction • 1.1...
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](https://reader036.vdocuments.us/reader036/viewer/2022071103/5fdcdd0befc2ac53761edf43/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022071103/5fdcdd0befc2ac53761edf43/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022071103/5fdcdd0befc2ac53761edf43/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022071103/5fdcdd0befc2ac53761edf43/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022071103/5fdcdd0befc2ac53761edf43/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022071103/5fdcdd0befc2ac53761edf43/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022071103/5fdcdd0befc2ac53761edf43/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022071103/5fdcdd0befc2ac53761edf43/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022071103/5fdcdd0befc2ac53761edf43/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022071103/5fdcdd0befc2ac53761edf43/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022071103/5fdcdd0befc2ac53761edf43/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022071103/5fdcdd0befc2ac53761edf43/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022071103/5fdcdd0befc2ac53761edf43/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022071103/5fdcdd0befc2ac53761edf43/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022071103/5fdcdd0befc2ac53761edf43/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022071103/5fdcdd0befc2ac53761edf43/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022071103/5fdcdd0befc2ac53761edf43/html5/thumbnails/17.jpg)
The History of Object Technology • Major object technology milestones
Simula
1967
C ++
Late 1980s
Smalltalk
1972
Java
1991
The UML
1996
???
2000+