Nothing Special   »   [go: up one dir, main page]

0% found this document useful (0 votes)
7 views10 pages

Module8 Euc

Download as pdf or txt
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 10

EUC1501-Y-3E

Module 8 – Program and App use and development


19689322
9911150038080

1. Why is it typically not a good idea to just throw an unused app in the trash
can/recycle bin when the user wants to get rid of it?
Simply throwing an unused app in the trash can or recycle bin is not a good
idea because it does not completely remove the app from the system. While it
may remove the app's shortcut or icon, it leaves behind residual files, settings,
and registry entries. These remnants can take up valuable storage space, slow
down the system, and possibly cause conflicts with other apps or the
operating system.

2. Why is uninstalling an app typically the last step in the app troubleshooting
process, and what should you determine before uninstalling?
Uninstalling an app is typically the last step in the app troubleshooting
process because it ensures a clean removal of the app and its associated
files. Before uninstalling, it is important to determine whether the app is
causing any problems or conflicts by:
• Identifying any error messages or issues that occur when using the
app.
• Checking if the app is consuming excessive system resources or
causing performance issues.
• Verifying if the app is incompatible with other software or the
operating system.
• Analysing if the app is no longer needed or if there are alternative
apps that serve the same purpose more effectively. By assessing
these factors, you can determine if uninstalling the app is necessary.

3. Provide the steps (Proper process) to follow to uninstall an app on a computer.


• Step 1: Open the "Control Panel" on Windows or access the
"Applications" or "Utilities" folder on macOS.
• Step 2: Locate and click on the "Programs and Features" option on
Windows or the "Applications" folder on macOS.
• Step 3: Look for the app you want to uninstall in the list of installed
programs or applications.
• Step 4: On Windows, right-click on the app and select "Uninstall" or
"Uninstall/Change". On macOS, either drag the app to the trash can
or right-click and select "Move to Trash."
• Step 5: Follow the on-screen prompts or instructions to complete the
uninstallation process. This may involve confirming your choice,
providing administrator permissions, or selecting additional options
such as removing app data or preferences.
• Step 6: Once the uninstallation process is complete, restart your
computer to ensure any remaining traces of the app are removed
from the system.

4. What is the difference between freeware, open source, shareware, and public
domain? How may one legally acquire software from each of these categories?
• Freeware: Freeware is software that is available for free without any
cost. It is copyrighted software, but the copyright holder allows
users to use, copy, and distribute the software without any charge.
Users can legally acquire freeware by downloading it from the
software developer's website or other authorized sources.
• Open source: Open source software is released with a license that
allows users to access and modify the source code of the software.
It promotes collaboration and community-driven development. Open
source software can be acquired legally by downloading it from the
developer's website, through software repositories, or from
authorized distributors.
• Shareware: Shareware is software that is typically provided for free
temporarily to try out. If users find it useful and want to continue
using it, they are expected to purchase a license or pay a fee. It
allows users to evaluate the software before committing to a
purchase. Shareware can be legally acquired by downloading the
trial version from the developer's website or authorized distributors.
• Public domain: Public domain software is not protected by
copyright, or the copyright has expired, allowing anyone to use,
modify, and distribute it freely without restrictions. Public domain
software can be legally acquired by downloading it from websites
that offer public domain software, or it may be included in software
repositories or archives.

5. Research the following categories of apps – productivity, graphics and media,


personal interest, communications, and file, disk, and system management.
• Productivity apps: Common types include to-do list apps, note-
taking apps, calendar apps, and project management apps. These
apps are commonly native and are developed and supported by a
variety of companies and developers. Price points for productivity
apps can range from free to paid versions with additional features.
They are commonly used on both iOS and Android platforms.
• Graphics and media apps: Common types include photo editing
apps, graphic design apps, video editing apps, and music creation
apps. These apps can be both native and third-party, with many
developed and supported by major companies such as Adobe,
Apple, and Google. Price points for graphics and media apps can
vary widely, from free to expensive professional tools. They are
commonly used on both iOS and Android platforms, as well as
desktop platforms.
• Personal interest apps: Common types include fitness tracking apps,
recipe apps, travel apps, and hobby-related apps. These apps are a
mix of native and third-party, with a wide range of developers and
companies developing and supporting them. Price points for
personal interest apps can range from free to paid versions with
additional features. They are commonly used on both iOS and
Android platforms.
• Communications apps: Common types include messaging apps,
social media apps, video conferencing apps, and email apps. These
apps are commonly native and are developed and supported by
major companies such as Facebook, Microsoft, and Google. Price
points for communications apps can range from free to paid
versions with additional features. They are commonly used on both
iOS and Android platforms, as well as desktop platforms.
• File, disk, and system management apps: Common types include file
explorers, disk cleaning apps, system optimization apps, and backup
apps. These apps are a mix of native and third-party, with a variety of
developers and companies developing and supporting them. Price
points for file, disk, and system management apps can range from
free to paid versions with additional features. They are commonly
used on both iOS and Android platforms, as well as desktop
platforms.

