0% found this document useful (0 votes)
43 views60 pages

Final - PPT - JSD - Class 9 - Module 3

Coding and cyber security ppt

Uploaded by

shubham jadhav
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views60 pages

Final - PPT - JSD - Class 9 - Module 3

Coding and cyber security ppt

Uploaded by

shubham jadhav
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 60

Technical

Specifications for
Software
Construction

Module 3
Session 1: Understanding Software Development

Learning Objectives
After this session, you will be able to:
• List the latest changes, procedures, and practices in the field
of software development as best practice.
• Discuss how to store and retrieve information related to
software technicalities.
1.1 Software Development Best Practices &
Information Management
Software Development Best Practices

• Software development best practices are a set of standards, principles, and


procedures designed to improve the efficiency, quality, and success of the
software development process.

• These practices encompass all stages of the development lifecycle, from


planning and coding to testing, deployment, and maintenance. They are
intended to increase cooperation, code quality, and overall project
management by reducing errors and hazards.
1.1 Software Development Best Practices &
Information Management
Software Development Best Practices
Requirements Gathering
Define project needs with stakeholder
input.
Planning

Develop realistic project plans.

Agile Methodology

Embrace iterative development.


1.1 Software Development Best Practices &
Information Management
Software Development Best Practices
Version Control

Use Git for efficient code management.

Code Reviews
Catch errors and ensure coding
standards.
Testing

Identify and fix bugs early.


1.1 Software Development Best Practices &
Information Management
Software Development Best Practices

Security
Prioritise security with assessments and
secure coding.
1.1 Software Development Best Practices &
Information Management
Information Management Best Practices

• Information management is the process of organising, storing, retrieving, and


keeping data safe in a business. It includes policies, plans, and technologies that
make sure data is correct, safe, and ready for making decisions.

• Information management looks at data control, data quality, security, and


compliance to make sure that an organisation's information assets are as
valuable and useful as possible. This field is necessary to keep data's integrity,
privacy, and availability throughout its entire lifetime.
1.1 Software Development Best Practices &
Information Management
Information Management Best Practices
Data Governance
Set clear policies for data quality,
security, and compliance.
Data Classification
Classify data and apply security
measures based on sensitivity.
Backup and Recovery
Regularly back up critical data and
establish recovery procedures.
1.1 Software Development Best Practices &
Information Management
Information Management Best Practices
Data Privacy
Adhere to privacy regulations, protect PII
(personally identifiable information) and
sensitive data.
Master Data Management (MDM)
Ensure consistency of main data across
the organisation.
Document Management
Utilise systems for efficient document
organisation and version control.
1.1 Software Development Best Practices &
Information Management
Information Management Best Practices
Access Control
Implement robust access controls,
regularly reviewing permissions.
Data Retention and Purging
Define policies for data lifecycle
management, purging obsolete data.
Change Management
Track and manage changes to data
structures for consistency.
1.1 Software Development Best Practices &
Information Management
Information Management Best Practices
Data Auditing and Monitoring
Implement tools for tracking data
access and modifications.
Data Integration
Develop standardised approaches for
integrating data.
Collaboration and Communication
Foster collaboration among teams,
aligning with business goals.
1.1 Software Development Best Practices &
Information Management
Changes in Software Development in Best Practices

In the ever-evolving field of software development, several ongoing changes shape


the industry. Here are some notable trends and shifts:

1. Increased Use of Visual Programming

• Change: Emphasis on visual programming for beginners.


• Impact: Tools like Scratch, Blockly, or code blocks make it easier for beginners to
understand and create simple programs through visual elements.
1.1 Software Development Best Practices &
Information Management
Changes in Software Development in Best Practices

2. Introduction to Low-Code Platforms

• Change: Growth in low-code platforms.


• Impact: Beginners can start developing applications with minimal coding,
fostering an easier entry into software development.
1.1 Software Development Best Practices &
Information Management
Changes in Software Development in Best Practices

