Unit 1_ Open Source Software
Unit 1_ Open Source Software
SOFTWARE
What is Open Source Software (OSS)?
● Open source software (OSS) is software that is distributed with its source code,
making it available for use, modification, and distribution with its original rights.
● Programmers who have access to source code can change a program by adding to
it, changing it, or fixing parts of it that aren’t working properly.
● OSS typically includes a license that allows programmers to modify the software to
best fit their needs and control how the software can be distributed.
● The license indicates how the software may be used. OSS is unique in that it is
always released under a license that has been certified to meet the criteria of the
Open Source Definition.
● There are open source software applications for a variety of different uses such as
office automation, web design, content management, operating systems, and
communications.
HISTORY BEHIND OPEN SOURCE
Early Sharing (1950s-1960s): Source code, the readable form of software, was often shared with
mainframe computers. This allowed users to modify the software for their needs.
Shift to Proprietary Software (1970s): Software became more complex and commercially valuable.
Companies started keeping the source code proprietary to protect their investment.
Free Software Movement (1980s): Richard Stallman founded the GNU Project to create a free
operating system with open source code. The movement emphasized user freedom and software
collaboration.
Rise of Open Source (1990s): Linus Torvalds released the Linux kernel, a core component of an
operating system, under an open source license. Other key projects like Apache HTTP Server and
Python gained popularity. The term "Open Source" was coined in the late 1990s, emphasizing
collaboration and practical benefits.
Open Source Goes Mainstream (2000s-Present): Companies embraced open source for development
and innovation.
What is the Open Source Initiative?
● Cost-effective: Many open source projects are free to use and modify, saving money on
licensing fees.
● Security: With open source, the code is transparent, allowing a larger community to
identify and fix vulnerabilities, potentially leading to more secure software.
● Customization: Open source software can be modified to fit specific needs, unlike
closed source software with limited customization options.
● Innovation: Open source fosters collaboration, which can lead to faster innovation and
development of new features.
● Community and Support: Many open source projects have large and active
communities that provide support and help with troubleshooting.
● Stability: Since the source code is available, the software can continue to be developed
and maintained even if the original developers stop working on it.
APPLICATIONS
Operating Systems: OSS plays a fundamental role in powering various computing devices. Linux, for instance, is a
prominent open-source operating system used on servers, personal computers, and even supercomputers.
Web Development: The internet infrastructure heavily relies on OSS. The Apache HTTP Server, a cornerstone of web
serving, and many content management systems are built on open-source foundations.
Software Development Tools: From version control systems like Git to programming languages like Python and Java,
a vast array of software development tools are open-source. This fosters collaboration and innovation among
developers.
Scientific Computing: Open-source software is instrumental in scientific research. Tool like Python provide powerful
computational capabilities for researchers in various fields.
Creative Multimedia: A range of open-source software empowers creative pursuits. GIMP for graphic design, Blender
for animation, and VLC media player are just a few examples, offering powerful and free alternatives to commercial
software.
Education and Research: The affordability and flexibility of OSS make it ideal for educational institutions. It allows
students to learn, experiment, and modify code, fostering a deeper understanding of software development.
APPLICATIONS
In Your Daily Life:
● Operating Systems: Powering many popular devices, including Android smartphones and some desktop
computers, Linux (an open-source OS) is a prime example.
● Web Browsing: Popular browsers like Mozilla Firefox and Chromium (the foundation for Google Chrome) are built
on open-source code.
● Content Management Systems: WordPress, the platform behind millions of websites, is open-source, allowing for
customization and flexibility.
● Creative Tools: From graphic design software like GIMP to video editing tools like Blender, there's a vast array of
open-source creative applications.
● Communication and Collaboration: Open-source platforms like Skype (partially) and Signal enable free and
secure communication.
APPLICATIONS
In Businesses and Organizations:
● Web Servers: Apache and Nginx, dominant players in web server software, are open-source, providing
cost-effective and reliable solutions.
● Databases: MySQL and PostgreSQL are leading open-source databases used by businesses of all sizes
for data storage and management.
● Cloud Computing: OpenStack is a popular open-source platform for building and managing cloud
infrastructure.
● Enterprise Applications: Many companies leverage open-source software for project management,
customer relationship management (CRM), and other business functions.
● Software Development Tools: From code editors like Visual Studio Code to version control systems like
Git, open-source tools empower developers.
Open Source vs Closed Source
Open Source: Sharing and Collaboration
● Core Principle: Open-source software (OSS) prioritizes transparency and collaboration. The source
code, the software's blueprint, is freely available for anyone to inspect, modify, and distribute under
a specific license (e.g., GNU General Public License or GPL).
● Development Process: Open source fosters an iterative development process. A global community
of developers contributes code, suggests improvements, and fixes bugs, leading to faster
innovation.
● Benefits:
○ Cost-Effective: Often free or low-cost to use and modify, reducing licensing fees.
○ Customization: The open code allows users to tailor the software to their specific needs.
○ Security: With many developers scrutinizing the code, vulnerabilities are often identified and
patched faster.
○ Innovation: The collaborative nature fosters continuous improvement of the software.
● Examples: Linux operating system, Mozilla Firefox web browser, WordPress content management
system.
Open Source vs Closed Source
Closed Source: Proprietary and Controlled
● Core Principle: Closed-source software is proprietary. The source code is considered intellectual
property owned by the developing company and not accessible to the public. Users rely on the
company for updates, bug fixes, and new features.
● Development Process: Development typically happens within a closed team of in-house
developers working within a defined scope and timeline.
● Benefits:
○ Control: The company maintains complete control over the software's functionality and
features.
○ Revenue Generation: Companies can charge licensing fees for their software.
○ Support: Users receive dedicated customer support from the developing company.
● Examples: Microsoft Windows operating system, Adobe Photoshop image editing software,
proprietary business software.
FOSS
Free and open-source software (FOSS) allows users and programmers to edit, modify or reuse the
software’s source code. This gives developers the opportunity to improve program functionality by
modifying it.
The term “free” indicates that the software does not have constraints on copyrights. The term “open
source” indicates the software is in its project form, enabling easy software development from expert
developers collaborating worldwide without any need for reverse engineering.
Free and open-source software may also be referred to as free/libre open-source software (FLOSS) or
free/open-source software (F/OSS).
Before 1960, most software was openly accessible and free because software tools required a relatively
simple development effort. As the complexity of software applications grew, this led to greater software
package development efforts, making software licensing a market trend. Eventually, developers found
techniques to avoid multicomputer software use, such as use of product keys and Internet activation. With
the widespread use of the Internet, these techniques became essential for developers to regain profit from
their efforts.
FOSS surfaced as a result of a need for free, collaborative effort in complicated and expensive projects.
Freedoms in FOSS:
Use the software for any purpose: You can install and run the software on any device for
personal or commercial use. There are no limitations on what you can do with it.
Modify the source code: The source code, the building blocks of the software, is freely
available. This allows programmers to tinker with the code, add features, or fix bugs.
Distribute the software (modified or not): You can share the original software or your
modified version freely. This fosters collaboration and innovation within the FOSS
community.
Study the source code: Anyone can examine how the software works by reading the
source code. This is valuable for learning programming or understanding the software's inner
workings.
Benefits of FOSS:
Cost-effective: Many FOSS applications are free to download and use, which can be a significant
advantage for individuals and organizations.
Security: With open source code, anyone can identify and fix vulnerabilities, potentially leading to
more secure software.
Customization: The ability to modify the source code allows users to tailor the software to their
specific needs.
Community-driven development: FOSS projects often have large and active communities that
contribute to development and provide support.
FOSS Usage
FOSS (Free and Open Source Software) is used extensively in a wide variety
of contexts, from individual users to large organizations.
Individual Users:
● Daily Computing: Many people use FOSS operating systems like Linux for their desktops and
laptops. FOSS web browsers like Firefox and Chromium are popular alternatives to Chrome or
Safari.
● Productivity and Creativity: Free and open-source office suites like LibreOffice offer an alternative
to Microsoft Office for document creation and editing. Image editing software like GIMP provides
powerful tools for photo manipulation, rivaling paid options like Photoshop.
● Learning and Development: Students and programmers can leverage FOSS for free to learn
coding and explore software development concepts. The open-source nature allows them to see
how the software works and even contribute to its improvement.
FOSS Usage
Businesses and Organizations:
● Data Analysis and Modeling: FOSS tools like R and Python (with a rich
ecosystem of open-source libraries) are extensively used for scientific data
analysis, simulations, and modeling. This fosters collaboration and reproducibility
in research.
● Bioinformatics: FOSS plays a vital role in analyzing biological data like DNA
sequences. Software like SAMtools and GATK are crucial for genomics research.
● Open Science Hardware: The maker movement leverages FOSS hardware
designs to create scientific instruments and research tools, making science more
accessible and affordable.
FOSS Usage
Education and Training:
● Focus: Open source prioritizes collaboration and transparency in software development. The core belief is that
software benefits from the collective effort of a global community of developers.
● Sharing and Improvement: Open-source licenses encourage users to not only access the source code but also
contribute to its improvement. Modifications and bug fixes can be shared back with the community, fostering a
continuous development cycle.
● Development Model: Open source promotes an open and iterative development model. Anyone can contribute
code, suggest features, and participate in discussions, leading to faster innovation.
● Focus: Free software emphasizes the freedoms users have with the software. It's about giving users the power to
control how they use the software.
● Philosophy of Freedom: The core principle is that software shouldn't restrict users from running, copying,
modifying, and sharing it for any purpose. Users have the freedom to adapt the software to their specific needs.
● Social Impact: Free software advocates believe in the social and ethical implications of software. They believe
everyone should have the freedom to access and modify software, promoting equality and knowledge sharing.
FREE SOFTWARE vs OPEN SOURCE SOFTWARE
● Licensing: Open-source licenses come with a set of conditions that dictate how the
software and its modifications can be used and shared. These licenses ensure the software
remains open-source even after modifications. There are various open-source licenses with
different terms, but some core principles are common:
● Freedom to inspect and modify: Users can examine the code, understand how it
works, and make changes to suit their needs.
● Freedom to redistribute: Users can share the original or modified version of the
software with others.
● Freedom to contribute: Users can improve the software by submitting their
modifications back to the community.
While as Free software licenses can be less restrictive than some open-source licenses.
For example, a free software license might allow users to freely distribute the software without
requiring them to share their modifications back as open-source.
FREE SOFTWARE vs OPEN SOURCE SOFTWARE
● Developers: Open source provides a platform for developers to collaborate, learn from each other's code, and
contribute to projects they're passionate about.
● Businesses: Open source offers cost-effective access to powerful software. Businesses can leverage the open code
for customization, integration, and rapid development.
● Tech-Savvy Users: Users who are comfortable with technology can take advantage of the flexibility of open-source
software. They can modify the code to suit their specific needs and troubleshoot issues by examining the source
code themselves.
● Everyone: The core principle of free software is user empowerment. It ensures everyone has the right to access,
use, modify, and share software without restrictions. This benefits individuals, educational institutions, and non-profit
organizations that might not have the budget for expensive proprietary software.
● Privacy-Conscious Users: Free software licenses often grant users the ability to audit the source code. This allows
users to verify how their data is being handled and make informed choices about the software they use.
● Ethically Minded Users: Those who value principles like freedom and knowledge sharing might be drawn to free
software. It promotes an open and collaborative approach to software development, fostering innovation and
inclusivity.
FOSS LICENSES
FOSS licenses, are legal agreements that define how users can interact with
open-source software. These licenses grant users specific rights to use, modify,
and distribute the software, while also protecting the intellectual property of the
original developers.
Types of FOSS Licenses:
● Copyleft Licenses
● Permissive Licenses
TYPES OF FOSS LICENSES
Copyleft Licenses: These licenses (like GNU General Public License or GPL) ensure that any modified version of the
software remains open-source. This fosters collaboration and guarantees the software stays free and modifiable for
everyone. Examples include:
● GNU General Public License (GPLv2, GPLv3): A widely used copyleft license requiring modified versions of the
software to be released under the same GPL license. (Think Linux kernel)
● Affero General Public License (AGPLv3): Similar to GPLv3, but specifically applies to software used on a network
(e.g., web applications).
Permissive Licenses: These licenses (like MIT License or Apache License) offer more freedom to users. They allow users
to modify and distribute the software even in closed-source (proprietary) projects. Examples include:
● MIT License: A simple and permissive license used in projects like React.js. It allows for commercial use and private
modifications without requiring users to share their changes.
● Apache License 2.0: Another popular permissive license used in projects like the Apache web server. It allows for
commercial use and modification without requiring users to share their modifications back to the open-source
community.
● BSD-3-Clause "New" or "Revised" License: A permissive license used in projects like FreeBSD. It allows for
commercial use and modification with minimal restrictions.
TYPES OF FOSS LICENSES
Copyleft licenses are ideal for projects that prioritize community contributions and
want to ensure the software stays open-source.
Permissive licenses are suitable for projects where you want to allow wider adoption,
including commercial use and integration into closed-source projects.
FREE SOFTWARE MOVEMENT
● Social movements have played a significant role in the formation of current public legislation and
public policies.
● They often reflect the needs of the public and point at the shortcomings of the current legislature.
● Among the examples of significant social movements in history is the Free Software movement,
which led to the development of GNU/Linux and other free and open-source software products.
● Parallel to the efforts of ensuring liberty in the global network usage was the movement that aimed
to elicit freedom to execute software, change it whenever needed, and share it without any
limitations.
● In 1983, an American programmer named Richard Stallman launched the GNU Project to formalize
the efforts of the movement
● One of the chief philosophies of this social initiative was the idea that computers were built to
facilitate the cooperation of various people and communities with each other
● Stallman himself stated, proprietary software serves as a roadblock in the way to progression,
because much of the code is duplicated across the globe & different teams need to solve the same
problems, and without cooperation, the same job is done twice.
FREE SOFTWARE MOVEMENT
As stated in the definition, “free software is a matter of liberty, not price”
Freedom 1: To Study and Modify: Users have the right to access and understand the source code, which
is the underlying code that makes the software function. This freedom allows them to modify the software
to suit their specific needs and fix any issues they encounter.
Freedom 2: To Redistribute Copies: Free software grants the freedom to share copies with others. This
fosters collaboration and ensures everyone has access to the software.
Freedom 3: To Distribute Modified Versions: This freedom allows users to not only modify the software
for themselves but also to redistribute these modified versions. This fuels innovation and community
development, as users can improve upon the original software and share those improvements with others.
FREE SOFTWARE MOVEMENT
● Although the Free Software movement has distinct values and outlined definitions, it is
commonly confused with other similar projects, such as the Open Software Initiative
(OSI).
● While open-source software provides some of the freedoms outlined by the GNU’s
definition, much of the liberties are of interest only to developers.
● Therefore, considering an open-source program as free software is not entirely
accurate.
● Stallman argued that OSI misses the most significant point of the Free Software
movement, that software should be free for all, not only for developers
FREE SOFTWARE MOVEMENT
The Importance of Free Software Licenses:
● To truly embody the principles of the movement, the software must come with
a license that guarantees the Four Essential Freedoms.
● Examples of popular free software licenses include the GNU General Public
License (GPL) and the Lesser General Public License (LGPL).
● The free software movement is more than just about software itself. It's a
social movement advocating for user empowerment and freedom in the digital
world.
IMPACT OF FREE SOFTWARE MOVEMENT
Open Source Software: While distinct, the open-source software movement shares some
common ground with the free software movement. Open-source software often emphasizes the
practical benefits of open code, but the free software movement places a stronger focus on the
ethical and social implications.
Innovation: Free software has led to the creation of popular and powerful software tools and
operating systems, such as the GNU/Linux operating system.
CRITICISM OF FREE SOFTWARE MOVEMENT
● Support and Maintenance: Free software often lacks dedicated technical support channels
compared to commercially backed software.
● Learning Curve: Free software can have a steeper learning curve, especially for
non-technical users. Because the focus is on user control and customization.
● Version Control and Fragmentation: The freedom to modify can lead to a proliferation of
versions of the same software. This can be confusing for users and make it difficult to find the
right version for their needs.
● Sustainability and Funding: Developing and maintaining complex software requires
resources. While some free software projects attract passionate developers who contribute
voluntarily, large-scale projects might struggle to find sustainable funding models. This can
limit the resources available for development and ongoing maintenance.
● Security Concerns: In some cases, the open nature of free software can be a vulnerability.
With the source code accessible to everyone, it might be easier for malicious actors to
identify and exploit security weaknesses.
COMMERCIAL OPEN SOURCE SOFTWARE
Commercial open-source software (COSS) refers to software that combines the principles of open-source development
with commercial business models.
Open-Source Core: COSS has a core foundation built on open-source software. This means the source code is freely
available, allowing users to access, modify, and distribute it.
Commercialization on Top: Companies that develop COSS build business models around this open-source core.
● Paid Support: They might offer paid support plans for the software. This provides users with technical assistance,
installation help, or training that isn't included in the free version.
● Premium Features: Some COSS offers "enterprise editions" with additional features, security enhancements, or
guaranteed service levels. These cater to businesses that need more robust functionality or reliable support.
● Hosted Services: Companies can provide cloud-based hosting or deployment services for the open-source
software. This frees users from managing the technical infrastructure and allows them to focus on using the
software.
● Subscription Models: Some COSS utilizes subscriptions to grant access to premium features, updates, or
developer tools that are not available in the free version.
● Custom Development: The open-source nature allows businesses to customize the software for their specific
needs. Companies can hire developers to build functionalities on top of the open-source core, creating unique
solutions.
COMMERCIAL ASPECTS OF OPEN SOURCE MOVEMENT
Support Services: Companies can offer paid support plans for open-source software, providing guaranteed help with
installation, configuration, troubleshooting, and even user training. This caters to users who might not have the technical
expertise to manage issues on their own.
Enterprise Editions:Some open-source projects offer "enterprise editions" that unlock additional functionalities, enhanced
security features, or guaranteed service-level agreements (SLAs). These cater to businesses that require robust features,
reliable performance, and guaranteed support for critical operations.
Deployment and Hosting: Many companies don't have the resources or desire to manage their own servers and
infrastructure. They can leverage cloud-based deployment and hosting services offered for open-source software. This
allows businesses to focus on using the software for their needs while the service provider takes care of the technical setup
and maintenance.
Subscription Services:These subscriptions might grant access to premium features, regular updates, developer tools, or
advanced functionalities not available in the free version.
Custom Development: The beauty of open-source code is its flexibility. Businesses can hire developers to customize the
software to their specific needs.
Challenges of Open Source Certification Courses: Global and Indian
Specifics
Global Challenges:
● Standardization and Fragmentation: The open-source landscape is vast and constantly evolving.
There's a lack of universal standards for OSS certifications, leading to a fragmented market with
courses of varying quality and recognition.
● Vendor Lock-In: Some certification courses might be tied to specific open-source platforms or
companies. This can limit the overall value of the certification and restrict career mobility.
● Focus on Theory vs. Practical Skills: Some courses might prioritize theoretical knowledge over
practical application. This can leave learners unprepared for real-world scenarios where hands-on
experience is crucial.
● Cost and Accessibility: High-quality certification courses can be expensive, creating a barrier to
entry for some individuals, especially in developing countries.
Challenges of Open Source Certification Courses: Global and Indian Specifics
Challenges in India:
1. Openness and Transparency: The source code, the software's blueprint, is freely available for anyone to inspect,
modify, and contribute to.
2. Collaborative Development: Open source thrives on collaboration. Developers from all over the world can contribute
code, suggest features, and participate in discussions. This distributed development model leads to faster innovation and a
wider talent pool.
3. Meritocracy: Contributions are judged based on their technical merit and adherence to the project's guidelines. This
ensures the software's quality and keeps development focused.
4. Continuous Integration and Delivery (CI/CD): Open source projects often adopt CI/CD practices. Changes are
frequently merged into the main codebase, allowing for rapid iteration and quicker bug fixes.
OPEN SOURCE DEVELOPMENT METHODOLOGIES
5. Version Control: Version control systems like Git are essential for managing changes and tracking the software's
history. This allows developers to collaborate effectively and revert to previous versions if necessary.
6. Community-Driven Development: The community plays a crucial role in open-source projects. Users report bugs,
suggest improvements, and even write documentation. This distributed effort helps the software evolve and adapt to user
needs.
7. Flexible Licensing: Open source projects use various licenses (like GPL, MIT, Apache) that define how the software can
be used, modified, and distributed. This allows for different levels of control and fosters wider adoption.
8. Communication and Documentation: Clear communication and well-maintained documentation are essential for a
healthy open-source community. New developers can easily understand the project's goals, coding standards, and
contribution guidelines.
Benefits and Challenges of Open Source Methodologies:
● Benefits:
○ Faster Development: Collaboration and rapid iteration lead to quicker innovation and feature
development.
○ Higher Quality: The large community helps identify and fix bugs more efficiently.
○ Cost-Effectiveness: Open source eliminates licensing fees and allows developers to leverage
existing code.
○ Customization: The open code allows users to tailor the software to their specific needs.
○ Security: With many eyes scrutinizing the code, vulnerabilities are often identified and patched faster.
● Challenges:
○ Project Management: Coordinating a large, distributed team can be challenging.
○ Code Quality Control: Maintaining code quality and consistency requires clear guidelines and active
community involvement.
○ Sustainability: Long-term project maintenance can be a challenge, especially for smaller
communities.
TRADITIONAL DEVELOPMENT METHODOLOGIES
Traditional development methodologies, in contrast to open source approaches,
rely on a more structured and controlled way of building software.
1. Waterfall Model:
● Sequential Phases: The development process is divided into distinct stages like requirements
gathering, design, development, testing, and deployment. Each stage must be completed before
moving on to the next.
● Strict Planning: Projects require upfront planning and detailed documentation for each phase. This
can be time-consuming but aims to minimize surprises later in development.
● Limited Flexibility: Changes to requirements or design are challenging to incorporate once a stage
is underway, potentially leading to rework and delays.
TRADITIONAL DEVELOPMENT METHODOLOGIES
2. V-Model:
● Similar to Waterfall but Verification & Validation Focused: This model integrates testing activities
alongside the development process. Verification ensures the software is built according to
specifications, while validation ensures it meets user requirements.
3. Incremental Model:
● Iterative Delivery of Working Software: The project is broken down into smaller increments, with
each iteration delivering a functional part of the software. This allows for earlier feedback and course
correction.
4. Spiral Model:
● Risk-Driven and Iterative: This model emphasizes risk assessment throughout the development
lifecycle. Each iteration involves risk identification, mitigation planning, development, and evaluation.
ADVANTAGES AND DISADVANTAGES OF
TRADITIONAL DEVELOPMENT METHODOLOGIES
Advantages of Traditional Methodologies:
● Clear Structure and Planning: The structured approach ensures a well-defined roadmap and minimizes
confusion within the development team.
● Suitable for Well-Defined Requirements: When project requirements are clear and stable upfront,
traditional methodologies can deliver predictable results.
● Easier Project Management: The defined phases and deliverables make it easier for managers to track
progress and identify potential bottlenecks.
● Documentation-Driven: The emphasis on documentation can be helpful for future maintenance and
onboarding new team members.
● Lack of Flexibility: Adapting to changing requirements can be difficult and costly in later stages.
● Limited User Input: User feedback is often incorporated later in the process, potentially leading to rework.
● Slower Time to Market: The focus on upfront planning and sequential phases can extend development
timelines.
● Less Ideal for Complex Projects: Traditional methodologies might struggle with highly complex or
uncertain project requirements.
Open Source vs. Traditional Development
There are two main approaches of software development: open source and traditional
development.
While both aim to create functional programs, they differ significantly in terms of philosophy,
development process, and ownership.
Philosophy:
● Open Source: Collaboration, transparency, and community-driven development are core
principles. Open-source software thrives on a global network of developers who contribute,
share knowledge, and improve the software iteratively.
● Traditional: Control, ownership, and planned development are key. Traditional methods
typically involve a closed team of in-house developers working within a defined scope and
timeline.
Open Source vs. Traditional Development
Development Process:
● Open Source: The development process is often organic and iterative. Developers can contribute code, suggest
improvements, and fix bugs at any time. There's a focus on continuous integration and continuous delivery (CI/CD)
practices.
● Traditional: The development process follows a more structured approach, often using methodologies like Waterfall
or Agile. Phases like planning, design, development, testing, and deployment are clearly defined with specific
deliverables.
● Open Source: The source code is freely available for anyone to inspect, modify, and distribute under a specific
license (e.g., GNU General Public License or GPL). Users have a significant degree of control over the software's
evolution.
● Traditional: The source code is considered intellectual property owned by the company developing the software. It's
typically kept confidential and not accessible to the public. Users have limited control over the software's functionality
and features.
Open Source vs. Traditional Development
● Open Source: Ideal for projects that benefit from community involvement, rapid development, and
cost-effectiveness. Customization and security can also be strong points.
● Traditional: Well-suited for projects requiring strict control, intellectual property protection, and
well-defined features. Traditional methods might be better for security-critical applications where
rigorous testing is essential.