You are on page 1of 65

Introduction:

As we have to discuss to follow by the scenario as in above scenarion I described that I have
been hired by a hikghly credible company which is located in Nepal and I have been asked to
design an application that requires me to manage an inventory on a shopping mall like Big Mart.
Since, my system should be fully functional as well as deployable on the server so that the
application can be logged into and then daily transactions be carried out.
A programming language is a vocabulary and set of grammatical rules for instructing a computer
or computing device to perform specific tasks. The term programming language usually refers to
high-level languages, such as BASIC, C, C++, COBOL, Java, FORTRAN, and Pascal. Each
programming language has a unique set of keywords (words that it understands) and a special
syntax for organizing program instructions. After going in business section, there would be
always a problem and a risk to be taken. In this task, I am going to explore some business-related
problem and produce a well- defined problem definition statement that are supported by a set of
user and system requirements.
In this report I will explore a business- related problem and produce a well- defined Problem
definition Statement supported by a set of user and system requirements as well as I will
determine any areas of risk related to the successful completion of my application as well as I
will analyze a business- related problem using appropriate methods and producing a well-
structured Software Design Document that defines a proposed solution and includes relevant
details on requirements, system analysis, system design, coding, testing and implementation, also
I will research the use of software development tools and techniques and identify any that have
been selected for the development of this application as well as I will compare the differences
between the various software development tools and techniques researched and justify your
preferred selection as well as your preferred software development methodology and finally I
will Justify the tools and techniques chosen to realize a custom-built website. Justify my
preferred selection of tools and techniques in deducing an appropriate solution to a business-
related problem.
Scope:
Provide the better for the business as well as the risk involved in the business along with the
project requirement regarding different tools and techniques for the app development. Aims and
Objectives: The main aim of my document is to provide the idea for the developer about the
business ideas and the risk involved in the business ideas along with the different tools and
techniques for the app development.
The main objectives of my document are:
 Discussing about the business ideas.
 Identifying the major problems and their solution that can hamper the business.
 Discussed on tools and techniques that need to be done for software development
comparing with rest of the tools.
Programming Language
Programming language is a set of commands, instructions, and other syntax use to create a
software program. Languages that programmers use to write code are called "high-level
languages." This code can be compiled into a "low-level language," which is recognized directly
by the computer hardware.
Generally, there are two types of programming languages: High and low level programming
languages.
1. Low-level language: These are machine dependent programming languages such as
Binary (Machine code) and Assembly language. Since computer only understand the
Binary language that means instructions in the form of 0’s and 1’s (Signals - that can be
either High or Low), so these programming languages are the best way to give signals
(Binary Instructions) to the computer directly. Machine Code (Binary Language) does not
need any interpreter or compiler to convert language in any form because computer
understands these signals directly. But, Assembly language needs to be converted in
equivalent Binary code, so that computer can understand the instructions written in
Assembly. Assembler is used to convert an assembly code to its equivalent Binary code.
The codes written in such kind of languages are difficult to write, read, edit and
understand; the programs are not portable to any other computer system. Low Level
programming language programs are faster than High Level programming language
programs as they have less keywords, symbols and no need (less need) to convert into
Machine Code.
2. High level language

These are the machine independent programming languages, which are easy to write, read, edit
and understand. The languages like Java, .Net, Pascal, COBOL, C++, C, C# and other (which are
very popular now to develop user end applications). These languages come under the high level
programming language category. High level programming languages have some special
keywords, functions and class libraries by using them we can easily build a program for the
computer. Computer does not understand program written in such languages directly, as I have
written above that computer understands only Machine code. So, here programming translators
are required to convert a high level program to its equivalent Machine code. Programming
translators such as Compilers and Interpreters are the system software’s which converts a
program written in particular programming languages to its equivalent Machine code.
Here are the features of High Level programming languages
 The programs are written in High Level programming languages and are independent that
means a program written on a system can be run on another system.
 Easy to understand - Since these programming languages have keywords, functions, class
libraries (which are similar to English words) we can easily understand the meaning of
particular term related to that programming language.
 Easy to code, read and edit - The programs written in High Level programming
languages are easy to code, read and edit. Even we can edit programs written by other
programmers easily by having little knowledge of that programming language.

Since, High Level language programs are slower than Low level language programs; still these
programming languages are popular to develop User End Applications.
Programmers use programming languages to communicate with computers. Many different
languages exist, and each one has its own unique features, though they all share some
similarities. Because each language is different, each may be best suited for a certain purpose or
purposes within certain industries. Some programming languages are used to create programs to
solve problems or interpret data. Other programming languages are more suitable for making
create software or apps that entertain. With a strong need for unique and diverse programming
languages, it is virtually impossible to create a single universal programming language that meets
all needs. Programming languages are often revised and even combined with other languages
over time, evolving to meet our changing technological needs.

Before developing the application, I am going to discuss about the problems related to the
business as well as the solution of that problem along with the different tools and techniques
involved while making the application:
Problems related to Online Business:
Technical Problems:
(Smallbusiness.chron.com 2019) Technical problems are fairly common in online business
startup. There could be a compatibility issue in which the site owner is trying to run a script--
coded instructions that the website executes, such as a form submission--or program that won't
work with the host provider's servers. Or there can be a problem in the coding of the site or the
programming of a script. The more knowledgeable the site owner and his webmaster are about
coding and programming, the easier it is to find and fix these issues.
Server Reliability:
(Smallbusiness.chron.com 2019) Unfortunately, no web host is able to offer 100 percent up-
time- -the period during which the site is running. At some point, all servers crash, and our
website will go down with it. That might be the site's fault, either because of too much traffic or
bandwidth use, or a script the site doesn't like. It also could be the web host's problem. The best
way to deal with this issue is to occasionally back-up your website to our local computer or
third-party storage, and choose a web host with high up-time reliability.
You keep hiring the wrong people
This one is a punch in the gut and arguably one of the most pressing issues faced by business
owners. You are putting your feelers out when job openings arise, tapping into your personal
networks for referrals, doing a ton of interviewing, but a few months into a new employee’s
tenure, it hits you…they are the worst possible person for the job.

Security:
Security breaches can bring your site down, ruin our online reputation and compromise our
customers' secure information. Protecting that information, especially about payments, is crucial
to running a successful online business. Online sites that take payments need to have secure
socket layers--web-based protocols for managing security when consumers submit information
online. We'll also want to use secure payment processing systems. Using a unique,
undecipherable login and passwords to access administrative sections of our site to prevent
hacking.
Poor Marketing:
Marketing is essential to online business success. Unfortunately, many online business owners
don't have a well-planned or implemented marketing plan. Online business owners can't rely on
search engines alone to send customers, and instead should have a series of marketing strategies,
such as advertising, press releases, articles and social networking. The site needs to instill
customer confidence by having contact information, privacy and security information and quality
customer service.
You receive a negative customer review
You wake up one morning and—BOOM—you are hit squarely between the eyes with a public
customer review so scathing that you’re heart starts palpitating (ok, maybe not that bad, but you
get the severity here).

Solution of the problem faced on online business:


Identifying verification:
(Smallbusiness.chron.com 2019) First of all, looking out for signs of suspicious activity. This
could take the form of particularly high value or large orders, identifying fake phone numbers
and email addresses, checking whether zip codes match with the state/city. Sending a verification
link when a customer signs up, via text message or email, to validate the customer is genuine.
With COD purchases, an automated call could even dial out to the customer, asking them to
validate the delivery address.
Conducting thorough research into competitors:
(Smallbusiness.chron.com 2019) Placing emphasis on developing a strategy enabling us to shine
brighter than our competitors. Using social media platforms and blogs for promoting products.
Investing in promotional offers to help create more web presence and therefore more customers.
“Businesses with customer loyalty programs, on average, are 88% more profitable than those
who do not.” Carrying out research, finding which products are more in demand. Removing
outdated items. Customer services that go above and beyond provide a route to staying ahead of
our competitors.

Rethink your hiring strategy


This is not a quick fix. In fact, it can take years and multiple iterations to get right the talent
acquisition part of running a business. Start by tossing out your current hiring strategies. Call on
a hiring consultant. Create an internal hiring committee to brainstorm on a regular basis on things
that have worked in the past and things that have failed.
Increasing trust with visitors:
(Smallbusiness.chron.com 2019) Displaying our address, phone number, pictures of staff,
customer testimonials, and credibility badges on our website. Adding a live chat option to the
website. Creating blogs, they help build trust. Making customer service a priority over profit.
Remembering, it’s easier to maintain an existing customer than to find a new one. Creating
loyalty programs. The points can’t be transferred to other companies, so the customer will have
to purchase from us.
Finding right product to sell:
(Smallbusiness.chron.com 2019) The most common problem is not finding right product to sell.
If we don’t choose right product, we are unable to grow our business. For example: Amazon is
taking over the eCommerce world with their massive online product catalog. Their marketplace
and fulfillment services have enabled sellers from all over the world to easily reach paying
customers.
Respectfully engage
First, breathe. There are several things you can do to stop the bleeding. One is to respond with
kindness. Apologize, take responsibility and publicly offer a refund or to help the person off-line.
Prospective customers can read the responses to negative reviews even more often than the
reviews themselves, so take a moment (or a day) to let your temper subside and engage with
compassion.
Requirements:
Requirements engineering is the process of conforming engineering designs to a set of core
software requirements. This is critically important for creating accurate results in software
engineering.
In requirements engineering, engineers look at a set of data pertaining to the goals and
objectives of the software: how it will work and what are the qualities of the properties it must
have to provide the results needed. Engineers then work forward from these data to look at
specific coding solutions that support these results.