6. Discuss some common types of apps in each of these categories, whether they
are commonly native or not, who develops and supports the apps, price point (if
applicable), the platforms that they are commonly used on, etc. (6)

7. Discuss the various threats that can occur to a computer and the types of
software that can be used to combat them.

Computer Threats
• Malware: Malicious software designed to harm or exploit a computer
system, including viruses, worms, trojans, and ransomware.
• Hacking: Unauthorized access to a computer system or network to
exploit, steal data, or disrupt operations.
• Data Breaches: Unauthorized access to sensitive or confidential data,
often resulting in its exposure or theft.
Software Solutions
• Antivirus Software: Detects and removes malware, providing real-time
protection against viruses, worms, and other threats.
• Firewalls: Monitors and controls incoming and outgoing network traffic
based on predetermined security rules, preventing unauthorized access.
• Anti-Spyware Tools: Identifies and removes spyware, adware, and other
forms of malicious software designed to gather information without
consent.

8. Discuss the pros and cons of using multiple apps to solve security threats.
Pros:
• Specialized Functionality: Different apps may specialize in specific
aspects of security, providing more comprehensive protection.
• Redundancy: If one app fails to detect a threat, another may catch it,
providing a safety net.
• Customization: Users can tailor their security approach by selecting
apps that best fit their needs.
• Diverse Threat Coverage: Multiple apps can cover a wider range of
security threats, reducing the likelihood of overlooking a particular type
of threat.
Cons:
• Resource Consumption: Running multiple security apps simultaneously
can consume significant system resources, potentially impacting
performance.
• Compatibility Issues: Some security apps may conflict with each other,
leading to operational issues or reduced effectiveness.
• Complexity: Managing and coordinating multiple security apps can be
complex and time-consuming, especially for non-technical users.
• Cost: Purchasing and maintaining multiple security apps can be more
expensive than using a single comprehensive solution.

9. Should computer users use free apps for security, or is a paid/subscription


service best?
Free Apps:
• Advantages:
o Cost-effective: Free apps provide basic security features without
the need for a financial commitment.
o Accessibility: They are readily available for download and use.
• Disadvantages:
o Limited features: Free apps may offer limited protection compared
to subscription services.
o Support and updates: Users may receive less frequent updates
and customer support.
Subscription Services:
• Advantages:
o Comprehensive protection: Subscription services often offer a
wider range of security features, including advanced threat
detection and real-time protection.
o Customer support: Subscribers typically receive dedicated
customer support and regular updates.
• Disadvantages:
o Cost: Subscription services require ongoing payments, which
may not be feasible for all users.

10. Discuss the importance of updating system/app software frequently in


maintaining security.
• Software updates safeguard your digital belongings from cyber
threats. By updating regularly, we are patching vulnerabilities in our
code to prevent unauthorized access. They enjoy targeting old
software because they are familiar with all the vulnerabilities to
exploit. However, by keeping up with those updates, we are closing
those vulnerabilities and making it more difficult for them to access
our data without authorization.
• Each update helps us adjust the gears for smoother and faster
operation. Do you ever have moments when your device seems to be
moving at a sluggish pace? This is where updates come in handy.
Engineers are constantly making small adjustments to the code.
Every updated edition improves performance by utilizing resources
more effectively. Therefore, by regularly updating, your device will
operate more quickly and efficiently.
• Consistent software updates ensure that your apps remain up-to-
date with the newest developments. This prevents any compatibility
issues that may interrupt your work process. Updates address
compatibility issues to ensure smooth operation of your programs
and devices. Keeping your software regularly updated ensures
minimal interruptions and maximizes the efficiency of your digital
tools.

