attachment_1 (5)
docx
keyboard_arrow_up
School
Meru University College of Science and Technology (MUCST) *
*We aren’t endorsed by this school
Course
MISC
Subject
Information Systems
Date
Nov 24, 2024
Type
docx
Pages
7
Uploaded by ChefMaskWolf17
ITEC3250 Assignment 8
100 pts
Due 11/28
Dr. Jonathan Jenkins
Requirements
1 Notes
Number your responses as in the writeup, whether response is included or not
To assist me in efficient scoring, use this document as a template, typing in your responses to each question. Do not modify the prompt text
Your attention to detail in fully and concisely exploring and answering the question will determine your score
Use your experience with the material and your own research to justify responses
2 This Assessment Covers
Software Resilience, with Textbook Chapter 14
Software Reuse, with Textbook Chapter 15
Team Software Engineering Task: Test First Development Phase 2: Source code Submission
4 Part 1
4.0 What to Submit
lastnameFirstinitialA8.docx
All submitted files must be named with your first and last name as shown Answer the F
ollowing Q
uestions
4.1 Software Resilience, with Textbook Chapter 14
1)
Consider a software-based business you could run, based on your own career goals.
1)
Identify the assets
of the business that need protection against adverse events
In a software-based business, intellectual property such as proprietary code and algorithms, customer data, and brand reputation are critical assets requiring protection. Robust cybersecurity measures safeguard against data breaches, while legal frameworks shield intellectual property, ensuring the business's resilience against adverse events.
2)
Then, state and explain two resilience
requirements
you argue should be part of the software engineering work of the business
Firstly, regular data backups are essential for resilience, ensuring rapid recovery from data loss or system failures. Secondly, incorporating modular design principles allows for adaptable software architecture, facilitating more accessible updates and enhancements and enhancing the system's resilience to evolving technological landscapes and business needs.
3)
Finally, explain the organizational processes
that you argue are needed to protect the assets
of the business What should the people who the business do to protect the assets of the system?
Implementing effective organizational processes is crucial for asset protection in a software-based business. This involves establishing strict access controls to limit data exposure, conducting regular security training for employees to mitigate human error, and instituting a comprehensive incident response plan to address and contain security breaches swiftly. Regular audits and assessments should also be conducted to identify and rectify vulnerabilities.
4.2: Software Reuse, with Textbook Chapter 15
TODO attach python oo class reuse example 1.
You may want to review the python tutorial material with regard to python functions
and objects/classes
Also review carefully the python examples included with this assignment.
Choose your own unique mobile device application idea, and... 1.
Briefly explain
what types of concept reuse
you would do in developing the software for the application.
I leverage concept reuse by employing modular design principles and object-oriented programming (OOP) concepts to develop a mobile device application. For instance, I would
create reusable classes for standard functionalities like user authentication, database interactions, and user interface components. This allows for efficient code reuse and maintenance, enhancing scalability and readability. Additionally, I utilize Python functions to encapsulate specific operations, promoting reusability and simplifying debugging. I can streamline development, minimize redundancy, and ensure a more flexible and adaptable codebase for my mobile application by adhering to these practices.
2.
Briefly explain at least 3 examples of functions or objects you could reuse to perform specific tasks
as part of the work of the application (source code not required)
Firstly, I would implement a reusable authentication class to manage user login and registration processes. This class would encapsulate methods for user validation, session management, and password encryption, promoting secure and consistent authentication across the application. Secondly, I would create a modular database interaction object that can be reused for various data operations. This object would include methods for querying, updating, and deleting records, ensuring a standardized and efficient approach to managing application data. Lastly, I would develop a set of reusable UI components using object-oriented principles. These components, such as buttons, forms, or custom widgets, could be instantiated and configured quickly, maintaining a cohesive and visually appealing design throughout the application. I can streamline development, enhance code maintainability, and ensure a more robust and cohesive mobile application by reusing these functions and objects.
Your preview ends here
Eager to read complete document? Join bartleby learn and gain access to the full version
- Access to all documents
- Unlimited textbook solutions
- 24/7 expert homework help
5 Part 2
Software Engineering Practical Component: Team Test-
First Development
5.1 When to Submit
Test case set deadline: Assignment 7 deadline
Source code deadline: Assignment 8 deadline
5.2 What to Submit
Posts in team test first development Stage 2 discussion forum, including attached code
Implementation and Source Code Submission 5.4 Steps
Notes
See the references section for demonstration code and tips
Steps
1.
In keeping with Test-First development, bring all team members together as engineers to modify/add to your Python program code as necessary to pass the tests and completely fulfill your system requirements document.
When you start implementation, it is expected that your program will fail all tests.
Submit the completed source code in a zip file attached to a post in the discussion for this assignment part.
2.
The submitted code must experience and pass all tests specified in the test case set submitted earlier for this assignment. 3.
All team members must post in the applicable discussion forum to certify their acceptance of the source code submission’s completion (Reply only to your team mates posts)
4.
Clear, organized, readable evidence must be provided demonstrating whether each test was passed or not (this could simply be the output of your tests). Any tests not passed will receive deductions.
To demonstrate that the source code passes the tests, choose one of the following options:
(a) Use your automated tests in the code. The submitted program with tests must run without modification to demonstrate passing tests. See the Part 1 test case step, and the examples in the references in this document.
(b) Record your running of tests with screenshots of code output and submit them within a Word document or Powerpoint presentation.
6 Submission
For submissions to submission folders:
Submit using the submission folder in D2L for this assignment
For every assignment, create a new file to produce the submission
Requirement: download or retrieve your submission after you submit it in order to check that your files are as you intend to be scored
Resubmission is possible while the folder is open
Latest scoreable submission is scored
References: Cryptographic Services with Python
Below is a list of python
modules you may consider using for cryptographic purposes, If they are needed for your application. Python modules are most easily installed by using the pip command from your terminal/command line tool. Finding information about the module of interest is best done by searching the web or at pypi.org In Windows operating systems, the command line tool can be found by searching for ’command prompt’ with the operating system “start” menu search tool. Typing and running a command like
pip install python-gnupg
would download and install the module.
• Recommended: See also the information here:
https://pypi.org/project/python-gnupg/
https://gnupg.readthedocs.io/en/latest/
• The GNU privacy guard (GPG) tool implements crypto services including encryption, decryption and key generation. It can be used outside of your application, if you need to simulate using cryptography without implementing it, or only use it for manual parts of the operation of your software system. Also see the tools linked from the URL, e.g. the Cleopatra tool that has a graphical user interface to manage encryption/decryption. This topic is covered in my Software Security course https://gnupg.org/
• The Python built in secrets module supports creating strongly random numbers that can be used as cryptographic keys. This topic is covered in my Software Security course. https://docs.
python.org/3.6/library/secrets.html
Your preview ends here
Eager to read complete document? Join bartleby learn and gain access to the full version
- Access to all documents
- Unlimited textbook solutions
- 24/7 expert homework help
• The Python built in hashlib
module supports using hash functions. A hash function is designed to create a fixed length digital data item that is derived from a variable length input data item, so that it is very difficult to recover the original item, having the output item. This topic is covered in my Software Security course. https://docs.python.org/3.6/library/hashlib.html
• Python.org page for cryptographic services. See the keyed hash module hmac also. The keyed hash function is used to produce a hash value of a data item, with a key as an additional input, to ensure that the hash value is influenced by the key, and therefore uniquely tied to the key. This can increase confidence that the hash value was generated by an entity who has a secure key https://docs.python.org/3/library/crypto.html?highlight=crypto