SlideShare a Scribd company logo
1 of 27
Download to read offline
Software Engineering
CICRA Pathway to Deakin Degree
Professional Diploma in Network and Systems Administration
Tharindu Weerasinghe
www.tharinduweerasinghe.com
Overview
• Introduction to Software Engineering
• Software Development Life Cycle
• Software Development Methods
• Programming Languages
• Compilers and Assemblers
• Basic Programming with C++
• Object Oriented Programming
• Introduction to Data Structures
Introduction
• In my point of view, Software Engineering is planning, designing,
implementing, maintaining and supporting of software systems for
specific work given. It pivots around areas on requirement gathering
and analysis, system design, prototyping, system implementation,
system integrating, system testing, system deployment and system
support.
• Different Types of Software:
l
Embedded Software (Running on Devices)
l
System Software (Like Operating Systems)
l
Application Software (Database Programs, Web based software, Word Processors
etc) [1]
l
Specific Application Software:
l
Enterprise Resource Planning (ERP) Systems
l
Content Management Systems (CMS)
l
Human Resource Management (HRM) Systems
Software/System Development Life Cycle
• All about gathering requirement, planning, designing, developing and
maintaining a software system. [2, 3]
• Many professionals involved in different phases.
l
Project Managers
l
Business System Analysts
l
Software Architects
l
Software Developers
l
Software Testers
l
Implementation Engineers
l
Customer Support Teams
Software Development Methods
• There are a lot methods but here I am giving you a few of the most common.
•
• Waterfall Method
Step by Step Mechanism which involves different phases of the life
cycle [4].
Software Development Methods
• Waterfall Method [4]:
l
Advantages:
l
Simple
l
Clearly defined steps
l
Targets are clearly defined
l
Disadvantages:
l
No delivery until all phases are finished
l
Not good for OOP and complex projects
l
Not good for long and ongoing projects
Software Development Methods
• Iterative Method [5]
Software Development Methods
• Agile Methods [6, 7]:
• Caters different projects differently.
• Small time frames with well defined outcomes.
• Working software is delivered after each iteration.
• More interactive.
Software Development Methods
• Scrum Methodology [7, 8]:
• Key Stakeholders:
• Product Owner – Gathers requirements, Discusses with the S/W
architects, Writes use-cases, Deals with major stakeholders of the
project, Release Management.
• Scrum Master – Makes sure the team is adhering to the scrum
principles, Coaches the scrum team, Ensures proper communication
between the product owner and the team
• Scrum Team - The team that performs the defined goals;
Software Development Methods
• Scrum Methodology [7, 8]:
Programming Languages
• The main platform where we can give instructions to the computer
to do something, with the help of predefined syntax.
l
Assembly Languages (Low-Level)
l
Z80, C
l
High-level Languages (OOP supported and Scripting)
l
C++, Java, C#.Net, VB.Net, PHP, Python, Javascript
l
Compilers
• Converts high-level programs into low-level programs
or machine code so that the hardware can
understand.
Assemblers
• Converts assembly code into machine code.
Sample Assembly Code [9]:
Start: .org $8020
SEI
LDA #$80
STA $0315
LDA #$2D
STA $0314
CLI
RTS
INC $D020
JMP $EA31
l
In machine code:
8020 78
8021 A9 80
8023 8D 15 03
8026 A9 2D
8028 8D 14 03
802B 58
802C 60
802D EE 20 D0
Programming in C++
// Our first program in C++
#include <iostream>
int main()
{
std::cout << "CICRA Diploma";
return 0;
}
Programming in C++
//Strings
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string myString;
myString = "I am new to CICRA!";
cout << myString << endl;
myString = "I am not new to CICRA";
cout << myString << endl;
return 0;
}
Programming in C++
//Basic Arithmetic Operations
#include <iostream>
#include <iomanip>
using namespace std;
int main ()
{
int a, b;
a = 15.00;
b = 10.00;
cout << "a + b = ";
cout << a+b << endl;
cout << "a - b = ";
cout << a-b << endl;
cout << "a * b = ";
cout << a*b << endl;
cout << "a / b = ";
cout << setprecision(2) << (float (a)/float (b)) <<
endl;
#include <iostream>
#include <iomanip>
using namespace std;
int main ()
{
int x, y, z;
z = 1;
char input;
cout << "Please Enter Number1:" << endl;
cin >> x;
cout << "Please Enter Number2:" << endl;
cin >> y;
if (x > y) {
cout << "nNumber1 is greater than Number2 " << endl << endl;
if ((x > 10) && (x < 20)){
do{
if (z<9)
cout << z << ",";
else
cout << z << ".";
z++;
}while(z<10);
}
}
else if (x==y) {
cout << "Number1 is equal to Number2"<< endl;
cout << "n======= Enter Options A to B =======n";
cout << "A. List Even Numbers between 0 to 10n";
cout << "B. List ODD Numbers between 0 to 10n";
cout << "nYour Option: ";
cin >> input;
switch (input){
case 'A':
for (int i=1; i<=10; i++){
if (i%2 == 0)
cout << i << " | ";
}
break;
case 'B':
for (int i=0; i<=10; i++){
if (i%2 == 1)
cout << i << " | ";
}
break;
default:
cout<<"nWrong Option!n";
}
}
else{
cout << "Number1 is less than Number2" << endl;
if (x < 10){
for (int i=0; i < x; i++){
cout << i << " ";
Programming in C++
Exercise:
1. Write a program to get the input from user for a
Centigrade Temperature and Output the Answer in
Fahrenheit.
Note: T(°F) = T(°C) × 1.8 + 32
2. Write a program to list down all prime numbers
between 0 and 20.
Note: A prime number is a number that can be divided
only from itself and 1, with out any remainder.
OOP Concepts in a nutshell
Class
Objects
Abstraction
Encapsulation
Inheritance
Overloading
Exception Handling
OOP Concepts in a nutshell
OOP Concepts in a nutshell
Class – Represents a real world entity;
Blue-print of an object
Object – An instance of a class
Abstraction – Hiding private information;
showing public things
Encapsulation -Binding data and functions
in a class
Inheritance – What you have inherited from
your ancestors. What you get from your
parent/super class.
Polymorphism -Many forms! Same function,
object can be used to manipulate different
things.
Exception Handling - Handle unresolved
errors or run-time errors.
OOP in C++ - in a nutshell
#include <iostream>
using namespace std;
// Base/Parent/Super class
class Shape {
public:
void setWidth(int w) {
width = w;
}
void setHeight(int h) {
height = h;
}
void setRadius(float r){
radius = r;
}
int calculateArea();
int calculatePerimeter();
protected:
int width;
int height;
float radius;
string color;
};
// Derived/Child class1
class Rectangle: public Shape {
public:
int calculateArea() {
return (width * height);
}
int calculatePerimeter(){
return (width*2 + height*2);
}
};
// Derived class2
class Circle: public Shape {
public:
int calculateArea() {
return (pi * radius * radius);
}
int calculatePerimeter(){
return (2*pi*radius);
}
protected:
float pi = 3.142;
};
int main(void) {
//Creating a Rectangle object
Rectangle Rect;
//Creating and initializing a Circle object
Circle Cir;
Rect.setWidth(5);
Rect.setHeight(7);
Cir.setRadius(5.5);
// Print the details of the Rectangle object.
cout << "Rect Area: " << Rect.calculateArea() << endl;
cout << "Rect Perimeter: " << Rect.calculatePerimeter() << endl << endl;
// Print the area of the Rectangle object.
cout << "Cir Area: " << Cir.calculateArea() << endl;
cout << "Cir Perimeter: " << Cir.calculatePerimeter() << endl;
OOP Concepts in a nutshell
Class – Represents a real world entity;
Blue-print of an object
Object – An instance of a class
Abstraction – Hiding private information;
showing public things
Encapsulation -Binding data and functions
in a class
Inheritance – What you have inherited from
your ancestors. What you get from your
parent/super class.
Polymorphism -Many forms! Same function,
object can be used to manipulate different
things.
Exception Handling - Handle unresolved
errors or run-time errors.
Introduction to Data Structures in a nutshell
Let's talk something on S/W Testing and QA (Discussion)
* Testing is very important as same as development
*Developers must do unit testing/developer testing
*Dedicated test engineers write test data
*Automated testing is used extensively now.
*QA is making sure all functionality work according to the
initial specification approved by the client.
References – Mentioned with Thanks
[1] http://www.webopedia.com/TERM/A/application.html
[2]https://en.wikipedia.org/wiki/Systems_development_life_cycle
[3] https://www.techopedia.com/definition/22193/software-development-life-cycle-sdlc
[4]https://www.tutorialspoint.com/sdlc/sdlc_waterfall_model.htm
[5]https://www.tutorialspoint.com/sdlc/sdlc_iterative_model.htm
[6]https://www.tutorialspoint.com/sdlc/sdlc_agile_model.htm
[7]https://www.versionone.com/agile-101/agile-methodologies/
[8] http://www.c-sharpcorner.com/UploadFile/d9c992/the-agile-scrum-framework/
[9] http://wiki.c2.com/?MachineCode
[10] http://www.cplusplus.com/doc/tutorial/program_structure/
[11]http://www.cplusplus.com/doc/tutorial/variables/
[12]http://www.rapidtables.com/convert/temperature/how-celsius-to-fahrenheit.htm
[13]http://www.studytonight.com/cpp/cpp-and-oops-concepts.php
[14]http://tx.english-ch.com/teacher/aisa/level-a/animal-classes/
[15] http://magizbox.com/training/object_oriented_programming/site/overview/
[16]http://www.studytonight.com/data-structures/introduction-to-data-structures
Special Thanks: Seebo Networks Lanka (Pvt) Ltd. And IFS R&D International (Pvt) Ltd for all the
things I learned there and also knowledge, tips and hints taken from their training materials;
specially IFS and also internet resources that I referred apart from above specially for images for
DS which I could not mention the URLs here; they were take from my Articles to Vidusara
Magazine.

More Related Content

Similar to Software Engineering

[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
Sang Don Kim
 

Similar to Software Engineering (20)

Presentation c++
Presentation c++Presentation c++
Presentation c++
 
c++ referesher 1.pdf
c++ referesher 1.pdfc++ referesher 1.pdf
c++ referesher 1.pdf
 
OOPS using C++
OOPS using C++OOPS using C++
OOPS using C++
 
Prog1-L1.pdf
Prog1-L1.pdfProg1-L1.pdf
Prog1-L1.pdf
 
Introduction Of C++
Introduction Of C++Introduction Of C++
Introduction Of C++
 
C++ basics
C++ basicsC++ basics
C++ basics
 
Introduction to C ++.pptx
Introduction to C ++.pptxIntroduction to C ++.pptx
Introduction to C ++.pptx
 
73d32 session1 c++
73d32 session1 c++73d32 session1 c++
73d32 session1 c++
 
270_1_CIntro_Up_To_Functions.ppt
270_1_CIntro_Up_To_Functions.ppt270_1_CIntro_Up_To_Functions.ppt
270_1_CIntro_Up_To_Functions.ppt
 
Survey of programming language getting started in C
Survey of programming language getting started in CSurvey of programming language getting started in C
Survey of programming language getting started in C
 
270 1 c_intro_up_to_functions
270 1 c_intro_up_to_functions270 1 c_intro_up_to_functions
270 1 c_intro_up_to_functions
 
270_1_CIntro_Up_To_Functions.ppt
270_1_CIntro_Up_To_Functions.ppt270_1_CIntro_Up_To_Functions.ppt
270_1_CIntro_Up_To_Functions.ppt
 
PRINCE PRESENTATION(1).pptx
PRINCE PRESENTATION(1).pptxPRINCE PRESENTATION(1).pptx
PRINCE PRESENTATION(1).pptx
 
C++ advanced PPT.pdf
C++ advanced PPT.pdfC++ advanced PPT.pdf
C++ advanced PPT.pdf
 
មេរៀនៈ Data Structure and Algorithm in C/C++
មេរៀនៈ Data Structure and Algorithm in C/C++មេរៀនៈ Data Structure and Algorithm in C/C++
មេរៀនៈ Data Structure and Algorithm in C/C++
 
270_1_CIntro_Up_To_Functions.ppt
270_1_CIntro_Up_To_Functions.ppt270_1_CIntro_Up_To_Functions.ppt
270_1_CIntro_Up_To_Functions.ppt
 
Cpa lecture (theory) 01_
Cpa lecture (theory) 01_Cpa lecture (theory) 01_
Cpa lecture (theory) 01_
 
C# 101: Intro to Programming with C#
C# 101: Intro to Programming with C#C# 101: Intro to Programming with C#
C# 101: Intro to Programming with C#
 
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
 
C Language
C LanguageC Language
C Language
 

More from Tharindu Weerasinghe

More from Tharindu Weerasinghe (20)

C Propgramming.pdf
C Propgramming.pdfC Propgramming.pdf
C Propgramming.pdf
 
Basics of Computer Networks in Sinhala
Basics of Computer Networks in SinhalaBasics of Computer Networks in Sinhala
Basics of Computer Networks in Sinhala
 
Data Structures & Algorithms in Sinhala
Data Structures & Algorithms in SinhalaData Structures & Algorithms in Sinhala
Data Structures & Algorithms in Sinhala
 
Object Oriended Programming in Sinhala
Object Oriended Programming in Sinhala Object Oriended Programming in Sinhala
Object Oriended Programming in Sinhala
 
Tips For A Better Undergraduate Research
Tips For A Better Undergraduate ResearchTips For A Better Undergraduate Research
Tips For A Better Undergraduate Research
 
Basics of Block Chain
Basics of Block ChainBasics of Block Chain
Basics of Block Chain
 
Basics of IoT
Basics of IoTBasics of IoT
Basics of IoT
 
REST API Basics
REST API BasicsREST API Basics
REST API Basics
 
Cloud Conputing Basics and some Related Research Topics
Cloud Conputing Basics and some Related Research TopicsCloud Conputing Basics and some Related Research Topics
Cloud Conputing Basics and some Related Research Topics
 
Basic Concepts and Trends in Emerging Technologies
Basic Concepts and Trends in Emerging TechnologiesBasic Concepts and Trends in Emerging Technologies
Basic Concepts and Trends in Emerging Technologies
 
Introcution to EJB
Introcution to EJBIntrocution to EJB
Introcution to EJB
 
Introduction to Enterprise Applications and Tools
Introduction to Enterprise Applications and ToolsIntroduction to Enterprise Applications and Tools
Introduction to Enterprise Applications and Tools
 
Introduction to Agile Software Development & Python
Introduction to Agile Software Development & PythonIntroduction to Agile Software Development & Python
Introduction to Agile Software Development & Python
 
Agile Languages for Rapid Prototyping
Agile Languages for Rapid PrototypingAgile Languages for Rapid Prototyping
Agile Languages for Rapid Prototyping
 
Things to ponder before you start building [cooperate] software
Things to ponder before you start building [cooperate] softwareThings to ponder before you start building [cooperate] software
Things to ponder before you start building [cooperate] software
 
How to make screens and the internet safe for Children
How to make screens and the internet safe for Children How to make screens and the internet safe for Children
How to make screens and the internet safe for Children
 
Different Concepts on Databases
Different Concepts on DatabasesDifferent Concepts on Databases
Different Concepts on Databases
 
A Survey Study on Higher Education Trends among Sri Lankan IT Professionals
A Survey Study on Higher Education Trends among Sri Lankan IT ProfessionalsA Survey Study on Higher Education Trends among Sri Lankan IT Professionals
A Survey Study on Higher Education Trends among Sri Lankan IT Professionals
 
A Survey Study on Higher Education Trends among Information Technology Prof...
A Survey Study  on  Higher Education Trends among Information Technology Prof...A Survey Study  on  Higher Education Trends among Information Technology Prof...
A Survey Study on Higher Education Trends among Information Technology Prof...
 
Professionalism and Industry Expectations related to IT industry
Professionalism and Industry Expectations related to IT industry  Professionalism and Industry Expectations related to IT industry
Professionalism and Industry Expectations related to IT industry
 

Recently uploaded

The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 

Recently uploaded (20)

%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 

Software Engineering

  • 1. Software Engineering CICRA Pathway to Deakin Degree Professional Diploma in Network and Systems Administration Tharindu Weerasinghe www.tharinduweerasinghe.com
  • 2. Overview • Introduction to Software Engineering • Software Development Life Cycle • Software Development Methods • Programming Languages • Compilers and Assemblers • Basic Programming with C++ • Object Oriented Programming • Introduction to Data Structures
  • 3. Introduction • In my point of view, Software Engineering is planning, designing, implementing, maintaining and supporting of software systems for specific work given. It pivots around areas on requirement gathering and analysis, system design, prototyping, system implementation, system integrating, system testing, system deployment and system support. • Different Types of Software: l Embedded Software (Running on Devices) l System Software (Like Operating Systems) l Application Software (Database Programs, Web based software, Word Processors etc) [1] l Specific Application Software: l Enterprise Resource Planning (ERP) Systems l Content Management Systems (CMS) l Human Resource Management (HRM) Systems
  • 4. Software/System Development Life Cycle • All about gathering requirement, planning, designing, developing and maintaining a software system. [2, 3] • Many professionals involved in different phases. l Project Managers l Business System Analysts l Software Architects l Software Developers l Software Testers l Implementation Engineers l Customer Support Teams
  • 5. Software Development Methods • There are a lot methods but here I am giving you a few of the most common. • • Waterfall Method Step by Step Mechanism which involves different phases of the life cycle [4].
  • 6. Software Development Methods • Waterfall Method [4]: l Advantages: l Simple l Clearly defined steps l Targets are clearly defined l Disadvantages: l No delivery until all phases are finished l Not good for OOP and complex projects l Not good for long and ongoing projects
  • 7. Software Development Methods • Iterative Method [5]
  • 8. Software Development Methods • Agile Methods [6, 7]: • Caters different projects differently. • Small time frames with well defined outcomes. • Working software is delivered after each iteration. • More interactive.
  • 9. Software Development Methods • Scrum Methodology [7, 8]: • Key Stakeholders: • Product Owner – Gathers requirements, Discusses with the S/W architects, Writes use-cases, Deals with major stakeholders of the project, Release Management. • Scrum Master – Makes sure the team is adhering to the scrum principles, Coaches the scrum team, Ensures proper communication between the product owner and the team • Scrum Team - The team that performs the defined goals;
  • 10. Software Development Methods • Scrum Methodology [7, 8]:
  • 11. Programming Languages • The main platform where we can give instructions to the computer to do something, with the help of predefined syntax. l Assembly Languages (Low-Level) l Z80, C l High-level Languages (OOP supported and Scripting) l C++, Java, C#.Net, VB.Net, PHP, Python, Javascript l
  • 12. Compilers • Converts high-level programs into low-level programs or machine code so that the hardware can understand.
  • 13. Assemblers • Converts assembly code into machine code. Sample Assembly Code [9]: Start: .org $8020 SEI LDA #$80 STA $0315 LDA #$2D STA $0314 CLI RTS INC $D020 JMP $EA31 l In machine code: 8020 78 8021 A9 80 8023 8D 15 03 8026 A9 2D 8028 8D 14 03 802B 58 802C 60 802D EE 20 D0
  • 14. Programming in C++ // Our first program in C++ #include <iostream> int main() { std::cout << "CICRA Diploma"; return 0; }
  • 15. Programming in C++ //Strings #include <iostream> #include <string> using namespace std; int main () { string myString; myString = "I am new to CICRA!"; cout << myString << endl; myString = "I am not new to CICRA"; cout << myString << endl; return 0; }
  • 16. Programming in C++ //Basic Arithmetic Operations #include <iostream> #include <iomanip> using namespace std; int main () { int a, b; a = 15.00; b = 10.00; cout << "a + b = "; cout << a+b << endl; cout << "a - b = "; cout << a-b << endl; cout << "a * b = "; cout << a*b << endl; cout << "a / b = "; cout << setprecision(2) << (float (a)/float (b)) << endl;
  • 17. #include <iostream> #include <iomanip> using namespace std; int main () { int x, y, z; z = 1; char input; cout << "Please Enter Number1:" << endl; cin >> x; cout << "Please Enter Number2:" << endl; cin >> y; if (x > y) { cout << "nNumber1 is greater than Number2 " << endl << endl; if ((x > 10) && (x < 20)){ do{ if (z<9) cout << z << ","; else cout << z << "."; z++; }while(z<10); } } else if (x==y) { cout << "Number1 is equal to Number2"<< endl; cout << "n======= Enter Options A to B =======n"; cout << "A. List Even Numbers between 0 to 10n"; cout << "B. List ODD Numbers between 0 to 10n"; cout << "nYour Option: "; cin >> input; switch (input){ case 'A': for (int i=1; i<=10; i++){ if (i%2 == 0) cout << i << " | "; } break; case 'B': for (int i=0; i<=10; i++){ if (i%2 == 1) cout << i << " | "; } break; default: cout<<"nWrong Option!n"; } } else{ cout << "Number1 is less than Number2" << endl; if (x < 10){ for (int i=0; i < x; i++){ cout << i << " ";
  • 18. Programming in C++ Exercise: 1. Write a program to get the input from user for a Centigrade Temperature and Output the Answer in Fahrenheit. Note: T(°F) = T(°C) × 1.8 + 32 2. Write a program to list down all prime numbers between 0 and 20. Note: A prime number is a number that can be divided only from itself and 1, with out any remainder.
  • 19. OOP Concepts in a nutshell Class Objects Abstraction Encapsulation Inheritance Overloading Exception Handling
  • 20. OOP Concepts in a nutshell
  • 21. OOP Concepts in a nutshell Class – Represents a real world entity; Blue-print of an object Object – An instance of a class Abstraction – Hiding private information; showing public things Encapsulation -Binding data and functions in a class Inheritance – What you have inherited from your ancestors. What you get from your parent/super class. Polymorphism -Many forms! Same function, object can be used to manipulate different things. Exception Handling - Handle unresolved errors or run-time errors.
  • 22. OOP in C++ - in a nutshell #include <iostream> using namespace std; // Base/Parent/Super class class Shape { public: void setWidth(int w) { width = w; } void setHeight(int h) { height = h; } void setRadius(float r){ radius = r; } int calculateArea(); int calculatePerimeter(); protected: int width; int height; float radius; string color; }; // Derived/Child class1 class Rectangle: public Shape { public: int calculateArea() { return (width * height); } int calculatePerimeter(){ return (width*2 + height*2); } }; // Derived class2 class Circle: public Shape { public: int calculateArea() { return (pi * radius * radius); } int calculatePerimeter(){ return (2*pi*radius); } protected: float pi = 3.142; }; int main(void) { //Creating a Rectangle object Rectangle Rect; //Creating and initializing a Circle object Circle Cir; Rect.setWidth(5); Rect.setHeight(7); Cir.setRadius(5.5); // Print the details of the Rectangle object. cout << "Rect Area: " << Rect.calculateArea() << endl; cout << "Rect Perimeter: " << Rect.calculatePerimeter() << endl << endl; // Print the area of the Rectangle object. cout << "Cir Area: " << Cir.calculateArea() << endl; cout << "Cir Perimeter: " << Cir.calculatePerimeter() << endl;
  • 23. OOP Concepts in a nutshell Class – Represents a real world entity; Blue-print of an object Object – An instance of a class Abstraction – Hiding private information; showing public things Encapsulation -Binding data and functions in a class Inheritance – What you have inherited from your ancestors. What you get from your parent/super class. Polymorphism -Many forms! Same function, object can be used to manipulate different things. Exception Handling - Handle unresolved errors or run-time errors.
  • 24. Introduction to Data Structures in a nutshell
  • 25.
  • 26. Let's talk something on S/W Testing and QA (Discussion) * Testing is very important as same as development *Developers must do unit testing/developer testing *Dedicated test engineers write test data *Automated testing is used extensively now. *QA is making sure all functionality work according to the initial specification approved by the client.
  • 27. References – Mentioned with Thanks [1] http://www.webopedia.com/TERM/A/application.html [2]https://en.wikipedia.org/wiki/Systems_development_life_cycle [3] https://www.techopedia.com/definition/22193/software-development-life-cycle-sdlc [4]https://www.tutorialspoint.com/sdlc/sdlc_waterfall_model.htm [5]https://www.tutorialspoint.com/sdlc/sdlc_iterative_model.htm [6]https://www.tutorialspoint.com/sdlc/sdlc_agile_model.htm [7]https://www.versionone.com/agile-101/agile-methodologies/ [8] http://www.c-sharpcorner.com/UploadFile/d9c992/the-agile-scrum-framework/ [9] http://wiki.c2.com/?MachineCode [10] http://www.cplusplus.com/doc/tutorial/program_structure/ [11]http://www.cplusplus.com/doc/tutorial/variables/ [12]http://www.rapidtables.com/convert/temperature/how-celsius-to-fahrenheit.htm [13]http://www.studytonight.com/cpp/cpp-and-oops-concepts.php [14]http://tx.english-ch.com/teacher/aisa/level-a/animal-classes/ [15] http://magizbox.com/training/object_oriented_programming/site/overview/ [16]http://www.studytonight.com/data-structures/introduction-to-data-structures Special Thanks: Seebo Networks Lanka (Pvt) Ltd. And IFS R&D International (Pvt) Ltd for all the things I learned there and also knowledge, tips and hints taken from their training materials; specially IFS and also internet resources that I referred apart from above specially for images for DS which I could not mention the URLs here; they were take from my Articles to Vidusara Magazine.