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

OST Module 2-1

The document provides an overview of various programming tools and techniques, focusing on design tools like UML and applications such as ArgoUML, JetUML, and StarUML, which facilitate software design through visual modeling. It also discusses version control systems, particularly Git and SVN, highlighting their functionalities and benefits for managing source code changes. Additionally, it covers bug tracking systems, emphasizing the importance of tracking software defects throughout the development lifecycle.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

OST Module 2-1

The document provides an overview of various programming tools and techniques, focusing on design tools like UML and applications such as ArgoUML, JetUML, and StarUML, which facilitate software design through visual modeling. It also discusses version control systems, particularly Git and SVN, highlighting their functionalities and benefits for managing source code changes. Additionally, it covers bug tracking systems, emphasizing the importance of tracking software defects throughout the development lifecycle.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

MODULE 2- PROGRAMMING TOOLS AND TECHNIQUES

Usage of Design Tools

Unified Modeling Language (UML)


 UML is a general-purpose, graphical modeling language in the field of Software
Engineering.
 It was initially developed by Grady Booch, Ivar Jacobson, and James Rumbaugh in
1994-95 at Rational software. In 1997, it got adopted as a standard by the Object
Management Group.
 The main aim of UML is to define a standard way to visualize the way a system has
been designed.
 UML is a Visual language which helps to prepare the blueprint of the system and
acquire an overall view of a system.
 UML Supports Object Oriented concepts by using graphical notations to express the
OO analysis and design of software projects.
 UML can be described as the successor of object oriented analysis and design. It is
powerful enough to represent all the concepts that exists in OO analysis and design.
 UML diagrams are not only made for developers but also for business users or non
programmers.

Argo UML
ArgoUML is an open-source developer tool that helps in creating complex designs and
diagrams. The free Windows program simplifies standard UML, so that businesses can easily
visualize projects that they intend to develop and deploy. The program requires working
knowledge of UML, so users can create a range of diagrams and better the designs as per
feedback.
UML is used by businesses to visualize different design systems. The general-purpose
language is used for development purposes and consists of a range of semantics, notations,
and diagrams. However, the language can be quite complex and most applications that
support it expect a basic knowledge of the technology.

ArgoUML, however, makes it easier for software developers and companies to create UML-
based development plans. It does it with a unique feature that supports decision
making and simplifies the modeling process. Created in 1998, the application provides
support for other standards like OCL-Object Constraint Language, SVG-Scalable Vector
Graphics, and XMI-Metadata Interchange and can run on any Java platform.
ArgoUML includes support for all standard UML 1.4 diagrams such as class diagram, state
chart diagram, activity diagram, use case diagram, collaboration diagram, deployment
diagram, sequence diagram etc.
Other than Java, it also generates code for C++, C#, PHP5, and PHP4. Since the application
uses Java Web Start, it can be opened directly from the web browser, instead of just a
desktop application.

ArgoUML is released under the open source Eclipse Public License.


Figure: Argo UML Window

When you download ArgoUML, you get access to a clean and simple interface that can help
you visualize a range of products for your business. The primary window of the program
consists of a drawing pane in which you can sketch your diagrams. Below the pane, you
have a details panel, where you can leave notes that help define the diagram that you’ve
created. You can even add links and documents here for future reference.
ArgoUML has two more panes, separate from the two mentioned above. One of these is the
explorer window. This section is designed to help users show a link between the diagrams
they’ve created to the design items as per the chosen perspective. The last pane of the
program consists of a ‘To-Do’ section where you can add tasks that you need to complete in
order of priority.

Features:
 Supports decision making
 Simplifies the modeling process
 It supports OCL, SVG, and XMI and can run on any Java platform.
 It is Compliant with UML 1.1
 It provides cognitive backing via its modeling structure
JetUML
JetUML is an open-source UML desktop application for creating and editing diagrams. It is
supporting sketching, available both as a self-contained application and as a Java archive
file.It is licensed under GPL-3.0 License and written in Java.