As you start to specify what you want or desire, you hit up against technical language of requirements.
Fear not, this is quite straightforward:

 Technical requirements system wants to do.


 Non-functional requirement-restrictions on the implementations that satisfy technical
specifications are valid.
 Design objectives – are the guidelines for selecting a solution.

User Requirements

For any project, in particular computer system programs, a large number of user specifications are
required to succeed. Most projects fail here because they do not properly determine what the system is
supposed to do. Indeed, a time limit, a budget to invest and a general idea of what should be achieved
have just been provided to a certain programs.

The core of the issue is:

 Computer systems engineers never have the same concept as a business user
 Business users have little understanding of what a computer system could do for them.

As a part of this uncertainty, the period in business management depends instead on achieving
timescales and budgets.

Users/roles: customers and admin.


Functional requirements per user role:

- Customers can:

 View products, view product details, viewed products.


 Feedback product.
 Add, update quantity, remove products to cart.
 Purchase products and ship to an address.
 Search product.

- The admin can:

 Login and logout


 Add, delete, and edit the information of a product.
 Add, delete, and edit includes: supplier, category, product.
 Add, delete, and edit the information of account (User).
 View orders, view order details.

Success criteria:

- Website: run stable, no errors in the process of using the website (if there are errors, the website must
notify error and continue to operate), not stop operation abruptly.

- Customers can search for products, view the products by category, view product details, add products
to the shopping cart, and update the information shopping cart and payment orders, feedback and
comment product.
- Admin: Admin functions to add, delete, update information of any product. They can, view orders and
view order details, view report and they can add, delete, and edit includes: supplier, category, product,
account.

Analysis:

1) Use-case Diagram: for online fashion shopping

Users:
Admin:

For the application advancement of the stock administration and to fulfill these user requirements they
need following system requirements.

System requirements are the building blocks used by engineers to create the system. These are the
typical "job" statements which explain what the program "should" do. The device specifications are
listed as either working or extra. A practical criteria lays out something that a user needs to do their
work. For eg, entering and printing cost estimates that involve a system; it's a practical necessity.

System Requirement:
Items Requirement
Hardware  Memory of 4 GB RAM or more
 Monitor resolution of 1024 x 768 or
higher
 Intel Pentium 4 or AMD Athlon 2 GHz (or
faster)
 1 GB (or more) available hard disk space
Software  Visual studio version 19.1
 .NET SDK tools version 3.2
 Asp .NET core with MVC version 3.0.1

Operating system Window 10


Requirements Points
Sales Ought to have the option to make client deals,
putting away it through TPIN number creating the
exchange record including charge
Inventory management Ought to have the option to include, alter and
erase item.
Administration Ought to have the option to include, alter and
erase client for the stock administration
Reporting Ready to produce every day and month to month
deals report, alongside worker deals report

P2
Risk Management
Risk Management is the process of identifying, analyzing and responding to risk factors
throughout the life of a project and in the best interests of its objectives. Proper risk management
implies control of possible future events and is proactive rather than reactive. Risk Management
Systems are designed to do more than just identify the risk. The system must also be able to
quantify the risk and predict the impact of the risk on the project. The outcome is therefore a risk
that is either acceptable or unacceptable. The acceptance or non-acceptance of a risk is usually
dependent on the project manager’s tolerance level for risk.
If risk management is set up as a continuous, disciplined process of problem identification and
resolution, then the system will easily supplement other systems. This includes; organization,
planning and budgeting, and cost control. Surprises will be diminished because emphasis will
now be on proactive rather than reactive management.
The purpose of risk management is to:
Identify possible risks.
Reduce or allocate risks.
Provide a rational basis for better decision making in regards to all risks.

How To Do Risk Management?


First we need to look at the various sources of risks. There are many sources and this list is not
meant to be inclusive, but rather, a guide for the initial brainstorming of all risks. By referencing
this list, it helps the team determine all possible sources of risk.
Various sources of risk include:
Top management not recognizing this activity as a project
Too many projects going on at one time
No functional input into the planning phase
Poor control of design changes
Problems with team members.
No integrated planning and control
Unrealistic planning and scheduling
Unpredictable
Predictable
Technical
Legal

Some of the major risk for successful completion of application are:


 Technical risk:
(Smallbusiness.chron.com 2019) The most hazard is specialized hazard as the creating android
application is specialized work calling as coding done by the developers. A portion of the term
that are remembered for the specialized hazard are, calculation which help to make the outline of
the task that ought to be clarified to evade specialized blunder later on advancement of
application. Stage ought to be pick to such an extent that the application can run in a possible
way, which ought to be generally steady and verify. Testing ought to be finished utilizing
different systems so we may not experience to the issues when the application is sent in the
market. For maintaining a strategic distance from such blunders, we need to make testing of
application during the beginning of the undertaking.
 Estimation and scheduling

In estimating and planning development time, developers and managers have difficulties with the
unique nature of each software project. Track existing projects always in order to learn lessons
learned in the future.
 Sudden growth in requirements
When a project is underway, issues which are not detected before can delay the accomplishment
of deadlines at the last minute. Try to think about the idea early and take into consideration the
worst case or worst-use situation.
 Employee turnover
Each initiative is developed by a number of developers. If a developer leaves, he or she can take
critical details. This can hinder a whole project and sometimes ruin them. Make sure you have
opportunities to communicate and share knowledge with team members.
 Productivity issues
On projects involving long timelines, developers tend to take things easy to begin with. As a
result, sometimes, they lose significant time to complete the project. Set a realistic schedule, and
stick to it. Establish and stick to a reasonable timetable.
 Compromising on designs
Developers tend to rush the design process so that they get stuck in the next ' real ' tasks. This is
a waste of programming resources, since architecture is the key element of software
development.
 Procedural risks
Operational tasks every day may hinder due to improper execution of procedures, contradictory
goals or a lack of clarity of roles.
 Market Risk:
(Smallbusiness.chron.com 2019) Before executing the application, we have to do the profundity
research of the market needs recalling as a primary concern that we ought not create and dispatch
the application that are not required in the market or request by the client. For making statistical
surveying we need to address and recognized market needs. More on enumerating investigation
of the focused items present in the market.
 Communication risk:
(Smallbusiness.chron.com 2019) For the application advancement there ought to be ceaseless
correspondence among designer and customer. Along these lines, if there is luxation in the
correspondence, we can't improve application. It is significant that they are in a similar page in
the improvement time frame. More on the engineer ought to have perspective on the finished
result and customer else it will prompt the lethal dev elopement blunders.
 Legal Risk
When designing the system, we should use the components by researching the legal background of it.
As an example, we should consider the copy rights of code when we taking design from another project.
Not considering of legal background of the design of other will cause problems at the end of the design
process. Therefore, we should identify all the legal related risk and should be able to avoid those risk for
the purpose of successfully completing the Big Mart application for the company.

 Customer risk:
(Smallbusiness.chron.com 2019) Another hazard while building up the application is client or
customer itself. With respect to the improvement of the application we ought to have clear
comprehension of the customer and client necessity before the advancement of the undertaking.
Commonly, there needs are not plainly indicated because of the absence of specialized
information on the client. Inappropriate examination of the client needs bring about loss of time
and furthermore influences the nature of utilization conveyed.

 Maintenance risk:
(Smallbusiness.chron.com 2019) There are dangers related with the dispatch of a portable
application. In this way, offering help after discharge is the most significant thing for item
achievement. It is imperative to refresh the highlights of the product consistently. Along these
lines, the versatile application ought to receive new changes in the stage and offer help. This
additionally satisfies the customers' altered needs that require steady updates and consideration.

M1
Analyzing the Problem in Big Mart Company
In the process of analyzing the business-related problem of the company, there are several methods
that we used to analyze the problem. As we know analyzing a problem is a set of tasks meant to increase
the designers' understanding of an unbalanced situation for the sake of designing a change to the
situation that will have better balance to provide required outcomes.(Salustri, 2019)

There are several methodologies to analyze a problem. As we know when using a standard methodology
to analyze a problem, we can manage to have successful outcomes since they have been used, tested
and outcome is valid.

1. VMOST

2. SWOT

3. PEST

4. SOAR

5. Boston Matrix