3. Focus on Interactive Learning Platforms

• Change: Rise of interactive coding platforms.


• Impact: Beginners can practice coding in an interactive and engaging
environment, making the learning process more enjoyable.
1.1 Software Development Best Practices &
Information Management
Changes in Software Development in Best Practices

4. Introduction to Mobile App Development

• Change: Increased interest in mobile app development.


• Impact: Beginners can explore creating simple mobile apps, gaining hands-on
experience in a popular and accessible area of software development.
1.1 Software Development Best Practices &
Information Management
Changes in Software Development in Best Practices

5. Proliferation of Coding Bootcamps

• Change: Growth in coding bootcamps.


• Impact: Short, intensive programs provide beginners with practical coding skills
and a quick entry into the workforce.
1.1 Software Development Best Practices &
Information Management
Changes in Software Development in Best Practices

6. Accessible Online Learning Resources

• Change: Abundance of online learning resources.


• Impact: Beginners have access to a wealth of tutorials, courses, and forums to
learn coding at their own pace.
1.1 Software Development Best Practices &
Information Management
Changes in Software Development in Best Practices

7. Introduction to Version Control with Git

• Change: Early introduction to version control using Git.


• Impact: Beginners learn the basics of collaborative coding and code
management from the start.
1.1 Software Development Best Practices &
Information Management
Changes in Software Development in Best Practices

8. Focus on Problem-Solving and Projects

• Change: Shift towards project-based learning.


• Impact: Beginners are encouraged to solve real-world problems through
coding, promoting a practical understanding of software development.
1.1 Software Development Best Practices &
Information Management
Changes in Software Development in Best Practices

9. Community and Collaboration

• Change: Emphasis on community involvement.


• Impact: Beginners are encouraged to join coding communities, fostering
collaboration, sharing experiences, and receiving support.
1.1 Software Development Best Practices &
Information Management
Changes in Software Development in Best Practices

10. Introduction to Basic Cloud Concepts

• Change: Basic understanding of cloud computing.


• Impact: Beginners are introduced to the concept of deploying and hosting
applications in the cloud, providing a glimpse into modern development
practices.
1.1 Software Development Best Practices &
Information Management
Store and Retrieve Information Related to Software
Technicalities

• Storing and retrieving information related to


software technicalities can be achieved through
various means, depending on the scale,
requirements, and context of your project.
1.1 Software Development Best Practices &
Information Management
Store and Retrieve Information Related to Software
Technicalities

Here are common approaches:

1. Documentation Platforms: To store detailed


technical data, use a platform for documentation
like Read the Docs, Confluence, or GitHub Wiki.
This can include things like architecture diagrams,
API requirements, rules for writing code, and more.
1.1 Software Development Best Practices &
Information Management
Store and Retrieve Information Related to Software
Technicalities

2. Version Control Systems: To store and handle the


source code, use version control systems like Git.
Repositories let you store code, keep track of
versions, and work together on projects on
platforms like GitHub, GitLab, and Bitbucket.
1.1 Software Development Best Practices &
Information Management
Store and Retrieve Information Related to Software
Technicalities

3. Database Systems: Use a database to store


technical data. This can include details about
programme parts, settings, and changes made in
the past. You can use either relational databases
(like MySQL and PostgreSQL) or NoSQL databases
(like MongoDB) depending on the way the data is
stored.
1.1 Software Development Best Practices &
Information Management
Store and Retrieve Information Related to Software
Technicalities

4. Knowledge Base Systems: Put together a


