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

Application Development and Emerging Technologies

Understanding the Fundamentals of Application Development and Emerging Technologies

Uploaded by

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

Application Development and Emerging Technologies

Understanding the Fundamentals of Application Development and Emerging Technologies

Uploaded by

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

Application

Development and
Emerging Technologies

LESSON 1. WHAT IS A SOFTWARE?


LESSON 2. TYPES OF APPLICATION DEVELOPMENT
LESSON 3. SOFTWARE PARADIGMS
LESSON4. SOFTWARE DEVELOPMENT LIFE CYCLE
LESSON 5. REQUIREMENTS GATHERING
LESSON6. DATA GATHERING GUIDELINES
LESSON 7. SOFTWARE DESIGN BASICS

1|P age
LESSON 1. WHAT IS A SOFTWARE?

System software is a type of software that provides a platform for other software to run on. It
includes operating systems, device drivers, utilities, and other fundamental software necessary
for a computer to operate.

2|P age
Example of System Software
Operating System: Microsoft Windows

Description: Microsoft Windows is a widely used operating system that provides the
foundational software environment for personal computers. It manages hardware resources,
provides a user interface, and allows other software applications to run on a computer. Windows
offers a graphical user interface (GUI) that includes features like file management, taskbar, and a
start menu.

Key Features:

1. User Interface: Windows provides a graphical user interface with icons, windows, and
menus, making it user-friendly and accessible.
2. File Management: The operating system includes a file explorer for organizing,
navigating, and managing files and folders on the computer.
3. Device Drivers: Windows comes with a variety of built-in device drivers to facilitate
communication between the operating system and hardware components such as
printers, graphics cards, and network adapters.
4. Memory Management: It manages the computer's memory, allocating and deallocating
resources as needed by different processes and applications.
5. Security: Windows includes security features such as user accounts, access controls, and
firewalls to protect the system from unauthorized access and malware.
6. Task Scheduling: The operating system schedules tasks and manages the execution of
processes, ensuring efficient use of system resources.
7. Networking: Windows supports network connectivity, allowing computers to
communicate and share resources over local and wide-area networks.
8. Updates and Patches: Microsoft regularly releases updates and patches to enhance
security, fix bugs, and introduce new features.
9. Compatibility: Windows is designed to be compatible with a wide range of software
applications, making it a versatile platform for various tasks.
10. Virtual Memory: It utilizes virtual memory to extend the available RAM, enabling the
execution of larger programs and multiple applications simultaneously.

3|P age
Application software is designed to perform specific tasks for end-users. Unlike system
software, which provides a platform for other software to run, application software is directly
used by individuals or organizations to achieve particular objectives.

Example of Application Software

Application Software: Adobe Photoshop


Description: Adobe Photoshop is a powerful graphics editing software developed by Adobe Inc.
It is widely used by photographers, graphic designers, and digital artists for image editing,
retouching, and manipulation. Photoshop offers a comprehensive set of tools and features that
enable users to create, enhance, and manipulate digital images.

Key Features:

1. Image Editing Tools: Photoshop provides a variety of tools for cropping, resizing, and
retouching images.
2. Layers: Users can work with multiple layers, allowing for non-destructive editing and
better organization of elements within an image.
3. Selection Tools: Photoshop includes selection tools such as the Magic Wand and Lasso,
enabling precise isolation and manipulation of specific parts of an image.
4. Filters and Effects: Users can apply a wide range of filters and effects to enhance or
alter the appearance of images.
5. Text Editing: Photoshop allows users to add and manipulate text within images, offering
various fonts, styles, and formatting options.
6. Drawing and Painting Tools: Digital artists can use Photoshop for drawing and
painting with a variety of brushes and customizable settings.
7. Color Correction: The software provides advanced color correction and adjustment
tools, including levels, curves, and hue/saturation controls.
8. Retouching and Healing: Photoshop includes tools for removing blemishes, wrinkles,
and other imperfections from photographs.
9. Support for Various File Formats: Users can work with a wide range of file formats,
including JPEG, PNG, GIF, and PSD (Photoshop Document).
10. Integration with Other Adobe Products: Photoshop seamlessly integrates with other
Adobe Creative Cloud applications like Illustrator and InDesign for a cohesive design
workflow.