Figure: JetUML Window


Features:
 Diagrams can be saved in JSON
 Lightweight
 you can export to popular image formats
 It has the ability to be copied to the system clipboard for integration with other tools
 It supports class diagrams, sequence diagrams, state diagrams, object diagrams, and
use case diagrams

StarUML
StarUML is a software modeler for agile and concepts modeling for macOS windows and
different types of Linux(Ubuntu, Debian, Redhat, fedora).It supports code generation for
various programming languages such as Java, C#, C++, and Python.It also has Open APIs.
It is licensed under MIT license.
Figure: StarUML Window
Features:
 Compatible with UML 2.x
 Support modeling with SysML diagrams
 Cross-Platform Support
 Auto Update
 Retina Display Support
 Extension Manager
 Model-Driven Development
 The data are stored in a very simple JSON format,
 Fast Modeling
 Dark and Light Themes
 Command Palette
 PDF Export for Clean Printing
 It supports Markdown language

 Other UML tools : UMLet, PlantUML, Eclipse Papyrus, Gliffy are few other examples of
UML tools
Version Control System
Version Control, also known as source control, is the practice of tracking and managing
changes to software code. Version control systems are software tools that help software
teams manage changes to source code over time. Version control systems help software
teams to work smarter and faster.

Version control software keeps track of every modification to the code in a special kind of
database. Software developers working in teams continually write new source code and
change existing source code. The code for a project, app or software component is typically
organized in a folder structure or “file tree”. One developer on the team may be working on
a new feature while another developer fixes an unrelated bug by changing code, each
developer may make their changes in several parts of the file tree.

Version control helps teams to track every individual change by each contributor and
helping prevent concurrent work from conflicting. Changes made in one part of the software
can be incompatible with those made by another developer working at the same time. This
problem should be discovered and solved in an orderly manner without blocking the work of
the rest of the team. Further, in all software development, any change can introduce new
bugs and new software can't be trusted until it's tested. So, testing and development
proceed together until a new version is ready.

Good version control systems facilitate a smooth and continuous flow of changes to the
code. Version control software is an essential part modern software team's professional
practices. They are especially useful for DevOps teams since they help them to reduce
development time and increase successful deployments.

Example: There are 3 workstations or three different developers at three other locations,
and there's one repository acting as a server. The work stations are using that repository
either for the process of committing or updating the tasks.

There may be a large number of workstations using a single server repository. Each
workstation will have its working copy, and all these workstations will be saving their source
codes into a particular server repository.
This makes it easy for any developer to access the task being done using the repository. If
any specific developer's system breaks down, then the work won't stop, as there will be a
copy of the source code in the central repository.
Benefits of Version Control
 Managing and Protecting the Source Code
The Version Control System helps manage the source code for the software team by
keeping track of all the code modifications. It also protects the source code from any
unintended human error and consequences.
 Keeping Track of All the Modifications Made to the Code
The team working on the project continuously produces new source codes and keeps
making amendments to the existing code. These changes are recorded for future references
and can be used if ever needed in the future to discover the root cause of any particular
problem.
 Comparing Earlier Versions of the Code
Since all the versions of the code are saved, this makes it possible for developers to go back
at any time and compare the earlier versions of the code to help fix the mistake while
reducing disruption to all team members.
 Supports the Developers’ Workflow and Not any Rigid Way of Working
Any suitable Version Control software will not impose any particular way of working. The
Version Control Systems are known to provide a smooth and continuous flow of changes
made to the code and prevent developers from getting frustrated in this clumsy mechanism.

Best version control system

Version Control Tools


Git
Git it is a popular version control system. It was created by Linus Torvalds in 2005. Git is a
distributed version control system that tracks changes in any set of computer files, usually
used for coordinating work among programmers collaboratively developing source code
during software development. Its goals include speed, data integrity, and support for
distributed, non-linear workflows. Over 70% of developers use Git. Developers can work
together from anywhere in the world. They can see the full history of the project.
Developers can revert to earlier versions of a project. Git is released under GPL-2.0 License.
It is used for:
 Tracking code changes
 Tracking who made changes
 Coding collaboration
