0% found this document useful (0 votes)
144 views106 pages

HND Computing Unit 30 Assignment Brief

This document contains an assignment brief for a Unit 30 Application Development assignment at ESOFT Metro Campus. It provides details of the programme, assessor, internal verifier, targeted assessment criteria, and confirms that the brief is fit for purpose. An internal verifier checklist is included to check that programme details are accurate, deadlines and timeframes are appropriate, criteria are clearly stated, and the brief will generate valid evidence.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
144 views106 pages

HND Computing Unit 30 Assignment Brief

This document contains an assignment brief for a Unit 30 Application Development assignment at ESOFT Metro Campus. It provides details of the programme, assessor, internal verifier, targeted assessment criteria, and confirms that the brief is fit for purpose. An internal verifier checklist is included to check that programme details are accurate, deadlines and timeframes are appropriate, criteria are clearly stated, and the brief will generate valid evidence.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 106

lOMoARcPSD|19511684

UNIT 30 Application Development Assignment Brief

HND in Computing (ESOFT Metro Campus)

Scan to open on Studocu

Studocu is not sponsored or endorsed by any college or university


Downloaded by harshana wijayarathna ([email protected])
INTERNAL VERIFICATION – ASSIGNMENT BRIEF
Programme Title: HND in Computing
Assessor Name: Miss. Ishani Jayasuriya
Internal Verifier Name: Mr. Chathura W. Wickramasinghe
Unit or Component Number and
Title:
Unit 30- Application Development

Assignment title: Assignment 01- Application Development


Assessment criteria targeted
by this assignment brief:
LO1, LO2, LO3 and LO4

Is this an Authorised No
Assignment Brief published by
Pearson? If so, has it been
amended by the Assessor in any
way? Please give details.
(If using the Authorised Assignment Brief
‘off the shelf’ with no amendments,
please answer the question marked * in
the checklist only)

Has this assignment been Yes No


submitted to the Assignment
Checking Service? No
(If Yes, please keep a copy of the
ACS feedback with this form)

INTERNAL VERIFIER CHECKLIST Y/N

Are the programme and unit details accurate? Yes..

*Are clear deadlines for assessment given? TBC

Is the time frame of an appropriate duration? -

Is there a suitable vocational scenario or context? Yes.

Are the assessment criteria to be addressed stated accurately? Yes.

Does each task show which criteria are being addressed? No.

Do the tasks meet the assessment requirements of the unit/s? Yes.

Is it clear what evidence the learner needs to generate? Yes.

Is it likely to generate evidence that is valid and sufficient? Yes.

Overall, is the Assignment fit for purpose? Yes √ No


*If ‘No’ is recorded the Internal Verifier must recommend actions detailing the issues to be addressed. The Assessor
and the Internal Verifier must then confirm that the action has been undertaken and that the Assignment Brief is
authorised for use before being issued to learners.

1|Page
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


2|Page
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Target Date Date
Action required:
for Action
(If none then please state n/a)
Completion Completed

General Comments (if appropriate)

Previous assignment is reassessed by rewording the content.

Assignment Brief Authorised for Use:

Internal Verifier signature [email protected] Date 10/7/2020


Assessor signature
Date

Lead Internal Verifier signature


(if appropriate) Date

3|Page
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Higher Nationals
Internal verification of assessment decisions – BTEC (RQF)
INTERNAL VERIFICATION – ASSESSMENT DECISIONS
Programme title BTEC Higher National Diploma in Computing

Assessor Internal
Verifier
Unit 30: Application Development
Unit(s)

Assignment title

Student’s name
List which assessment Pass Merit Distinction
criteria the Assessor has
awarded.
INTERNAL VERIFIER CHECKLIST
Do the assessment criteria awarded
match those shown in the assignment Y/N
brief?
Is the Pass/Merit/Distinction grade
awarded justified by the assessor’s Y/N
comments on the
student work?
Has the work been assessed
Y/N
accurately?
Is the feedback to the student:
Give details:
• Constructive? Y/N
• Linked to relevant Y/N
assessment criteria? Y/N
• Identifying opportunities for
improved performance? Y/N
• Agreeing actions?
Does the assessment decision need
Y/N
amending?

Assessor signature Date

Internal Verifier signature Date


Programme Leader signature
(if required) Date

Confirm action completed


Remedial action taken
Give details:

Assessor signature Date


Internal
Verifier Date

4|Page
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


signature
Programme Leader
signature (if Date
required)

5|Page
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Higher Nationals - Summative Assignment Feedback Form
Student Name/ID Pradeeban.A / COL/A-064620
Unit 30: Application Development
Unit Title
Assignment Number Assessor
Date
Submission Date Received 1st
submission
Date Received 2nd
Re-submission Date submission
Assessor Feedback:
LO1 Produce a Software Design Document by analysing a business-related problem and deduce an
appropriate solution including a set of initial requirements
Pass, Merit & Distinction P1 P2 M1 D1
Descripts

LO2 Use design and development methodologies with tools and techniques associated with the
creation of a business application

Pass, Merit & Distinction P3 P4 M2 D2


Descripts

LO3 Work individually and as part of a team to plan and produce a functional business application
with support documentation
Pass, Merit & Distinction P5 P6 M3 D3
Descripts

LO4 Evaluate the performance of a business application against its Software Design Document and
initial requirements

Pass, Merit & Distinction P7 M4 D4


Descripts

Grade: Assessor Signature: Date:


Resubmission Feedback:

Grade: Assessor Signature: Date:


Internal Verifier’s Comments:

Signature & Date:

* Please note that grade decisions are provisional. They are only confirmed once internal and external moderation has taken place and
grades decisions have been agreed at the assessment board.

6|Page
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Pearson Higher Nationals in
Computing
Unit 30: Application
Development Assignment 01

7|Page
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


General Guidelines

1. A Cover page or title page – You should always attach a title page to your assignment. Use
previous page as your cover sheet and make sure all the details are accurately filled.

2. Attach this brief as the first section of your assignment.

3. All the assignments should be prepared using a word processing software.

4. All the assignments should be printed on A4 sized papers. Use single side printing.

5. Allow 1” for top, bottom , right margins and 1.25” for the left margin of each page.

Word Processing Rules

1. The font size should be 12 point, and should be in the style of Time New Roman.

2. Use 1.5 line spacing. Left justify all paragraphs.

3. Ensure that all the headings are consistent in terms of the font size and font style.

4. Use footer function in the word processor to insert Your Name, Subject, Assignment No,
and Page Number on each page. This is useful if individual sheets become detached for any
reason.

5. Use word processing application spell check and grammar check function to help editing
your assignment.

Important Points:

1. It is strictly prohibited to use textboxes to add texts in the assignments, except for the
compulsory information. eg: Figures, tables of comparison etc. Adding text boxes in the
body except for the before mentioned compulsory information will result in rejection of
your work.

2. Carefully check the hand in date and the instructions given in the assignment. Late
submissions will not be accepted.

3. Ensure that you give yourself enough time to complete the assignment by the due date.

4. Excuses of any nature will not be accepted for failure to hand in the work on time.

5. You must take responsibility for managing your own time effectively.

6. If you are unable to hand in your assignment on time and have valid reasons such as illness,
you may apply (in writing) for an extension.

7. Failure to achieve at least PASS criteria will result in a REFERRAL grade .

8|Page
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


8. Non-submission of work without valid reasons will lead to an automatic RE FERRAL. You will
then be asked to complete an alternative assignment.

9. If you use other people’s work or ideas in your assignment, reference them properly using
HARVARD referencing system to avoid plagiarism. You have to provide both in-text citation
and a reference list.

10. If you are proven to be guilty of plagiarism or any academic misconduct, your grade could
be reduced to A REFERRAL or at worst you could be expelled from the course

9|Page
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Student Declaration

I hereby, declare that I know what plagiarism entails, namely to use another’s work and to present
it as my own without attributing the sources in the correct form. I further understand what it
means to copy another’s work.

1. I know that plagiarism is a punishable offence because it constitutes theft.


2. I understand the plagiarism and copying policy of Edexcel UK.
3. I know what the consequences will be if I plagiarise or copy another’s work in any of the
assignments for this program.
4. I declare therefore that all work presented by me for every aspect of my program, will be my
own, and where I have made use of another’s work, I will attribute the source in the correct
way.
5. I acknowledge that the attachment of this document signed or not, constitutes a binding
agreement between myself and Pearson, UK.
6. I understand that my assignment will not be considered as submitted if this document is not
attached to the assignment.

Student’s Signature: Date:


(Provide E-mail ID) (Provide Submission Date)

10 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Higher National Diploma in Computing
Assignment Brief
Student Name /ID Number
Unit Number and Title Unit 30: Application Development
Academic Year
Unit Tutor
Assignment Title
Issue Date
Submission Date
IV Name & Date

Submission format

Report:
The submission should be in the form of an individual written report. This should be
written in a concise, formal business style using 1.5 line spacing and font size 12. You are
required to make use of headings, paragraphs and subsections as appropriate, and all
work must be supported with research and referenced using Harvard referencing system.
The recommended word limit is 4000 words, although you will not be penalised for
exceeding the total word limit.

System:
A fully functional business application.

Your research should be referenced using the Harvard referencing system.

Unit Learning Outcomes:

LO1: Produce a Software Design Document by analysing a business-related


problem and deduce an appropriate solution including a set of initial
requirements.
LO2: Use design and development methodologies with tools and techniques
associated with the creation of a business application.
LO3: Work individually and as part of a team to plan and produce a functional
business application with support documentation.
LO4: Evaluate the performance of a business application against its Software Design
Document and initial requirements.

11 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Assignment Brief and Guidance:

12 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Scenario
PC World (PCW) is a medium-sized company that sells over 50 different types of
computer products. The company has grown steadily in the last 02 years mainly due
its popularity over the Internet. They are finding it increasingly difficult to cope up
with all the paperwork in the manual workflow associated with tracking orders due to
the increase of number of orders and lack of a software system.

The Managing Director of PCW is frustrated by the problems associated with adding
new requirements to the application and getting modifications completed in the
previous software application used in the PC WORLD company due to the software
development company’s usage of traditional waterfall model in their projects.
Therefore, the company currently has moved back to the old paper-based system.

Managing director or PCW has decided that PCW will use a company which is
following a software development methodology based on Agile philosophy to develop
the software for a new order tracking system.

JJLP Software (JJLP) is a software development company. JJLP use SCRUM as their
software development methodology. The Managing Director of PCW has decided to
contract JJLP, on “time and materials” basis, for the development of the new order
tracking system using Scrum development approach. You have been hired as a
software engineer for JJLP Software (JJLP) is a software development company. You
have to complete below tasks in completing the software project for PC World
company.

The new order tracking system will replace the old paper-based system and is likely to
include some of the following functionalities:

• Receive a sales order via telephone, or email – carried out by an


Order Handling Clerk.
• Check stock in a warehouse – carried out by an Order Handling Clerk.
• Create an acknowledgement copy of the sales order with a delivery date
after the order has been confirmed with the warehouse – carried out by a
Warehouse Operative.
• Create an acknowledgement copy of the sales order stating the item is out of
stock and the date it will be available after the order has been confirmed
with the warehouse – carried out by a Warehouse Operative.
• Credit-check customers and reject them if they are not creditworthy –
carried out by an Order Handling clerk.
• Create a daily report of orders that have been dispatched – carried out by
the Production Manager.
• Create an invoice for business customers after the delivery – carried out by
the Chief Accountant.
• Accept credit card payment from domestic customers after the order has
been confirmed with the warehouse - carried out by an Order Handling Clerk.
13 | P a ge
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Interdiction of application development

Application development involves creating a computer program, or set of programs to


perform tasks, from keeping track of inventory and billing customers to maintaining
accounts, speeding up business process and, in fact, even improving application effectiveness.
Unlike vanilla programming, application development involves higher levels of responsibility
(particularly for requirement capturing and testing).

The Application Development industry has seen a lot of changes in a relative short period of
time. From both sides of the fence customers looking for software solutions, and the resource
pool of application development talent there has been considerable upheaval over the last
few years.

application development t is the process of conceiving, specifying, designing, programming,


documenting, testing, and bug fixing involved in creating and maintaining applications,
frameworks, or other software components. Software development is a process of writing and
maintaining the source code, but in a broader sense, it includes all that is involved between
the conception of the desired software through to the final manifestation of the software,
sometimes in a planned and structured process. Therefore, software development may include
research, new development, prototyping, modification, reuse, re-engineering, maintenance, or
any other activities that result in software products.

14 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


