Module8 Euc
Module8 Euc
Module8 Euc
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.
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.
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.
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:
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.
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.