6. Porters Five Forces

7. Maturity Models
These are the main seven method that can be used to analyze a business-related problem. As we know
by analyzing a business-related problem in a proper manner, we can design a solution that will fulfill all
the needs of the client. These methods can be used to analyze the problem of the my company we will
be able to give solutions directly to the problem of the company.

VMOST Methodology
This is a framework and evaluation technique for strategic planning in an organization and VMOST
methodology ensures stakeholders in an organization gain reliable insight into the desired changes in
their organization. After conducting this analysis, this will present various options on how to bring about
change for the problems of the organizations while keeping sight of the strategic and long-term vision of
the organization.(Janse, 2019)

SWOT Methodology
This is a strategic analytical tool for assessing strengths and weaknesses of a business by analyzing
opportunities available to the business. threats faced by the business also will be analyzed by the SWOT
analysis. This methodology can be used at organizational and personal levels.(Research-methodology,
2019)
PEST Methodology
This analysis is a widely used methodology that helps us to analyze the Political, Economic, Socio-
Cultural, and Technological changes in your business environment. By this analysis we

can gain knowledge about the business-related problems and give solutions to each and every problem
caused by political, social, and technology areas. In this application development we can analyze
technological problems using this methodology.

SOAR Methodology
This methodology is a strategic planning technique which helps organizations focus on their current
strengths and opportunities, and create a vision of future aspirations and the result they will bring when
they upgrade their current system. This method can be used to analyze the business-related problem of
Big Mart Company.
Boston Matrix Methodology
BCG matrix is designed to help with long-term strategic planning of a company. This methodology helps
a business consider growth opportunities by reviewing its portfolio of products to get a clear idea about
where to invest or to discontinue or develop products. As we can see the matrix is divided into 4
quadrants based on an analysis of market growth and relative market share, is shown in the below
diagram.(Hanlon, 2018)

Dogs represent theproducts with low growth or market share. Question marks represent the products in
high growth markets with low market share. Stars represent the products in high growth markets with
high market share. Cash cows represent the products in low growth markets with high market share.
Porters Five Forces
This methodology is stated in 1979 by Michael E Porter of Harvard Business School as a methodology for
assessing and evaluating the competitive strength and position of a business organization. Supplier
power, Buyer power, Competitive rivalry, Threat of substitution, Threat of new entry are the five forces
defined by the porter. This methodology can used to identify the business problem of PCW company.
(Research-methodology, 2019)

Maturity Models
These models can be used find out where we need to be and what it would take to get to that point of
maturity. This is the simplest explanation that can be used to explain the maturity models. As we know
when using a maturity model, it is important that we have a clear problem definition and solution
context. There are number of maturity models that can be applied to a business starting from the
evolution model, the technology model, to the team model. As we know that every business or
department goes through a maturity cycle. Usual cycle is chaotic, reactive, proactive, service, and value.
(Research-methodology, 2019)

For the purpose of analyzing problem for the Big Mart Company we can get the help from each and
every methodology stated above. There is a no rule stating that we should use only methodology to
extract the business-related problem of the company. Therefore, we can use all these methods in a
combine manner to analyze and find out the business-related problem of the company.
In my opinion by using number of methodologies we can manage to identify the business-related
problem in a proper manner. Each and every method has its own special feature, by extracting that
feature in each and every methodology we can manage to analyze and find out the business-related
problem of the company in a valid manner.

When analyzing the business-related method, we have used several methodologies. As we know when
analyzing the problem using these methodologies, we have identified several strengths, weaknesses,
opportunities and threats of the Big Mart Company’s business.

Strengths Weaknesses Opportunities Threats

− Sales has been − No future plans for the − Can increase efficiency − Traditional paper
increased business using new system. system may take
over past two time to
− No upgrades with − Can increase sales
years generate
technological
reports
− Technology advancements
trend − No security for data
increased

As we have identified when analyzing the business-related problem of the Big Mart company, this
company didn’t advance with the technological advancements of the modern world. By this they have
subjected to a manner of using traditional paper-based method for their order tracking. This manual
process has lots of problems. Paper based traditional methods was discontinued above 5 or 6 years ago
in medium sized companies. Main problem that we have identified is that their requirements was
fulfilled in time consuming and not efficient manner using paper-based method.

Therefore, they need an application that can track their order efficiently and increase the accuracy of
the order tracking process. As we know we have used several methods to analyze the business-related
problem of the Big Mart Company. By that we have been able to extract the root of the problem of the
Big Mart Company. By the system that we are going to design, they will be able to overcome those
problems we extracted by analyze.

Software Design Document for Big Mart Web Application


This System Design Document has been created to outline the proposed order tracking system design
for PC-World Company. This system will BIG MART Company to manage their orders in a proper and
efficient manner. As we can understand this system will increase accuracy of the orders tracked by the
company.

Overview
In this software design we are designing a software for Big Mart company to manage their orders within
their company. As their order has been increased over the last two years because of their popularity,
they need to get rid of their paper-based system and asked us to implement a new solution. We are
going to develop a system using C# language to overcome this problem of the Big Mart company. This
system will increase the efficiency of the order tracking and stop

using papers and they can insert the previous order details to the system and start working with the new
system immediately with the past details. We will use C# language as our programming language and we
will use MySQL as our database solution. We will try to develop the system with minimum user
interfaces. We are going to different levels of user access to the system to increase the security of the
data. We are dividing user accounts into four types. They are Order Handling Clerk, Warehouse
Operative, Chief accountant and production manager. We are going give administrative access to the
production manager of this company. Chief accountant will only get access to view reports to perform
his finance tasks and to create final demand invoices. Order handling clerk will get access to insert,
update and delete orders facility. Warehouse operative get only update facility, this is because
warehouse operative only confirms the availability of certain goods and they only need to print
acknowledgement copies of the system. These specified access levels will help Big Mart company to
carry out their day to day operations in a productive manner and secured manner.

We will try to use simple interfaces with minimum buttons and forms to load data. It will increase the
simplicity of the system. Main reason for using a simple interface and simple functions for this system is
warehouse operative and order handling clerks should be able to understand the system.
Context
Main reason for implement a system for Big Mart Company is that they needed a way to manage their
order efficiently. As we know when getting thousands of orders per day, order handling clerks,
warehouse operative and chief accountant should go through thousands of invoices and papers to find
out the exact order. As an example, if customer ask from Big Mart for a certain orders status, they need
to go through number of papers to find out the order status, it will take time and energy of the workers
in the Big Mart Company. By using this system, they can find out the status of the order within seconds.
This application is much more necessary to cope up the increasing order of the Big Mart Company and
to go along with the technologic advancement era.
By using a system to manage their order will help them to give their customers a better service and it
will increase their market reputation and they will be able to come to the top of the market.

Goals
After we develop the system our main goal is to stop using paper for the company. This will save lots of
money for the company. The expected impact from introducing this application to the work area is the
stop using papers to manage orders, increase the efficiency of the order tracking and increase the
security of the data inserted. These are the main goals that we expect from developing and
implementing this application to the Big Mart Company. As solution provider we are going to study
about the work environment after implanting the proposed system and analyze the efficiency, reliability
and accuracy of the day to activities. We will be using these criterions to measure success of the
application. As an example, we are comparing a time took to track an order using traditional method
and new method. By achieving success in that goal, we will get a conclusion about the success of the
proposed solution. We will be comparing all the goals at the end of the development process with
traditional method that they have used. By comparing we can gain a clear idea about the effect that
caused by our system.

Milestones

Milestone Milestone Goal

Start of the Project This milestone should gather user data and analyze the problem of the company.

Proposing a Design Software Requirements Specification has passed peer review.


Technical investigation The investigation of a technical issue is complete and a summary of the main issues
and conclusions has been presented and approved.

Develop UI, data access and business layers


Development of the
syste
m
Software module test A small program or function has been completed and unit tested.

Software product The software product has been built an it runs.


build

Test complete Unit of testing has been completed and test results recorded.

Bug fix complete A bug identified in a Software fixed out.

Documentation System document should create about the designed system.

These are the breakdown of milestones of the application development project. We will introduce timed
checkpoints in the timeline for the milestones introduced above. As we know by dividing the
development process into milestones will help us to design and develop the system by setting a pre-
defined goal. This will increase the motivation of the developer and customer a better idea about the
work coordination in developers.

Current Solution
As their current solution to track order they are using paper-based solution. This method cause troubles
when handling large number of orders. This paper-based method will decrease the efficiency of the
whole process of the company. We can use stories to identify the problems in current implementation
of the PCW companies order tracking.

These are the several types of users in this company and these are the requirements they
expect in the new solution. We can conclude that all these user requirements are fulfilled by
the paperwork in the current solution. This will decrease the efficiency of the workforce of the
company.

As we can understand this is the current solution that has been using in the Big Mart company to
track their orders.