11. _________ is the process of creating programs and apps from the idea stage to
distribution to users.
Software development

12.1 What is object-oriented programming, and what are some of the advantages of
using it?
Object-oriented programming (OOP) is a computer programming model that
organizes software design around data, or objects, rather than functions and
logic.
• Reusability. Code can be reused through inheritance, meaning a team
does not have to write the same code multiple times.
• Security. Using encapsulation and abstraction, complex code is hidden,
software maintenance is easier and internet protocols are protected.
• Lower cost. Other benefits, such as its maintenance and reusability,
reduce development costs.
12.2 In what situations might it be more or less useful? (3)
More useful: collaborative development, where projects are divided into groups.
Less useful:

13.1 Discuss the roles of a development team: project manager, designer,


programmer, testers, and IT department.
1. Project Manager: Responsible for overall project planning, scheduling,
resource allocation, and communication with stakeholders.

2. Designer: Create wireframes and prototypes, design user interfaces and


interactions, conduct usability testing.
3. Programmer: design, develop and test software and ensure software
adheres to best practices in performance, reliability and security
4. Testers: Develop and execute test plans, report and track defects,
collaborate with developers to resolve issues, verify that software meets
quality standards.
5. IT department: maintaining the hardware and software systems within
an organization
13.2 Discuss the training and skills that would be necessary for each of the above
roles.
1. Project Manager: excellent communication skills, effective management
skills, strong leadership skills and planning skills.
2. Designer: a knowledge of design principles combined with a mastery of
design software. Because they often work with clients and colleagues on
various projects, they also need important soft skills like communication
and problem solving.
3. Programmer: You need a programming language to develop a website,
build a mobile application and many more. Python, Java, C++, Scala, and
SQL are a few programming languages; you can be an expert in any of
them or learn all.
4. Testers: you typically need a combination of technical skills, domain
knowledge, analytical abilities, communication skills, attention to detail,
and problem-solving skills.
5. IT Department: It is also beneficial to have coding skills in several
languages such as C++, Python, Java and Ruby. Understanding code is
necessary to complete software development projects and manage quality
assurance.
13.3 Discuss the main functions of people in this role, and the likely timeframe that
they would be involved in the development process. (6)

14. Research a phase of the software development life cycle – planning, analysis,
design, implementation, and support/security.
Planning & Analysis: are gathering business requirements from your client or
stakeholders, evaluate the feasibility of creating the product, revenue
potential, the cost of production, the needs of the end-users, etc. To properly
decide what to make, what not to make, and what to make first, you can use
a feature prioritization framework that takes into account the value of the
software/update, the cost, the time it takes to build, and other factors.
Design: where you put pen to paper. The original plan and vision are
elaborated into a software design document that includes the system design,
programming language, templates, platform to use, and application security
measures. This is also where you can flowchart how the software responds to
user actions. In most cases, the design phase will include the development of
a prototype model. Creating a pre-production version of the product can give
the team the opportunity to visualize what the product will look like and make
changes without having to go through the hassle of rewriting code.

14.1 Describe what happens during each of these phases, as well as some of the
main challenges. (10)
1. Planning & Analysis
The initial stage of the SDLC involves project planning, during which you
collect business requirements from your client or stakeholders. During this
stage, you assess the likelihood of developing the product, its income
opportunities, manufacturing expenses, end-users' demands, etc. To
effectively determine what to create, exclude, or prioritize, a feature
prioritization system can be utilized which factors in the software/update's
value, expenses, development time, and other variables. After confirming that
the software project aligns with business and stakeholder objectives, is
realistically achievable, and meets user requirements, you can proceed to the
next stage.
2. Define Requirements
This step is crucial in translating the data collected in the planning and
analysis stage into precise requirements for the development team. This
procedure helps in creating key documents such as a software requirement
specification (SRS) or product specification, a Use Case document, and a
Requirement Traceability Matrix document.
3. Design
The design stage is when you start to put your ideas onto paper. The initial
strategy and idea are detailed in a software design document which outlines
the system design, programming language, templates, platform selection, and
security measures for the application. This is also the place where you can
create a flowchart for how the software reacts to user inputs. The majority of
the time, the design phase will involve creating a prototype model. Developing
a prototype of the product before production allows the team to see how the
final product will appear and make alterations without the need to rewrite
code.
4. Development
The development team members split the project into software modules and
write the code that transforms the software requirements into the final product
during the development phase. This stage of the SDLC may require a
significant amount of time and specific development tools. Having a clear
schedule and specific goals is crucial for ensuring that software developers
know what is expected and for monitoring progress during this phase.
Sometimes, the testing stage can blend with the development stage,
conducting tests to prevent critical bugs. Remember, various kinds of product
development software have unique strengths, so you should choose the one
that is most suitable for your needs.
6. Testing:
Prior to releasing the software product for use in the production environment,
it is crucial for the quality assurance team to conduct validation testing to
ensure proper functionality and alignment with its intended purpose. The
testing procedure can also assist in identifying significant user experience
problems and security issues.
Software testing can sometimes be conducted in a simulated setting.
Additional basic tests can be automated as well.