4|P age
Programming software, often referred to as integrated development environments (IDEs) or
code editors, provides tools and features that help programmers write, test, and debug code
more efficiently.

Example of a Programming Software

5|P age
6|P age
7|P age
8|P age
LESSON 2. TYPES OF APPLICATION DEVELOPMENT

Application development, also known as software development or software engineering, refers


to the process of creating and designing computer programs or applications that perform specific
tasks for end-users or other software systems. This process involves a series of steps, from
conceptualization and planning to coding, testing, and deployment. Application development can
encompass a wide range of software types, including mobile apps, web applications, desktop
applications, and more.

TYPES OF APPLICATION DEVELOPMENT

Desktop Application Development


A desktop application is a computer program that runs locally on a computer device, such as
desktop or laptop computer, in contrast to a web application, which is delivered to a local device
over the Internet from a remote server. Desktop application runs stand alone in a desktop or
laptop computer.

Importance of Desktop Application


● Better performance

● Data and storage

● Integration

● Working offline

● Operating system features

● Hardware integration

● Controlled environment

● Security limitations

9|P age
Web Application Development
Web application development is the creation of application programs that reside on remote
servers and are delivered to the user's device over the Internet. A web application (web app) does
not need to be downloaded and is accessed through a network.

Importance of Web Application


● Improved Efficiency

● 24 / 7 Accessibility

● Higher Levels of Security

● Easy Customizable and Scalable

● Easy Installation and Maintenance

Mobile Application Development


Mobile Application Development- Mobile application development is the process of creating software
applications that run on a mobile device, and a typical mobile application utilizes a network connection to
work with remote computing resources.

Importance Development of Mobile Applications


● Strengthen customer engagement

● Increase accessibility

● Provide value for customers.

● Transforming the retail experience

● Build brand awareness and recognition

● Stand out from the competition

● Cultivate customer loyalty

● Unique services and payment.

10 | P a g e
BEST LANGUAGES FOR APPLICATION DEVELOPMENT
● C++. A very popular language for performance-critical applications that rely on speed
and efficient memory management. It’s used in a wide range of industries including
software and game development, VR, robotics, computing.
● HTML. A programming language whose acronym stands for Hyper Text Markup
Language. It is a system that allows the modification of the appearance of web pages, as
well as making adjustments to their appearance. It also used to structure and present
content for the web
● C#. Widely used for developing desktop applications, web applications and web
services. It is used in creating applications for Microsoft at a large scale. C# is also used
in game development in Unity.
● Java. A programming language, designed to be concurrent, class based and object-
oriented, as well as a computing platform first released by Sun Microsystems in 1995. An
enormous amount of applications and websites will not work unless you have Java
installed, and more are created every day.
Python. A general purpose programming language. Hence, you can use the programming
language for developing both desktop and web applications. Also, you can use Python
for developing complex scientific and numeric applications. Python is designed with
features to facilitate data visualization.

11 | P a g e
Requirement gathering, also known as requirements analysis or elicitation, plays a
crucial role in the software development paradigm. It is the initial phase of the software
development life cycle and involves collecting and documenting information about the
features, functionalities, and constraints of the software to be developed. The main goals
of requirement gathering are to understand the needs of the stakeholders, define the
scope of the project, and establish a solid foundation for the subsequent phases of
development.

12 | P a g e
Role of Requirement Gathering in the software Development Paradigm

13 | P a g e
14 | P a g e
The term "design" refers to the process of creating a plan or blueprint for a software
system before the actual implementation begins. Software design involves making
decisions about how the various components of a system will interact, what their
responsibilities will be, and how they will be organized to meet the specified requirements.
The design phase is a crucial step in the software development life cycle and lays the
foundation for the subsequent development, testing, and maintenance phases.

15 | P a g e
16 | P a g e
Maintenance refers to the activities involved in keeping a software system operational
and effective after it has been deployed. Software maintenance is a crucial phase in the
software development life cycle and encompasses a range of tasks aimed at addressing
issues, improving functionality, adapting to changes, and ensuring the long-term viability
of the software.

Four Types of Software Maintenance