Proposed Solution
By analyzing the problem of the Big Mart company’s current solution. We decided to develop a system
using C# programming language and using a database created by SQL language. Our proposed stand-
alone solution will cover all the user and system requirements stated in the description. In the proposed
solution order handling clerk will collect the order by using telephone, fax, post or email. Then he will
add the customer details if customer is not a previous customer. If the customer is a new customer,
order handling clerk should do a credit check for test them as they are credit worthy or not. Then he will
place the order using the details given by the customer. After placing the order, order will be forward to
the warehouse operative. Then he can check the availability of the product their warehouse stock and
confirm the availability. Then order handling clerk can proceed the customers payment. For each and
every transaction acknowledgement will be printed. As we know these are the main user requirements
of this application. Chief accountant can make final demands and reports and create invoices. As can
understand for these requirements, stand-alone system is the most ideal solution that we can take. We
are developing a system which has minimum number of interfaces and can carry out the tasks in the
easiest manner of employees in the Big Mart company.

Used Case Diagramfor Proposed Solution


Activity Diagram for Proposed Solution From this activity diagram and the used case diagram we can
manage to have a better idea about how the proposed solution works. It will give idea to the scrum
team and the management of the Big Mart company about how their system will work.
As we know this proposed solution can manage to fulfill all the requirements stated by the
company. I think this is the best solution anyone can give for the business related problem of
the Big Mart company.

Alternative Solutions
As alternative to proposed solution company can use order tracking functionalities from other
vendors who provide their software as a rent facility. This is another alternative solution. But
these systems are not manually customized to fulfill all the solutions of the company. Paying
rent is an extra debt when using other sources of order tracking. In my opinion by paying a
onetime fee Big Mart company should develop a system for their customized expectations
without using alternative solutions.

Advantages of Alternative Solutions Disadvantages of Alternative Solutions


− Can be delivered quickly
− Rent should be played in each month
− No maintenance
− Data should be stored in a 3rd party
− Fast implementation database.
− Managing system will be done by a − Cannot design customized system
third party
− No upgrades can be done according to
variations in the company.

3rd party open source application can be used as solution for the business problem of the Big
Mart Company, but there are no one to get the responsibility when a problem occurs and Big
Mart Company cannot customize the solutions according to their needs. If an upgrade needs
to be done with the time, they cannot do it, because they have used a third party solution for
their problem.

LO2 Use design and development methodologies with tools and techniques
associated with the creation of a business application
P3 Research the use of software development tools and techniques and identify
any that have been selected for the development of this application
Software Development Tools
Software Development tool may be any software program that helps developers in creating,
editing, debugging, maintaining and development specific task. Software development tool is
also known as programming tool.(techopedia, 2019)

When analyzing software development tools, we have to select the correct programming
language, IDE and UI and UX design tool. There are large number of tools and techniques in
the modern world to get selected. There are specialized languages to develop systems to
achieve specialized tasks. As we know when selecting the language that we use to develop the
application for the company, we should match the compatibility of the programming language
and the defined tasks that should be carried out.

Design patterns

Design patterns are used to represent some of the best practices adapted by experienced
object-oriented software developers. A design pattern systematically names, motivates, and
explains a general design that addresses a recurring design
problem in object-oriented systems. It describes the problem, the solution, when to apply the
solution, and its consequences. 

Creational design pattern:

Helps in creation of objects and controlling any design issues. Abstract factory, factory, builder pattern
are the examples.

Structural design pattern: 

Helps in defining relationships between entities. Adapter pattern, aggregate, Proxy pattern are the
examples.

Behavioral design pattern: helps in realizing communication patterns between objects. Iterator pattern,
strategy pattern, and state pattern are the examples

MVC design pattern

MVC Pattern stands for Model-View-Controller Pattern. This pattern is used to separate application's
concerns
Controller.
 The controller belongs to the Back-end, it will Rest-API as well as navigate the data and perform
tasks related to processing the logic that determines the flow of the application.

Model.

 The model has the function of performing tasks related to data processing in the application
such as inserting data into the table in the database, deleting data, editing data.

View.
 View function to perform tasks related to the display (text, image, etc.) in the application.

For example:
In VIEW we have login.cshtml to view the login at the front-end.
 In CONTROLLER we have AccountController.cs inside of AccountController we have many
function for login such as below:

 In Models we have AccountViewModel.cs inside of it we have loginViewModel class for bind the
Data such as below:
Based on our assignment requirement we will use MVC design pattern.

UML Diagram
A UML diagram is a diagram based on the UML (Unified Modeling Language) with the purpose of visually
representing a system along with its main actors, roles, actions, artifacts or classes, in order to better
understand, alter, maintain, or document information about the system. The UML represents a
collection of best engineering practices that have proven successful in the modeling of large and
complex systems. The UML is a very important part of developing object oriented software and the
software development process. The UML uses mostly graphical notations to express the design of
software projects.

Types of UML Diagrams

There are several types of UML diagrams and each one of them serves a different purpose regardless of
whether it is being designed before the implementation or after (as part of documentation).

The two broadest categories that encompass all other types are Behavioral UML diagram and Structural
UML diagram. As the name suggests, some UML diagrams try to analyze and depict the structure of a
system or process, whereas other describe the behavior of the system, its actors, and its building
components. The different types are broken down as follows:
Behavioral UML Diagram

 Activity Diagram
 Use Case Diagram
 Interaction Overview Diagram
 Timing Diagram
 State Machine Diagram
 Communication Diagram
 Sequence Diagram

Structural UML Diagram

 Class Diagram
 Object Diagram
 Component Diagram
 Composite Structure Diagram
 Deployment Diagram
 Package Diagram

Profile Diagram

UML tools and techniques

UML stands for Unified Modeling Language. It is a standard which is mainly used for creating
object-oriented, meaningful documentation models for any software system present in the real
world. It offers rich models that describe the working of any software/hardware systems.

There are many tools available in the market for designing UML diagrams. Following is a
curated list of UML tools with popular features.

Umbrello:
Umbrello is a UML modeling tool. It runs under KDE and Linux. The tool also supports code
generation as well as reverse engineering for C++ and Java.

Features:

1. It allows you to create diagrams of software and another system in a standard format
2. It helps you to check the screenshot to see umbrello in action.
3. Offers handbook to give instruction to Umbrello and UML modeling.

 Lucidchart

Lucidchart is HTML-5 based UML tool which also offers real-time collaboration capabilities. It allows you
to create a simple flowchart to complex technical diagrams.

Features:
1. Works with your team on any device across various platforms
2. Allows you to connect live data with your diagrams or import data to automatically build
organization charts
3. Helps you to increase security and easily manage user accounts

4. It is Integrated seamlessly with MS office, G suite, Atlassian, etc .

Visio

Microsoft Visio is a popular chart and visualization software. It belongs to office


family so it can easily be integrated with other Microsoft office products.
Features:
1. Visio helps you to create professional diagram by creating flowcharts, diagrams, org charts,
engineering designs, and more.
2. Allows you to connect flowcharts and diagrams to real-time data.
3. It allows you to work together on diagrams from a web browser, from almost anywhere.

We will use Lucidchart UMl tool for my application.

ER Diagrams
An Entity–relationship model (ER model) describes the structure of a database with the help of a
diagram, which is known as Entity Relationship Diagram (ER Diagram). An ER model is a design or
blueprint of a database that can later be implemented as a database. The main components of E-R
model are: entity set and relationship set.

Components of ER Diagram

1. Entity

An entity is an object or component of data. An entity is represented as rectangle in an ER diagram. For


example: In the following ER diagram we have two entities Student and College and these two entities
have many to one relationship as many students study in a single college. We will read more about
relationships later, for now focus on entities.

 Weak Entity:

An entity that cannot be uniquely identified by its own attributes and relies on the relationship with
other entity is called weak entity. The weak entity is represented by a double rectangle. For example – a
bank account cannot be uniquely identified without knowing the bank to which the account belongs, so
bank account is a weak entity.

Fig: ER diagram weak entity example

2. Attribute

An attribute describes the property of an entity. An attribute is represented as Oval in an ER diagram.


There are four types of attributes:

 Key attribute:

A key attribute can uniquely identify an entity from an entity set. For example, student roll number can
uniquely identify a student from a set of students. Key attribute is represented by oval same as other
attributes however the text of key attribute is underlined.
Fig: ER diagram key attribute

 Composite attribute:

An attribute that is a combination of other attributes is known as composite attribute. For example, In
student entity, the student address is a composite attribute as an address is composed of other
attributes such as pin code, state, country.

Fig: ER diagram composite attribute

 Multivalued attribute:

An attribute that can hold multiple values is known as multivalued attribute. It is represented with
double ovals in an ER Diagram. For example – A person can have more than one phone numbers so the
phone number attribute is multivalued.

 Derived attribute:
A derived attribute is one whose value is dynamic and derived from another attribute. It is represented
by dashed oval in an ER Diagram. For example – Person age is a derived attribute as it changes over time
and can be derived from another attribute (Date of birth).

