0% found this document useful (0 votes)
10 views36 pages

Software-Development-Environment

The document outlines the concept of a Software Development Environment (SDE), which automates tasks in the software development cycle and includes various types of environments and tools. It also explains the components of a Software Development Kit (SDK) and differentiates between SDKs and APIs, highlighting their roles in application development. Additionally, it introduces Integrated Development Environments (IDEs), detailing their features and providing examples of popular IDEs used for software programming.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views36 pages

Software-Development-Environment

The document outlines the concept of a Software Development Environment (SDE), which automates tasks in the software development cycle and includes various types of environments and tools. It also explains the components of a Software Development Kit (SDK) and differentiates between SDKs and APIs, highlighting their roles in application development. Additionally, it introduces Integrated Development Environments (IDEs), detailing their features and providing examples of popular IDEs used for software programming.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 36

MIDTERM LESSON

SOFTWARE
DEVELOPMENT
ENVIRONMENT
What is Software
development
Environment
This includes
A software programming-in-the-
development many tasks like team An SDE supports
environment (SDE) is and project the large-scale and
an environment that management as well as
automates or increase long-term
programming-in-the- maintenance of a
the routines involved large tasks like
in a software configuration
software.
development cycle. management.
SOFTWARE DEVELOPMENT ENVIRONMENT

In software, web, and mobile application development, the development


environment is a workspace with a set of processes and programming tools
used to develop the source code for an application or software product.
Development environments enable developers to create and innovate
without breaking something in a live environment.

A software development environment (SDE) is the collection of hardware


and software tools a system developer uses to build software systems.
When you are developing software, you probably don’t want your users to
see every messy part of your application creation process. In order to make
sure you control what people see and when they have access to it,
development teams use environments to create “stages” of the app which
they consider good for releasing.
Each environment has its own unique purpose. There are different
standards of environments that are used in the industry, although almost
every process starts at the ‘development’ stage and ends with ‘production’.
Different organizations all have their own purposes and policies which
dictate when and how each environment is used.
Software development
environment
These are the four categories that
represent trends that have a
considerable influence over
environments, and, their user
interfaces, tools, and architectures.

1.Language-oriented
environments
2.Structure-oriented
environments
3.Toolkit environments
Language-oriented Structure-oriented environments
environments
These environment types are These environment types
developed around one include techniques that let
language, thereby offering a users directly manipulate the
tool set suitable for that structures. These techniques
particular language. They are are language independent,
very interactive and provide which triggered the concept
restricted support for of generators for
programming-in-the-large. environments.

Toolkit environments Method-based


These environment types
environments
These environment types include support for a wide
offer a set of tools that variety of routines involved in
incorporate language- the software development
independent support for process. This includes tasks
programming-in-the-large like team and project
tasks, which include version management. They also
control and configuration feature tools for certain
management. specification and design
SDK
SOFTWARE
DEVELOPMENT KIT
What is a software
development kit (SDK)?

A software development kit


(SDK) is a set of software tools
and programs provided by
hardware and software
vendors that developers can
use to build applications for
SDKs include documentation, application
specific platforms. SDKs help
programming interfaces (APIs), code samples,
developers easily integrate libraries and processes, as well as guides that
their apps with a vendor's developers can use and integrate into their
services. apps. Developers can use SDKs to build and
maintain applications without having to write
everything from scratch.
SDK COMPONENTS
5 COMPONENTS OF SOFTWARE DEVELOPMENT KIT

1.) Libraries
are a collection of reusable and packaged pieces of code that perform specific 5.) Integrated development
functions.
environments (IDEs)
2.) APIs are visual editors that help with the
are predefined pieces of code that let developers perform common design and layout of graphical
programming tasks on the platform.
elements, such as text boxes and
buttons. These are common in mobile
3.) Testing tools and compilers
software app development toolkits. For
include debugging tools to help developers identify coding errors at various
stages of application development. instance, Apple's IDE, Xcode, contains
a suite of software development tools
to help developers build software for
macOS, iOS, iPadOS, watchOS and
4.) Documentation
encompasses the instructions and tutorials vendors provide to help developers tvOS. There are numerous IDE options
as they go through the development stages. for Android.
SDKs VS APIs
Difference between SDKs and APIs
SDKs let developers create applications and act as the building blocks for the software
product. APIs, on the other hand, provide the code that enables two software programs
to communicate with each other.
An API defines the correct way for a developer to request services from an operating
system or other application and expose data within different contexts and across multiple
channels.
An API can be used An SDK is the tool and
SDKs usually for communication, component piece of code
contain APIs, but but it can't be used to that has been created for
APIs don't contain a specific purpose, while
create new
an API is an interface for
SDKs. applications. a service.
. .
INTRODUSIN
G IDE
INTEGRATED DEVELOPMENT ENVIRONMENT
An integrated
development environment
(IDE) is a software
application that helps
programmers develop
software code efficiently.
It increases developer
productivity by combining
capabilities such as
software editing,
building, testing, and
packaging in an easy-to-
use application.
Integrated Development
Environment