Functions of Git
 Manage projects with Repositories
 Clone a project to work on a local copy
 Control and track changes with Staging and Committing
 Branch and Merge to allow for work on different parts and versions of a project
 Pull the latest version of the project to a local copy
 Push local updates to the main project
Working with Git
 Initialize Git on a folder, making it a Repository
 Git now creates a hidden folder to keep track of changes in that folder
 When a file is changed, added or deleted, it is considered modified
 You select the modified files you want to Stage
 The Staged files are Committed, which prompts Git to store a permanent snapshot
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.
Benefits of Git
 Strong support for non-linear development: Git supports rapid branching and
merging, and includes specific tools for visualizing and navigating a non-linear
development history.
 Distributed development: Git gives each developer a local copy of the full
development history, and changes are copied from one such repository to another.
These changes are imported as added development branches and can be merged in
the same way as a locally developed branch.
 Compatibility with existing systems and protocols: Repositories can be published
via Hypertext Transfer Protocol Secure (HTTPS), Hypertext Transfer
Protocol (HTTP), File Transfer Protocol (FTP), or a Git protocol over either a plain
socket or Secure Shell (ssh). Git also has a CVS server emulation, which enables the
use of existing CVS clients and IDE plugins to access Git
repositories. Subversion repositories can be used directly with git-svn.
 Efficient handling of large projects: Git is very fast and scalable. Fetching version
history from a locally stored repository can be one hundred times faster than
fetching it from the remote server.
 Cryptographic authentication of history: The Git history is stored in such a way that
the ID of a particular version (a commit in Git terms) depends upon the complete
development history leading up to that commit. Once it is published, it is not
possible to change the old versions without it being noticed.
 Toolkit-based design: Git was designed as a set of programs written in C and several
shell scripts that provide wrappers around those programs. Although most of those
scripts have since been rewritten in C for speed and portability, the design remains,
and it is easy to chain the components together.
Concurrent Versions System(CVS)
CVS is another most popular version control system, an important component of Source
Configuration Management (SCM) which remains the tool of choice among developers
since 80s. You can record the history of sources files, and documents very easily with the
help of CVS. It handles conflicts between two programmers by only allowing for the latest
version of the code to be worked on and updated. It excludes the symbolic links to avoid
the security risk and uses the delta compression technique for efficient storage utilization.
Benefits:
 Matured technology with cross-platform support
 Instant help and support from vast CVS community
 Robust and fully-featured powerful command-line
 Multiple developers might work on the same project parallel.
 Source corruption due to lack of support for atomic check-outs and commits,
 No integrity checking for source code,
 Poor support for distributed source control
 Expensive branch operations as it is not designed for long-term branching

Apache Subversion (SVN):


It is a free and open-source software best-matched successor to the widely used CVS tool
and was created as an alternative to CVS after fixing the bugs and limitations of CVS
system while maintaining high compatibility with it and that’s why Many developers
switched to SVN for the best and improved features of CVS.
SVN employs the concept of atomic operations to prevent corruption in the database
which was a major issue in CVS. In atomic operation, all or none of the changes made to
the source are applied so that no partial changes will break the original source. While
CVS’s branch operations are expensive, SVN’s branching operation is cheap and not
dependent upon the file size which makes it better to large, forked projects with many
directions.
Benefits:
 Supports atomic operations to prevent corruption
 Free-form versioned metadata
 Supports empty directories and cheaper branch operations
 Have better windows support as compared to Git
 Wide variety of plug-ins for leading IDE and Agile tools.
 Insufficient repository management commands and no support for signed
revisions,
 Much Slower speed compared to git
 contains bugs relating to filename normalization and directories