Fig: ER diagram with multivalued and derived attributes:

3. Relationship

A relationship is represented by diamond shape in ER diagram, it shows the relationship among entities.
There are four types of relationships:

 One to One Relationship

When a single instance of an entity is associated with a single instance of another entity then it is called
one to one relationship. For example, a person has only one passport and a passport is given to one
person.

Fig: ER diagram one to one relationship example

 One to Many Relationship

When a single instance of an entity is associated with more than one instances of another entity then it
is called one to many relationship. For example – a customer can place many orders but a order cannot
be placed by many customers.
Fig: ER diagram one to many relationship example

 Many to One Relationship

When more than one instances of an entity is associated with a single instance of another entity then it
is called many to one relationship. For example – many students can study in a single college but a
student cannot study in many colleges at the same time.

Fig: ER diagram many to one relationship example

 Many to Many Relationship

When more than one instances of an entity is associated with more than one instances of another entity
then it is called many to many relationship. For example, a can be assigned to many projects and a
project can be assigned to many students.

Fig: ER diagram many to many relationship example

  2.Required tool for Versioning Control

A version control system allows users to keep track of the changes in software development projects,
and enable them to collaborate on those projects. Using it, the developers can work together on code
and separate their tasks through branches.

There can be several branches in a version control system, according to the number of
collaborators. The branches maintain individuality as the code changes remain in a specified
branch(s).

Developers can combine the code changes when required. Further, they can view the history of
changes, go back to the previous version(s) and use/manage code in the desired fashion.
Benefits of Using a Version Control System

The main advantages of using a version control system include streamlining the development
process, management of code for multiple projects and keeping a history of all changes within a
code.

A version control software saves all the changes in a repository. Hence, if the developers make a
mistake, they can undo it. At the same time, they can compare the new code with a previous
version(s) to resolve their grievance. This can reduce human errors and unintended consequences
to a great extent. A great fit for any web development company around the globe.

Additionally, it can be integrated with several software development tools like PaaS providers,
integrated development environments (IDE) and build automation tools.

GitHub

GitHub helps software teams to collaborate and maintain the entire history of code changes. You
can track changes in code, turn back the clock to undo errors and share your efforts with other
team members.

It is a repository to host Git projects. For those wondering what is Git? It is an open source
version control system that features local branching, multiple workflows, and convenient staging
areas. Git version control is an easy to learn option and offers faster operation speed.

Bitbucket

Bitbucket is a part of the Atlassian software suite, so it can be integrated with other Atlassian
services including HipChat, Jira, and Bamboo. The main features of Bitbucket are code
branches, in-line commenting and discussions, and pull requests.

It can be deployed on a local server, data center of the company, as well as on the cloud.
Bitbucket allows you to connect with up to five users for free. This is good because you can try
the platform for free before deciding to purchase.

We will use Github version control tool for our application.


Required tools for code development (IDE):
       
Integrated Development Environment, allows programmers to simplify the various aspects of
programming. IDEs improve system efficiency by integrating software writing tasks into a single
program: source code editing, executable creation, and debugging.
Example: visual studio code, Microsoft Visual studio.

Visual studio code

Visual Studio Code is a source-code editor developed by Microsoft for Windows, Linux and macOS. It


includes support for debugging, embedded Git control and GitHub, syntax highlighting, intelligent code
completion, snippets, and code refactoring. It is highly customizable, allowing users to change
the theme, keyboard shortcuts, preferences, and install extensions that add additional functionality. The
source code is free and open source and released under the permissive MIT License. The compiled
binaries are freeware and free for private or commercial use.

Visual Studio

Microsoft Visual Studio is an integrated development environment (IDE) from Microsoft. It is used to


develop computer programs, as well as websites, web apps, web services and mobile apps. Visual Studio
uses Microsoft software development platforms such as Windows API, Windows Forms, Windows
Presentation Foundation, Windows Store and Microsoft Silverlight. It can produce both native
code and managed code.

We will use visual studio IDE for our project.

8. Required tools for data management:


 
eg:-MySQL, Oracle Database, SQLite,

Database applications can be used to browse, sort, estimate, report and exchange information. Databases may
also include code for numerical and analytical calculations of data posted on the site to support queries.
Example of data management tools like MySQL, Oracle, NoSQL, PostgraySql.

We will use MySQL database.

9.  Required tools for testing purpose:


Software testing is a process, to evaluate the functionality of a software application with an intent to
find whether the developed software met the specified requirements or not and to identify the defects
to ensure that the product is defect free in order to produce the quality product

2.JIRA:

JIRA is a defect tracking tool which is used for defect/issue tracking as well as project management. This
tool is not only used for recording, reporting but also integrated directly with code development
environment.

Features:

1. JIRA Query Language helps to create quick filters with a single click
2. Possible to create custom workflows of any size which is helpful to build, test, and release
software.
3. Install plug-and-play add-ons from The Atlassian Marketplace to fit all types of cases.

3.Bugzilla:

Bugzilla is one of the best defect Tracking System. The tool allows individual or groups of developers to
keep track of outstanding bugs in their system. It is the best open source software used in the market by
small scale as well as large- scale organizations.

Features:

1. Optimized database structure to enhance performance and scalability


2. Advanced query tool that remembers customized searches of the user
3. Editable user profiles and comprehensive email preferences
4. Extension Mechanism for Highly Customizable Installations

We are very likely to use Jira software tool for testing of our software.

10.  Required tools for maintenance purpose


·        File comparator
·        Cross-reference generator
·        Static code analyser
·        Debugger.

Software maintenance includes upgrading the existing software framework and documenting any
alterations made to it. 
File comparator, Cross-reference generator, Static code analyser are the example of software
maintenance tools.

Database Software
Database software is the phrase used to describe any software that is designed for creating databases
and managing the information stored in them. Sometimes referred to as database management systems
(DBMS), database software tools are primarily used for storing, modifying, extracting, and searching for
information within a database. Database software is used for a number of reasons in any industry - from
keeping your bookkeeping on task, compiling client lists to running your online Web site.[ CITATION
Bea19 \l 1033 ]

List of the database management software are given below:

PHP MyAdmin: PHPMyAdmin is open source free software, designed to handle the administration and
management of MySQL databases through a graphic user interface. Written in PHP, PHPMyAdmin has
become one of the most popular web-based MySQL management tools. PHPMyAdmin comes with
detailed documentation and is being supported by a large multi-language community. PHPMyAdmin's
ever growing list of features supports all commonly used operations such as browsing, dropping,
creating, altering MySQL databases, tables, fields and indexes.

MySQL: MySQL is an Oracle-backed open source relational database management system (RDBMS)
based on Structured Query Language (SQL). MySQL runs on virtually all platforms, including Linux, UNIX
and Windows. Although it can be used in a wide range of applications, MySQL is most often associated
with web applications and online publishing. MySQL is an important component of an open source
enterprise stack called LAMP. LAMP is a web development platform that uses Linux as the operating
system, Apache as the web server, and MySQL as the relational database management system and PHP
as the object-oriented scripting language.

Microsoft SQL Server: Microsoft SQL Server is a relational database management system (RDBMS) that
supports a wide variety of transaction processing, business intelligence and analytics applications in
corporate IT environments. Microsoft SQL Server is one of the three market-leading database
technologies, along with Oracle Database and IBM's DB2. Like other RDBMS software, Microsoft SQL
Server is built on top of SQL, a standardized programming language that database administrators (DBAs)
and other IT professionals use to manage databases and query the data they contain.

Sotware Technologies:

11. Selecting the right programming language and framework


Programming language is a number of commands, instructions, and other syntax use to create
a software program for the expectation of the developer. Languages that developers use to
write code are called "high-level languages" and this code can be compiled into a "low-level
language," which can be recognized directly by the computer hardware.

As we know there are lots of programming languages for developing application. We should
select the most favorable language for our purpose. Since some languages have their own
pros and cons we should be much and more considerate about their implementation and uses
for our project.

On the other web we need a proper software framework which makes the our work more
efficient. Software development framework is a set of resources and tools for software
developers to build and manage web applications, web services and websites.

Such a framework includes templating capabilities for presenting information within a browser,
the programming environment for scripting the flow of information and the application
programming interfaces (APIs) for accessing underlying data resources. The framework also
provides the foundations and system-level services for software developers to build a content
management system (CMS) for managing digital information on the Web. Developers can use
the framework to define the 'out-of-the-box' content management capabilities, user authentication
features, and administrative tools. There is some programming language with the frameworks.

1. Ruby - programming language focusing on productivity and simplicity. Ruby on rails, Sinatra,
padrino, Roda, Hanami are the examples of Its framework. Among these framework ruby on rails is
very popular in between software developers.

Javascript- JavaScript is high-level, often just-in-time compiled, and multi-paradigm. It has curly-bracket