The software can be developed for a variety of purposes, the three most common being to
meet specific needs of a specific client/business (the case with custom software), to meet a
perceived need of some set of potential users (the case with commercial and open source
software), or for personal use (e.g. a scientist may write software to automate a mundane
task). Embedded software development, that is, the development of embedded software, such
as used for controlling consumer products, requires the development process to be integrated
with the development of the controlled physical product. System software underlies
applications and the programming process itself, and is often developed separately.

The need for better quality control of the software development process has given rise to the
discipline of software engineering, which aims to apply the systematic approach exemplified
in the engineering paradigm to the process of software development.

There are many approaches to software project management, known as software development
life cycle models, methodologies, processes, or models. The waterfall model is a traditional
version, contrasted with the more recent innovation of agile software development.

1.1

Problem define statement


Business related problems which PCW company is facing are
1. As the company has grown much in the last 2 years, it has become difficult for the
company to handle the data related to customer's information and orders. Earlier, the
company used the waterfall method for the development of an order tracking system which
has proved to be inefficient.

2. The waterfall method is a rigid methodology for the development of various plans. It
involves a lot of documentation to be completed in the beginning stage of the process. The
needs and requirements are analyzed at the beginning of the project and no correction can be
made in between. Hence, it creates rigidity in the development process. The waterfall
approach are the predefined sets of strategy which follow sequential steps throughout the

15 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


process. Hence, it is difficult to skip any step of the process in between and the next process
can not be started until the previous gets finished.

3. Earlier, the PCW company used to follow the waterfall method which emphasizes quality
testing only after the project was completed and in case the quality was bad, there was a
wastage in resources and time of PC world software company as modifications were not
allowed. The testing step was after the full completion of software which hampered the
developer in correcting the loopholes. Hence, sometimes it could result in the failure of user-
friendly software.

4. The current waterfall approach used by the PCW company does not include the
participation and views of users and feedback from customers because this is an internal
process of the organization which does not seek customer's opinion until the project is
completed. There is no transparency in this approach of waterfall methodology as the
customers are unaware of the process of software development. Hence, they only receive
experience when the project is finished.

5. The problem while using traditional waterfall is that it involves high future uncertainties
that may lead to risky decisions because it follows a rigid structure of rules and regulation to
complete the project. This approach used by the company is only right for short term projects
or ventures. Here, it is not suitable as the
PCW company is working on a long term project which is dynamic in nature as the
requirements of customers are also fast changing in the market.

The problem defining statement and solutions for the PCW company are
PCW company has contracted with JJLP, a software consulting company to resolve the above
issues and order them to make new order tracking systems which will be based on the Agile
method. The new method will help the company in the following ways:
1. Agile is a method that is project-oriented. The testing and development activities work
in parallel, so that mistakes can be corrected on the spot.

16 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


2. The developer will use Agile methodology which divides the project in various sprints
that are independent of one another. So, any process can be carried out independently of
other processes. This will provide flexibility in the process.

3. The customers are the main focus in the agile method. It focuses on the satisfaction of
customers and hence, improves the defects to make the product or software user-friendly.
The software is tested before final completion just to ensure that it is according to the needs
of the users. New changes are acceptable in future according to the needs of the customers.

4. There is more flexibility in the agile approach as the development process split in sprints
where each sprint is working and meanwhile, it is getting tested side by side just to ensure the
defects and also creating a solution for these defects. It allows for a speedy detection of
defects in process which helps in optimum resource utilization and time-saving.

5. This agile method adopted by the company will reduce the paperwork of the company to a
great extent as there will be an online tracking system which will will allow the users to
check the status of their order and it will be more valuable for the company as to track and
calculate the exact amount of orders that are to be prepared within a particular period of
time.

6. The new order tracking system will be beneficial in increasing the productivity of the
company as there will be more specific data about the orders. Now, the company can track
orders and get details about the product that is ordered, acceptance of order, and the
delivery made. Now, the company has very less chances of missing information about the
sales and the orders made.

Problems of Paper based systems at companies


Storage and accessibility
The physical space paperwork can take up is significant and will only continue to grow as
time goes on. The centralized office may no longer be able to hold all documentation and will

17 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


result in storage in different rooms, building or locations. This will slow down accessibility
thus productivity, result in damage or lost documents and increase storage costs.

Example : The average office spend $2,100 per year to maintain one four-drawer filing
cabinet and it costs $220 to replace a lost document. Multiply this across the organisation and
the cost is staggering.

Errors
One of the largest problems faced by organisations is document errors. When documents are
manually authored with pen and paper, they can be illegible and incomplete causing a
negative flow-on effect. Editing becomes hard labour because changes need to be physically
made or if completely illegible, a new document will need to be created. Information may
need to be tracked down by other employees and with the time passed, they may have
forgotten. Ultimately, this can result in incorrect documents with numerous errors and
therefore affect the client and bottom line.

Limited collaboration and double handling


Team collaboration on documents becomes challenging and time consuming when working
with paper. Multiple copies need to be printed, all ending up with their separate annotations
which then still need to be changed on the initial document. Once the initial document is
updated, more copies need to be printed, approved and then filed away. This lengthy process
slows down staff with their current workload, which there is no time for.

Document Management Problem


Whether using paper documents biggest problem arises when you need to put these
documents through business processes. It’s a common problem—in fact, 53% of workers are
looking for a simple and robust way to sign and route internal documents.

Routine business processes include: approving, reviewing, onboarding, and contracting.


Essentially any time you need to route a document from Point A to Point B and so on,
it requires a process.

18 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Without workflow management software, have to manually route and track documents
through a process. This is often known as “babysitting the documents.” It’s a huge pain, and
it taxes time. And if you leave a document unattended, you risk losing it or introducing a
bottleneck.

A bottleneck might keep the document for so long that forget who had the document in the
first place. Or a document could be misplaced, lost, or, worse, stolen, along the way. When a
bottleneck happens, processes grind to a halt.

Babysitting isn’t just for paper documents, either. When don’t have workflow management
software, digital documents need supervision, too. They have to be delivered from mailbox to
mailbox, or via a file-sharing tool like Dropbox. Or they might even be printed, scanned, and
emailed several times.

Document Management Problem


biggest problem is data entry—both entering data on a form initially and rekeying it into your
back-end systems later on.
Without automated data entry software, data entry is a manual and repetitive process.
staff, customers, and vendors routinely enter data onto a form for organization.
However,
there are certain fields they have to fill out each time, like name, company, and so on. It gets
redundant, and it takes up a lot of their time. Plus, they could easily mistype something and
the form could move along in the process without getting corrected—or without getting
corrected until it’s too late.

When paper-based forms are used, it takes even longer and introduces even more
opportunities for error. Handwriting could be misread. Data could be rekeyed incorrectly.
Forms could be lost or damaged before the information can be processed.

Data entry continues to be a problem when it becomes time to transfer data from forms into
your back-end system. Without the right automated data entry software, even data that is
entered on a web-based form has to be re-entered. In fact, 55% of users still end up rekeying
data from forms, rather than automatically syncing their forms with their back-end systems.

19 | P a g e

Downloaded by harshana wijayarathna ([email protected])


Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Reputational damage
It’s a cost that’s not easy to quantify but is critically important for the competitiveness of
any field services business…reputation.

It’s the trust that customers and clients have in ability to deliver what you promise. It’s
something that’s extremely hard to build and all too easy to lose.

In an increasingly digitally connected world, people now expect the kind of convenience
speed and efficiency that have been made possible by digital communications.

It’s a standard that a paper-based management setup will always struggle to meet.

A paper-based approach means slower processes, more administrative resources and higher
risk of inefficiency - documents lost, handwritten notes being misread and paperwork
incomplete.

With the viral power of social media, negative feedback, poor ratings and angry comments
can have a devastating impact on a company’s reputation.

Heightened compliance risks


A major risk faced by all field service businesses is non-compliance. Services need to be fast
and efficient but this cannot come at the cost of safety or adherence to laws and regulations.

Compliance is a challenging area to control when paper-based management methods are


being used. There’s a dangerous tendency for compliance measures to be viewed as being
needless paperwork chores.

It’s an area where digital management methods have a major advantage - allowing checks and
notifications to be automatically integrated into the everyday workflow.

20 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


These benefits help to minimise risks and can boost an organisation’s competitiveness when
tendering for contracts.

Lack of storage space


Paper documents can take up a significant amount of space, and the quantity of paper will
increase day by day.

Security issues
Regardless of size, for any organization is important to protect its data and other valuable
assets. One of the biggest information security risks for businesses is paper because printed
documents can be easily lost,

Prone to damage
Manual documents can be easily damaged, lost, misplaced or stolen. A fire or natural disaster
could mean the loss of essential information.

Document transportation
Transporting documents in a paper-based system is quite complicated, slow and inefficient.

Solution

The Benefits of Web-Based Systems


Web based applications used to be very limited in functionality. However, advances in
technology, security, and internet speeds have greatly increased the potential scope of web-
based systems. Today, we have web-based business accounting systems, web-based CRM
systems, a web-based Microsoft Office, and more. Web-based applications offer some
significant advantages over native, client-based software. Here are just some of the benefits
of web-based apps for business.

21 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


What is a Web Based System?
A web-based system is an application that is accessed via HTTP. The term web-based is
usually used to describe applications that run in a web browser. It can, though, also be used
to describe applications that have a very small component of the solution loaded on the client
PC. The host server for a web-based system could be a local server, or it could be accessed
via the internet.

Lower Development Costs


A web-based application runs in a web browser. That means that a single, responsive web
application can be used across multiple device types. Although web apps will need to be
tested on different browsers, there is no need to test them on different operating systems. This
makes development and testing much easier. It cuts development costs and reduces
development time.

Easy Installation and Maintenance


Unlike traditional software that is loaded on each device, web applications run from a host
server. There is no installation on local machines. Software upgrades are all completed
centrally. That reduces the costs of installing and upgrading software. It also ensures that all
users are always using the same version of the software.

Accessible Anywhere
Users can access a web-based system anywhere. So long as they have an internet connection,
a web browser, and the appropriate login details. This means that users can access the data
they need when they are away from the office. It also brings the possibility of staff working
from home.

Easy Data Sharing and Collaboration

22 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


The sharing of data and collaborating on projects is made much easier with web-based
systems. Data is stored in one central location, so users can share data and work together on
projects. It is also easier to integrate web-based systems than isolated desktop applications.

Centralized Security
As web apps are installed on web servers, security is controlled by an IT professional. That
avoids sensitive corporate information being held on many local client PCs, which are not as
secure. Employees can access data when they are away from the office via a web application.
So, it is not necessary for data to be held anywhere other than the secure central location.

Reduced Hardware Costs


Web-based systems can eliminate the need for powerful client PCs. Processing is carried out
on the host server. The host server can be engineered to efficiently service simultaneous,
peak demand. So, the storage, processor, and memory requirements for client PCs can be
reduces. Taken across an entire organization, this can represent a large cost saving for some
businesses.

Increased Efficiency
In most businesses, the deployment of web-based solutions leads to the streamlining of
business processes. Often, paper-based processes can be replaced by workflow-based
solutions. The business process improvements can lead to higher employee productivity and
lower costs.

Adaptable to Changing Workloads


The deployment of web-based applications requires no software loading on the client PC. All
that is needed is the setting up of a new user and the relevant secure access controls. This can
be a major benefit for growing businesses, or for seasonal businesses. Users can be added or
removed very quickly.

Greater Availability of Information


Web-based systems make it easier to provide access to real-time information. The paper
reports that might take days to prepare and distribute can be replaced on online reports and

23 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


digital dashboards. That can improve the quality and the speed of decision making, right
across an organization.

Web based custom application development can provide businesses with significant cost
savings and productivity improvements. Now that internet access is almost universally
available and internet speeds have significantly improved, applications that previously had to
be client based can now be deployed on the web.

Although this is the case in developed Western countries, it is not the case worldwide. In
some countries, internet access is unreliable. So, major deployment of web-based applications
may still not be possible. International organizations with overseas offices may not yet be
able to take full advantage of web-based solutions.

For domestic organizations, though, web-based systems have a promising future. From web-
based office applications, like content management systems and productivity applications, to
custom web-based software developed specifically for your organization, the foundation of
many future software solutions is likely to be web-based

When switching to a Cloud computing system, all of the company’s documents are housed in
the one place – you just need to do is simply login. The cost of storage will reduce
dramatically, as cloud storage is less costly than physical storage and all documentation is
safe, meaning no document will be damaged or destroyed ever again. Search time will also
decrease because there is the handy search bar available. Type in the relevant keyword, tag or
file number and within a matter of seconds, everything you need will appear.