knowledge base (like ServiceNow or Atlassian's Jira)
to keep technical articles, Frequently Asked
Questions (FAQs), troubleshooting tips, and other
useful data.
1.1 Software Development Best Practices &
Information Management
Store and Retrieve Information Related to Software
Technicalities

5. API Documentation Tools: Guide APIs with tools


like Swagger, Postman, or Redoc. This includes
information about endpoints, request and answer
formats, ways to authenticate users, and examples
of how to use the system.
1.1 Software Development Best Practices &
Information Management
Store and Retrieve Information Related to Software
Technicalities

6. Code Comments: Add comments right to the code


to help explain tricky or important parts. Code that
is well-commented acts as its own documentation
and helps writers understand how the code works.
1.1 Software Development Best Practices &
Information Management
Store and Retrieve Information Related to Software
Technicalities

7. Issue Tracking Systems: Use issue recording


systems like Jira and Trello to keep track of and log
technical problems, bugs, and requests for new
features. These platforms often connect to code
repositories, which give a full picture of the state of
a project.
1.1 Software Development Best Practices &
Information Management
Store and Retrieve Information Related to Software
Technicalities

8. Diagramming Tools: Diagramming tools like


draw.io, Lucid chart, or Microsoft Visio can be used
to make pictures of software designs, workflows, or
data models. Keep these diagrams with the
necessary paperwork.
1.1 Software Development Best Practices &
Information Management
Store and Retrieve Information Related to Software
Technicalities

9. Collaboration Platforms: Use collaboration tools


like Microsoft Teams and Slack to make it easier for
team members to talk to each other and share
information. Set up separate lines for talking about
technology.
1.1 Software Development Best Practices &
Information Management
Store and Retrieve Information Related to Software
Technicalities

10. File Storage Systems: Use file storage services like


Google Drive and Dropbox to keep important files
like design papers, spreadsheets, and presentation
slides that have to do with software.
1.1 Software Development Best Practices &
Information Management
Store and Retrieve Information Related to Software Technicalities

• Ensure that access controls and permissions are appropriately configured to


manage who can view, edit, or contribute to the stored information.

• Regularly update and maintain these repositories to reflect the current state of
the software.
Session 2: Developing Software Modules

Learning Objectives
After this session, you will be able to:
• Explain the scope, functional and non-functional requirements
of developing software modules.
2.1 Software Module Development
An Introduction to Software Module Development

• A software module is essentially a small, self-contained bundle of code within a


computer programme.

• It's like a mini-program that completes a certain task on its own. These modules
are intended to be self-contained and can be utilised in various areas of a larger
programme, as well as other programmes.

• They help keep the code organised and allow programmers to work on different
parts without getting everything muddled up.
2.1 Software Module Development
An Introduction to Software Module Development

• Each module has its own tasks and data, and they communicate with one
another in a well-defined manner.

• Consider them building blocks that facilitate the development and


management of computer programmes.
2.1 Software Module Development
Scope of Software Module

• The scope of software modules denotes the degree and breadth of their impact
and usefulness within a software system.

• Understanding the scope helps define a module's bounds and interactions with
other components.
2.1 Software Module Development
Scope of Software Module

• Below is a summary of the scope of software modules:

1. Encapsulation of Function

• Modules encapsulate specific functionalities, keeping their inner workings


hidden from the rest of the system. This encapsulation enhances clarity while
reducing complexity.
2.1 Software Module Development
Scope of Software Module

2. Task-Specific Responsibilities

• Each module has a certain set of responsibilities or activities. Its scope defines
the specific functions it is intended to execute within the broader software
programme.
2.1 Software Module Development
Scope of Software Module

3. Interactions With Other Modules

• The scope refers to how a module interacts with other modules in the system. It
specifies the inputs and outputs, as well as the communication paths between
modules.
2.1 Software Module Development
Scope of Software Module

4. Data Encapsulation

• Modules include data relevant to their tasks. The scope defines the data that a
module handles and controls, ensuring that it remains within its boundaries.
2.1 Software Module Development
Scope of Software Module

5. Reuse between Projects

• Modules may have a greater scope if they are intended for reuse in many
projects. A module with a broad scope is versatile and can be used in a variety
of software applications.
2.1 Software Module Development
Scope of Software Module

6. Modifications and updates

• This scope indicates how easily a module may be modified or updated. A well-
defined scope ensures that modifications made to one module do not have
unintended effects for other portions of the system.
2.1 Software Module Development
Scope of Software Module

7. Dependence Management

• Understanding dependencies, or how one module depends on or influences


another, is part of the scope. This helps to efficiently manage dependencies and
avoid issues during development.
2.1 Software Module Development
Scope of Software Module

8. Maintenance and Debugging

• A clear scope helps with maintenance and debugging efforts. Developers can
focus on a specific module rather than having to explore the entire source,
making the development process more efficient.
2.1 Software Module Development
Scope of Software Module

9. Scalability

• The scope effects a module's scalability. A module with a clear scope can be
readily scaled or extended to suit new features or changes in needs.
2.1 Software Module Development
Scope of Software Module

10. Test and Quality Assurance

• The scope defines the boundaries of testing, ensuring that quality assurance
efforts are focused on the specified functionalities and interactions within the
module.
2.1 Software Module Development

• Understanding the scope of software modules is crucial for effective software


design, development, and maintenance.

• It contributes to creating modular, maintainable, and scalable software systems.


2.1 Software Module Development
Functional Requirements of Developing Software Modules

• Functional requirements of software modules refer to the specific features,


capabilities, and behaviours that a module must possess to fulfil its intended
purpose and meet the needs of users or stakeholders.

• These requirements outline the functional aspects of the module, specifying


what actions it should perform, how it should respond to user inputs, and what
outputs it should produce.
2.1 Software Module Development
Functional Requirements of Developing Software Modules

• Functional requirements are crucial for defining the core functionalities and
behaviours that contribute to the overall functionality of a software module.
2.1 Software Module Development
Functional Requirements of Developing Software Modules

User Authentication Data Processing User Interface (UI)

• The module should • Process and • Present information


allow users to log in manipulate data to users in a clear
securely using unique according to and interactive
credentials. specified rules and manner.
requirements.
2.1 Software Module Development
Functional Requirements of Developing Software Modules

Report Generation Error Handling Search and Retrieval

• Generate reports • Identify and • Allow users to search


based on user input appropriately handle for and retrieve
or system events. errors to maintain specific information
system stability. efficiently
2.1 Software Module Development
Functional Requirements of Developing Software Modules

Integration with
Communication Security Measures
External Systems

• Interface and • Facilitate • Implement security


exchange data with communication features such as
external systems or between different access controls and
APIs. modules or encryption.
components.
2.1 Software Module Development
Non-Functional Requirements of Developing Software Modules

• Non-functional software modules are the traits and qualities that show how
well the module does its job, not the jobs it does itself.

• These requirements are about things like speed, usability, reliability, and
security. They affect how the module works and what it can do as a whole.
2.1 Software Module Development
Non-Functional Requirements of Developing Software Modules

• Non-functional requirements are very important for making sure that the
software module meets certain standards and gives the customer a good
experience.

• Below are some of the examples included:


2.1 Software Module Development
Non-Functional Requirements of Developing Software Modules

Performance Scalability Usability

• Response time and • Ability to handle • User-friendliness and


throughput increased load or ease of use for
expectations under user numbers different types of
various conditions. without performance users.
degradation.
2.1 Software Module Development
Non-Functional Requirements of Developing Software Modules

Reliability Maintainability Portability

• Dependability and • Ease of maintenance • Adaptability to


accuracy in and ability to update different
performing tasks or modify the environments or
without errors. module. platforms.
2.1 Software Module Development
Non-Functional Requirements of Developing Software Modules

Security Compatibility Compliance

• Measures to protect • Interoperability with • Adherence to


against unauthorised other software, industry standards,
access, data devices, or platforms. regulations, and legal
breaches, and requirements.
vulnerabilities.
2.1 Software Module Development

• Understanding both functional and non-functional requirements is essential for


designing, developing, and evaluating the effectiveness of software modules
within a larger system.

• Functional requirements ensure that the module performs the desired tasks,
while non-functional requirements focus on how well it performs those tasks.

You might also like