SOFTWARE ENGINEERING AND
PROJECT
tdlochan@[Link]
MIT(PU)
Unit 6 - Web development and security
Web Page development
Web page development is the process of creating and designing websites
that are accessed through the internet.
It involves various stages, including planning, designing, coding, testing, and
launching.
Here are some essential concepts and tools of web page
development:
✓ HTML (Hypertext Markup Language): It is the foundation of any website, which
provides the structure and content of web pages.
✓ CSS (Cascading Style Sheets): It is used to style HTML content, such as layout, colors,
fonts, and more.
✓ Content management systems (CMS): CMS is software that helps to create, manage,
and publish digital content, such as blogs, articles, images, and videos.
✓ Search engine optimization (SEO): It is the practice of optimizing websites to rank
higher on search engine results pages (SERPs) and attract more organic traffic.
✓ Security: Websites should be secured with SSL certificates, firewalls, and other
measures to protect users' data and prevent cyberattacks.
✓ Web hosting: It refers to the process of storing website files and data on servers that
are accessible through the internet.
Here are some essential concepts and tools of web page
development:
✓ Text editors: Basic text editors like Notepad, TextEdit, and Sublime Text are popular
among developers who prefer a lightweight and minimalistic approach.
✓ Bootstrap: A popular front-end framework that provides pre-designed HTML, CSS, and
JavaScript components that you can use to build responsive websites.
✓ jQuery: A fast, small, and feature-rich JavaScript library that simplifies HTML document
traversing, event handling, and Ajax interactions.
✓ Canva: A web-based design tool that allows you to create graphics, logos, and other
visual content for your web pages without any design skills.
✓ Color Picker: A simple tool that allows you to select colors for your web pages by
choosing a color from a color wheel or by entering a color code.
✓ Google Fonts: A free and open-source library of fonts that you can use to improve the
typography of your web pages.
Introduction to php
PHP (Hypertext Preprocessor) is a popular server-side scripting language used in
web development. PHP is widely used for building dynamic and interactive websites,
web applications, and content management systems (CMS). Here are some ways in
which PHP is used in web development:
✓ Server-side scripting: PHP is used to generate dynamic web content based on user
inputs, database queries, and other server-side operations.
✓ Form processing: PHP is used to validate and process form data submitted by
users.
✓ Database connectivity: PHP can connect to various databases like MySQL, Oracle,
and PostgreSQL and perform operations like data insertion, deletion, and retrieval.
✓ Content management systems: PHP is used to build popular CMSs like WordPress,
Drupal, and Joomla that provide a platform for building and managing websites.
✓ E-commerce websites: PHP is used to build online stores that allow users to
browse products, add them to the cart, and complete the checkout process.
Local web server for web development
A local web server environment for web development is a setup on your
computer that allows you to develop, test, and debug web applications before
they are deployed to a live server.
Web Server Software Operating System
XAMPP Windows, Linux, macOS
WAMP Windows
MAMP macOS
LAMP Linux
Local web server package includes…
Apache: The web server software that handles HTTP requests and serves web
pages.
MySQL: A relational database management system that manages the data used
by web applications.
PHP: A server-side scripting language that is used to create dynamic web pages
and web applications.
Introduction to Game development
Game development is the process of
creating video games, and it involves
a range of skills and disciplines,
including programming, game design,
graphic design, sound design, and
project management.
Here are some key concepts and tools that are commonly used in game development:
✓ Game engines: Game engines like Unity, Unreal Engine, and Godot provide a platform for
building games and provide a range of features like physics, audio, animation, and graphics
rendering.
✓ Programming languages: Game development often requires programming skills, and languages
like C++, C#, and Java are commonly used to develop games.
✓ Graphics and art tools: Games require graphics and art assets like characters, environments, and
animations. Tools like Adobe Photoshop, Illustrator, and 3D modeling software like Blender and
Maya are commonly used for game asset creation.
✓ Sound and music tools: Sound effects and music are important components of game
development, and tools like Audacity, GarageBand, and FL Studio are commonly used for sound
and music creation.
✓ Version control systems: Version control systems like Git and SubVersion(SVN) are commonly
used in game development to manage changes to the game code and assets.
✓ Testing and debugging tools: Testing and debugging are critical components of game
development, and tools like Unity Test Runner, Xcode Debugger, and Visual Studio Debugger are
commonly used to identify and fix issues in the game code.
Introduction to mobile application development
Mobile application development involves
creating software applications that run on
mobile devices such as smartphones and
tablets. Mobile apps can be developed for
various operating systems such as iOS,
Android, and Windows.
It also requires careful planning, testing, and
maintenance to ensure that the app meets
the user's requirements and functions
correctly on different devices and platforms.
Tools required for mobile application development
The tools required for iOS and Android app development may vary slightly, as each platform has
its own development environment and requirements. Here are some of the main tools required
for iOS and Android app development:
Android App Development:
✓ Android Studio: Android Studio is the official IDE for Android app development. It includes
tools for coding, debugging, and testing Android apps.
✓ Java/Kotlin: Java is the primary programming language for Android app development, but Kotlin
has gained popularity in recent years. Developers need to have a good understanding of these
programming languages.
✓ Android Emulator: The Android Emulator is included in Android Studio and allows developers
to test their app on different Android devices without actually owning them.
✓ Layout Editor: This tool is used to create user interfaces for Android apps visually. It allows
developers to drag and drop components and set their properties without writing code.
✓ Google Play Console: The Google Play Console is used to publish and distribute Android apps
on the Google Play Store.
Tools required for mobile application development
iOS App Development:
✓ Xcode: Xcode is the integrated development environment (IDE) for iOS app development. It
includes tools for coding, debugging, and testing iOS apps.
✓ Swift/Objective-C: Swift is Apple's primary programming language for iOS app development,
but Objective-C is still used in legacy code. Developers need to have a good understanding of
these programming languages.
✓ iOS Simulator: The iOS Simulator is included in Xcode and allows developers to test their app
on different iOS devices without actually owning them.
✓ Interface Builder: This tool is used to create user interfaces for iOS apps visually. It allows
developers to drag and drop components and set their properties without writing code.
✓ TestFlight: TestFlight is a beta testing tool that allows developers to distribute their app to a
group of testers before it's released on the App Store.
Overall, the tools required for iOS and Android app development are similar in many ways, but
each platform has its own unique development environment and requirements.
Introduction to software piracy
Software piracy refers to the illegal copying, distribution, and
use of software without the permission of the software's
owner. Piracy can occur in different forms, such as installing
and using unlicensed copies of software, distributing software
without permission, or creating and distributing unauthorized
copies of software.
Software piracy is a serious problem that can lead to
significant financial losses for software developers
and publishers.
Consequences of software piracy
✓ Economic Impact: Software piracy can result in significant economic losses, including
lost revenue, reduced investment, etc.
✓ Legal Consequences: Software piracy is illegal and can result in fines, lawsuits, and
other legal consequences.
✓ Damage to Reputation: Software piracy can damage the reputation of both individuals
and companies, as it is seen as unethical and illegal.
✓ Security Risks: Pirated software often contains viruses, malware, and other security
threats, putting users' personal and sensitive data at risk.
✓ Lack of Support and Updates: Pirated software does not receive updates or support
from the developers, leaving users vulnerable to bugs and security vulnerabilities.
✓ Reduced Quality: Pirated software may be of lower quality than legally purchased
software, as it often lacks important features and updates.
Importance of software piracy protection
✓Protects the rights of software creators
✓Helps generate revenue for software companies
✓Encourages innovation and creativity
✓Maintains competitive advantage
✓Avoids legal issues
✓Builds trust with customers
✓Ensures software quality and safety
✓Promotes fairness and ethics in business practices
✓Prevents security risks and cyber threats.
Software developers and publishers use various protection systems
✓ Serial numbers and product keys: Serial numbers and product keys are unique codes that are
required to activate the software after it is installed. This system ensures that only authorized
users can use the software.
✓ Digital Rights Management (DRM): DRM is a system used to control the use and distribution of
digital content. It can be used to prevent unauthorized copying and distribution of software.
✓ Watermarking: Watermarking is a technique used to embed a unique identifier into the
[Link] system makes it easier to identify and track unauthorized copies of the software.
✓ Encryption: Encryption is a technique used to protect the software code from being read or
modified. This system makes it more difficult for pirates to create unauthorized copies of the
software.
E-learning platform
E-learning platforms are online platforms that
provide educational content and tools to
facilitate learning.
These platforms typically offer courses,
lectures, quizzes, and other educational
resources that can be accessed from anywhere
with an internet connection.
e-learning platform examples
✓ Coursera: Offers online courses and specializations from top universities and
companies worldwide.
✓ Skillshare: Provides online classes on creative topics such as design, photography, and
writing.
✓ Khan Academy: Offers free online courses in math, science, computer programming,
and more.
✓ Udacity: Offers online courses focused on tech skills, such as data science, artificial
intelligence, and programming.
✓ BYJU'S: Offers online courses for students from kindergarten to class 12, covering
topics such as math, science, and English.
✓ Unacademy: Provides online courses and coaching for various competitive exams
such as UPSC, CAT, and NEET.
✓ Codecademy: Specializes in coding and web development courses.
Benefits of e-learning
✓ Flexibility: Learners can access the content at any time and from any location, making it
easier for them to fit education into their busy schedules.
✓ Cost-effectiveness
✓ Personalized learning: E-learning platforms use machine learning algorithms to track learners'
progress and provide customized recommendations based on their individual needs and
preferences
✓ Convenience: E-learning platforms eliminate the need for learners to travel to physical
locations, saving time and money.
✓ Variety of courses
✓ Easy access to educational resources: E-learning platforms provide easy access to educational
resources such as books, videos, and lectures.
✓ Self-paced learning
✓ Interactive learning: E-learning platforms use interactive tools such as quizzes, simulations, and
games to engage learners and make learning more fun.
✓ Global access
Unit completed!