You are on page 1of 14

TOOLS FOR A MODERN

SOFTWARE ENGINEER
P R E S E N TAT I O N B Y

J OSHUA KU MI A SARE

OBINNA GODSPOWER
EVOLUTION OF THE SOFTWARE
INDUSTRY
Growth of the software industry has been sharp for the past 3 decades.
Changing industry dynamics
Changing customer needs
Automated processes
TOOLS
Editors/IDE
Continuous Integration
Source Control
Frameworks
EDITORS/IDE
IDE provides comprehensive facilities for software development.
IDE basically consists of a source code editor, build automation tools, and
debugger.
Development was via terminal before IDE’s
Dartmouth Basic first program to be created using IDE’s
Other Uses
Syntax highlighting
Code completion
Refactoring
Version Control
Debugging
Code search
Eclipse, wing IDE, NetBeans, Code Blocks, IntelliJ IDEA, Microsoft Visual Studio,
Pycharm etc.
Continuous Integration
Automating the build and testing code
Should happen several times a day
Committing code triggers an automatic build, test and validation of the full
master branch by the CI server.
Continuous delivery and Continuous deployment incorporates the concepts of
continuous integration.
Why Continuous integration?
E.g. Jenkins, TeamCity, Travis CI, Go, Bamboo, GitLab CI
Source Control/Version Control
Basically tracking and managing changes to code.
Provides a running history of code, development and help resolve conflicts when
merging.
Collaborate on code with dev team
Isolate work until it is done
Quickly trouble-shoot issues by identifying who made changes.
Provide centralized source for code
STRUCTURE OF BASIC VCS
Trunk/Master – Hub of your current, stable code. Contains tested and unbroken code

Branch – Copy of trunk code. Developers can work here without disrupting each other’s progress

Merge – Multiple branches merged into a single branch


GIT VERSION CONTROL SYSTEM
Open source distributed version control system.
Unlike other VCS, git stores a snapshot of your files, not differences.
STAGES IN GIT
GIT VRS OTHER VSC
Nearly every operation is local (Local copy is also a repo)
Git is much faster than subversion
Decentralized
Reliable, no single point of failure
Git is highly criticized for its poorly designed and chaotic CLI and syntax
Relatively longer learning curve
FRAMEWORKS
Frameworks are based on the concept of abstraction
They provide a standard way to build and deploy applications
Highly reusable and universal software working environment
Frameworks are NOT libraries
FEATURES OF FRAMEWORKS
Inversion of Control
Extensibility
Non-modifiable
Examples of frameworks
Python – Django, Flask, Pyramid and Tornado
Ruby – Ruby on rails, Sinatra
Php – CodeIgniter, Zend framework, CakePHP, FuelPHP, Laravel Framwork
Perl5 – Catalyst, Symfony, Interchange, Maypole
Javascript- Angular JS, Ember JS, Backbone JS, Meteor JS, Express JS, Koa JS,
React JS, Vue JS,

You might also like