SOFTWARE DEVELOPMENT IN JAVA/PYTHON
COURSE OUTLINE
-Introduction to Software Development
* OOM concept with UML
-Introduction to OOP concept for software development
-Introduction to Java, python
* Datatypes
* IDEs
-Praticals
* Building UI (GUS) with framework
* Backend development
I. SOFTWARE DEVELOPMENT
DEFINITION:
It can be defined as the techniques used to design, build, deploy, and or maintain software applications.
Software development has the following steps;
-Requirement analysis
-Design
-Coding/Implementation
-Testing
-Deployment
-Maintenance..
LANGUAGES
Java and python are the two most popular languages for software development.
OVERVIEW OF SOFTWARE JAVA AND PYTHON
Feature Java Python
Type Compiled and strongly typed Interpreted and dynamically typed
Speed Faster execution Slower due to interpretation
Syntax Verbose and structural Simple and readable
domain of application Enterprise and android apps Web app, data science, scripting
Community support Large and mature Large and growing
I.2 OOP TECHNIQUES FOR SOFTWARE DEVELOPMENT
OOP is a programming paradigm based on objects that encapsulates data (fields or attributes) and
methods (functions).
[Link]
This the wrapping if data and methods in to a single unit called class.
[Link]
It refers to hiding important implementation details while exposing essential features.
[Link]
This is the possibility of one class (child) to acquire properties and behaviors of another class (parents).
[Link]
This is the ability of a single methods to operate on different types. Also, polymorphism refers to the
existing of an object I many forms.
SOFTWARES TO BE DOWNLOADED FOR THE COURSE
[Link]:
-Netbeans
-Eclipse
-Intellij
-JDK
[Link]
-python
-pycham
-Anaconda
-Vs Code (python plugin)
UML FOR SOFTWARE DEVELOPMENT
UML is a visual tool to design and represent system software. It focuses on diagrams (static and
behavioral) which shows the structure of a system and the various state and translations between the
components of the system. Example: A car state can be
PARKED→STARTING→MOVING→STOPPED.
OBJECT ORIENTED FRAMEWORKS
Frameworks provides pre-built classes and tools for application development. Popular oo frameworks
includes;
-
[Link]: It is a framework used for building GUIs
[Link]: This is a database frameworks
[Link]: Used for web development
-Python
[Link]: used for web application development
[Link]: used for building games
3. Panda3D: framework for building 3Dgames
4.Cocos2D: framework for building 2D games
[Link]: framework for testing python applications
[Link]: framework for building machine learning models
7. Nmark: Popular framework for building network scanning tools e.g.: Wireshark.
OBJECT ORIENTED INTERFACES
Interfaces defines methods without implementation and interfaces are implemented with the use of
classes. Lambda expression is a concise way to write functional interfaces (Interfaces with one abstract
methods).
N.B:
- In encapsulation, variables and methods that operate on data in a single unit is known as a class.
Access to the data is restricted using access modifiers (-private, +public, #protected) to ensure better
security and control.
- Inheritance allows a sub class to inherit properties and behavior from a super class. It also promote
code re usability.
- Polymorphism is achieved via method overloading (compile time) and method overriding (runtime).
- A class is a blueprint for creating objects. A class also defines the properties and the behavior.
- An object is an instance of a class representing a specific entity.
Advantages of OOP
1. Modularity: The code is divided in to smaller, manageable and reusable pieces (classes)
2. Code Reusability: Inheritance allows using existing codes in new applications
3. Maintainability: Encapsulation makes it easier to manage and update code
4. Scalability: Object and classes allowed for building large complex systems
5. Improves productivity: Using frameworks, libraries become seamless with OOP.
SOFTWARE DEVELOPMENT LANGUAGES
1. JAVA:
Java is a high level class based objected oriented programming language designed to be platform
independent and portable.
It was developed by James Gosling and his team at Sun micro system in 1995.
It is known for its Write Once Run Anywhere (WORA) capability. That is, JAVA can run on any device
with a JAVA Virtual machine.
CHARACTERISTICS:
[Link] independence
[Link] programs are compiled in to bite codes which can run on any device with a JVM regardless of
the OS.
[Link] Oriented: Java follows oop principles (…………).
[Link] is simple and easy to use: Java has a clean syntax and eliminate complex features like pointers,
operator overloading, memory management.
5. Java is secured: Java provides a secured runtime environment and restricts unsafe operations such as
memory access.
6. Robust: Java handles error effectively with exception handling and features automatic memory
management.
7. High performance: Though java is interpreted, it uses the Just In Time (JIT) compiler to optimise
performance.
8. Dynamic: Java supports dynamic lining of classes, making it adaptable to evolving environment.
JAVA ARCHITECTURE
1. JDK (JAVA Development Kits): This is a toolkit for developers to build java Programs. It includes
Java compiler, JVM and libraries.
2. JVM (JAVA Virtual Machine): It executes java bit codes. It also provides platform independence.
3. JRE (JAVA Runtime Environment): It includes JVM and runtime libraries necessary for running
Java programs.
JAVA PROGRAM STRICTURE
A java program consist of;
1. class declaration: to define the blueprint of an object
2. main methods: it is an entry point for the program execution
Java syntax
Public class helloworld{
public static void main (string[] args){
[Link](“hello, world:);
}
}
N.B: exam question, you can be asked to interpret.
JAVA DATA TYPES
Java has two data types;
1. Primitive: char, boolean, float and int
2. Non primitive data types: strings, arrays, classes and interfaces
3. Variables: variables are used to store data. Examples: int age=25, string name=”java”
4. Control statements. There are two types of control statements in java;
-Conditional statement( if, else, switch)
- loops ( for loop. While loop, do while loop).
for(int i=0; i<10; i++){
[Link](“number” +i);
}
HOLIDAYS HOMEWORK
Python
1. Build a school Dictionary Software for Neltech Inc.
2. Build a store Receipt management software that will print cashier name, date, and item bought (item
No, name, unit price, Qty, Total price, signature)
JAVA
To be sent in the group.
TYPES OF SOFTWARE SUITABLE FOR JAVA DEVELOPMENT
1. Android Application: Java is widely used for developing android applications since android OS
is built on Java.
2. Web Application: Java is used for developing large scale web application such as E-commerce
and social media platforms using a technology Springboot.
3. Enterprise Software: Java is used for developing enterprise level software such as CRM
systems (Customer Relationship Management ) and ERP systems (Enterprise Resource
Planning)
4. Desktop Application: JAVA is used for developing desktop applications such as media player,
(such as VLC Media player), Boom play and IDEs.
N.B: Java is highly used for software development because it is platform independent, object oriented,
robust security, large communities and extensive libraries.
TYPES OF SOFTWARE SUITABLE FOR PYTHON DEVELOPMENT
1. Data Science and Machine Learning: Python is widely used in data science and machine
learning for tasks like Data Analysis, Visualization and Model Building,
2. Software and Web Development: Python is used for web and software development especially
with frameworks like Django and Flask, Tkinter.
3. Automation: Python is used for automating tasks such as data entry, file management and
system administration.
4. Scientific Computing: Python is used to compute tasks like numerical simulation, analysis and
visualization of data.
5. Security Systems:
N.B: Python is widely used because it is easy to learn, enhance faster development, it has
extensive libraries (Numpy, PANDAs), it is a cross platform (Platform independent), and a
powerful tool in data science.
CRM and ERP Systems
1. CRM: these are software that help organizations to manage their interaction with customers,
clients and sales prospect.
Characteristics:
- Customer management
-Sales automation
-Marketing Automation
-CSS (Customer Service and support)
-Analysis/Reports
Benefits:
-Includes customer satisfaction
-Increases sales and revenue
-Enhance customer insights (feedback, reports, etc.)
2. ERP Systems: ERP system are software that help organization manage internal operations
including finances, human resources, supply chain, etc.
Characteristics:
-Financial Management
-Human Capital Management
-Supply chain Management
-Manufacturing operations
-Analysis and reports
Benefits:
-Improve operational efficiency
-Enhance Financial Management
-Better supply chain visibility
-Increase Productivity
-Improve decision making
CRM VS ERP
-CRM focuses on customer relationship while ERP focuses on internal operations
-CRM involves sales, marketing and customer services meanwhile ERP involves multiple department
including finance.