An Integrated Development
Environment (IDE) is a software
application that provides a
comprehensive set of tools for
software development. IDEs
typically include a code editor, a
compiler or interpreter, and a
debugger, as well as other tools
that are useful for software
development. The goal of an IDE is
to make the software development
process more efficient by
providing developers with a
single, integrated environment in
which they can write, test, and
FEATURES THAT ARE COMMONLY FOUND IN
IDE’S
2. COMPILER OR
INTERPRETER
A compiler is a program that
translates source code written in
one programming language into
machine code, which a computer
can execute. On the other hand, an
interpreter reads and executes the
source code directly.

1. CODE EDITOR 3. DEBUGGING TOOLS


A code editor is a text editor that is IDEs typically include tools that
designed specifically for writing make it easier to find and fix errors
code. It often includes features such in code, such as breakpoints and
as syntax highlighting, code step-through debugging.
completion, and error checking.
FEATURES THAT ARE COMMONLY FOUND IN
IDE’S
5.
Many IDEs are highly
COSTUMIZABILITY
customizable, allowing
developers to tailor the
environment to their
specific needs and
preferences.

6. INTEGRATION
4. PROJECT MANAGEMENT IDEs often include
IDEs often include built-in integration with other tools
support for version control and technologies, such as
systems, making it easier to databases, web servers,
manage and collaborate on and testing frameworks,
code. which can make it easier to
work with different
components of an
application.
How can IDEs support software programming?

PRODUCTIVITY CODE QUALITY DEBUGGING

IDEs, as described Features included in


above, provide IDEs, such as code Integrated
developers with a debugging tools
completion, syntax
comprehensive set of
highlighting, and error make it easier to
tools to write, test and
debug code more checking, can help find and fix errors
efficiently. This can save developers write in code.
significant time and
increase overall higher-quality code .
productivity .
How can IDEs support software programming?

CUSTOMIZABILIT LEARNING
Y

IDEs often include


Many IDEs are highly
customizable, documentation,
allowing developers tutorials, and other
to tailor the resources to help
environment to their developers learn new
specific needs and programming
preferences languages and
technologies.
EXAMPLES OF IDE

VISUAL STUDIO NetBeans PyCharm


CODE
EXAMPLES OF IDE

IntelliJ IDEA Eclipse Code::Blo


cks
EXAMPLES OF IDE

Zend Studio Komodo RubyMin


e
EXAMPLES OF IDE