syntax, dynamic typing, prototype-based object-orientation, and first-class functions. Angular, React, vue.js,
Node.js are the framework of javascript.

 PHP - Great scripting language which especially suits web development. Symphony, laravel,
CodeIgniter, Cakephp are the some example of its framework

 HTML5 - Mark-up language, and the latest kind among XHTML and HTML.
 Python - Allows faster work and combine systems precisely. Generally Djano,
TurboGears,web2py are the popular framework of python
 Java -This is a popular programming language, owned by Oracle. framework of javas are Spring,
JSF, GWR, STRUTS etc.

 C# -This is a simple and OOP language developed by Microsoft. ASP.NET framework, ASP.Net
core Windows form., ADO.Net etc.

 Visual Basic -This is a third-generation event-driven language from Microsoft

We will use C# programming language and its framework ASP.Net Core.

12. Selecting the Program Libraries


Program libraries are a collection of commonly used functions, classes or subroutines which
provide ease of development and maintenance by allowing developers to easily add or edit
functionalities to a frameworked or modular type application.

jQuery

13.Browsers

Browsers are the interpreters of the web. They request information and then when they receive it,
they show us on the page in a format we can see and understand.

Google Chrome - Currently, the most popular browser brought to you by Google

Safari - Apple’s web browser

Firefox - Open-source browser supported by the Mozilla Foundation

13.OS:
 Operating System is the program that manages all programs (software) and hardware in the
computer. Hardware is CPU (central processing unit), memory (RAM - random access memory
and ROM - read only memory), input devices (such as keyboard, mouse) and export devices
(machine print, speaker). Software is programs like text editing (word, excel), web browser (like
chrome, firefox).

We will use windows operating system because c# work at windows very smoothly.
14.Server:
 The server is a system (software and appropriate computer hardware) that meets the
requirements on a computer network to provide or support the provision of a network service.
Servers can run on a dedicated computer, which is also often referred to as a "server", or
multiple networked computers capable of hosting servers. In many cases, a computer can
provide a wide variety of services and services.
We will use server on the Heroku cloud.

Software Development methodologies


Software development technique in software engineering is a technique that is used by developer to
structure, plan, and control the process of developing an information system for the requirement of the
customer. There are the following methodologies that developers use to design and develop a software.

1. Prototyping Methodology

2. Agile Software Development Methodology


3. Rapid Development Mythology

4. Spiral Development Methodology

As we know software development methodology is a codified communication. When we are actually


setting a set of instructions between a group of people that say this is how they going to work and this is
how you’re going to pass information between each of other w say that we are setting a software
development methodology.

As we know there are several advantages of using Software development methodologies.


They are,

− Increased Flexibility with a Fast Failure Mindset

− Improved Team Collaboration

− Quicker & More Efficient Release Cadence

− Greater Knowledge Building

− More Transparency

These are the advantages that we can gain by using a software development methodology for
development process. As we can understand we can gain lots of positive outcomes when we structured
our software development process into software development methodology.

Prototyping Development Methodology


This methodology is a system development method in which a prototypewill be reworked as necessary
until an acceptableprototype confirmed by the customer will be finally delivered to the customer. As we
know this model works best in scenarios where not all of the project requirements are known
previously.

(Rouse, 2017)

Phases in Prototyping Model

1. System requirements are defined as much as possible. This involves interviewing users
representing all the departments or aspects of the existing system.

2. Previous design is created for the new system.

3. A prototype will be designed using the preliminary design. This is representing an approximation
of the characteristics of the final product.

4. The users will evaluate the first prototype, noting its strengths and weaknesses, and give
feedback to the developers for improvement.

5. By using the feedback of the first prototype second prototype is designed.

6. Second prototype is evaluated same as the first prototype.

7. Above steps are conducted again and again, until the users are satisfied that the prototype
represents the final product desired.
8. Based on the final prototype final system is designed.

9. Last and final system is thoroughly evaluated and tested.

Advantages of Prototyping Model


− Helps to deliver innovative and flexible designs
− Helps in clearing unclear requirements
− Missing functionalities can be identified easily
− Difficult functions can be identified
− Strong communication between users and developers
− Can remove all the problems after getting users feedback

Disadvantages of Prototyping Model


− Identifying nonfunctional elements will be difficult.

− Client may unknowledgeable

− Requirements will change rapidly

− Approval process is not strict

− Incomplete problem analysis

Agile System Development Methodology


This is a methodology that anticipates the need for flexibility and applies a level of perfectness into the

delivery of the finished product to the customer. This methodology requires a cultural shift in most of

the companies because this methodology focuses on the clean delivery of individual parts of the

software and not on the entire application. (Rouse, 2017)


Advantages Disadvantages
1. High flexibility 1. Problems with workflow
2. High customer satisfaction coordination

3. Constant interaction 2. Difficult planning at early stages


4. Continuous quality assurance 3. Lack of long-term planning

These are the advantages and disadvantages of using agilesystem, development methodology. We have
to consider these advantages and disadvantages when selecting a development methodology for PCW
company application.

Waterfall model: Waterfall is one of the first methods to automate the system creation process. The
waterfall model is also called the linear sequential life cycle model, based on the "first and new"
principle. In simple terms, two models never intersect in a waterfall model. This model explains how to
improve the software by linear sequential scrolling, which means that any section of the update process
starts only at the end of the previous section. This improvement technique does not define a method to
return to a previous step to manage the requirements changes.
Sequential flow of waterfall model

Advantages
1. The waterfall model is very simple and easy to understand and use. It is therefore very useful for beginners
or beginner developers.
2. It is easy to handle due to the rigidity of the model.
3. On this model, the levels are processed and completed one by one.
4. This model works very well for small projects where needs are well understood.
Disadvantages
1. This model can only be used if very specific requirements are available in advance
2. This model is useless for a big project.
3. Level of high risk and uncertainty.
4. No running software is produced until it is postponed during the life cycle
Waterfall model is most appropriate to follow when:
• Project with firm and unequivocal requirements.
• Ideal for developing milestones.
• Works perfectly for a small project where the goals of the project are well understood.
• The technology is understood and not dynamic. For example, if you are using a CDN network and the
CDN server has been idle for hours, this could affect the product's service.
• The technology is understood and not dynamic. For example, if you are using a CDN network and the
CDN server has been idle for hours, this could affect the product's service.

Spiral Development Methodology


This methodology is a combination of iterative development and Waterfall development with very high
emphasis on risk analysis and it allows number of incremental releases of the product or incremental
refinement through each iteration around the spiral.

(Toolsqa, 2013)
This model is mostly used for large projects that frequently gets subjected to enhancements.
Same activities are repeated for all the spirals till the entire software is completely build.

Phases of Spiral Model


Spiral model has four phases. A developing system repeatedly passes through these phases in iterations
called Spirals.

1. Planning

In this phase requirements are gathered, requirements include cost, schedule and resource for
the spirals.

2. Risk Analysis

This phase includes identifying, estimating and monitoring technical feasibility and management
risks.

3. Engineering

This phase is production of the actual software at every spiral. Actual development and test
takes place in this phase.

4. Evaluation

After testing the project customer evaluates the system and provides feedback
Advantages of Spiral Model
− Cost estimation becomes easy because prototype building is done in small segments.

− There is always space for customer feedback and the changes can be implemented faster.

− Development is a very fast and features are added in a systematic way.

− Since development is done in small parts, riskier parts can be developed earlier and it will help in
better risk management.

Disadvantages in Spiral Model


− Works best for large projects and will be expensive for small projects.

− Risk assessment requires expert people in risk assessment.

− For the documentation spiral model protocols need to be followed strictly.

Difference between Agile, Waterfall and Spiral Models

Spiral Waterfall Agile


It works in evolutionary Works in sequential method Main principal of agile model
method is to achieve agility by
removing unnecessary
activities that waste time and
effort
Errors or risks are identified Errors or risks are identified Customer interaction is
and rectified earlier and rectified after the needed more then other
completion of stages model
It is adopted by developer It is adopted by customer Adopted by developer
It is applicable for large project It is applicable for small Applicable for large project
project dividing them into the smaller
part
Flexibility to change in model Flexibility to change in model Code can be change in the
is not difficult is difficult middle of the project

M2 Compare the differences between the various software development tools and techniques
researched and justify your preferred selection as well as your preferred software development
methodology

I have already discussed about the software development tools & techniques we can choose from. In
this section, I will summarize those tools and techniques and compare them thoroughly. The tools that
we can use for development of an application include; prototyping tools, Integrated Development
Environment, frameworks, database tools and source control tools.

Les summarize all these tools and options available:

a. IDE (Integrated Development Environment)

A software application which offers comprehensive facilities to computer programmers for software
development is termed as Integrated development environment. This too consists of at least a source
code editor, build automation tools and a debugger. Let’s compare IDEs; Visual Studio and Visual Studio:

Based on Visual Studio Visual Studio Code


