By INDUMATHI , SVDC , K R PURAM
MODULE 2
Programming Tools and Techniques
By INDUMATHI , SVDC , K R PURAM
OPEN SOURCE DESIGN TOOLS/UML
•Designtoolsaresoftwareprogramsoronlineplatformsthatallowdesignerstocreatedigitaldesignsforavariety
ofpurposes.Thesetoolsareusedinmanydifferentfields,includinggraphicdesign,webdesign,productdesign,
andarchitecturaldesign.
•UMLisaUnifiedModelingLanguage,whichisusedtocreatemeaningful,object-orientedmodelsforasoftware
application.
•It clearly represents the working of any hardware/ software system.
•Unified Modeling Language (UML) is a standardized modeling language. It helps software developers visualize,
construct, and document new software systems and blueprints.
•UML is used to create static structure diagrams based on a variety of engineering practices that have proven to
be successful in the creation of complex systems.
•Historically, UML has been used to model software systems, but it’s not limited to software developers. Today,
UML diagrams are also used to manage processes and projects. In this scenario, UML diagrams outline entire
workflows and business processes.
•Itisusedheavilywhendesigningcomputersystemslargeandsmall,itlookslikeboxesandarrowswithsome
text.
By INDUMATHI , SVDC , K R PURAM
By INDUMATHI , SVDC , K R PURAM
ClassDiagram
Insoftwareengineering,aclassdiagramin
theUnifiedModelingLanguage(UML)isatype
ofstaticstructurediagramthatdescribesthe
structureofasystembyshowingthesystem's
classes,theirattributes,operations(or
methods),andtherelationshipsamongobjects.
USE CASE DIAGRAM
Use-casediagramsdescribethehigh-level
functionsandscopeofasystem.
Thesediagramsalsoidentifytheinteractions
betweenthesystemanditsactors.
Theusecasesandactorsinuse-casediagrams
describewhatthesystemdoesandhowtheactors
useit,butnothowthesystemoperatesinternally.
By INDUMATHI , SVDC , K R PURAM
There are numerous tools, both commercial and open-source, which are available for designing UML diagrams, are
enlisted below:
1.StarUML
StarUMLisanopen-sourcesoftwaremodelingtool,whichisprovidedbyMKLab.Ithascomeupwithelevendifferent
typesofmodelingdiagrams.ItalsosupportsUML2.0specifieddiagrams.
Features:
•ItletyoucreateObject,Usecase,Deployment,Sequence,Collaboration,Activity,andProfilediagrams.
•ItisaUML2.xstandardcompliant.
•Itoffersmultiplatformsupport(MacOS,Windows,andLinux).
2. Draw.IO
By INDUMATHI , SVDC , K R PURAM
Draw.ioisanopen-sourcemodelingtooltocreateflowcharts,processdiagrams,UML,ER,andnetwork
diagrams.
Features:
•Sinceitisveryeasytouse,itprovidesanintuitiveinterface,drag&dropfunctionality,ahugeamountof
templates,andalso,itdoesnotneedtoinstall.
•Itofferssecurityandreliability.
•Itcanbeusedanywhere,bothonlineandoffline.
•Itiscompatiblewitheverybrowser.
3. Dia
Diaisanopen-sourcegeneral-purposedrawingtool,whichislicensedunderGPL.Itletyoucreateflowcharts,
UMLdiagrams,networkdiagrams,circuitdiagrams,andmanymore.Itallowsyoutoincorporateasubsetof
ScalableVectorGraphics(SVG)whilewritingasimpleXMLfilefordrawingnewshapes.
By INDUMATHI , SVDC , K R PURAM
ArgoUML:
ArgoUMLisanUMLdiagrammingapplicationwritteninJavaandreleasedundertheopensourceEclipse
PublicLicense.ByvirtueofbeingaJavaapplication,itisavailableonanyplatformsupportedbyJavaSE.
DownloadingOptions
YouhavethreeoptionsforobtainingArgoUML.
1.RunArgoUMLdirectlyfromtheWebSiteusingJavaWebStart.Thisistheeasiestoption.
2.DownloadtheWindowsinstallerprogram.ThisistherightoptionifyouareonWindowsandintendusing
ArgoUMLregularly.
3.Downloadthebinaryexecutablecode.UnlessyouareonWindows,thisistherightoptionifyouintendusing
ArgoUMLregularlyandisnotthatdifficult.
4.DownloadthesourcecodeusingSubversionandbuildyourownversion.Choosethisoptionifyouwanttolookat
theinternalworkingsofArgoUML,orwanttojoininasadeveloper.ThisoptiondoesrequirethewholeJDK.
7/23/2023 12
Overview of ArgoUML
Windows
Top left: a hierarchical
view of the current
project file.
Top right: editor for the
selected part of the project, in
this case a class diagram.
Bottom left:
the designer's
"to do" list.
Bottom right: details of
the selected object in the
diagram or the selected
"to do" item.
ArgoUML'suser interface is
divided into 4 panels
7/23/2023 13
The Menu Bar and Toolbars
1. New a Model.
2. Add a class in the class diagram in the Model.
7/23/2023 14
1. New a Model.
2. Add a class in the class diagram in the Model.
7/23/2023 15
The Menu Bar and Toolbars
1. New a Model.
2. Add a class in the class diagram in the Model.
3. Add a generalization to the class Customer.
4. Add a association to the class Customer.
Left click when the mouse is on the icon, then drag it to the
class to be associated, release the left button in the mouse.
The associate is done now.
Double click it.
Version Control Systems
What is Version Control ?
•Versioncontrolisasystemorsoftwaretoolthathelpstrackchangesmadetofilesanddocumentsover
time.
•Itallowsmultiplepeopletocollaborateonaprojectandkeeptrackofmodifications,additions,and
deletionsmadetofiles.Versioncontroliscommonlyusedinsoftwaredevelopmentbutcanbeappliedto
anytypeoffileordocument.
•Theprimarypurposeofversioncontrolistomaintainachronologicalrecordofchangesmadetoafileor
setoffiles.
•Itenablesuserstoviewthehistoryofchanges,reverttoapreviousstateifnecessary,andmerge
modificationsmadebydifferentindividualsorteams.Italsohelpsinidentifyingwhomadespecific
changesandwhentheyweremade.
Thekeyfeaturesareasfollows:
1.Changetracking:Versioncontrolsystemskeeparecordofeverychangemadetofiles,includingwhomade
thechange,whenitwasmade,andwhatexactlywaschanged.
2.Collaboration:Multiplepeoplecanworkonthesamesetoffilesconcurrentlywithoutconflicts.Version
controlsystemsprovidemechanismstomergechangesmadebydifferentindividualsandresolveany
conflictsthatmayarise.
1.Version management: Version control systems store different versions of files, allowing you to access
and compare previous versions. This facilitates the ability to roll back to an earlier state of a project or to
branch off into different development paths.
2.Backup and recovery: By storing multiple versions of files, version control provides a form of backup. If
files are accidentally deleted or modified, they can be restored to a previous state.
3.Branching and merging: Version control systems allow the creation of branches, which are independent
lines of development that can be worked on separately. Branches enable the implementation of new
features or the experimentation with different ideas without affecting the main project. Merging allows
changes made in one branch to be combined with changes in another branch.
Version control systems can be centralized or distributed. Centralized systems have a central server that
stores the files and tracks changes, while distributed systems have local repositories on each developer's
machine, and changes can be synchronized between repositories.
Git:
Git is the open source repository, to store our program or project. Its free of cost, and you can use others code to
view and download, in the same manner you can also share your source code to the world.
Git is a popular version control system.
It is used for:
•Tracking code changes
•Tracking who made changes
•Coding collaboration
What does Git do?
•Manage projects withRepositories
•Clonea project to work on a local copy
•Control and track changes withStagingandCommitting
•BranchandMergeto allow for work on different parts and versions of a project
•Pullthe latest version of the project to a local copy
•Pushlocal updates to the main project
Working with Git
•Initialize Git on a folder, making it aRepository.
•Git now creates a hidden folder to keep track of changes in that folder
•When a file is changed, added or deleted, it is consideredmodified.
•You select the modified files you want toStage(refers to the process of preparing changes to be committed
to the repository).
•TheStagedfiles areCommitted, which prompts Git to store apermanentsnapshot of the files.
•Git allows you to see the full history of every commit.
•You can revert back to any previous commit.
•Git does not store a separate copy of every file in every commit, but keeps track of changes made in each
commit!
Why Git?
•Over 70% of developers use Git!
•Developers can work together from anywhere in the world.
•Developers can see the full history of the project.
•Developers can revert to earlier versions of a project.
Steps to work with git and git hub
1.Download git from https://git-scm.com/downloads.
2.Create a working folder.
3.Open command prompt in that folder.
4.Type git to check if git is available.
5.Type git init to make this folder as local repository.
6.Create or move a file into this folder.
7.Type git status….it shows untracked files.
8.Type Git add file to add the file for staging.
9.git commit –m “message” ---to commit the changes
made in staging
1.Create a repository in github and copy the path from there.
git remote add origin https://github.com/indusvdc/newrep.git
11. git push -u origin master----all committed files are uploaded to github
•Tracisanopen-sourceweb-basedbugtrackingsystemandprojectmanagementtool.Itprovidesacomprehensive
setoffeaturesfortrackingbugs,managingtasks,andcollaboratingonsoftwaredevelopmentprojects.
•Ithasbeenadoptedbyavarietyoforganizationsforuseasabugtrackingsystemforbothfreeandopen-source
softwareandproprietaryprojectsandproducts.Tracintegrateswithmajorversioncontrolsystemsincluding
SubversionandGit.
key features of Trac:
•TicketingSystem:Tracallowsyoutocreateandmanageticketstotrackbugs,issues,featurerequests,andtasks.
Eachticketcontainsinformationsuchastheissuedescription,assigneddeveloper,priority,status,andcomments.
•Version Control Integration: Trac integrates with popular version control systems like Subversion, Git, and
Mercurial. It can link tickets to source code changes, enabling developers to easily navigate from a bug report to
the relevant code changes.
•Wiki and Documentation: Trac includes a built-in wiki system that allows you to create and maintain
project documentation. The wiki can be used to provide user guides, API documentation, and other
project-related information.
•Roadmap and Milestones: Trac provides tools to manage project milestones and track progress. You can
set up milestones to represent specific releases or development phases and track the completion of
associated tickets.
•Customizable Reports: Trac allows you to create custom reports and charts to visualize project data. You
can generate reports on ticket statistics, progress, activity, and other project metrics.