Qualification - BTEC Higher National Diploma (HND) in Computing
Unit Name - Programming
Unit Number - Unit 1
Unit Level - Level 4
Assignment Title - Programming
Learning Outcome 1: Define basic algorithms to carry out an operation and outline the process of programming an application
Learning Outcome 2: Explain the characteristics of procedural, object-orientated and event-driven programming, conduct an analysis of a suitable Integrated Development Environment (IDE)
Learning Outcome 3: Implement basic algorithms in code using an IDE
Learning Outcome 4: Determine the debugging process and explain the importance of a coding standard
Customized Assignment From The Best Unit 1 Programming - BTEC Higher National Diploma (HND) in Computing Assignment Help Services
Case Study: You are working for a software consultancy company. This company is a small and medium- sized enterprise (SME) enterprise that provides specific digital technologies and products to its clients. Your line-manager sent you a request to develop a simple HRM program in order to store employees' detail, such as Employee ID, Name, Address, Phone number, Email, and 5 categories based on the employee's grade (Grade A, Grade B, Grade C, Grade D, and Grade E). As part of the software development team, you are going to develop an HRM system
Solution:
Executive Summary
SME is one of the software consultanciescompanies who provides specific digital technology and also a product to their clients. This company is basically a small and medium sized enterprise, the line manager of the company sent a request to develop a HRM program (Human Resource Management) to store up all the details of the employees. These details are personal information of the employee that includes id, name, address, contact number, email address and their five-category grade value (A, B, C, D and E). To implement this HRM program, software development team are requested to develop a HRM system as a part of this work with the added functions: Add, Search, Remove, Print, Order and Save the client details.
The report is generated by following the software development life cycle as it includes the software development process to maintain the qualityand to make it feasible. The below report shows up eachstage and steps of the process detailly. The report is divided into four tasks which start from algorithm development, program paradigm, implementation anddebugging the coding standards. These divided tasks help the program implementation well standard and completed which benefits the organization. As this can be further used as a guidance even for all the levels (staff level and programmer levels) of the team.
Introduction
The main aim of the work is to deliver a Human Resource Management System for a HRM program. Python programming language is used to develop a program, the report aim is to provide a detailed programming phases from execution stage with the code and the comments. And also based on the scenario, the algorithm is developed and is further implemented using the Python program. The development phase and the relationship between the algorithm and Python program is included as a system development process. To make the process more understandable and also to support all-other team members the application is developed using vscodeIDE. After developing the application software testing process is also developed to make it successful. This report is planned to develop as a guidance for the member levels as well as an individual programmer level for future reference.
Task 1. Algorithm and the Process of Developing a Software System
As a Junior Database Developer in the software development team, you should create a report, which explains the HRM software system development basic principles. The report should have the following:
- The definition of algorithm that outlines the process in developing the HRM software system from the feasibility study stage up to the execution stage, and also, provide detailed steps from the execution stage with writing code and the program comments.
Solution:
Algorithm and Software System Development Process
Software Development Principle
• Design First - This is a first phase of the software development; any requirement is being made into a design. The design needs to fulfil the following criteria,
º The design needs to incorporate all changes described by the client
º It also needs to comply with technical aspects, anything that can't be done technically needs to be discussed with the client and required alteration needs to be done on the design.
º It needs to be understandable in a plain English language, so that the client can understand it.
º It needs to have the complete architecture design, so the full design can be understandable by the technical team
• Planning Phase - During this phase all requirements from the design chunk into backlogs as stories. As per agile principle, when the sprint is planned these backlog stories further splits into tasks, here the planning of the tasks needs to be planned. The planning needs to fulfil the following criteria.
º Planning should include the estimate of each task
º The cards should follow the 3y principles, like ‘what', ‘why' and ‘who'. The ‘what' means what is this for? The ‘why' means why are we doing this? The ‘who' means who is this for. The ‘who' is majority meant for the client or the customer.
º Planning should include the acceptance criteria, which means that when this task can be accepted by QA, also these measures the quality of the card.
º Also, the planning should include that when this card can be moved to ready, due to many factors like dependency some tasks can't be implemented, which need to be completed based on another card.
º Planning should also include the estimate of the testing.
º Planning should be tailored based on the team's weight which can be extracted from the burn down chart.
º The planning should have a process to cut the tasks into small pieces, this will help the teams to move faster, also a small task leads to small failures
• Implementation - During this phase all accepted tasks need to be converted as code. The coding phase should have the following criteria
º Each piece of an implementation should be tested on the developer machine
º The team needs to use an automated build system which should include changes from the developer and test the code continuously
º QA needs to test each change and follow the acceptance criteria move the card to done
• Lifecycle - One the software is released, its lifecycle phase starts, in the lifecycle any minor defect found by customer can be given as patch, if custom wants to have major functionality change that can be given as new release
- Based on the business scenario, you should provide an algorithm of the HRM system to be developed. While making an implementation of your developed algorithm using Python programming language. You should include in the explanation of the implementation, the relationships between the algorithm and your Python code.
Solution:
Algorithm for HRM
The HRM software design requires the following algorithm
1. Start
2. Use Create to add new user
3. Use Search to search a user
4. Use Remove to remove a user
5. List to list all the users
a. Use prints all listed users
b. Use store-to-file to store all users to a file.
Based on the algorithm above, a python program has been developed for HRM. The python program has the following buttons as shown in the below screenshot 1.
• Create is for adding a new user to the HRM system
• Search is for search a user from the system, for this the user must need to enter the ID number in the Emp ID field
• Remove button removes a particular record from the system
• List button lists all the users present with the system
• Print button prints the listed recorded, this uses an available network printer
• Store-To-File stores the report generated by the list button to a local file.
Reach out to the best Diploma Assignment Help services for impressive writing assistance!
Task 2. The Programming Paradigms and Integrated Development Environment (IDE)
To ensure that your report includes set of findings and key contributions from researching the characteristics of procedural, event driven and object-oriented programming paradigms and the relationship between them. Also, it is important to analyse the common features that a developer has access to in an integrated development environment (IDE)
Solution:
Programming Paradigms and IDE
Procedural Programming Characteristics
• The procedural programming just works and follows the approach from top to down.
• In this programming the code is divided into many blocks of codes like functions where each functions contribute and work according to their specification tasks.
• As it models real time world process on data as a procedural operation. (Knowledge boat, 2021)
• The data and functions work separately and can be detached from one another.
• The data can be used freely and can be moved freely within the program.
• The logic of the program can be followed easily without any hazzle.
• The data that is used in the function be accessed by the other functions just by calling the function.
Event-Driven Programming Characteristic
Event-driven programming is also termed as system architectural paradigm because the program logic flows within the code is driven by the events like actions, messages, GPS signals or by input sensors. Event controls the logic flow of execution, running of applications and waiting for itsoccurrence. The external events are handled and dealt through a input and outputs of the program. For the basic computer science event management are the foundations. The basic characteristic of the event driven programming is as follows
• The central programming is the stream of the events (Distributed user, 2019).
• It can be even used for pull as it intendsto be used for push.
• It can be either 0, 1 many or infinity or over time. Therefore, it is broken down into some basic parts.
• It is usually used asynchronously.
Object Oriented Programming Characteristic
Objects: It is the important and basic entity in object orientation. It is the combination of the data and a program of a real time entity in real world application (Collegenote, 2021).
Class: It is a group of objects with same set of data and some parts of programs. Once the class is defined many numbers of object (belongs to the class) can be created.
Encapsulation:Collective relative of data and functions in a single unit are called encapsulation. In simple word, the data cannot be accessed are used from the outside the program where it can be only accessible by calling the specified function because of the class wrap. The process of preventing the data from accessing is represented or termed as data hiding.
Abstraction of Date: Abstraction means important features without any information or details about the particular feature (Careerride, 2021). In this, class is defined as an attribute with the abstraction concepts to operate on attributes. It encapsulates all the object properties. The concept of using data abstractions is known as abstract data types.
Inheritance:It is one of the special types of mechanism in which the classes can inherit another class properties. OOP allows the class hierarchy which allow the moving from general to any specific. This concept of inheritance helps in reusability is added advantage.
Polymorphism: As it allows the functions and operation to take more than one form. It is achieved in two different ways: Functional overloading and Operator overloading.
Binding:it is linking of procedure call, as it links the call to the code to execute in response to the call. It supports dynamic binding, until the time of the call during the code linked with the procedural call is unknown.
Communication: It basically consist of set of objects that make a communication with each other.
The characteristic of procedural programming paradigms, event driven programming and object-oriented programming is reviewed, to meet up the programming problem that arises the programming paradigms is used. For past decades many different paradigms risen up. But to manage the large and complex software object oriented and event driven programming is developed. As it seen from the characteristic object-oriented paradigm uses data structures which is represent as objects helps in the interaction with the each other to achieve the expected result. As like this event driven also characterized that the program work flow is dependent on user partially.
Features of using OOP and EDP in Python
There are many several features of using OOP in Python.
1. In code development objects and code can be used where the object is the set of information with the procedure (method) and the data fields (attributes). The methods and properties are defined in the class, the attributes carry out object property where the object method are the procedure that make the object to do specific functional tasks. (geeksforgeeks, 2019)
2. Encapsulation is also an added advantage in OOP where it helps in wrapping up the data together to describe the object with the specific instruction to define the data manipulation.
3. Inheritance is also an advantage in using OOP as it helps in linking the classes hierarchical according to the functional similarity. In simple words, the object that is existing become a foundation to the other objects by sharing the similar character and behaviour.
4. Polymorphism is one of the best advantagesin OOP, during the execution depending on the object type the different result is produced that is sent to the functions.
Like OOP, Event-Driven also having some feature advantage, they are as follows
In order to determine the work flow of the program event driven depends on the external and internal events.
1. Main loop: During the program execution the main loop runs constantly and tries to find the events which is activated depending on the events.
2. Event Handling: It is a subroutine; Within the program it activates the functions just by triggering.
Indeed, it is important to critically evaluation the procedural, event driven and object orientated paradigms with relevant source code examples. The report, on the programming paradigms, should also include critical evaluation of your Python code related to different programming paradigms according to its code structure and characteristics.
Solution:
Advantages of using OOP in Python other than two paradigms
There are several advantages of using OOP over Procedural Programming and Even driven Programming
• It allows a faster software development
• It allows for reusability of code.
• It allows faster debugging than procedural programming
• It allows the execution of classes which is written independently.
• It helps in the improvement of software development productivity.
Due to the large and complex program, OOP and Event-Driven Programming are the most widely used programming paradigm in modern times. These two programming paradigms allows the multiple and complex working process which helps in the working process of the HRM implementation. Therefore, for the added advantage OOP and EDP are chosen over the Procedural Programming.The HRM system has been developed using Oops concepts as shown in the above screenshot 2, because based on the research OOP is well suited for this system.
IDE (Integrated Development Environment)
The HRM system has been developed using Visual Studio Code. The main reason for opting VsCode is it's an open source and available for Linux and Windows platform, also it is a light weight utility. The VsCode supports wide variety of tools like Java, Python, Php and more. The VsCode provides an excellent support of debug.VsCode Screenshot with HRM code development is shown below in screenshot 3
Get assistance from top experts at online HND Assignment Help to achieve academic success without any hassle.
Task 3. Implementation
To support other team members to make use of the developed application including Python program by producing your software application in the form of a portfolio to support them in order to understand the whole software development process.
Solution:
Implementation
Any other developers in the team can develop the HRM code using the following tools. The developer machine requirement -
Operating System
|
Win 10 or Mac OS
|
Processor
|
2.6 GHz Intel Core i7 (or anything latest)
|
Hard disk
|
Min 10 gb space
|
RAM
|
8 gb or more
|
Table 1: Machine Requirement
Software Development
IDE
|
VsCode
|
Python3
|
Python
|
VsCode Python Extension
|
Extension
|
Table 2: Software Development
Python Virtual Environment
The following steps explains about the setting about the virtual environment on the user machine. Virtual environment creates a separate environment for these projects. This keeps the machine clean.
On the root level of the HRM code, the following commands need to be run on the terminal to enable the python virtual environment.
python3 -m venv .hrm
Source. hrm//bin/activate
pip install -r requirements.txt
All required python modules are specified in the requirements.txt, so running this will install all the required modules.
After successful run, the team will be able to see this virtual environment from VsCode as shown in the below screenshot 4
Certainly, it is expected that you implement the defined algorithm into a functional Python program using any IDE of your choice and illustrate the outputs using screenshots and executional file. You should also evaluate the use of an IDE for development of applications contrasted with not using an IDE.
Solution:
Code Explanation
The following is the screenshot from the vs code explorer. As per the screenshot
.hrm
|
Virtual environment folder
|
hrm.db
|
Created by SQLite
|
logo.png
|
Hrm logo file
|
main.py
|
Main code base
|
report.txt
|
Temporary report file generated by the application
|
requirement.txt
|
Holds all list of the modules, useful to install modules on the developer machine
|
Table 3: VsCode Explorer
On the main.py the code has been split into two, one part is main and the other part is class definition which holds all the modules as shown in the above screenshot 5.
The following functions are used;
sql_create_table - responsible to create SQLite tables. This function initiates SQLite database and creates a table called ‘employee'.
display_input - this uses tinker to create the GUI and uses the grid method to place all GUI elements such as labels, buttons, and input field.
submit - this inserts the new users to the table. The following screenshot explains this functionality, after each successful submission it shows a below message, also exceptions are caught and shown in a different message box as shown in the screenshot 6.
search - this gets the id from ‘Emp ID' field and displays the data in the fields. Example screenshot is given below screenshot 7.
delete - this deletes a particular employee detail from the table. It takes the input from the ‘Emp ID' and deletes the record. The following screenshot 8 shows its functionality.
list - all records from the table, it uses the right pane to display its output as shown in the screenshot 9.
file - stores the files on the user's local machine. The list function needs to run first to generate the list and ‘file' function stores the record to the local machine. The file saves the file called ‘report.txt'. The output looks something similar below screenshot 10
Print - function uses the network printer to print the report.txt.
Run the program - Go to the project location and run the following command to launch the application
Python main.py
This will launch the application.
Achieve top scores with support of Computer Science Assignment Help services
Task 4. The Debugging Process and Coding Standard
Once the Python program has been developed, it is important to develop a software testing process. You must test the functionality of the program and test procedure planning as a requirement to have a successful debugging and software testing. In view of this, you are required to produce a brief report explaining the process of debugging your program and explain the debugging facilities, which are available in the choice of your IDE.
Solution:
The Debugging Process and Coding Standard
Debugging
The python code can be debugged using VsCode. The following process explains about the debug.
In order to start the debug, a breakpoint needs to be set. The following procedure explains the setting up the break point. Using a mouse to set the breakpoint to stop the code execution. The red dot in the following screenshot 11 is known as breakpoint.
Screenshot 11: Breakpoint
The user can hit F5 to start the debug or they can use the run button present on the left upper corner (watch the upper red text on the upper right corner).
Once the debug starts the user can see the variable value or function output to make sure code functionality. The following screenshot 12 explain the debug window. The red text explains the pictorial definition.
Debug Controls - The debug controller can be controlled using these buttons. They define as below
Continue the debug
Step over
Step into
Step out
Restart
Stop
Standardization
• Class name needs to follow camel case, example: AppleFruit.
• Function name all need to be small letters words can be separated using "_", example: apple_fruit
• Variable also need to defined as small letters
• Line space between each function need to be 1 as shown in the below screenshot 13.
Further, you are also required to ensure that best practices and coding standards are outlined, and you have incorporated in writing the program code using Python programming language.
In your report, evaluate how debugging processes can support the development of more secure and robust software applications, and provide recommendations for the team to improve programs. Hence, it is important to make a simple critical evaluation for the basics of coding standards and its benefits to your organisation. This can be used as guidance for both levels, the team (members of staff) level and individual (programmer) level.
Solution:
Recommendation
• Don't need to do all unnecessary commands, example: don't have to comment the imports as it is known import os calls the operating system libraries.
• All imported libraries need to be mentioned in the requirement .txt
• Refactor the code, which makes the code restructure without changing the external behaviour. As it helps in modernizing the software, which increases the maintainability, performance, scalability and security. (perfectial, 2021). When the organization left behind the support for the compiler of the program- it will get left without getting a chance in improvement- which make the program more vulnerable and unsuited for the environment. Therefore, refactoring the code is highly important and a best practising factor to make the work manageable.
Conclusion
As a junior Database Developer, the report is generated which explains all the HRM system software development by defining the algorithms and code implementation. The outlined algorithm shows the feasible stages of the process development to the execution stage and also the explanation of the implementation with the relationship between the algorithm and Python codes are included as a processing stages. And the defined algorithm is implemented into a functional Python program using IDE, and the software testing process is also developed to test the functionality. Further the coding standards are outlined and evaluated the debugging process with some recommendation in developing the secure and robust software applications.