Collaboration becomes easy when using Cloud computing. Documents can be readily
shared, updates are in real-time, changes can be tracked and all annotations can be made on
the same document, then owned by users. This way of collaboration also gives an equal
opportunity and higher levels of participation by team members.

24 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


benefits of web based system

NO MORE UPDATING ISSUES


According to a study from SC Magazine: [tweet box design=”default”]Small businesses are
spending a ridiculous amount of time each week on updating software.[/tweet_box] Well,
they don’t say “ridiculous” exactly but they do report that 11 hours a week is normal. Talk
about a waste of productivity. When a desktop software update is rolled out, it needs to be
installed on every single machine that the program is found on. Often, this has to be done
before any more work collaboration. That’s a huge reason developers are migrating towards
web application development software- they only need to roll out one update to the app,
rather than installing it individually on multiple devices.

LESS MONEY, MORE POWER


When it comes to desktop-based custom software application development, consideration has
to be given to the power of the machines that will be running. Sometimes a rollout of a
demanding new software program can require a complete hardware overhaul too. That’s a
huge expense. However, when web apps are used, they can be used from almost any device
with a browser. The computing power is coming from the server, which cuts down on
necessary on-site hardware requirements.

PLATFORM HAPPY
Not only is being able to use a less powerful computer (or tablet) a benefit of web apps,
having a different operating system isn’t an issue either. It’s all about the browser. Whether
the user is on Windows XP or 10, Mac OS or Linux, the web app is built for the browser.
True, some browsers don’t play nice with others. However, It’s generally much easier to
code for different browsers than it is for different operating systems. On top of that, the
interface will usually be much more familiar to the user.

QUICK DEVELOPMENT CYCLES


Every developer has their preferred language, no matter where they are. Whether they handle
software development in Perth like Red Rock Software or across the globe, some people just

25 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


work better in certain languages. In general, though, web based languages like HTML,
JavaScript, and CSS are easier to code in and develop quicker results- and that’s what is used
in order to build the majority of web apps. On top of that, there are even frameworks in place
to make the job even easier.

Improved Security
The SC Magazine survey mentioned before also brings up another point. Workers aren’t
updating software due to productivity: 60% of the businesses they surveyed are not always up
to date when it comes to their software. The biggest problem that this leads to is security.
Updates are often released to programs just to patch security holes and not just to fix bugs.
The problem is, if the updates never take place, the holes never get patched and the
computers are still vulnerable.

The Flexibility of the Internet


The desk and chair aren’t the same as they used to be. The office isn’t either. Web apps offer
the flexibility of access wherever there is internet. Employees aren’t chained to their desks
like they once were. According to a study by Global Workplace Analytics, employees of
Fortune 1000 companies around the world are not at their desk 50-60% of the time. With
web apps, they can have access to the office from anywhere.

Support
In a perfect world, users would never need to access support. Every program on every
computer would just work perfectly and every user is perfectly knowledgeable. Of course,
that’s not the case. Luckily, the old saying that there is always someone smarter out there can
work to our advantage. Many web apps have built in community support already accessible
online. This allows for the quicker resolution of issues, because the chances of somebody else
having the same problem that has already been fixed are pretty good

Higher Usage Rates


People are spending less time browsing on the internet and more time using apps connected
to the web. A study from Flurry Analytics shows that apps are taking control of 86% of the

26 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


time that users are spending on their phones. With web apps, users just log on and use it.
They don’t have to worry about downloading and installing, hoping that it works. It’s
instant use.

User Tracking
With web apps, there is built-in user tracking. This makes it much easier to figure out what
works with built programs and what doesn’t. Then, it makes improving future versions more
simple. Of course, we already talked about the ease of updating web programs, so developers
can make sure that their improvements are actually being utilised.

Offline Use
Although being able to be used online is a huge advantage, some people are concerned about
the necessity of being connected to the internet. In fact, just because it’s a web app doesn’t
mean it has to be used online. Offline versions can be built just as easily, although some of
the advantages are lost, this does eliminate a certain drawback

Customisation for different devices


Content within web-based applications can be easily customised for use on various devices,
such as mobile. This makes the application user-friendly, and pleasant to use since the
presentation of information can be altered accordingly. In fact, it is actually easier to
customise web-based applications than it is for standard desktop applications. Web-based
software can also be responsive to change based on browser. This supports mobile working
and ensures employees have the software at their fingertips whenever required.

Integration with other systems


Web-based applications give a far greater ability to integrate with other systems than desktop
applications. Localised software is isolated compared to web-based applications which are
significantly more interoperable. This is because web applications can be linked together
more easily than two completely separate systems.

27 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Advantages of Agile model:
• Customer satisfaction by rapid, continuous delivery of useful software.
• People and interactions are emphasized rather than process and tools. Customers,
developers and testers constantly interact with each other.
• Working software is delivered frequently (weeks rather than months).
• Face-to-face conversation is the best form of communication.
• Close, daily cooperation between business people and developers.
• Continuous attention to technical excellence and good design.
• Regular adaptation to changing circumstances.
• Even late changes in requirements are welcomed.
Listed below are a few disadvantages of Agile:
• In case of some software deliverables, especially the large ones, it is difficult to
assess the effort required at the beginning of the software development life cycle.
• There is lack of emphasis on necessary designing and documentation.
• The project can easily get taken off track if the customer representative is not clear
what final outcome that they want.
• Only senior programmers are capable of taking the kind of decisions required during
the development process. Hence it has no place for newbie programmers, unless
combined with experienced resources.
Agile Developments also fails at times due to Unrealistic Expectations – Agile actually is and
what it can help you achieve. Agile is commonly believed to be a set a practices, processes
and tools, when in fact, Agile is really more of a mind-set and culture.
When to use Agile model:
• When new changes need to be implemented. The freedom agile gives to change is
very important. New changes can be implemented at very little cost because of the
frequency of new increments that are produced.
• To implement a new feature the developers need to lose only the work of a few
days, or even only hours, to roll back and implement it.
• Unlike the waterfall model in agile model very limited planning is required to get
started with the project. Agile assumes that the end users’ needs are ever changing in a
dynamic business and IT world. Changes can be discussed and features can be newly

28 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


effected or removed based on feedback. This effectively gives the customer the
finished system they want or need.
• Both system developers and stakeholders alike, find they also get more freedom of
time and options than if the software was developed in a more rigid sequential way.
Having options gives them the ability to leave important decisions until more or better
data or even entire hosting programs are available; meaning the project can continue

Difference between traditional and agile project methodology

Characteristics Agile approach Traditional approach

Organizational
Iterative Linear
structure

Scale of projects Small and medium scale Large-scale

Clearly defined before


User requirements Interactive input
implementation

Involvement of
High Low
clients

Development
Evolutionary delivery Life cycle
model

Customers are involved from Customers get involved early in the


Customer
the time work is being project but not once the execution
involvement
performed has started

When problems occur, the


Escalation Escalation to managers when
entire team works together to
management problem arise
resolve it

Traditional model
Model preference Agile model favors adaption
favors anticipation

Less focus on formal and More serious about processes than


Product or process
directive processes the product

Test Comprehensive test planning Tests are planned one sprint at a

29 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


documentation time

Project manager provides estimates


Scrum master facilitates and
Effort estimation and gets approval from PO for the
the team does the estimation
entire project

Reviews and Reviews are done after each Excessive reviews and approvals by
approvals iteration leaders
• to move forward without fear of reaching a sudden standstill.
Agile development model is also a type of Incremental model. Software is developed in
incremental, rapid cycles. This results in small incremental releases with each release
building on previous functionality. Each release is thoroughly tested to ensure software
quality is maintained. It is used for time critical applications. Extreme Programming (XP) is
currently one of the most well known agile development life cycle model.

30 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


1.2

Determine any areas of risk related to the successful completion of your application.

Developing a real work web application can be really challenging. The developer team must
have very good skills in all the layers from the frontend down to the very backend. This
challenge is even bigger when considering the most common security risks that web
applications can have.

When run the web application threats to IT systems and data include:
• Hardware and software failure - such as power loss or data corruption.
• malware - malicious software designed to disrupt computer operation
• viruses - computer code that can copy itself and spread from one computer to
another, often disrupting computer operations
• spam, scams and phishing - unsolicited email that seeks to fool people into revealing
personal details or buying fraudulent goods
• Human error - incorrect data processing, careless data disposal, or accidental opening
of infected email attachments.
• Database access slowly.
• hackers - people who illegally break into computer systems
• fraud - using a computer to alter data for illegal benefit
• passwords theft - often a target for malicious hackers
• denial-of-service - online attacks that prevent website access for authorized users
• security breaches - includes physical break-ins as well as online intrusion
• Staff dishonesty - theft of data or sensitive information, such as customer details.
• User can’t adjust to the system because they have not IT knowledge.

31 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Estimation and scheduling
The unique nature of individual software projects creates problems for developers and
managers in estimating and scheduling development time.

2. Sudden growth in requirements


As a project progresses, issues that are not identified earlier can create a last-minute hurdle
to meeting deadlines. and anticipate the worst-case or heaviest-use scenario.

3. Employee turnover
Every project has a number of developers working on it. When a developers leaves, he or
she may take critical information with him/her. This can delay, and sometimes derail an
entire project. Ensure you have resources where team members can collaborate and share
knowledge.

4. Breakdown of specification
During the initial phases of integration and coding, requirements might conflict.
Moreover, developers may find that even the specification is unclear or incomplete.

5. 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.

6. Compromising on designs
In order to get stuck into the next ‘real’ tasks, developers tend to rush the design-process.
This is a waste of programming hours, as designing is the most critical part of software
development.

7. Gold plating
Developers sometimes like to show off their skills by adding unnecessary features. For
instance, a developer might add Flash to a basic login module to make it look ‘stylish’.
Again, this is a waste of programming hours.

32 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


8. Procedural risks
Day-to-day operational activities might hamper due to improper process implementation,
conflicting priorities, or a lack of clarity in responsibilities.

9. Technical risks
Sometimes software development firms reduce the functionality of the software to
compensate for overruns pertaining to high budgets and scheduling. There is always a
conflict between achieving maximum functionality of the software and peak performance.
In order to compensate for excessive budget and schedule overruns, companies sometimes
reduce the functionality of the software.

10. Unavoidable risks


These include changes in government policy, the obsolescence of software or other risks
that cannot be controlled or estimated. As the field of software development becomes more
and more complex, the risks associated with it have intensified. It is vital that development
firms focus on strategic planning to mitigate such risks.

11. Bad Timing


Speed matters. In a highly competitive environment, one day can mean big profits or big
setbacks. Scheduling problems can arise for a variety of reasons, for example:

the time for the project was initially incorrectly calculated and set;
the project manager does not properly track employees, skills, task status;
the functional features of the final product were not determined in a timely manner;
unexpected and urgent expansion of the project scope;
lack of resources,.

Tips to avoid this software development risk: apply agile methodologies, ensure the
maximum involvement of all team members in planning and estimating, receive feedback at
all stages, starting from the earliest ones, involve the Owner or Stakeholders. Another
solution may be an emergency expansion of the team to increase the speed of development,
however, this can significantly affect the project budget.

33 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


12.Poor Code Quality and Technical Risks
Technical risks in software development are often a pitfall, something that is not
immediately noticeable but with serious negative consequences. In an effort to get an
innovative product, companies often require the use of cutting-edge technologies, which
themselves can have a number of significant disadvantages. However, this is not the only
reason that increases the risks:

• lack of professionalism and knowledge of team members; constant changes in


software requirements;
• the technology used does not have a sufficient level of development and community
support (it cannot provide the necessary functionality);
• too complex multi-part project;
• the implementation of project modules (in, for example, an existing platform or
application) turned out to be more difficult than expected.

In this case, only flexible risk management can help. However, as practice shows, in case of
serious obstacles, it will not be possible to completely avoid

13 Poor Productivity

Drop-in productivity is also among software development risks. This usually occurs when
working on projects with a long timeline. Engineers motivated at the very beginning by the
end of the project can hardly cope with the tasks. The downside of a long project can be a
waste of time in the early stages when the illusion persists that the deadline is not too soon.
The reasons for poor productivity include:

• poor project management

• incorrectly chosen methodology

• incorrectly matched team members.

34 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Tips to this type of risk are hidden in their reasons: using agile methodologies allows to
maintain the productivity and motivation of all team members throughout the project since
the processes are divided into shorter periods of time. In addition, it is an opportunity for the
project manager to mentor and coach the team, which also helps to increase and maintain a
high level of developer involvement. The Product Owner will also be more informed about
the state of tasks and will be able to observe the project.