The varieties of testing to conduct in this stage:

• Performance testing evaluates how fast and scalable the software is in


various situations.
• Functional testing confirms the software's compliance with the
requirements.
• Security testing aims to discover possible vulnerabilities and
weaknesses.
• Unit-testing involves testing individual units or components within the
software.
• Usability testing assesses the user interface and the general user
experience of the software.
• Acceptance testing, known as end-user testing, beta testing, application
testing, or field testing, is the last stage of testing to verify if the
software product fulfills its promises.
6. Deployment
Upon reaching the deployment stage, your end product is handed over to the
designated user. You have the option to automate this procedure and plan
your deployment based on the kind. If you are releasing just a feature update,
you can start with a small group of users—a canary release. If you are
developing new software, you can gain additional knowledge on the various
phases of the software release life cycle (SRLC).
7. Maintenance
The maintenance phase marks the completion of the SDLC in a waterfall
approach to software development. Nevertheless, the sector is transitioning to
a more flexible method of software development where maintenance is simply
a stepping stone for future enhancements. During the maintenance phase,
users might discover flaws and mistakes that were overlooked during the
initial testing stage. Improvements are required on these bugs for enhanced
user satisfaction and user retention. Sometimes, this can result in having to
start over at the initial stage of the software development life cycle. The SDLC
stages may begin again if you wish to include new features in your upcoming
release or update.

14.2 How are each of these steps integral to the development of the product for the
end user? (5)

15. _________ refers to the focus on the user’s reaction to and interaction with a
product, including its efficiency, effectiveness, and ease of use.
User experience.

16. What are the benefits and drawbacks to each of the two main development
methodologies – predictive and agile development?
Predictive:
Advantage:
• Provides Accurate Decision-Making
• Helps With Future Planning and Risk Mitigation
• Improves Customer Insights and Personalization
Disadvantage:
• Comes With Data Limitations
• Leads to Overfitting
• Causes Interpretability Challenges
Agile:
Advantage:
• You can deploy software quicker, so your customer can get value
sooner rather than later
• You waste fewer resources because you always work on up-to-date
tasks
• You can better adapt to change and respond faster
• Faster turnaround times
Disadvantage:
• Documentation tends to get sidetracked, which makes it harder for new
members to get up to speed
• It's more difficult to measure progress than it is in Waterfall because
progress happens across several cycles
• Agile demands more time and energy from everyone because
developers and customers must constantly interact with each other

17. Research different types of programming language (see Table 8-5) for examples.
When was the language developed, what are its main functions, what are some
primary ways one can learn it, and what are its benefits and drawbacks?
C++
When was the language developed: in the 1980’s
What are its main functions: an alternative to C, used in fields such as system
software, game development, embedded systems, scientific computing and
high-performance applications. The C++ standard library provides a range of
coding utilities and functions, making it easy to develop complex software
systems.
What are some primary ways one can learn it: books on C++ for beginners,
courses on platforms such as Udemy and Coursera, coding bootcamps, and
online degree programs.
What are its benefits and drawbacks:
Benefits: excellent performance, memory efficiency, and object-oriented
support — making it an ideal choice for many applications.
Drawbacks: its difficulty to learn and lack of features like garbage collection

18. A/an _________ is a program that converts the entire source program into
machine language, and a/an _________ translates and executes one statement at a
time.
Complier, interpreter.

You might also like