Xcode Android
Studio
Notable features:
Visual Studio Code or VSCode, is a IntelliSense
free, open-source IDE that has Customizable dashboard and dockable windows
gained a lot of popularity in recent Straightforward workflow and file hierarchy
Insights for monitoring performance in real time
years. It's highly customizable,
Automation tools
with a wide range of extensions Easy refactoring and code snippet insertion
available for various languages Split screen support
and frameworks. VSCode also has Error list that allows debugging while building
a built-in debugging feature and Built-in Git and GitHub integration
Git integration. You can customize Extensibility (create your own extension)
Drawbacks:
any aspect of VS Code, from
Limited built-in features: VSCode relies heavily on
themes to key bindings to extensions to add features, and some users may find
integrations and functions. Thanks that they need to install many extensions to get the
to its flexibility, Visual Studio is a functionality they need.
great tool for both students and Steep learning curve (some users may find the interface
professionals. and features to be overwhelming)
Limited built-in support for certain languages: VSCode's
built-in support for certain languages may not be as
Languages supported: PHP, robust as other IDEs.
HTML, CSS, SCSS, Less, JavaScript, Performance issues: Some users have reported
JSON, TypeScript, Markdown, performance issues, particularly when working with large
PowerShell, C++, Java, Python, projects or when using many extensions.
Go, T-SQL, C#, .NET Core, and
Netbeans is a free and open source IDE.
It was initially developed by Sun Languages supported: C, C++, C++11,
Microsystems and is now maintained by
the Apache Software Foundation.
Fortan, HTML 5, Java, PHP and more
NetBeans is known for its Notable features:
comprehensive feature set and ease of •Intuitive drag-and-drop interface
use, making it a popular choice among •Dynamic and static libraries
Java developers. One of the key features •Multi-session GNU debugger integration with
of NetBeans is its Java-centric approach, code assistance
providing a wide range of tools and
•Allows for remote development
features specifically designed for Java
development. •Compatible with Windows, Linux, OS X, and
It includes a code editor with syntax Solaris platforms
highlighting, code completion, and error •Supports Qt Toolkit
checking, as well as a built-in debugger •Supports Fortan and Assembler files
and profiler. It also supports a wide •Supports a number of compilers including
range of Java frameworks and
CLang/LLVM, Cygwin, GNU, MinGW and Oracle
technologies, such as JavaFX, Java EE,
and Spring. Ideal for editing existing Solaris Studio
projects or starting from scratch, Drawbacks:
NetBeans boasts a simple drag-and- •Heavyweight (making it slow to start and less
drop interface that comes with a myriad responsive)
of convenient project templates. It is •Limited support for non-Java languages
primarily used to develop Java
•Steep learning curve
applications, but you can download
bundles that support other languages.
PyCharm is developed by the folks over at Jet
Brains and provides users a free Community Languages supported: AngularJS,
Edition, 30 day free trial for the Professional Coffee Script, CSS, Cython, HTML,
edition, and the Professional (paid) edition. JavaScript, Node.js, Python,
PyCharm is known for its comprehensive feature TypeScript and template languages
set and ease of use, making it a popular choice Notable features:
among Python developers. Wide range of plugins for various
languages and frameworks
One of the key features of PyCharm is its support
Compatible with Windows, Linux,
for a wide range of Python frameworks and
and Mac OS
technologies, such as Django, Flask, and
Comes with Django IDE
Pyramid. It includes a code editor with syntax
Easy to integrate with Git, Mercurial
highlighting, code completion, and error and SVN
checking, as well as a built-in debugger and Customizable interface with VIM
profiler. PyCharm also has a built-in support for emulation
version control systems such as Git and SVN, JavaScript, Python and Django
making it easy to manage and collaborate on debuggers
code. Supports Google App Engine
PyCharm also includes support for web Drawbacks: Users complain that
development and JavaScript, HTML, and CSS. It PyCharm has some bugs, such as
also provides a feature called the 'Scientific the autocomplete feature
mode' that is designed to be used with scientific occasionally not working, which can
libraries such as NumPy, SciPy and Matplotlib. be a minor inconvenience.
IntelliJ IDEA is a powerful and
feature-rich IDE developed by Languages supported: AngularJS,
JetBrains. It is available in both a CoffeeScript, CS, HTML, JavaScript, Less,
Node JS, PHP, Python, Ruby, Sass,
Community (free) and Ultimate (paid)
TypeScript and more.
edition and is widely used by Java, Kotlin, Notable features:
Scala, and other JVM language developers. Extensive database editor and UML
IntelliJ IDEA is known for its intelligent code designer
completion, error checking, and powerful Supports multiple build systems
refactoring capabilities, making it a popular Test runner UI
choice among developers. Code coverage
IntelliJ IDEA provides a wide range of tools Git integration
Supports Google App Engine, Grails, GWT,
and features specifically designed for Java
Hibernate, Java EE, OSGi, Play, Spring,
development, including support for a wide Struts and more
range of Java frameworks and technologies Deployment and debugging tools for most
such as Spring, Hibernate, and Struts. It application servers
includes a code editor with syntax Intelligent text editors for HTML, CSS, and
highlighting, code completion, and error Java
checking, as well as a built-in debugger and Integrated version control
profiler. IntelliJ IDEA also has built-in AIR Mobile supports Android and iOS
devices
support for version control systems such as
Drawbacks: This IDE comes with a
Git and SVN, making it easy to manage and learning curve, so it may not the best for
collaborate on code. beginners. There are many shortcuts to
remember, and some users complain about
Eclipse is a free and flexible open
source editor useful for beginners Languages supported: C, C++, Java, Perl, PHP,
and pros alike. Originally a Java Python, Ruby, and more
environment, Eclipse now has a Notable features:
wide range of capabilities thanks A plethora of package solutions allowing for
to a large number of plugins and multi-language support
extensions. In addition to Java IDE enhancements such as hierarchical
views of nested projects with customizable
debugging tools and Git/CVS
perspectives
support, the standard edition of Task-focused interface including system-tray
Eclipse comes with Java and notifications
Plugin Development Tooling. If Automated error reporting
that's not enough for you, there is Tooling options for JEE projects
plenty of other packages to JUnit integration
choose from that include tools for Built-in Debugger and profiler
charting, modeling, reporting, User-Friendly interface includes a powerful search
testing and building GUIs. The and navigation feature and a large number of
Eclipse Marketplace Client gives keyboard shortcuts, making it easy to navigate
users access to a treasure trove of and work with.
plugins and information supplied Drawbacks: While Eclipse is a very versatile
by an expanding community of software, the many options may be intimidating
to newcomers. Eclipse doesn't have all of the
developers.
same features as IntelliJ IDEA, but it is open
source.
Languages supported: C, C++, Fortran, Ada,
Code::Blocks is another D, Object Pascal, and Assembly
Notable features:
popular free and open Easy-to-navigate tabbed interface including a
source option. It is a list of open files
Compatible with Linux, Mac, and Windows
highly customizable IDE Written in C++
that performs Requires no interpreted or proprietary
consistently across all languages
Supports many pre-built and custom-built
platforms, so it is great plugins
for developers who Supports multiple compilers including GCC,
MSVC++, clang and more
frequently switch Debugger that includes breakpoint support
between workspaces. Text editor with syntax highlighting and
autocomplete
The plug-in framework Customizable external tools
lets users tweak this IDE Simple task management tools ideal for multiple
users
to meet their needs. Drawbacks: Though Code::Blocks comes with
many features, it is a relatively lightweight IDE,
so it's not suited for larger projects. It is a great
tool for beginners, but advanced coders may be
frustrated with the limitations.
Zend Studio is a commercial IDE designed Languages supported: HTML,
Sass, CSS, LESS, Markdown,
specifically for PHP development. Developed by
JavaScript, PHP
Zend Technologies, Zend Studio is known for its Notable features:
advanced features and capabilities, making it a Intelligent code assistant for PHP
popular choice among PHP developers. It is Tools for code quality assurance,
particularly well-suited for PHP developers and including code refactoring and code
those working on PHP-based projects, but it can analysis tools
Extended debugging options with
also be used for other programming languages
Zend Debugger (default), Xdebug or
such as HTML, CSS, and JavaScript. Z-Ray
Zend Studio provides a wide range of tools and Cross-platform compatibility: Zend
features specifically designed for PHP Studio is compatible with Windows,
development, including a code editor with syntax macOS, and Linux
highlighting and code completion, a built-in Support for 4K and HiDPi displays
Various PHP templates, tutorials and
debugger, and support for a wide range of PHP
videos
frameworks and technologies such as Laravel, Drawbacks: Zend Studio is a
Symfony, and Zend Framework. It also includes feature-rich and versatile IDE for PHP
integrated support for version control systems development, but its cost, resource-
such as Git and SVN, making it easy to manage intensive nature, complexity, limited
and collaborate on code. support for other languages, and
lack of community support can make
it a less suitable option for some
developers.
Languages supported: CSS, Go, JavaScript, HTML,
Komodo is a commercial NodeJS, PerlPHP, Python, Ruby, Tcl, and more.
product, with a paid license Notable features:
required for full use, but it Customizable UI including split view and multi-
offers a free, limited-feature window editing
version for evaluation Version control integration for Bazaar, CVS, Git,
purposes. Practically any Mercurial, Perforce and Subversion
programmer can use Komodo Python and PHP code profiling
because it supports most major Convenient code collaboration for multi-user editing
programming languages. The Deploy to the cloud thanks to Stackato PaaS
streamlined interface allows for Graphical debugging for NodeJS, Perl, PHP, Python,
advanced editing, and small Ruby and Tcl
perks like the Syntax Checker Autocomplete and refactoring
and single-step debugging Consistent performance across Mac, Linux and
make Komodo one of the most Windows platforms
popular IDEs for web and Many add-ons allow a high level of customization
mobile development. Komodo Drawbacks: One of the few complaints about
IDE has a customizable and Komodo is that the free version doesn't enable all of
intuitive user interface, making the features, but the premium version is still
it easy for developers to work considered well-worth the cost
with the IDE.
RubyMine is another
premium IDE requiring a paid Notable features:
license for full use, Code snippets, autocomplete and
developed by Jet Brains, that automatic refactoring
offers a 30-day free trial. As Project tree allows for quick code analysis
its name implies, RubyMine Rails Models Diagram
is a favorite among Ruby Rails Project View
enthusiasts; however, this RubyMotion allows for iOS development
IDE supports other Stack support includes Bundler, pik,
programming languages as rbenv, RVM and more
well. Easy navigation, logical JavaScript, CoffeeScript and Ruby
workflow organization, and debuggers
compatibility with most Integration with CVS, Git, Mercurial,
platforms make RubyMine a Perforce and Subversion
workplace favorite. Bundled keyboard schemes
Drawbacks: Your machine needs at least
Languages supported: 4GB of RAM for RubyMine to run
CoffeeScript, CSS, HAML, smoothly. Some users also complain
HTML, JavaScript, Less, Ruby about the lack of GUI customization
and Rails, Ruby and Sass options.
Xcode IDE is free, open Notable features:
source, and part of Xcode, UI controls can be easily connected with implementation code
Apple LLVM compiler scans code offers advice for addressing
which is a collection of
performance issues
tools for making apps for Assistant function allows for split-code workspace
Apple devices such as the Jump bar permits quick navigation
iPad, iPhone and Mac. Interface Builder lets user build prototypes without writing any
Integration with Cocoa code
Touch makes development UI and source code can be graphically connected to sketch
in the Apple environment complex interface prototypes in just minutes
a breeze, and you can Version Editor includes log files and commit timeline
enable services such as Branch and merge for distributed teams
Test Navigator lets you quickly test applications at any point
Game Center or Passbook
during development
with a single mouse click. Automatically builds, analyzes, tests, and archives projects
Built-in communication thanks to Integration with OX X server
with the developer's Workflow is highly customizable with Tabs, Behaviors, and
website helps users Snippets
produce fully functioning Instrument library and asset catalog.
Drawbacks:
apps on the fly.
Languages You obviously need an Apple machine to run Xcode, and keep in
supported: mind that you need a developers license to upload apps to the
AppleScript, C, C++, Java, Apple Store.
Objective-C.
Android Studio is the official
integrated development Android Studio uses an Apply
environment (IDE) for Android Changes feature to push code and
resource changes to a running
application development. It is based application. A code editor assists the
on IntelliJ IDEA a Java integrated developer with writing code and
development environment for offering code completion, refraction
software, and incorporates its code and analysis. Applications built in
editing and developer tools. Android Studio are then compiled
To support application development into the APK format for submission to
within the Android operating system, the Google Play Store.
The software was first announced at
Android Studio uses a Gradle-based
Google I/O in May 2013, and the first
build system, Android Emulator, stable build was released in
code templates December 2014. Android Studio is
and GitHub integration. Every project available for macOS, Windows and
in Android Studio has one or more Linux desktop platforms. It replaced
modalities with source code and Eclipse Android Development Tools
resource files. These modalities (ADT) as the primary IDE for Android
application development. Android
include Android app modules, Library
Studio and the Software
modules and Google App Engine Development Kit can be
modules. downloaded directly from Google.
ANDROID STUDIO

