Open Source Module 02
Open Source Module 02
• Design tools are software programs or online platforms that allow designers to create digital designs for a variety
of purposes. These tools are used in many different fields, including graphic design, web design, product design,
and architectural design.
• UML is a Unified Modeling Language, which is used to create meaningful, object-oriented models for a software
application.
• 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.
• It is used heavily when designing computer systems large and small, it looks like boxes and arrows with some
text. By INDUMATHI , SVDC , K R PURAM
By INDUMATHI , SVDC , K R PURAM
Class Diagram
1. StarUML
StarUML is an open-source software modeling tool, which is provided by MKLab. It has come up with eleven different
types of modeling diagrams. It also supports UML2.0 specified diagrams.
Features:
•It let you create Object, Use case, Deployment, Sequence, Collaboration, Activity, and Profile diagrams.
•It is a UML 2.x standard compliant.
•It offers multiplatform support (MacOS, Windows, and Linux).
2. Draw.IO
•Since it is very easy to use, it provides an intuitive interface, drag& drop functionality, a huge amount of
templates, and also, it does not need to install.
•It offers security and reliability.
•It can be used anywhere, both online and offline.
•It is compatible with every browser.
3. Dia
Dia is an open-source general-purpose drawing tool, which is licensed under GPL. It let you create flow charts,
UML diagrams, network diagrams, circuit diagrams, and many more. It allows you to incorporate a subset of
Scalable Vector Graphics (SVG) while writing a simple XML file for drawing new shapes.
ArgoUML is an UML diagramming application written in Java and released under the open source Eclipse
Public License. By virtue of being a Java application, it is available on any platform supported by Java SE.
Downloading Options
You have three options for obtaining ArgoUML.
1.Run ArgoUML directly from the Web Site using Java Web Start. This is the easiest option.
2.Download the Windows installer program. This is the right option if you are on Windows and intend using
ArgoUML regularly.
3.Download the binary executable code. Unless you are on Windows, this is the right option if you intend using
ArgoUML regularly and is not that difficult.
4.Download the source code using Subversion and build your own version. Choose this option if you want to look at
the internal workings of ArgoUML, or want to join in as a developer. This option does require the whole JDK.
project file.
1. New a Model.
7/23/2023 13
1. New a Model.
7/23/2023 14
The Menu Bar and Toolbars
1. New a Model.
2. AddLeft clickinwhen
a class the mouse
the class is on
diagram theModel.
in the icon, then drag it to the
class to be associated, release the left button in the mouse.
Double click it.
3. Add a generalizationTheto associate
the class Customer.
is done now.
4. Add a association to the class Customer.
7/23/2023 15
Version Control Systems
What is Version Control ?
• Version control is a system or software tool that helps track changes made to files and documents over
time.
• It allows multiple people to collaborate on a project and keep track of modifications, additions, and
deletions made to files. Version control is commonly used in software development but can be applied to
any type of file or document.
• The primary purpose of version control is to maintain a chronological record of changes made to a file or
set of files.
• It enables users to view the history of changes, revert to a previous state if necessary, and merge
modifications made by different individuals or teams. It also helps in identifying who made specific
changes and when they were made.
1.Change tracking: Version control systems keep a record of every change made to files, including who made
the change, when it was made, and what exactly was changed.
2.Collaboration: Multiple people can work on the same set of files concurrently without conflicts. Version
control systems provide mechanisms to merge changes made by different individuals and resolve any
conflicts that may arise.
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.
When you make modifications to files in your working directory, Git provides the staging area as a way
to selectively choose which changes you want to include in your next commit.
Instead of committing all the changes made to all files, you can selectively add specific changes to the
staging area and then commit them as a logical unit.
Working with Git
Why Git?
Git Vs Github
• Git focuses exclusively on tasks like push and pull, commit, reset, fetch, and merge.
• GitHub, meanwhile, serves as a host for Git repository teams to store their code in a centralized location.
• While Git is a tool that’s used to manage multiple versions of source code edits that are then transferred to files
in a Git repository.
• GitHub serves as a location for uploading copies of a Git repository.
Steps to work with git and git hub
11. git push -u origin master----all committed files are uploaded to github
Bitbucket
Bitbucket is a web-based platform for hosting and managing Git and Mercurial repositories. It provides a centralized
location for storing code repositories, collaborating with team members, and managing software development
projects.
1.Git and Mercurial Hosting: Bitbucket supports both Git and Mercurial version control systems, allowing
developers to choose their preferred system for their repositories.
2.Repository Management: Bitbucket provides tools for creating, organizing, and managing repositories. You can
create public or private repositories, control access permissions, and configure repository settings.
3.Collaboration and Code Review: Bitbucket facilitates collaboration among team members by providing features
like pull requests, which allow developers to review and discuss code changes before merging them into the main
codebase. It also supports inline comments, annotations, and discussions on specific lines of code.
4.Issue Tracking: Bitbucket includes an issue tracker that enables you to create and manage tasks, bugs, and feature
requests associated with your projects. It provides a platform for tracking and prioritizing work items within the
context of the codebase.
5.Continuous Integration and Deployment: Bitbucket integrates with popular continuous integration (CI) and
continuous deployment (CD) tools like Jenkins, Bamboo, and AWS CodeDeploy. This allows you to automate build
processes, run tests, and deploy applications directly from your repositories.
BUG TRACKING SYSTEMS
A bug tracking system is software that keeps track of bugs that the user encountered in any software development or
in any project.
1.Creating a new text file and writing the details entered by the user into the text file.
2.Option to change the status of the bug.
3.Report of specific bug file.
One of the main benefits of using bug tracking software is that it provides a centralized location where all the bugs
related to a product can be managed and resolved. This fast-tracks the development process and makes
collaboration between teams easier resulting in an improved development lifecycle.
• Trac is an open-source web-based bug tracking system and project management tool. It provides a comprehensive
set of features for tracking bugs, managing tasks, and collaborating on software development projects.
• It has been adopted by a variety of organizations for use as a bug tracking system for both free and open-source
software and proprietary projects and products. Trac integrates with major version control systems including
Subversion and Git.
• Ticketing System: Trac allows you to create and manage tickets to track bugs, issues, feature requests, and tasks.
Each ticket contains information such as the issue description, assigned developer, priority, status, and comments.
• 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.
• Bugzilla is a web-based open source Defect or Bug Tracking System that is based on the Perl
programming language.
• Bugzilla supports MySQL, PostgreSQL, Oracle and SQLite.
• Defect Tracking Systems allow individual or groups of developers to keep track of outstanding bugs in
their product effectively.
• Bugzilla is used by all projects from the Mozilla foundation.
• Despite being free, Bugzilla has many features, like the automatic detection of duplicate bugs.
Consequently, Bugzilla has quickly become a favorite of thousands of organizations across the globe.
Bugzilla helps track bugs and code changes; communicate with teammates; submit and review patches;
manage quality assurance (QA).
• Bugzilla can help you get a handle on the software development process. Successful projects often are
the result of successful organization and communication. Bugzilla is a powerful tool that will help your
team get organized and communicate effectively.
Bootstrap
Bootstrap is a free, open source front-end development framework for the creation of websites and web apps. Designed to
enable responsive development of mobile-first websites, Bootstrap provides a collection of syntax for template designs.
As a framework, Bootstrap includes the basics for responsive web development, so developers only need to insert the code into a
pre-defined grid system. The Bootstrap framework is built on Hypertext Markup Language (HTML), cascading style sheets
(CSS) and JavaScript. Web developers using Bootstrap can build websites much faster without spending time worrying about basic
commands and functions.
• Responsive Grid System: Bootstrap includes a responsive grid system that allows developers to create a flexible and responsive
layout for their websites. The grid system is based on a 12-column layout, making it easy to create responsive designs that
adapt to different screen sizes and devices.
• CSS Styles and Components: Bootstrap provides a wide range of CSS styles and components that can be easily applied to HTML
elements. These include typography, forms, buttons, navigation menus, alerts, modals, carousels, and much more. The styles
and components are designed to be consistent and visually appealing across different browsers and devices.
• JavaScript Plugins: Bootstrap offers a set of JavaScript plugins that enhance the functionality of the website. These plugins
provide additional interactive components such as dropdown menus, tooltips, popovers, modals, carousels, and more. The
plugins are built on popular JavaScript libraries like jQuery, providing cross-browser compatibility and ease of use.
• Customization and Theming: Bootstrap allows developers to customize its styles and components to
match the design requirements of their projects. You can customize the color scheme, typography,
spacing, and other aspects using Sass variables or pre-built customization tools. Additionally, Bootstrap
provides themes that offer different visual styles and variations to choose from.
• Browser Compatibility: Bootstrap is designed to be compatible with modern web browsers, ensuring
that websites built with Bootstrap work consistently across different platforms. It also provides graceful
degradation for older browsers, allowing the website to function even if certain features may not be fully
supported.
• Community and Documentation: Bootstrap has a large and active community of developers who
contribute to its development and provide support. It offers comprehensive documentation, including
guides, examples, and reference documentation, making it easier for developers to get started with the
framework and find solutions to common problems.
Top bootstrap editors
1.TemplateToaster
2.BootEditor
3.Pingendo
4.LayoutIt
5.Pinegrow
6.Bootstrap Studio
7.Bootstrap Magic