APDP Breakdown
APDP Breakdown
Scenario.
‘Data Labs’ is a leading software development company in Sri Lanka. They are focusing on
helping businesses to build their businesses through creative and effective solutions. Assume
that you work as an apprentice software developer for Data Labs company. As a part of your
role, you have been asked to develop a software system (command-line interface based) for the
following scenario using python programming language.
Sampath Food City (PVT) Ltd is one of the main supermarket networks in Sri Lanka. Currently,
Sampath Food City has several branches island wide. At present, transactions of each branch are
recorded through a point of sale (pos) system. At the end of each month, recorded data of each
point of the sales system are transferred to a centralized database. Top-level management of the
company use the centralized data to do the monthly sales data analysis of the whole company at
the end of the month to find insights to take managerial decisions for the company. Currently, the
company uses a paper-based manual system to do monthly sales data analysis. Some weaknesses
and drawbacks that have occurred in the manual system such as human errors leading to
inaccurate information, time consuming, data redundancy, inconsistency and difficulty to find
insights affect the business performance negatively.
Therefore, the management of Sampath Food City has decided that using a customized software
system for sales data analysis is the solution for eliminating above mentioned weaknesses and
drawbacks of the existing sales data analysis process.
Assume yourself as a software developer of Data Labs (PVT) Ltd and assigned to develop a sales
data analysis system (command-line interface based) using python programming language for
scenario given above.
Activity 1
·Explain how clean coding techniques can impact on the use of data structures and operations
when writing algorithms by taking suitable examples from the given scenario. Analyse each of
the creational, structural and behavioral design patterns with relevant examples.
Activity 2
· Design a large data set processing application, utilising SOLID principles, clean coding
techniques, a design pattern and data structures by providing justifications for selected design
pattern and selected data structures.
· Design a suitable testing regime for the application developed with a provision for
automated testing, selected test types and selected automatic testing tools, and provide
justifications for the selections. Refine the design to include multiple design patterns by
justifying the reasons for the inclusion of each design pattern for the given scenario.
Activity 3
Build a large dataset processing application based on the design produced, by using python
programming language and provide evidence for the usage of data structures and file handling
techniques. Your answer must include an assessment of how effective the use of SOLID
principles, clean coding techniques and programming patterns on the application developed.
Take suitable examples from the developed application to elaborate your answer.
Activity 4
· Implement automatic testing of the developed application by using selected testing tools
and provide evidence for the automatic testing. Discuss how developer-produced and vendor-
provided automatic testing tools differ for applications and software systems by taking suitable
examples from the testing of the developed application.
Grading Criteria
Activity 1
P1
P2
Explain how clean coding techniques can impact on the use of data structures and operations when
writing algorithms. Example code reliability, Maintainability, efficiency etc.
M1 Analyze, with examples, each of the creational, structural and behavioral design pattern types.
Those points are must cover/include: give 4 design pattern most use and analyze / compare with each
other
Structural, how it creational, behaviors etc and give code example for that.
Pros and cons with 4 design pattern. How design pattern solve design problems. When to apply them
effectively.
Critical assessment of advantage and potential challenges of apply solid principle considering, factors –
code testability, maintainability etc. overall development efficiency. Evaluate should be supported by
concrete examples and incites.
Activity 2
P3 Design a large data set processing application, utilising SOLID principles, clean coding techniques
and a design pattern.
Those points are must cover/include: SOLID principles, clean cording practices, using at least one design
pattern. Justification of their choices. Data stricture use in the design. Explain why this design pattern
used and why that is it selected for.
P4 Design a suitable testing regime for the application, including provision for automated testing.
Those points are must cover/include: design suitable testing regime for the application.
- Planning for automated testing
- Selecting appropriated test type using suitable testing tool (mansion tools) and also justify your choices as
well
Activity 3
M3 Assess the effectiveness of using SOLID principles, clean coding techniques and programming
patterns on the application developed.
Those points are must cover/include: How this impact the application development. Context of their
developed application. This involve critical evaluating how this practices impact the application
development maintainability and overall quality. Should be supported/ supply by example from the
implemented code.
Activity 4
P6 Examine the different methods of implementing automatic testing as designed in the test plan.
Those points are must cover/include: understanding the various approach of automated testing and the
M4 Discuss the differences between developer-produced and vendor-provided automatic testing tools
for applications and software systems.
Those points are must cover/include: deferent between developer produce and vender provide
automatic testing tools. Advantage and disadvantage of this type of tools. Considering factors like. Cost
customization, support, integration etc. within the development environment.
- You should draw upon their experience with testing develop application to provide concreate
example.
D2 Analyse the benefits and drawbacks of different forms of automatic testing of applications and
software systems, with examples from the developed application.
Those points are must cover/include: you should need to analyze the benefits and drawback of
different form automatic testing.
- The Analyse should be comprehensive considering various testing method like unite testing,
integrating system etc and their impact on the develop application.
- Should provide specific example from there testing experience to illustrate the strength and weaknesses
of deferent testing approaches.
Example
I did unit testing, those are pass, and those are fail. And do the analyze. How to overcome fail test cases.
The analyze should also include action plan to address identify drawback in the testing process
demonstrating productive approach improve software quality.