Language Notable Features Drawbacks


• Everything you need to build • Need internet connection.
Supported
Android Studio supports all on Android. Android Studio is • Sometimes slow devices.
the same programming Android's official IDE. ...
• Wasteful battery.
languages of IntelliJ (and • Code and iterate faster than
ever. ... • It requires to continue
CLion) e.g. Java, C++, and • Fast and feature-rich internet connection.
more with extensions, such emulator. ... • Generally, power hungry.
as Go; and Android Studio • Code with confidence. ... • Very unstable.
• Testing tools and frameworks. • Android market is too
3.0 or later supports Kotlin
...
and "all Java 7 language • Configure builds without
much less control of the
features and a subset of limits. ... manager, sometimes
• Optimized for all Android there are malware.
Java 8 language features
devices. ... • Externally in-consistence
that vary by platform • Create rich and connected in design among apps
version. apps.
SUMMARY

As you can see, the best IDE for you


depends on your operating system,
your programming language of choice,
and which platforms you wish to
develop. Finding the right fit is really an
ongoing process. Your options are
practically limitless, so it may be
helpful to list your preferences and
then searchsearch for the IDE that
most closely matches your needs.
While every developer has their
favorite software, don't be afraid to
branch out, as the world of IDEs is
always expanding.
Want to read more
about the topic? here
are the following
links: https://www.techopedia.com/definition/21970/softw
are-development-environment-sde

https://www.keycdn.com/blog/best-ide

https://www.techtarget.com/whatis/definition/softwa
re-developers-kit-SDK

https://www.techtarget.com/searchmobilecomputing
/definition/Android-Studio
THANK
YOU!

Prepared by:
Teacher Cedes

You might also like