14 Poor Management
As statistics show, 32% of projects fail due to poor project management. This concept
usually includes:

• poor communication and interaction within the team;


• insufficient qualification level of PM;
• lack of leadership and analytical skills;
• poor risk management in software development.

One of the consequences of poor project management can be the turnover of employees: key
project developers leave the team, without passing on crucial information on the project to
anyone, this entails delays in development, failure to meet deadlines, and budget.

Therefore, high standards are always set for the project manager. He must combine the traits
and skills of a strategist and tactician, be deeply involved in the project, effectively
communicate with the team, build a strong organizational framework, and implement
elaborate documentation processes.

1.3……………………………………………………………………………………………………….

35 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


2.1

Software development tools

A programming tool or software development tool is a computer program that software


developers use to create, debug, maintain, or otherwise support other programs and
applications. The term usually refers to relatively simple programs, that can be combined
together to accomplish a task, much as one might use multiple hand tools to fix a physical
object. The most basic tools are a source code editor and a compiler or interpreter, which
are used ubiquitously and continuously.

Other tools are used more or less depending on the language, development methodology,
and individual engineer, often used for a discrete task, like a debugger or profiler. Tools
may be discrete programs, executed separately – often from the command line or may be
parts of a single large program, called an integrated development environment (IDE). In
many cases, particularly for simpler use, simple ad hoc techniques are used instead of a tool,
such as print debugging instead of using a debugger, manual timing (of overall program or
section of code) instead of a profiler, or tracking bugs in a text file or spreadsheet instead of
a bug tracking system.

The distinction between tools and applications is murky. For example, developers use
simple databases (such as a file containing a list of important values) all the time as tools
However a full-blown database is usually thought of as an application or software in its own
right. For many years, computer-assisted software engineering (CASE) tools were sought
after. Successful tools have proven elusive. In one sense, CASE tools emphasized design
and architecture support, such as for UML. But the most successful of these tools are IDEs.

1. Front End Web Development

36 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


HTML and CSS: HTML, CSS are the building blocks for web development. Their
Frameworks like Bootstrap and Materialize are most widely used in web development.
Twitter Bootstrap is popular for its Responsive design and Flexbox and CSS Grid System
are also trending topics in CSS, and they are used without any framework to develop
responsive websites.
Another trending development technology is Motion UI. It keeps simplicity to a site. Since a
large number of web users, today got tired of GLFs and flashing advertisements. Web
developers are using its animations that will allow adding styling and make your site unique
among thousands of others with static UI
JavaScript and its Front-End Frameworks like Angular and React and Vue.js are currently
most trending frameworks that need to be used in your project.
CSS Frameworks like SASS or LESS. SASS is preferable and widely used than LESS.
Image Editing- Photoshop, GIMP.

2. Back End Web Development

Server-Side Languages/Technologies: Node JS, Python and PHP are the more widely used
languages for Web Development in 2018. The other languages used in web development are
Ruby, C# & ASP.NET
Database: MongoDB is currently popular, with its non-relational database, MySQL is
popular relational database. Oracle, SQL Server, PostgreSQL, Firebase are other database
systems used in web development.
Back-End Frameworks: Express is the popular frame work for JavaScript. Adonis and
Hapi.js are also best frameworks in JavaScript. Frameworks for PHP like Laravel,
CodeIgniter, Symphony and Yii2 are popular. For Python- Django, Flask, Web2py are
widely used frameworks, and for Ruby – Ruby on rails, and for C# – .NET are best
frameworks used.

For Mobile Applications, React Native, Native Script, Ionic, PhoneGap are the leading
frameworks

37 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Visual studio with
ASP.NET

ASP.NET is an open-source server side web application framework designed for web
development to produce dynamic web pages developed by Microsoft to allow programmers
to build dynamic web sites, applications and services.

It was first released in January 2002 with version 1.0 of the . NET Framework, and is the
successor to Microsoft's Active Server Pages (ASP) technology. ASP.NET is built on the
Common Language Runtime (CLR), allowing programmers to writ ASP.NET code using
any supported .NET language. The ASP. NET SOAP extension framework allows ASP.
NET components to process SOAP messages.

ASP.NET's successor is ASP.NET Core. It is a reimplementation of ASP. NET as a modular


web framework. together with other frameworks like Entity Framework. The new
framework uses the new open-source . NET Compiler Platform (codename "Roslyn") and is
cross platform. ASP.NET MVC, ASP.NET Web API, and ASP.NET Web Pages (a platform
using only Razor pages) have merged into unified MVC 6,

38 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Recently started to use a ASP.net for application development work. I use MS SQL Server
Express Edition for developing Project in ASP.net Core.