Weight of application It is heavy weighted application It is light weight application
Primary use It is primarily used in .NET It is for HTML5, PHP, JavaScript,
development Python, NodeJS and so on
OS Compatibility It is available for Mac and It is available in all three OS
Windows but not for Linux
Languages supported It supports JavaScript, HTML, It has support for languages
CSS, JSON etc. Other languages like; JavaScript, HTML, CSS,
include; Python, PHP, C# with TypeScript, Python, C/C++ and
ASP.NET, Razor, TypeScript and several other languages through
so on the use of extensions

Since we are working with C# with .NET Core MVC, we have to use Visual Studio as our IDE for
application development of Big Mart.
b. version controling tool

Source control tool is a category of software tools that help a software team manage changes to source
code over time. We can manage the changes of application files, computer programs, documents, large
websites, and other collections of information. It is also called version control tool. Let’s compare two
source control tools; GitHub and Bitbucket:

Based on GitHub Bitbucket


Private repositories GitHub provides unlimited Bitbucket provides unlimited
public repositories but limited free private repositories
(5) private repositories
User Interface GitHub provides good user Bitbucket also has UI tool
interface
Users 40 million users use GitHub 10 million users use Bitbucket
No. of repositories There are 57 million+ There are 28 million+
repositories in GitHub repositories in Bitbucket
Price It is expensive as compared to It is cheaper than Bitbucket
GitHub

Not just because GitHub contains more repositories or has trust by many users. There are lots of reasons
to use it. It is easy tool to use and can be used using console too (Command Prompt in Windows &
Terminal in Mac or Linux). We will use GitHub for this and will think about other source control tools in
the future.

Uml tool and techniques

Based on visio lucidchart


feature Visio conveniently does  LucidChart is a cloud-based app, it buckles
not require internet, down on security and dependability.
which means you can
work on your charts
wherever,
pricing Visio is a bit more It’s cheaper price also makes it a manageable
limited when it comes option for those who are only dabbling in
to the customer base. process mapping.
os Visio is limited it means Lucidchart is compatible with any browser on
it runs only on any operating system on any device.
Windows,
Time consuming Automation is not In Lucidchart, you can automatically generate:
available AWS infrastructure diagrams
Entity-relationship diagrams from SQLs
Org charts from CSVs
Mind maps from lists or TXT files
From the above table it is all clear that lucidchart is more effect in various manner. So we will likely to
use lucid chart over visio.

Framework

We are using C# languge and framework like asp.net and asp.net core

Based on Asp.net Asp.net core


Open Source NET Framework was releases as the company has released .NET
a licensed and proprietary Core as an open source software
software framework. framework. 
Platform NET Framework enabled  .NET Core is cross-platform, and
developers to build applications supports three distinct
for a single platform — operating systems — Windows,
Windows OS X, and Linux.
Deployment Options  .NET Framework, developers But the web applications
have to deploy web applications developed with ASP.NET Core
only on Internet Information can be hosted in a number of
Server ways. The developers can
deploy the ASP.NET Core
applications directly in the cloud
or self-host the application by
creating their own hosting
process.
Performance and Scalability .Net framework needs .NET Core enables developers to
additional hardware or enhance the performance of
infrastructure for the better applications drastically without
performance deploying additional hardware
or infrastructure.
Application Models The application model of .NET  the application model of .NET
Framework includes Windows Core includes ASP.NET Core and
Forms, ASP.NET, and Windows Windows Universal Apps.
Presentation Foundation (WPF)

Database

A database is a data structure that stores organized information. Most databases contain multiple
tables, which may each include several different fields. For example, a company database may include
tables for products, employees, and financial records. e-commerce sites like Big Mart web
application may uses databases to store product inventory and customer
information. These sites use a database management system (or DBMS) such as
MySql, Oracle,
Based on Mysql oracle
Support MySQL is an open source and Only Oracle Express Edition is
it is available for free free of cost. But Oracle
download and installation. Express Edition has very
limited features when
compared to MySQL. For
extensive features, either
Oracle Standard Edition or
Oracle Enterprise Edition has
to be purchased.
Os MySQL works with: Oracle works with most of these
operating systems, but it doesn’t
 Windows work with BSD, Symbian or
 Mac OS X AmigaOS.
 Linux
 UNIX
 z/OS
 BSD
 Symbian
 AmigaOS

Business purpose MySQL is used for smaller Oracle is more suited for larger
projects. enterprises
Benefits The benefits of MySQL include: the benefits of Oracle include:
 Free to use  Capable of running large
 Great Performance ILTB and VLDBs
 Very user-friendly  Very feature rich
 Incredible security  Highly reliable
 Scalable  Flashback technology
 Works with many
operating systems
 Supports many
development interfaces

The features which is included in MySql is quite enough to do the our project. The features are in Mysql
is easy to use and it provides the all feature freely while oracle database is highly recommended for the
large entreprice and the features it provides to the us is very costly. So we have choosen MySql
database over Oracle.
Design pattern

Mvc and singleton

Based on mvc singleton


u  MVC come under the category Singleton design pattern comes
of behavioural design pattern. under the category of creational
These concentrate on the design pattern. In this only one
interaction between objects. instance of the class is created
which is used by all the callers
In MVC design pattern there is a
clear separation of the business
logic, presentation logic and
data.
 flexibility and reusability

Comparison of differences between Software Development methodology.


There are several methodologies that we can consider when developing a system. As we can understand
there are specialized feature that helps us to select the correct software development methodology for
our software development purposes. We have discussed about seven different software development
methodologies in the above. As we know Agile helps development teams focus on customers’ most
important requirements as quickly as possible along with continuous feedback and frequent face-to-face
interactions.By that project team and stakeholders understand and prioritize the right requirements. As
we know agile teams use backlogs with user stories to manage requirements and this collaborative
approach ensures that the most important features get prioritized. As we know requirements are
continuously updated throughout the project as new information is surfaced

When we consider each and every software development methodology, each and every has a
specialized feature that it will get differentiate with others. As we know we use prototyping
development methodology when we are developing a system which involves external users. As an
example, An online shopping cart system. These types of application need to get positive feedback from
the user about the user interface. Therefore, we have to use a prototyping methodology to finalize a
design before starting the system development process. In this methodology we are taking lots of user
feedback and making iterations from the collected feedback. Then we release number of releases until
proper user acceptance is present. This methodology is mostly used in Web development. Developers
use Spiral software development methodology in when these is a risky situation in development
process. This is a risk-driven model which means that the overall success of a project highly depends on
the risk’s analysis phase of this methodology. This is the special feature that differentiate this
methodology from other software development methodologies.

When we compare rapid development methodology with other methodologies, Rapid methodology is
used for a quick process. This methodology uses quick feedback than other development methodologies
and over long drawn out development and testing cycles and with using rapid application development.
When we compare the spiral development methodology with other development methodologies. This
methodology is mostly used in development projects which needs a better risk analysis. This is the
special feature that differentiate the spiral development methodology from other development
methodologies.

Preferred Selected Tool and Methodology


From the above discussed software development tools and techniques, we have analyzed their
specialized features. In my perspective from the above-mentioned software tools and techniques, I have
selected scrum development methodology as my preferred development methodology. Then I have
selected C# programing language with Visual Studio IDE and Based on the requirement of my
assignment I have chosen MVC design pattern .

Techniques that we will use for this website application are:

Language programing: .Net (C#):


C # is the language that comes with the .NET framework, supports many things: Creating Windows
applications with WinForm, WPF; Create website with WebForm, MVC.NET

 The reason we choose c # is because we can create web app by using MVC model of ASP.NET

ASP.NET MVC:

ASP.NET is an excellent framework that supports pattern MVC for ASP.NET.


MVC is an acronym for Model-View-Controller, which divides the application's pattern into 3 parts -
model, controller and view.
Git bash

Git is the name of a distributed version management system.

 I use git bash to git to store the source code on GITHUB and HEROKU.

SQL Server:

SQL Server provides full tools to manage, from the GUI interface to the use of SQL query language. In
addition, its strong point is that Microsoft has a lot of platforms that combine perfectly with SQL Server
like ASP.NET.

 The reason I choose SQL server is because it is integrated with visual studio of microsoft.

Tools that we will use for this assignment is:

Cloud for Deployment : Heroku

I have a website, but i don't have a Host yet. i want to deploy so everyone can access it. So I using
Heroku is a great choice for me. Heroku can be deployed for free and provides sufficient database.

 The reason I chose heroku is because it's free and has all the functions I needed.
GITHUB
Github is a website used to manage source code online, this service uses Git as a platform.

 We use github for managing source code for team members.

Visual studio 2019

Visual Studio is written in 2 languages which is C # and VB +. These are two programming languages to
help users program the system easily and quickly through Visual Studio.

 We use it because it has things that we need like having ASP.NET support

chrome browser:

chrome is a free web browser, developed by Google, using the V8 engine platform.

 Google chrome is the most important thing when we make font-end for our webapp as well as
see how the website works.

Main reason for selecting C# language is because it is an object oriented language that can be used to
develop standalone systems. I prefer using standalone systems for companies that doesn’t get external
involvement to their business process in a direct manner. I have selected C# language because It is a
widely accepted programming language that has a large cost benefit and easiness in the development
process. I have selected Visual Studio as my IDE, because this is the best IDE in the world that supports
C# programming language, since both come from Microsoft .Net framework. In my selection I have
selected programming language because I am fond of developing systems by a structure of dividing the
system development process in to three layers, they are Business logic layer, Ui layer and data access
layer. This programming language and IDE can support my pattern of coding; therefore, I have selected
C# and Visual Studio as my preferred tool for development.

Scrum development methodology has been selected as my development methodology, because this
methodology develops as team with a leader as scrum master. In this methodology they are using
sprints and evaluating using a review. This will help us to develop a better solution that fulfills customers
expectations. Another main reason for selecting scrum methodology is removing mistakes in this
methodology is easy, since there is a team available for the help. Another main reason for selecting this
method is easy visibility of each and every stage of the process. When using a scrum method, we can
use a better team for to provide the solution that customer needed and this is the most famous
software development methodology that uses in the modern world.
By using C# programming language and Visual studio IDE along with scrum development methodology I
can design my system in a pattern of my expectation. These ae the tools and methodology that I have
selected in my opinion.One of main reason for selecting these tools and techniques is that company ask
for internal system that doesn’t involve customer directly. By using standalone system developed by C#
language, PCW company can get a solution to their business-related problem.

D1 Justify your solution to a business-related problem and your preferred


software development methodology, by comparing between the various software
development tools and techniques researched
I have been recently hired by a highly credible company in Nepal. Since I joined recently stakes are high,
In the meantime a project comes by asking me to design an application that requires to manage an
inventory on a shopping mall like Big Mart.

The company which is used to Big Mart application is a medium sized company which is used to manage
the sales. This company is requesting a system to track their order within the system.

The techniques that we have used for implementing website construction project follow below:

 C # is the language that comes with the .NET core framework, supports many things

 The reason that we choose C # to build websites that customers offer is because:
o Language specialized in Windows software programming
o Interact with Database easily
o .NET core Library is light, easy to install, free
o Is open source language
o Code / Build on Visual Studio, a convenient, powerful IDE from Microsoft
o Can program Web via C # pure or ASP.NET core
o Visual Studio IDE supports extremely debug and build

 The reason we choose c # is because we can create web app by using MVC model of
ASP.NET Core

 ASP.NET CORE MVC:


 ASP.NET CORE is an excellent framework that supports pattern MVC for ASP.NET CORE.
MVC is an acronym for Model-View-Controller, which divides the application's pattern into 3
parts - model, controller and view.
 ASP.NET CORE MVC allows software developers to build a web application as a composition of
three roles: Model, View and Controller. The MVC model defines web applications with 3 logic
layers:
o Model (business layer)
o View (display layer)
o Controller (input control)
 Automatically create a basic interface.
 Visual Studio will automatically create a default template for the ASP.NET CORE MVC application
you just created, so you have a simple project without doing anything.
 The default application also uses Bootstrap interface, so when you zoom in, zoom out or run on
different sized screens, you will see the interface change according to the screen width.
 Central control panel to see web directory structure. Based on that we can add functions and
folders to the website easily.
 As shown in the image above, are Controller, Models and Views in MVC model
 Corresponding to 1 controller, there will be 1 view attached, the default project when creating
includes 2 controllers that are Account and Home so you will see there are 2 folders that are
Account and Home in the View section.

 SQL server.
 The reason we use SQL server to create a database for the website we are building is because:
 SQL server has many applications such as Query data to analyze, Query information.
 Easy to connect
 And the biggest reason is that we have learned through a key using SQL server to create a
database on the school.
 In addition, its strong point is that Microsoft has a lot of platforms that combine perfectly with
SQL Server like ASP.NET CORE.

Tools that we will use for this assignment is:


 Cloud for Deployment : Heroku
 The reason we choose heroku for people to visit and our website is because:
 We don't have the cost to buy an official domain name to test the website.
 Allows us to experience and use for free and high information security.
 High optimization capabilities so the web loading speed is very fast without taking much
time to wait.
 The reason I chose heroku is because it's free and has all the functions I needed.
GITHUB
 The reason we choose Github for use is because:
 Allow free use to manage code.

 We can update the code up there for all members to follow and comment.
 Support connecting to vidual studio so easy to use and upload to github
 We use github for managing source code for team members.
Visual studio 2019
 Visual Studio is written in 2 languages which is C # and VB +. These are two programming
languages to help users program the system easily and quickly through Visual Studio.

 We use it because it has things that we need like having ASP.NET CORE support
chrome browser:
 chrome is a free web browser, developed by Google, using the V8 engine platform.
 Google chrome is the most important thing when we make font-end for our
webapp as well as see how the website works.
 Trello and google drive:
Trello:
 The reason we use trello to manage our projects is because:
 We can manage backup in a clear and professional way
 Trello is a free application and an eye-catching interface.

 As shown above, we have divided into 3 sections to manage our backup:


 items to do, items are done, and items are completed.
 This makes it easy for us to control and manage our projects on schedule without missing out

google drive:

 The reason that we use google drive in our project is because:


 share the work we have done so people can help each other.
 show professionalism while working together.
 As shown above, we have shared the work done and the drawings as well as the code we have
done together.
 So everyone can go up and review and get the information needed for the next job

Justification about Selection of methodology and Tool to develop Big Mart Application

Big Mart is a medium sized company that sells computer products. In growth of the company they were
unable to cope up with the paperwork they are having in the Old paper-based order tracking
methodology. Therefore, this company is requesting a system to track their order within the system.

For this application development I have selected a stand-alone system using C# programming language.
Main reason for selecting standalone system is that this company only requested a system to track their
order inside their business. As we can understand using a web-based solution for a internal system
which doesn’t have a external involvement is not cost worthy. Therefore, we have decided to develop
the system using C# language as a stand-alone system. In this business-related problem, they are mainly
having problems in tracking orders within their warehouse and the payment stage. When using old
paper-based system there will be problem of managing the papers for each and every order. But with
the proposed standalone system with a internal network. Warehouse operative, Order handling clerk,
production manager and chief accountant can share each other with their performing task. As we know
order handling clerk should check the availability of the products from the warehouse manually in the
old paper-based system. But using this proposed solution for the business-related problem order
handling clerk manage to get details from warehouse operative at an instance. When using standalone
system, we can manage to have a good security among the business. As we know, if we use a web-based
system, we should be much more considerate about the security of the application. When using a
standalone system which don’t have external access, we should not be much worried about the external
security threats. This is another main reason that I have selected a stand-alone system for a business-
related problem. Another main reason for selecting C# language for this business-related problem is that
this language has a wide acceptance around the world. Big Mart Company can manage to upgrade their
system at any time they want with the updates they want by using a developer. Since C# developers are
widely available in modern software development industry.

I have selected Visual Studio IDE to develop the application for Big Mart Company. Main reason for
selecting this IDE for the development of Big Mart company’s application is that C# programming
language supports this IDE in a higher manner, Because both of these tools come from the same vendor.
As I mentioned earlier, I have selected Visual Studio as my IDE, This is because this is the best IDE in the
world that supports C# programming language, since both of these tools come from Microsoft .Net
framework. As in my selection I have selected programming language because this system can be coded
in a structure of dividing the system development process in to three layers. They are Business logic
layer, Ui layer and data access layer. This programming language and IDE can support this pattern of
coding. Therefore, I have selected C# and Visual Studio as my preferred tool for development.

For the development process of Big Mart business related problems solution, we have selected Scrum
Development methodology. Main reason for selecting this development methodology is because this is
the mostly used agile methodologies in agile software development. In this methodology the product
owner prioritizes the iterative work based on system-wide functionality which is known as “product
backlog”. As we know in scrum methodology iteration is known as a sprintand it generally lasts up to 30
days.

In this Development methodology, the scope creep is well maintained because once the sprint is
committed and further development functionality is not entertained in that sprint. After each and every
sprint the product backlog is analyzed and then they are reprioritized for the next cycle. We have
selected agile methodology for the development of Big Mart application, because this methodology
interacts with customer in a higher manner and because of having a scrum master development process
is well monitored. As we know when using a three-layer pattern, we know this methodology is
compatible with this three-layer pattern. Scrum team can develop this three-layer pattern within this
methodology in a better manner. These are the main reasons for selecting Scrum Software development
methodology for Big Mart application. I think this is the most suitable development methodology for this
business-related problem of Big Mart Company.

These are the tools and techniques that we have chosen to develop the solution for Big Mart Company’s
business-related problem. We have stated reasons for each and every selection and what are the
positive outcomes that we can gain by that choices. I think my selection of tools and methodologies for
designing and developing the Big Mart solution is justified in this chapter.

You might also like