17 | P a g e
18 | P a g e
19 | P a g e
Programming, within the context of software development paradigms, refers to the act
of writing and designing the code that makes up a software application. It is a crucial
phase in the software development life cycle and involves translating the requirements
and design specifications into a set of instructions that a computer can execute.
Programming encompasses various activities related to coding, debugging, and testing,
and it plays a central role in bringing a software project from concept to reality .

Key Aspects of Programming in the Software Development Paradigm

1. Coding:
Coding is the process of writing source code using a programming language. This
involves creating the algorithms and instructions that define the behavior of the
software. The choice of programming language depends on the project's
requirements and the development team's preferences and expertise.
2. Implementation of Design:
Programmers implement the design specifications created during the design
phase. This involves creating classes, functions, and modules based on the
architectural and component-level designs.
3. Translating Requirements into Code:

Programmers use the gathered requirements to write code that meets the functional
and non-functional specifications outlined in the project's documentation. The goal is
to implement features and functionalities as described in the requirements.

4. Algorithm Design:
Programmers design algorithms to solve specific problems or perform tasks within
the software. The efficiency and correctness of algorithms directly impact the
overall performance of the software.

20 | P a g e
5. Data Structures:
Programmers choose and implement appropriate data structures to organize and
manipulate data efficiently. This includes arrays, lists, stacks, queues, trees, and
other data structures based on the needs of the application.

6. Coding Standards:
Following coding standards and best practices ensures consistency and readability
in the codebase. Adhering to established conventions makes the code more
maintainable and facilitates collaboration within the development team.

7. Debugging:
Debugging is the process of identifying and fixing errors or bugs in the code.
Programmers use debugging tools and techniques to trace the execution of the
code, identify issues, and correct them.

8. Testing:
Programmers write test cases and conduct unit testing to verify that individual
components or functions of the software work as intended. Testing is an integral
part of programming to ensure the quality and reliability of the code.

9. Integration:
Integrating individual modules or components into a cohesive system is another
aspect of programming. Programmers ensure that different parts of the code work
together seamlessly.

10. Optimization:
Programmers may optimize code for performance by identifying and eliminating
bottlenecks, improving algorithms, or implementing more efficient data structures.

21 | P a g e
22 | P a g e
23 | P a g e
LESSON4. SOFTWARE DEVELOPMENT LIFE CYCLE

Software Development Life Cycle, SDLC for


short, is a well-defined, structured sequence of
stages in software engineering to develop the
intended software product.

S t e p s i n S DL C

 Communication – initiate the request\


 Requirement Gathering – bringing out the
information on what the project requirement is
 Feasibility Study - he team analyzes if a software
can be made to fulfill all requirements of the user and
if there is any possibility of software being no more
useful.
 System Analysis - decide a roadmap of their plan
and try to bring up the best software model suitable
for the project. Understanding the software
limitations and changes to be done
 Software design - The inputs from users and
information gathered in requirement gathering
phase are the inputs of this step. Output will be the
logical design and the physical design

 Coding – programming phase


 Testing – End user testing
 Integration – integration with other entity
 Implementation - installing the software on user machines
 Operation and Maintenance – maintaining the code, the systems for patch
updates.
 Disposition – retirement; legacy system

24 | P a g e
Iterative Model
This model leads the software development process in iterations. It projects the
process of development in cyclic manner repeating every step after every cycle of
SDLC process.

25 | P a g e
26 | P a g e
System Implementation

27 | P a g e
28 | P a g e
29 | P a g e
30 | P a g e
31 | P a g e
32 | P a g e
33 | P a g e
Lesson 5:

34 | P a g e
35 | P a g e
36 | P a g e
Lesson 6

Data gathering guidelines are a set of principles and recommendations that provide a
framework for collecting and handling data in a systematic, ethical, and efficient manner.
These guidelines are essential to ensure the accuracy, reliability, and ethical treatment of
data throughout the entire data collection process. The specific guidelines can vary
depending on the context and purpose of data gathering.

37 | P a g e
38 | P a g e
39 | P a g e
40 | P a g e
41 | P a g e
Lesson 7

42 | P a g e
43 | P a g e
44 | P a g e
45 | P a g e
46 | P a g e
47 | P a g e
48 | P a g e
49 | P a g e
50 | P a g e
51 | P a g e

You might also like