Visual Studio Code is a lightweight but powerful source code editor which runs on your
desktop and is available for Windows, a macOS and Linux. It comes with build support for
JavaScript, TypeScript and Node.js and has a rich ecosystem of extensions for other
languages (such as C++ .C#. Java. Python. PHP. Go) and runtimes (such as NET and unity )

I found the method how to use MS SQL Server directly from Visual Studio Code. I
don’t need to install a third party software to run SQL query.

MS SQL

39 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


The SQL Server is a relational database management system from Microsoft. The system is
designed and built is to manage and store information. The system supports various business
intelligence operations. analytics operations, and transaction processing. The information
stored on the server is stored in the relational database. However, since the system is much
more than a database, it also comprises of a management system. SQL stands for Structured
Query Language, a computer language that manages and administers the server. There are
many Versie of the SQL ever, each subsequent version being an improved model of its
predecessor.

Microsoft SQL Server has numerous applications in the business world. The first and most
obvious one is the database is used to store and manage information. However businesses
that hold sensitive customer information such as personal details, credit card information,
and other confidential ty. The system also allows the sharing of data files by information
will ben computers in the same network, a factor that increased reliability. The SQL server
is also used to increase the speed with which data is processed, allowing large operations to
be executed with ease. With the information stored in the database, businesses will have a
reliable backup system.

Crystal Reports

40 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Crystal Reports is a business intelligence application used to create custom reports from a
variety of data sources. The package includes the major features needed for a business to
create a database reporting environment, such as data access, report design/formatting,
report viewing, and application integration. This allows the application to be enterprise-
wide, available to users, and to support data reporting from report creation to upload and
execution.

Crystal Reports Features

The main purpose of Crystal Reports is to allow users to pull their desired data from a data
source, such as an Oracle or MS SQL Server database, and present the data in a repeatable
and organized way. Crystal Reports provides you with a powerful, dynamic, and
actionable reporting solution that helps you design, explore, visualize, and deliver reports
via the web or embedded in enterprise
applications.
Using this crystal report covered my application development's reporting part.

41 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Prototype

Prototype is an early sample of design used to get feedback and rapid experiments with new
ideas.
• Limit the expenses of development

• Test the design concepts

• Test the usability of the product

Prototypes typically created with a mixture of sketches, wireframes or mockups, prototypes


depending on the project timelines and these are representations of the design. This can use
as a mechanism to get user feedback early and quickly on your design where you can iterate
on making your product a better one.

Sketches

Sketching is a drawing, which you could easily with a papers and pens with less cost. Mostly
sketching has used in the early stages of the design process to get new ideas for the product as
well as use to identify the users pain point. Low fidelity sketches can mostly use identifies
user pain points and gets new ideas for the product at early stage. With sketches, you can
rapidly iterate the design with a low cost to make the product more useable.

42 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Sketch is a very popular tool within the design community that enables you to create hi-fi
interfaces and prototypes. One of the great features is Symbols, where you can design UI
assets and elements for reuse. This helps create design systems and keep your interfaces
consistent. From there, you can easily export your design into a clickable prototype. If you
are an In Vision user, make sure you check out the Craft plugin

. Wireframes

Wireframes are representation of layouts and mostly focused on the layout of the
content. Mostly use gray scale or black and white.
In low fidelity wireframing, you can use tools to create gray scale wireframes, which is
richer way than sketching at the beginning of the design process.

43 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


NetBeans
NetBeans - web development tool
NetBeans is an open-source IDE that allows you to develop desktop, mobile, and web
applications.
The tool is written in Java and allows you to quickly and easily create and develop
applications.
NetBeans is our top choice in the drag and drop software development tools category and
web developers love it.
Features
Tools for JavaScript, HTML5 and
CSS3 Community provided plugins
Ability to write buga free code
Fast code editing
Supports multiple languages

Atom
Atom is an all around text editor and useful software development tools. It is an open-source
that can be used and customized to do anything without the added effort of modifying the
configuration file.
Based on its suitability for the development of management tools we’ve included Atom in
our software development tools category.
Features
Cross-platform editing
Smart autocompletion allows for faster coding
In-built package manager
Comes with 4 UI and 8 syntax themes
Easy to customize and style

Visual Studio Code Editor


Some of the elements developers love about GitKraken are also present in Visual Studio
Code, a code editor by Microsoft. Offering an intuitive UI with a prominent sidebar,

44 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


powerful defaults, discoverable extensions, and more, VS Code provides a simple and clean
code editing platform for student developers.
VS Code users appreciate the ability to organize files by folder or project; there is also smart
editing for built-in languages like JavaScript and Typescript, which can come in handy for
students who are constantly being introduced to new coding languages.

JetBrains

JetBrains is a set of professional software development tools for coding in Java, Kotlin, C#,
C++, Ruby, Python, PHP, JavaScript, and more languages. You can get free access to all
JetBrains IDEs if you are students or teachers. You can verify by several options: your
educational email, ISIC or ITIC card, official document, or with Github pack.

Cloud9 IDE

Cloud9 IDE is an online integrated software development environment. It supports many


programming languages like C, C++, PHP, Ruby, Perl, Python, JavaScript and Node.js.
Features
Allows to clone entire development environment
Built-In Terminal for command-line wizard
Code Completion suggestions helps software developers to code faster and avoid typos
The Debugger helps developers to set breakpoints, and inspect variables of any JS/Node.js
app
Simply drag any file or Terminal to create multiple split views
Developers can select an extensive set of default Runners to execute app, such as Ruby,
Python, PHP/Apache

Sublime Text
Sublime Text is a sophisticated text editor for code, markup, and prose. There’s a lot of
shortcuts that enable you to open files and jump between lines easily. Sublime Text let you

45 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


change many lines at once due to the multiple selection option. You don’t need to go
through the menus, you can just search for what you need. You can also switch between
projects easily. It works very well!

Notepad++
Notepad++ is open source code editor written in C++. It supports various programming
languages running under the Microsoft Windows environment. But is has a few drawbacks.
Here, is a curated list of top 10 alternatives which can replace Notepad++. This list includes
commercial as well as open-source code editors (IDE) with popular features and latest
download link.
jEdit,
jEdit, a code editor program which is written in Java. This open source tool supports
hundreds of plugins and macros. It offers a large collection of plugins maintained by a
worldwide developer team.
Features
Built-in macro language & extensible plugin architecture
Allows copy and paste with an unlimited number of clipboards
You can download plugins with the help of the plugin
manager. Register contents are saved across editing sessions.
Allows auto indent, and syntax highlighting over 200 languages

textMate

TextMate is a versatile plain text editor for mac with unique and innovative features.
The tool offers support for many programming languages, writing prose in structured
formats such as blogging, running SQL queries, writing screenplays, etc.
Features
Auto-Indent for Common Actions
CSS-like Selectors to find the Scope of Actions and Settings
Dynamic Outline for Working With Multiple Files
Function Pop-up for Quick Overview and Navigation
Run Shell Commands from Within a Document
Visual Bookmarks to Jump Between Places in a File

46 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Zend Studio
Most web developers opt for Zend Studio because of its optimal speed. Writing and
debugging code in Zend Studio doesn’t demand any extra effort and time from
developers. While supporting PHP 7, it debugs PHP scripts by integrating X-ray, Debugs,
and Zend Debugger. This comprehensive PHP IDE comes with an exciting set of features
and powered to deploy applications on various servers, including servers in the cloud.
Developers can extend Zend Studio via Eclipse plugins.
Zend Studio Features
Indexing and searching PHP Code.
Faster Performance in the validation.
Zend Framework & Zend Tool
Integration. Docker Support.
Support for Eclipse Plugin.
Zend Studio Specialties
Languages supported: PHP, JavaScript, Visual Basic, C, C++, and C#.
Platforms supported: Microsoft Windows, Linux, and MacOS.
PHPDebugbar
PHPDebugbar is a PHP debugger that can run with any project and display data from a
broad range of web apps. This PHP development tool includes two parts: main bearer
object and data collectors and the render. A Standard-bearer includes a pre-configured
built- in set of collectors.
Along with PHP, you can also catch JavaScript and HTML. In addition, PHPDebugbar can
inspect CSS elements and monitor networks. By offering more features that developers
expect, it becomes a quite impressive open source solution. It can be the best option for the
profiling of data from any web application. It allows you to create your own collection for
easy integration.
PHPDebugbar Feature
Monitor network traffic.
Handles AJAX requests.
Log & debug directly to
Debugbar. Fast & easy to use
interface.
Preview config& application config.

47 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development
Downloaded by harshana wijayarathna ([email protected])
PHPDebugbar Specialties
Languages supported: PHP, Ruby, .Net and
Java. PHP versions supported: PHP 5.5 and
above.

Cloud9 IDE
Really interesting 100% online software programming tool with collaborative features for
teams to work together

CodeLobster (Win) (Free)


Free portable PHP IDE with support for Drupal, Smarty, WordPress, Joomla, JQuery,
CodeIgniter, HTML, CSS, JavaScript, CakePHP, Facebook, Symfony, Yii.
CodePen
CodePen is a playground for the front end side of the web. It’s all about inspiration,
education, and sharing. HTML, CSS, and JavaScript in an easy to share environment to try
out ideas and get ideas.

Software development methods

Waterfall Model:
If you are into software development at some point or the other, you would have bumped
into the Waterfall Model.

Considered as the traditional method of explaining the software development process in


software engineering, waterfall model happens to clarify the process into a linear flow with
a specified sequence to let the users understand that further level is made progressive on
completion of the previous one.

Moreover, this methodology also talks about the fact that going back to deal with the
changes is not possible.

48 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development
Downloaded by harshana wijayarathna ([email protected])
Figure

Advantage
Easy to understand and functional
Simple enough to handle as model is rigid
Saves significant amount of time
Allows for easy testing and analysis
disadvantage
Only matches precise needs
Not applicable for maintenance projects
No option to know possible outcome of a project
Not excellent for long and ongoing projects

Prototype Methodology:
It is a specialized software development procedure that initiates developers towards making
only the sample of the resolution to validate its functional essence to the customers and
make essential changes before creating the authentic final solution.

In fact, the best part of this methodology is that it tends to resolve a set of diversifying
issues occurring with the waterfall method.

49 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Figure
advantage:
Gives clear idea about the functional process of the software
Reduces the risk of failure in a software functionality
Assists well in requirement gathering and the overall analysis
Disadvantage :
Chances of extension in management cost
Excessive involvement of client can affect processing
Too many changes affect the workflow of the
software

Development Methodology:
As an innovative approach, the agile software development methodology is used for
articulating a well-organized project management procedure allowing for recurrent
alterations.

Certainly, such type of a methodology is one theoretical outline for undertaking several
software engineering projects.

Another good thing about it is that it minimizes peril by creating software in short time
boxes, known as iterations, which happen to last from one week to one month.

50 | P a g e
Downloaded by harshana wijayarathna ([email protected])
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Advantage :
Adaptive approach that responds to changes favorably
Allows for direct communication to maintain transparency
Improved quality by finding and fixing defects quickly and identifying expectation
mismatches early.
Disadvantages :
Focuses on working with software and lacks documentation efficiency
Chances of getting off-track as outcome are not clear

Spiral Model:
Being a highly sophisticated design, it is meant to reduce the early risks in the project.

As per the process going by, the developers initiate on a smaller level and explore the
included risks in it.

Further to this, the developers are intended towards crafting a plan for iterating of the spiral.

The accomplishment of any Spiral Lifecycle model is based on consistent, observant, and
conversant management of the project.

51 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Advantage :
Risk factors are considerably reduced
Excellent for large and complex projects
Allows for additional functionality later
Suitable for highly risky projects with varied business needs
Disadvantage :
Costly model in software development
Failure in risk analysis phase may damage the whole project
Not appropriate for low-risk projects
Might get continued and never finish

Extreme Programming Methodology:


Extreme programming is identified by the fact that customer involvement in the software
development process is unbelievably high.

As an agile software engineering methodology, extreme programming methodology is


presently known as XP methodology.

It is chiefly used for crafting software within a very unbalanced atmosphere.

It enables greater tractability within the modeling procedure.

The foremost aim of this XP model is to reduce the cost of software essentialities.

It is fairly mutual in the XP model that the price of altering the requirements on future stage
in the project can be really whooping.

52 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Advantage :
It lays focus on customer involvement
Establishes rational plans and schedules
Developers are exceptionally committed to the project
Equipped with modernistic methods for quality software
Disadvantage :
Effectiveness depends on the people involved
Requires frequent meeting for development raising total costs
Necessitates for excessive development changes
Exact possibilities and future outcomes are really unknown

Joint Application Development Methodology:


The Joint Application Development Methodology is a requirements-classification and user-
interface expansion approach that necessitates for the end-users, clients and developers
attend a powerful off-site conference to accentuate and confirm software system.

This methodology serves towards including the client in the design and expansion of an
application.

53 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


This is effortlessly proficient through a sequence of concerted workshops known as JAD
sessions.

It tends to lay emphasis on the business difficulty rather than methodical details.

Advantage :
Allows for simultaneous congregation and alliance of excessive information.
Produces huge amount of valuable information in short period
Immediate resolving of differences with suitable assistance
Provides forum to explore multiple points
Disadvantage :
Takes excessive amount of time for planning and
scheduling Requires significant investment of time and
effort
Calls for highly trained experts, which is tough to find

Scrum Development Methodology


SCRUM is the most widely preferred agile software development approach.

(Likewise, KANBAN is a process that helps teams to collaborate and work effectively.)

Basically, this excellent development is suitable for those development projects that are
constantly altering or extremely developing requirements.

The Scrum Software development model initiates with an ephemeral planning, conference
and completes with a concluding review.

This growth methodology is used for prompt development of software that happens to
include a series of iterations to generate required software.

It is a perfect approach because it effortlessly brings on track the deliberate progressing


projects.

54 | P a g e

Downloaded by harshana wijayarathna ([email protected])


Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Scrum Development Methodology

Advantage :
Decision making lies in the hands of the team
Business requirement document is considered insignificant
Lightly controlled method empathizing with constant updating
Disadvantage :
The processing method suffers because of wavering costs
Not suitable for big sized projects
Requires highly expert team, which has no place for novices

Dynamic System Development Model Methodology:


Authentically formulated and derived from the rapid application development
methodology, it is an iterative and incremental approach that focuses on the involvement of
the user.
The task of this methodology is to provide software development systems within the
specified time frame and the allocated budget.
The very reason why it is quite in demand in the world of software development.

Advantage
:
Users getting a grip of the software development process

55 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development
Downloaded by harshana wijayarathna ([email protected])
Functionality deliverables are quick
Offers easy access to end users by the developers
Disadvantage
This methodology is costly to implement
Not suitable for small organizations

Feature Driven Development:


Being an iterative methodology for software development, it is aimed at serving a large
number of teams working on a project based on object-oriented technology.
This sort of model is decent for companies that are passing on from a phase-based method
to an iterative approach.
It is already known as an FDD methodology and is highly functional and creative enough to
deal with varied complexities.

Advantage
Moves bigger projects with continuous success
Easiest 5 procedures bring outcome in a better manner
Built on pre-set standards of software development, it is programmed for easy development
Projects that need continuous updates are powered by feature-driven development that
ensures all needs are taken care of.
Results in features that always outshine the inputs

56 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Since this is based on some of the best software development practices, any developer with
relevant experience can handle and manage the project-related tasks with ease.
Disadvantage
Not suitable for smaller projects and a single developer – always a huge team is required,
which means that we cannot ever guarantee a brisk deadline.
Highly dependable on the leading developers, necessitating for the complete structure – the
process needs to be monitored through each phase as even a minute flaw can create chaos in
the system.
Highly dependable on the leading developers, necessitating for the complete structure – the
process needs to be monitored through each phase as even a minute flaw can create chaos in
the system.

57 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


2.2
The software development process selected method : - agile
methods The software development process selected tool : visual
studio

Which is the Better Choice?

Dreamweaver VS Visual Studio VS Net beans

When talking about web site creation, the two programs that stand out are Adobe’s
Dreamweaver and Microsoft’s Visual Studio and someone ever will ask which one is the
better program for what they need. The obvious issue that comes to mind before even
opening the box is that Visual Studio is a Microsoft creation.

Anyone that has any experience with computers and their programs knows that Microsoft
hardware and software plays better with other Microsoft toys. This is not to bash on
Microsoft but if you are not using any Microsoft applications then this maybe a turning
point for you. Many people are using Apple hardware when they have intensive graphic
needs, so you might want a program that plays well with any platform, including
Microsoft’s.

For any first timers, Visual Studio is easy to use with its many examples and help section.
Via drag and drop interface, there is total control over servers and the HTML servers, as
well. An easy to read and navigate control panel displays all your server controls. These
are some of the highlights of what the Visual Studio can do for you.

Do need to create and manage console applications, window applications and web
applications? Visual Studio is designed to make this easy for you. Many users have noticed
that Dreamweaver is better utilized in web design and that Visual Studio is better to use for
web development.

58 | P a g e

Downloaded by harshana wijayarathna ([email protected])


Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Adobe’s Dreamweaver is more concentrated on web design than web development.
Dreamweaver works with almost all of the computer languages and can interface with java
script effortlessly with its built in extensions. Actually there over 1300 extensions available
for whatever you may need. Dreamweaver was created with idea of teams of people
working on the same project, so teamwork on the same project will be a breeze. Teamwork
is possible with Visual Studio when used in tandem with other Microsoft products.

Dreamweaver and Net Beans are very different products, so I don't think it can be said that
one is better than the other. It really depends what you're trying to do.

Net Beans is an IDE comparable to Eclipse. You can build desktop, mobile, and web apps
in it. Dreamweaver on the other hand is a program aimed at designers, and is meant for
building webpages.

Why select visual studio Web Development Process at this


company What is the Microsoft visual studio
Microsoft Visual Studio is an integrated development environment which helps to create
applications with an innovative interface and functionality that will satisfy the most
demanding customer requirements. This tool simplifies performing complex tasks to
provide the best Web Development Services. Using Microsoft Visual Studio, you can
develop high-quality applications for Windows, Microsoft Office, Windows Phone, the
Internet and the cloud.

Creating applications is not an easy process, requiring a huge amount of knowledge. This
product from Microsoft Corporation is designed to make this work operational and
convenient by:

use of wide functionality


the ability to test apps and correct errors on the go
convenient navigation

59 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Due to app integration, it’s much easier to write code for Windows, iOS, Android and other
platforms.

There are the following versions available:

Visual Studio IDE for Mac and Windows. Allows creating applications for almost any
platform. Full-fledged development environment with all the tools to create the
programming product.
Visual Studio App Center. Allows to build, deploy, repeat, test, and engage the apps.
Visual Studio Team Services. A great tool for teams.
Visual Studio Code. The easiest app for web and app developers. Works very fast require
lower specifications, supports a lot of additional plugins as well as built-in GitHub
integration.
All the components are very useful for any professional providing Microsoft development
services.

Benefits of Microsoft visual studio


Creating applications is not an easy process, requiring a huge amount of knowledge. This
product from Microsoft Corporation is designed to make this work operational and
convenient by:

use of wide functionality


the ability to test apps and correct errors on the go
convenient navigation
Due to app integration, it’s much easier to write code for Windows, iOS, Android and other
platforms.

There are the following versions available:

Visual Studio IDE for Mac and Windows. Allows creating applications for almost any
platform. Full-fledged development environment with all the tools to create the
programming product.

60 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Visual Studio App Centre. Allows to build, deploy, repeat, test, and engage the apps.
Visual Studio Team Services. A great tool for teams.
Visual Studio Code. The easiest app for web and app developers. Works very fast require
lower specifications, supports a lot of additional plugins as well as built-in GitHub
integration.

How is Visual Studio a great choice for web


developers? Microsoft visual studio for web
development process

Modern web instruments

Visual Studio includes a lot of flexible tools to build modern web applications and websites.

ASP.NET and other languages and technologies

Besides the Microsoft application development with ASP.NET, you can use almost any
other programming language, such as JavaScript, Node.js, Python, etc.

You are not limited to specific languages and can use any that you’re comfortable and
productive with. Front end developers can switch between HTML, CSS, JavaScript, also
SASS and LESS frameworks. The modern powerful code editor simplifies the coding and
provides fast results.

Software containers

The software containers let you build, deploy, test, and debug the applications with software
containers. Control and add the dependencies to make the software compatible with any
platform or service based on Azure, Azure icons or another online host.

Variety of supported platforms

You can provide Microsoft development services using ASP.NET Core or .NET Core on
the computer running any operating system including Mac OS, Windows or Linux. Visual

61 | P a g e
Downloaded by harshana wijayarathna ([email protected])
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Studio is a great tool to build web applications compatible with Microsoft Azure cloud
services.

Modern web frameworks and tools

Use the latest web frameworks to increase productivity. You will be able to use jQuery,
Angular, Backbone.js, Bootstrap, Express, Django, and many others. The code editor
features IntelliSense to make the coding on client-side JavaScript and most popular
frameworks based on it.

Open source components

.NET Core and ASP.NET source codes are available on GitHub and are open source. That
means that any developer can contribute to it and help to improve its work. All you need is
to send a pull request or open an issue. The community is very active and regularly
improves the product.

Variety of package managers

A developer can use all the popular package managers including Bower, NPM, and NuGet.
Each of them has a number of benefits. For example, NuGet suggests a variety of server-
side .NET libraries, Bower provides the latest JavaScript client-side technologies, and NPM
supports a lot of high-efficient utilities.

Expand functionality

Microsoft Visual Studio supports a lot of third-party extensions to expand the default
functionality. The ecosystem is rapidly growing and regularly offers new solutions.

CodeLens

CodeLens are the hints that appear above your code that provides information about the
used dependencies, the test results, who changed the code, related work items, checkers, etc.

62 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


All you need to know about the code is available in the editor. For more information, just
click on the hint to move directly to the code associated with this method or class.

Mobile web apps

Create mobile apps for Android, iOS, and Windows with your web development skills. The
software allows building the apps with HTML, CSS, JavaScript and other frameworks. This
is possible due to Apache Cordova support.

Cloud-scale

To check how the apps will work in the cloud, use the built-in tools and run the app right
within Visual Studio.

Feature-rich code editor

Work with your code efficiently: write, explore, edit, test, deploy and debug with a variety
of great tools. Connect directly to your Git repository from any vendor including GitHub.

Code Map

This feature is useful when working with large codebases. When the code is written by
another development team, it can be complicated and it’s hard for you to debug it. In this
case, the Code Map is extremely useful. When you need to understand the specific
dependencies in the existing code, you can visualize them as a map.

Powerful debugger

Debug the code working with JavaScript, Python, Node.js, C#, Swift, .NET, ASP.NET and
many others. Debug the code locally, virtually, remotely, or even in the cloud.

63 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Why select Agile Web Development Process at this company

Within agile approach the steps of web development are mostly simultaneous. All team
members, from decision-makers to designers and content creators should organize meetings
during the early stages of web development. Understanding of project requirements on all
stages by all team members reduces the need for constant emails, calls and meetings
throughout the entire process. Due to agile approach work that took 4-8 months can now be
accomplished much faster.

The typical agile web development process is divided into a series of ‘sprints’. Each sprint
involves discovery, design, development and testing.

Benefits of Agile Web Development


Higher Customer Satisfaction
Customer is always involved in the process of web development. Due to high visibility, the
product owner is aware of the results of every sprint. Such engagement throughout the
project lets the customer to monitor the process and ask for any changes or improvements if
necessary.

Increased Project Control


Sprint meetings, transparency and visibility of each step of the project for both parties
results in a successful solution.

Focus on Business Value


As long as the customer determines the priorities of the project, the development team
understands what’s important to the client’s business and can deliver the solutions oriented
business value.

Regular Check-ups
In agile development, testing is integrated during the cycle. This means that there are
regular checkups to ensure that the product is working right during the process of
development.

64 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Lower Costs
Faster development eliminates the need for overtime payment.

Higher Productivity
The opportunity to better estimate the project provides with a higher productivity.

Early and Predictable Delivery


Fixed schedule sprints of 1-4 weeks ensure the delivery of new features quickly and with
high level of predictability.

Reduced Risks
Agile methodology eliminates the chances of complete project failure. This approach
encourages open communication between the customer and web development team and is
great for those who value transparency.

Flexibility
Project requirements and workload are not fixed. Clients have a possibility to change both
these aspects if they find it necessary.

Wrap-up
Web development is much more than making websites or applications. This process
includes further support & maintenance as well as updates and checkups. Our team at
Wishdesk always recommends agile for custom web development projects. This approach
helps to deliver quick and more effective results and provides with long-term project
maintenance.

65 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


2.3

Web based Solution


High efficiency. Even companies operating in the same niche do business differently. Their
internal processes are usually different. The product, which is designed exclusively for
needs, doesn’t contain any unnecessary functions, and it allows to quickly achieve the
desired results.

Usability. As noted above, custom programs don’t have unnecessary functions. This speeds
up the work and allows to optimize processes. In addition, the absence of unnecessary
components accelerates training the staff responsible for working with it. Another reason
why this is convenient is the integration option. If the company used to operate with several
ready-made solutions, now, the developers can integrate them into one system without
losing data.

Flexibility and scalability. Ready-made solutions are usually targeted either at a small
companies or at large enterprises. It’s difficult to find a middle ground, especially if you
don’t know what features might need in the near future. As the business develops, bespoke
software can be adapted to changing needs. Another important point: can easily increase
the number of the system’s users without slowing down its speed.

Long-term benefit. If you use a product with a license fee for each connected user, your
own development will be especially beneficial for you. Even after several months, with
increasing staff, the savings on licensing fees can be very high.

Security. If someone hacks a user account, the information for each customer will be in
danger. Because cracking the individual system requires a targeted attack, there is less

66 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


public information about its functionality, and it becomes much more difficult to do that.
Moreover, you can reach an agreement with the developers on additional security measures
and create a higher level of protection.

Independence. The intellectual property for the product belongs to are not tied to a specific
supplier who can change his plans anytime. If you aren’t satisfied with the service level, can
change the developers and find more suitable performers, as are the product’s owner.

Competitive advantages. Since use a customized solution, this can give a number of
competitive advantages, such as increasing efficiency, increasing employee and customer
loyalty, and improving other business-relevant factors. The introduction of exclusive
innovations in the product for internal use can help to stay one step ahead of the competitors

Valuable Data Collection and


Processing Collecting data
Documentation, accounting, photographs, and inspection results the amount of data
generated by a company in the process of its operation can be great, depending on the type
of business. Moreover, if all of these operations are handled manually in an offline mode,
data collection and processing may require plenty of time and resources.

A mobile app, developed to attend to these needs, will combine several steps into a single
process to significantly speed them up, as well as automate the transfer and storage of the
data received. If necessary, it is also possible to have the app work in an offline mode
and synchronize the results with the database after being connected to the Internet.

Data on Demand
Another problem that businesses often face is the lack of required data at hand when it is
needed. This is especially true when it comes to an accounting report done manually. In this
case, data acquisition may take a lot of time.

Installed on a smartphone, a mobile app can generate an accounting report in automatic or


semi-automatic mode and instantly provide access to relevant data, successfully solving the
problem.

67 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Launch New Products and Services on the Market
Launch New Products
Mobile app development allows for the creation of services that could not exist without
information technology. This feature helps businesses stand out in their sector and gain a
competitive advantage.

For example, by using a mobile app, airline customers can check-in for a flight and register
their luggage while standing in the queue. Using a smartphone, insurance companies’
customers can issue comprehensive insurance policies on their own.

Internal Corporate
Tool Internal CRM
There are various messengers, CRM, calculators, and many more management tools for
internal corporate purposes. Companies underestimate the benefits of such solutions for no
reason. Automating processes can save money, increase the efficiency of separate
departments, and even of improve the entire company.

An app developed for a company that provides goods delivery courier services works based
on this principle. It automates delivery order management, accounting, communication with
senders and recipients, as well as partially automates order payments and reciprocal
payments with couriers.

Information Distribution and Customer Support


Customer support application
With a tool like this, people can get help easier and faster. This increases customer loyalty.
This app will be useful for companies that must regularly communicate with customers,
answer their questions, and solve their problems.

68 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Having carefully analyzed customer needs and their requests for technical support, it is
possible to create a convenient app to automate a large part of the tasks in this direction. It
will automatically accept applications, provide answers to frequently asked questions, and
enable additional options and services.

The main advantages of using business management software:


organizing all business information in the accessible and user-friendly manner that leads to
the work time saving and increasing productivity;
automating business processes and reducing manual efforts that leads to minimizing
mistakes in documents and errors in the business operations;
collaboration between various business software solutions that enables providing collecting,
managing and controlling the information about various aspects and processes of the
business in one central place;
speeding up the making right business decisions that lead to the company's ability to
complete the business operations much faster and with better quality results;
using accounting software obviate the necessity to have a large accounting department;
getting work done faster and more effectively enables hiring less staff and save on payroll;
storing data on computers enables saving on the cost of the outside file storage and
eliminates purchasing copies and buying typewriters, fax machines, and other office items;
electronic communications, particularly email, enables companies and their clients, vendors,
and business partners to contact and transact business;
saving business resources leads to providing customers with much more affordable products
and service;
cloud business management software enables enhancements of the business calculating;
ability to perform tasks that previously needed to be outsourced makes companies and their
staff more self-sufficient.

69 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


One of the things many people struggle with at work is making time to find ways to
work smarter.
It’s not like any of us don’t want to work smarter or faster. It’s just that mentality of
“If it isn’t broke, don’t fix it” that has a way of seeping in when we think about having
to find or try new design and development tools.

Technology and the way in which we use it is constantly evolving.

Responsive design continues to get a lot of attention, but considering how different it
is from the “traditional” way of designing websites, it can be a bit overwhelming for
those designers who have yet to try it.

That’s what happens when you work in online ordering management systems,
like ASP.Net, that make the process of building and publishing websites so easy.

1. Databases

Figure 10:1. Databases

databases
A database is a collection of information that is stored so that it can be retrieved,
managed and updated.

MySQL: One of the world’s most popular open source databases.


MariaDB: Made by the original developers of MySQL. MariaDB is also becoming very
popular as an open source database server.

70 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


MongoDB: Next-generation database that lets you create applications never before
possible. Redis: An open source, in-memory data structure store, used as a database,
cache and message broker.
PostgreSQL: A powerful, open source object-relational database system

2. CSS Preprocessors

Figure 11:2. CSS Preprocessors

A CSS preprocessor is basically a scripting language that extends CSS and then
compiles it into regular CSS. Make sure to also check out or in-depth post on Sass vs
Less.

Sass: A very mature, stable, and powerful professional grade CSS extension.
Less: As an extension to CSS that is also backward compatible with CSS. This
makes learning Less a breeze, and if in doubt, lets you fall back to vanilla CSS.
Stylus: A new language, providing an efficient, dynamic, and expressive way to
generate CSS. Supporting both an indented syntax and regular CSS style.
If you are just getting started with a CSS preprocessor you might want to make the
transition easier by first using a 3rd party compiler, such as the ones below.

71 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


3. Web Application Frameworks

Figure 12:3. Web Application Frameworks

A web application framework is a software framework designed to aid and alleviate


some of the headache involved in the development of web applications and services.

Ruby: Ruby on Rails is a web-application framework that includes everything needed to


create database-backed web applications, with the MVC pattern.
AngularJS: Lets you extend HTML vocabulary for your web application. AngularJS is
a framework, even though it’s much more lightweight and sometimes referred to as a
library. Ember.js: A framework for creating ambitious web applications.
Express: Fast and minimalist web framework for Node.js.

72 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Meteor: Full-stack JavaScript app platform that assembles all the pieces you need to
build modern web and mobile apps, with a single JavaScript codebase.
Django: High-level Python Web framework that encourages rapid development and
clean, pragmatic design.
ASP.net: Free, fully supported Web application framework that helps you
create standards based Web solutions.
Laravel: A free, open source PHP web application framework to build web
applications on MVC pattern.
Zend Framework 2: An open source framework for developing web applications
and services using PHP.
Phalcon: A full-stack PHP framework delivered as a C-extension.
Symfony: A set of reusable PHP components and a web application framework.
CakePHP: A popular PHP framework that makes building web applications simpler,
faster and require less code.
Flask: A microframework for Python based on Werkzeug and Jinja 2.
CodeIgniter: Powerful and lightweight PHP framework built for developers who need a
simple and elegant toolkit to create full-featured web applications.
Also, make sure to check out KeyCDN’s framework integration guides to see how you
can implement a CDN with the solutions mentioned above.

4. Languages / Platforms

73 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Behind all the web development tools is a language. A programming language is a
formal constructed language designed to communicate with a computer and create
programs in which you can control the behavior. And yes we realize some of
these might not always be referred to as a language.

PHP: Popular general-purpose scripting language that is especially suited to web


development.
NodeJS: Event-driven I/O server-side JavaScript environment based on V8.
JavaScript: Programming language of HTML and the web.
HTML5: Markup language, the latest version of HTML and XHTML.
Python: Programming language that lets you work quickly and integrate systems more
effectively.
Ruby: A dynamic, open source programming language with a focus on simplicity and
productivity. Scala: Scala is a pure-bred object-oriented language allowing a gradual,
easy migration to a more functional style.
CSS3: Latest version of cascading style sheets used in front-end development of sites
and applications.
SQL: Stands for structured query language used with relational databases.
Golang: Open source programming language that makes it easy to build simple,
reliable, and efficient software.
Rust: Systems programming language that runs blazingly fast, prevents segfaults, and
guarantees thread safety.
Elixir: Dynamic, functional language designed for building scalable and maintainable
applications. TypeScript: Open source programming language that is a superset of
JavaScript which compiles to plain JavaScript.

5. web Essentials

Web Essentials, created by Microsoft's Mads Kristensen, is a general-purpose


collection of Web development-focused extensions and enhancements for Visual
Studio.

74 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


The package includes HTML shortcuts and productivity tools, CSS and LESS tools for
keeping your style sheets under control, extensions for coding with JavaScript,
TypeScript, CoffeeScript and Markdown, and even extensions to the built-in Visual
Studio Browser Link dynamic data exchange with open browsers in your development
environment.

Another reason to check out Web Essentials: Scott Hanselman says, "It's the Web
Team's most important feature playground. It's a peek into the future of Visual
Studio."

On the downloads page you'll find Web Essentials versions for Visual Studio 2010,
2012 and 2013. (Note, however, that Web Essentials 2010 offers fewer features than
the newer versions.) There are nightly builds available through GitHub, where you can
also register issues or submit pull requests for contributions.

75 | P a g e

Downloaded by harshana wijayarathna ([email protected])


Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


One of the things many people struggle with at work is making time to find ways to work
smarter.
It’s not like any of us don’t want to work smarter or faster. It’s just that mentality of “If it
ain’t broke, don’t fix it” that has a way of seeping in when we think about having to find or
try new design and development tools.

Technology and the way in which we use it is constantly evolving.

Responsive design continues to get a lot of attention, but considering how different it is
from the “traditional” way of designing websites, it can be a bit overwhelming for those
designers who have yet to try it.

That’s what happens when you work in online ordering management systems, like ASP.Net,
that make the process of building and publishing websites so easy.

1. Databases

databases
A database is a collection of information that is stored so that it can be retrieved, managed
and updated.

MySQL: One of the world’s most popular open source databases.


MariaDB: Made by the original developers of MySQL. MariaDB is also becoming very
popular as an open source database server.

76 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


MongoDB: Next-generation database that lets you create applications never before
possible. Redis: An open source, in-memory data structure store, used as a database, cache
and message broker.
PostgreSQL: A powerful, open source object-relational database system

2. CSS Preprocessors

Figure 11:2. CSS Preprocessors

A CSS preprocessor is basically a scripting language that extends CSS and then compiles it
into regular CSS. Make sure to also check out or in-depth post on Sass vs Less.

Sass: A very mature, stable, and powerful professional grade CSS extension. Less:
As an extension to CSS that is also backward compatible with CSS. This makes
learning Less a breeze, and if in doubt, lets you fall back to vanilla CSS.
Stylus: A new language, providing an efficient, dynamic, and expressive way to generate
CSS. Supporting both an indented syntax and regular CSS style.
If you are just getting started with a CSS preprocessor you might want to make the
transition easier by first using a 3rd party compiler, such as the ones below.

77 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


3. Web Application Frameworks

Figure 12:3. Web Application Frameworks

A web application framework is a software framework designed to aid and alleviate some
of the headache involved in the development of web applications and services.

Ruby: Ruby on Rails is a web-application framework that includes everything needed to


create database-backed web applications, with the MVC pattern.
AngularJS: Lets you extend HTML vocabulary for your web application. AngularJS is a
framework, even though it’s much more lightweight and sometimes referred to as a
library. Ember.js: A framework for creating ambitious web applications.
Express: Fast and minimalist web framework for Node.js.

78 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Meteor: Full-stack JavaScript app platform that assembles all the pieces you need to build
modern web and mobile apps, with a single JavaScript codebase.
Django: High-level Python Web framework that encourages rapid development and clean,
pragmatic design.
ASP.net: Free, fully supported Web application framework that helps you
create standardsbased Web solutions.
Laravel: A free, open source PHP web application framework to build web applications on
MVC pattern.
Zend Framework 2: An open source framework for developing web applications
and services using PHP.
Phalcon: A full-stack PHP framework delivered as a C-extension.
Symfony: A set of reusable PHP components and a web application framework.
CakePHP: A popular PHP framework that makes building web applications simpler,
faster and require less code.
Flask: A microframework for Python based on Werkzeug and Jinja 2.
CodeIgniter: Powerful and lightweight PHP framework built for developers who need a
simple and elegant toolkit to create full-featured web applications.
Also, make sure to check out KeyCDN’s framework integration guides to see how you can
implement a CDN with the solutions mentioned above.

4. Languages / Platforms

Figure 13:4. Languages / Platforms

79 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Behind all the web development tools is a language. A programming language is a formal
constructed language designed to communicate with a computer and create programs in
which you can control the behavior. And yes we realize some of these might not always be
referred to as a language.

PHP: Popular general-purpose scripting language that is especially suited to web


development.
NodeJS: Event-driven I/O server-side JavaScript environment based on V8.
JavaScript: Programming language of HTML and the web.
HTML5: Markup language, the latest version of HTML and XHTML.
Python: Programming language that lets you work quickly and integrate systems more
effectively.
Ruby: A dynamic, open source programming language with a focus on simplicity and
productivity. Scala: Scala is a pure-bred object-oriented language allowing a gradual, easy
migration to a more functional style.
CSS3: Latest version of cascading style sheets used in front-end development of sites and
applications.
SQL: Stands for structured query language used with relational databases.
Golang: Open source programming language that makes it easy to build simple, reliable,
and efficient software.
Rust: Systems programming language that runs blazingly fast, prevents segfaults, and
guarantees thread safety.
Elixir: Dynamic, functional language designed for building scalable and maintainable
applications. TypeScript: Open source programming language that is a superset of
JavaScript which compiles to plain JavaScript.

5. web Essentials

Web Essentials, created by Microsoft's Mads Kristensen, is a general-purpose collection of


Web development-focused extensions and enhancements for Visual Studio.

The package includes HTML shortcuts and productivity tools, CSS and LESS tools for
keeping your style sheets under control, extensions for coding with JavaScript, TypeScript,

80 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Coffee Script and Markdown, and even extensions to the built-in Visual Studio
Browser Link dynamic data exchange with open browsers in your development
environment.

Another reason to check out Web Essentials: Scott Handelman says, "It's the Web
Team's most important feature playground. It's a peek into the future of Visual Studio."

On the downloads page you'll find Web Essentials versions for Visual Studio 2010, 2012
and 2013. (Note, however, that Web Essentials 2010 offers fewer features than the
newer versions.) There are nightly builds available through GitHub, where you can also
register issues or submit pull requests for contributions.

Agile

Agile approaches in software development are group of software development methods that
speed up the software development process. Basically, agile development-based
methodology is a different way of managing software projects as opposed to other
traditional software approaches. agile approaches constitute a set of exercises used from
software development, developed by experienced software development practitioners

Agile methods are incremental in which the increments are small, the new software product
produced using agile methods is released and made available to customers in less than three
weeks these methods involve the customer in the entire development process in order to
accommodate their changing requirements during the process. Agile methods also minimize
documentation by using internal communications as opposed to formal meetings with
written documents.

81 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development
Downloaded by harshana wijayarathna ([email protected])
Characteristics of Agile Methodologies are:

• Modularity - this allows the development process to be broken down into specific

components referred to as activities which enables transformation of software vision into


reality
• iterative - agile processes are based on short cycles where completion of each cycle

Iterative completes a set of activities.


• Time bound - time limits can be set on each iteration and can therefore be scheduled
Activities may also be rescheduled if they cannot be completed within the time limits

• Parsimony - agile processes requires few activities that are necessary to mitigate risks
and achieve their goals. By doing so, they enable system developers to finish their
work within an aggressive schedule,

• Adaptive - risks that may be exposed during Iteration are adapted by agile processes
the cannot be adapted, the activity may be discarded

• Incremental - agile processes builds a system progressively. Each increment is


tested separately

• Convergent - this states that all the risks worth attacking are actively attacked at the
same time the system is being delivered in increments. This is done to ensure
success of the system in a rapid format

• People oriented - agile approaches are keener on people over the development
process. People are involved during the entire development process

• Collaborative - agile approaches enforces communication among the development


team members since communication is an important part of developing a software
project

82 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Key Principles of Agile Methodologies are:
• Active user involvement is imperative

• The team must be empowered to make decisions

• Requirements evolve but the timescale is fixed

• Capture requirements at a high level: lightweight & visual

• Develop small, incremental releases and iterate

• Focus on frequent delivery of products

• Complete each feature before moving on to the next

• Apply the 80/20 rule

• . Testing is integrated throughout the project lifecycle- test early and often

• A collaborative & cooperative approach between all stakeholders is essential

Challenges faced with the implementation of agile approaches are:

• Project managers may be reluctant to accept the risk of the new agile approaches since
they don't have experience on them.

• Many big organizations have their own standards on quality that have to be met for all
the projects. These are likely to be incompatible with agile methods

• Agile approaches work best with high skilled team members. However, many
organizations have people with low skill levels which may not be effective for
agile processes.

• There may be cultural resistance to agile processes. This is particularly common in


organizations that have been using conventional systems engineering processes for
long time.

83 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Scrum (software development)

Scrum is the type of Agile framework. It is a framework within which people can address
complex adaptive problem while productivity and creativity of delivering product is at
highest possible values. Scrum uses Iterative process.
Silent features of Scrum are:
• Scrum is light-weighted framework
• Scrum emphasizes self-organization
• Scrum is simple to understand

Scrum framework help the team to work together

Lifecycle of Scrum:

Figure 1 07-06-2019

84 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Sprint:
A Sprint is a time-box of one month or less. A new Sprint starts immediately after the
completion of the previous Sprint.
Release:
When the product is completed then it goes to the Release stage.
Sprint Review:
If the product still have some non-achievable features then it will be checked in this stage and
then the product is passed to the Sprint Retrospective stage.
Sprint Retrospective:
In this stage quality or status of the product is checked.
Product Backlog:
According to the prioritize features the product is organized.
Sprint Backlog:
Sprint Backlog is divided into two parts Product assigned features to sprint and Sprint
planning meeting.

Extreme Programming (XP)

Extreme programming (XP) is one of the most important software development framework of
Agile models. It is used to improve software quality and responsive to customer
requirements. The extreme programming model recommends taking the best practices that
have worked well in the past in program development projects to extreme levels.

Good practices needs to practiced extreme programming: Some of the good practices
that have been recognized in the extreme programming model and suggested to maximize
their use are given below:
• Code Review: Code review detects and corrects errors efficiently. It suggests
pair programming as coding and reviewing of written code carried out by a pair of
programmers who switch their works between them every hour.
• Testing: Testing code helps to remove errors and improves its reliability. XP
suggests test-driven development (TDD) to continually write and execute test cases. In
the TDD approach test cases are written even before any code is written.

85 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


• Incremental development: Incremental development is very good because customer
feedback is gained and based on this development team come up with new increments
every few days after each iteration.
• Simplicity: Simplicity makes it easier to develop good quality code as well as to test
and debug it.
• Design: Good quality design is important to develop a good quality software. So,
everybody should design daily.
• Integration testing: It helps to identify bugs at the interfaces of different
functionalities. Extreme programming suggests that the developers should achieve
continuous integration by building and performing integration testing several times a
day.

Scrum Roles

Scrum has three roles: Product Owner, Scrum Master and Team
• Product Owner -The Product Owner should be a person with vision, authority, and
availability. The Product Owner is responsible for continuously communicating the
vision and priorities to the development team. At the same time, Product Owners
must be available to answer questions from the team.

• Scrum Master - The Scrum Master acts as a facilitator for the Product Owner and the
team. The Scrum Master does not manage the team. The Scrum Master works to
remove any impediments that are obstructing the team from achieving its sprint goals.
This helps the team remain creative and productive while making sure its successes
are visible to the Product Owner.

• Team - According to Scrum's founder, "the team is utterly self managing." The
development team is responsible for self organizing to complete work. A Scrum
development team contains about seven fully dedicated members (officially 3-9),
ideally in one team room protected from outside distractions. For software projects, a
typical team includes a mix of software engineers, architects, programmers, analysts,
QA experts, testers, and UI designers. Each sprint, the team is responsible for

86 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


determining how it will accomplish the work to be completed. The team has
autonomy and responsibility to meet the goals of the sprint

• A key principle of scrum is its recognition that fundamentally empirical challenges


cannot be addressed successfully in a traditional "process control" manner. As such,
scrum adopts an empirical approach - accepting that the problem cannot be fully
understood or defined, focusing instead on maximizing the team's ability to respond in
an agile manner to emerging challenges.

Basic principles of Extreme programming

XP is based on the frequent iteration through which the developers implement User Stories.
User stories are simple and informal statements of the customer about the functionalities
needed. A User story is a conventional description by the user about a feature of the required
system. It does not mention finer details such as the different scenarios that can occur. On the
basis of User stories, the project team proposes Metaphors. Metaphors are a common vision
of how the system would work. The development team may decide to build a Spike for some
feature. A Spike is a very simple program that is constructed to explore the suitability of a
solution being proposed. It can be considered similar to a prototype. Some of the basic
activities that are followed during software development by using XP model are given below:
• Coding: The concept of coding which is used in XP model is slightly different from
traditional coding. Here, coding activity includes drawing diagrams (modeling) that will
be transformed into code, scripting a web-based system and choosing among several
alternative solutions.
• Testing: XP model gives high importance on testing and considers it be the
primary factor to develop a fault-free software.
• Listening: The developers needs to carefully listen to the customers if they have to
develop a good quality software. Sometimes programmers may not have the depth
knowledge of the system to be developed. So, it is desirable for the programmers to
understand properly the functionality of the system and they have to listen to the
customers.
• Designing: Without a proper design, a system implementation becomes too
complex and very difficult to understand the solution, thus it makes maintenance
expensive. A

87 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development
Downloaded by harshana wijayarathna ([email protected])
good design results elimination of complex dependencies within a system. So, effective
use of suitable design is emphasized.
• Feedback: One of the most important aspects of the XP model is to gain feedback
to understand the exact customer needs. Frequent contact with the customer makes the
development effective.
• Simplicity: The main principle of the XP model is to develop a simple system that
will work efficiently in present time, rather than trying to build something that would
take time and it may never be used. It focuses on some specific features that are
immediately needed, rather than engaging time and effort on speculations of future
requirements.

Applications of Extreme Programming (XP): Some of the projects that are suitable
to develop using XP model are given below:
• Small projects: XP model is very useful in small projects consisting of small
teams as face to face meeting is easier to achieve.
• Projects involving new technology or Research projects: This type of projects
face changing of requirements rapidly and technical problems. So XP model is used to
complete this type of projects.

Lifecycle

We have seen so far that React web apps are actually a collection of independent
components which run according to the interactions made with them. Every React
Component has a lifecycle of its own, lifecycle of a component can be defined as the series
of methods that are invoked in different stages of the component’s existence. The
definition is pretty straightforward but what do we mean by different stages? A React
Component can go through four stages of its life as follows.

• Initialization: This is the stage where the component is constructed with the given
Props and default state. This is done in the constructor of a Component Class.
• Mounting: Mounting is the stage of rendering the JSX returned by the render method
itself.
• Updating: Updating is the stage when the state of a component is updated and the
application is repainted.

88 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


• Unmounting: As the name suggests Unmounting is the final step of the component
lifecycle where the component is removed from the page.

React provides the developers a set of predefined functions that if present is invoked around
specific events in the lifetime of the component. Developers are supposed to override the
functions with desired logic to execute accordingly. We have illustrated the gist in the
following diagram.

Figure 2

Lean Development (LD) Methodology

Lean Development focuses on the creation of change-tolerant software. This methodology


embodies the notion of dynamic stability which can be thought of as similar to how Scrum
embraces controlled chaos. Bob Charette, the originator, writes that the measurable goal
of LD is to build software with one-third the human effort, one-third the development
hours

89 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development
Downloaded by harshana wijayarathna ([email protected])
and one-third the investment as compared to what SEI (Software Engineering Institute)
CMM Level 3 organization would achieve.

Principles are:

• Satisfying the customer is the highest priority.

• Always provide the best value for the money.

• Success depends on active customer participation.

• Every LD project is a team effort.

• Everything is changeable.

• Domain, not point, solutions.

• Complete, don't construct.

• An 80 percent solution today instead of 100 percent solution tomorrow

• Minimalism is essential

• . Needs determine technology

• Product growth is feature growth, not to growth

• Never push beyond its limit

Scaled Agile Frameworks (SAFe)

The Scaled Agile Framework (SAF) helps businesses address the significant challenges of
developing and delivering enterprise-class software and systems in the shortest sustainable
lead time SAFE synchronizes alignment, collaboration, and delivery for multiple Agile
teams. Scalable and configurable, SAFe allow each organization to adapt it to its own

90 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


business needs. It supports smaller scale solutions employing 50 - 125 practitioners, as well
as complex systems that require thousands of people.

SAFE principles are:


• Take an economic view

• Apply systems thinking

• Assume variability: Preserve options

• Build incrementally with fast, integrated learning cycles

• Base milestones on objective evaluation of working systems

• Visualize and limit reduce batch sizes and manage queue lengths

• Apply cadence, synchronize with cross-domain planning

• Unlock the intrinsic motivation of knowledge workers

• Decentralize decision making

Disciplined Agile Delivery (DAD)

Disciplined Agile Delivery (DAD) is a people first, learning oriented hybrid agile approach
to IT solution delivery. It has risk value delivery lifecycle is goal driven, is enterprise aware,
and is scalable
91 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Approach
Supporting a robust set of roles
• . Being a hybrid. DAD a hybrid approach which extent Scrum with proven strategies
from Agile Modeling (AMP Extreme Programming (XP), Unified Process (UP),
Kanban Lean other method Software Development, Outside In Development (Q)
and several
• Being open Disciplined Agile (DA) a a nan proprietary, freely available framework

• Supporting several delivery Lifecyle’s DAD extend the construction focused life
cycle of Serum to address the end to end delivery recycle from project initiation all
the way to delivering the solution to its end users

• Addressing all aspects of solution delivery DAD includes advice about the techie
practices such as those from extreme Programming (XP) as well as the modeling
documentation, and governance strategies missing from both Scrum and XP.

• Providing choices, not prescription. Instead of the prescriptive approach seen in


other agile methods, including Scrum, the DAD framework takes a goal-driven
approach

Kanban

Kanban uses the stages in the software development lifecycle (SDLC) to represent the
different stages in the manufacturing process. The aim is to control and manage the flow of
features (represented by Kanban card) so that the number of features entering the process
matches those being completed
Kanban is an agile methodology that is not necessarily iterative. Processes Nike Scrum have
short iterations which mimic a project lifecycle of a small scale, having a distinct beginning
and end for each iteration, Kanban allows the software be developed in one large
development cycle. Despite this, Kanban is an example of an agile methodology because it
fulfils all twelve of the principles behind the Agile manifesto, because whilst it is not
iterative, it is incremental

92 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Principles

• Start with what you do now Understand current processes as they are actually
practiced and respect existing roles, responsibilities and job titles

• Agree to pursue improvement through evolutionary change

• Encourage acts of leadership at every level

• Service Delivery Principles These principles

These Principles acknowledge that organizations are a collection of interdependent services,


and to place the focus on the work, not the people doing the work

Practices
The following practices are activities essential to manage a Kanban system.
Visualize - Kanban systems use mechanism such as a Kanban board to visualize work and
the process it goes through
limit work in progress When you establishments to the amount of work you have in
progress in system and use those limits to guide when to start new items you can smooth out
the flow of work and reduce lead times, Improve quality, and deliver more frequently

Manage flow. The flow of work in a service should maximize value delivery, minimize
lead times and be as predictable as possible. Teams use empirical control through
transparency, inspection and adaption in order to balance these potentially conflicting goals
Make policies explicit Explicit policies help explain a process beyond just the time of
different stages in the workflow. Policies should be sparse, simple, well-defined, visible,
always applied, and readily changeable by the people working on the service

Implement feedback loops- Feedback loops are an essential element in any system looking
to provide evolutionary change The Feedback loops used in Kanban are described in the
Lifecycle section

93 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Improve collaboratively, evolve experimentally - Kanban starts with the process as it
currently exists and applies continuous and incremental improvement instead of trying to
reach a predefined finished goal

Strengths weaknesses
Scrum Effective and efficient Employees lack knowledge
communication among team of Scrum lacks engineering
members One of the best practices Simple to
management practices understand but difficult to
Continuous feedback from master Suitable for small
the customers Produces projects
quality product with
customer satisfaction
Measuring the growth and
productivity of the team and
individual is easier with
daily Scrum meetings and
sprint meetings
Extreme programming Quality product with Lack of documentation Poor
customer satisfaction Can architectural structure Less
easily handle unclear and focus on design Pair
changing requirements programming requires
Pair programming and mutual understanding and
continuous integration common skillset between
improves productivity two programmers
Works well with simple
and small scale projects

Lean Eliminate waste Maximize Does not cover technical


value of the product and managerial issues Lack
of details about its

94 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


implementation
Kanban Helps in managing Lack of details about its
production of a product implementation
Increase in communication
between the team and stalk
holders
Test driven development Positive impact on external Sometimes very time
quality of the system consuming due to repeated
Writes test cases and test test failures Specific
code first using the knowledge and skill set
requirements Writes Lean required
code, removes duplicates
Crystal Effective communication Only two type of crystals
among team members are defined in details
Projects can be clearly (Crystal clear and Crystal
classified using Crystal orange)
methods
Feature driven development Adaptive and incremental in Lacks system validation
nature Emphasis more on practices Needs special
quality training to write
requirement/user stories
Less responsiveness to
change Need of
experienced and trained
staff Less appropriate
for small scale projects

Waterfall Simple to understand and Working software is

95 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


use Each phase is clearly delivered very late and
defined and well understood hence it has lots of risks
Detailed documentation associated to it is difficult
to accommodate changes
using waterfall Measuring
progress is difficult Not
suitable for projects with
changing requirements
Rational Unified Process Produces quality product Needs expert team members
(RUP) Less time for integration trained in RUP Complex
Less development time development process
Development process is
difficult to manage

Spiral Requirements change is Not suitable for small


manageable Frequent projects Process is difficult
delivered of working to manage Can continue
software Lower risk of indefinitely
failure

96 | P a g e
Pradeeban.A (col/a-064620) Unit-30 application Development

Downloaded by harshana wijayarathna ([email protected])


Assessment Criteria (Students are not authorized to modify or write anything on below)

Outcomes/Criteria Page Feedback


P1Explore a business-related problem
and produce a well-defined problem
definition statement supported by a set
of user and System requirements.

P2 Determine any areas of risk related


to the successful completion of your
application.

M1 Analyze a business-related problem


using appropriate methods and produce a
well-structured Software Design Document
that defines a proposed solution. Include
relevant details on requirements, system
analysis, system design. (propose a
suitable language)

P3 Research the use of software


development tools and techniques and
identify any suitable tool or technique that
you may select for the development of
this application.

M2 Compare the differences between


various software development tools and
techniques researched. Justify your
preferred selection and preferred
software development methodology.

D1 Justify the tools and techniques


chosen to realize a custom-built website.
Justify your preferred selection of tools
and techniques in deducing an
appropriate solution to a business-related
problem.

Downloaded by harshana wijayarathna ([email protected])


P4 Create a formal
presentation that effectively reviews your business application, problem definition statement, proposed solution and the de

M3 Develop a functional business application based on a specific Software Design Document with supportive evidence for u

D2 Evaluate any new insights, ideas or potential improvements to your system and justify the reasons for including/not inclu

M4 Review the performance of your business application against the Problem Definition Statement and initial requiremen
D3 Critically evaluate the strengths and weaknesses of your business application and justify opportunities for improvemen

Strengths: Weaknesses:

Downloaded by harshana wijayarathna ([email protected])


Future Improvements & Assessor Comment:

Assesso Date: / / Signatur

Internal Verifier’s Comments:

Internal Date: / / Signatur

Downloaded by harshana wijayarathna ([email protected])

You might also like