Bug Tracking System
• A software bug is an error, flaw or fault in the design, development, or operation of
computer software that causes it to produce an incorrect or unexpected result, or to
behave in unintended ways.
• During its lifetime, a single defect may go through several stages or states. They
include:
 Active: Investigation is underway
 Test: Fixed and ready for testing
 Verified: Retested and verified by quality assurance (QA)
 Closed: Can be closed after QA retesting or if it is not considered to be a
defect
 Reopened: Not fixed and reactivated
• Bugs are managed based on priority and severity. Severity levels help to identify the
relative impact of a problem on a product release. These classifications may vary in
number, but they generally include some form of the following:
• Catastrophic: Causes total failure of the software or unrecoverable data loss. There
is no workaround and the product can’t be released.
• Impaired functionality: A workaround may exist, but it is unsatisfactory. The
software can’t be released.
• Failure of non-critical systems: A reasonably satisfactory workaround exists. The
product may be released, if the bug is documented.
• Very minor: There is a workaround, or the issue can be ignored. It does not impact a
product release.
• A bug tracking system is software that keeps track of bugs that the user might have
encountered in any software development or in any project.
• A software bug occurs when an application or program doesn’t work the way it is
designed to function. Most errors are faults or mistakes made by system architects,
designers or developers.
• Testing teams use bug tracking to monitor and report on errors that occur as an
application is developed and tested.
The three main functionalities of the Bug Tracking system is:
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.
Bugzilla
Bugzilla is an open-source tool used to track bugs and issues of a project or a software. It
was originally developed and used by the Mozilla project, and licensed under the Mozilla
Public License.
 It was written by Terry Weissman in TCL programming language in 1998.
 Later, Bugzilla was written in PERL and it uses the MYSQL database.
 Bugzilla can be used as a Test Management tool since it can be easily linked with
other test case management tools like Quality Centre, ALM, Testlink, etc.
 Bugzilla provides a powerful, easy to use solution to configuration management and
replication problems.
 It can dramatically increase the productivity and accountability of an individual by
providing a documented workflow and positive feedback for good performance.
Key Features
 Bugzilla is powerful and it has advanced searching capabilities.
 Bugzilla supports user configurable email notifications whenever the bug status
changes.
 Bugzilla displays the complete bug change history.
 Bugzilla provides inter bug dependency track and graphic representation.
 Bugzilla allows users to attach Bug supportive files and manage it.
 Bugzilla has integrated, product-based, granular security schema that makes it more
secure.
 It has complete security audit and runs under the Perl’s taint mode.
 Bugzilla supports a robust, stable RDBMS (Relational Data Base Management
System) back end.
 It supports Web, XML, E-Mail and console interfaces.
 Bugzilla has a wide range of customized, user preferences features.
 It supports localized web user interface.
 Extensive configurability as it allows to be configured with other test management
tools for a better user experience.
 Bugzilla has a smooth upgrade pathway among different versions.
Reports in Bugzilla
 Bugzilla supports Tabular Reports that have HTML or CSV reports.
 Tabular reports can be viewed in 1-Dimensional, 2-Dimensional or 3-Dimensional
ways.
 The most common type of report supported by Bugzilla is the Graphical Reports.
 Graphical Reports contain line graph, bar and pie charts.
 The user can even choose 3-D reports for tables and images.
Trac
Trac is an open-source, web-based project management and bug tracking system. 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. It was developed by D. Richard Hipp in
2004.It is written in Python programming language. It was released under GPL 2.0 license
and later changed to BSD-3-Clause License.
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. Bootstrap,
originally named Twitter Blueprint, was developed by Mark Otto and Jacob Thornton in
2011 and released under MIT License. It is written in HTML, CSS and JavaScript.
A website is called responsive website which can automatically adjust itself to look good on
all devices, from smart phones to desktops etc.

Advantages of Bootstrap:
 It is very easy to use. Anybody having basic knowledge of HTML(Hyper Text Markup
Language) and CSS(Cascading Style Sheets) can use Bootstrap.
 It facilitates users to develop a responsive website.
 It is compatible on most of browsers like Chrome, Firefox, Internet Explorer, Safari and
Opera etc.

You might also like