0% found this document useful (0 votes)
73 views

APDP Breakdown

Applied Programming and Design Principles
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)
73 views

APDP Breakdown

Applied Programming and Design Principles
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/ 5

Assignment Brief

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.

New system should provide following features:

· Monthly sales analysis of each branch.

· Price analysis of each product

· Weekly sales analysis of supermarket network

· Product preference analysis

· Analysis of the distribution of total sales amount of purchases


Develop a command-line interface-based solution for the above scenario and produce a
report covering the following tasks.

Activity 1

·Investigate the characteristics of the object-orientated paradigm, including class relationships


(inheritance, association, composition, aggregation) and evaluate the impact pf SOLID principles
(single responsibility principle, open/closed principle, Liskov’s substitution principle, interface
segregation principle and dependency inversion principle) by taking suitable examples
incorporating UML diagrams and coding samples. Your answer should include suitable
examples to evaluate the impact of SOLID principles in Object oriented Development.

·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

· Examine the benefits and drawbacks of different methods of automatic testing of


applications and software systems available for automatic testing by taking examples from the
developed application. Provide an action plan to address the identified drawbacks of testing of
the developed application.

· 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

Investigate the characteristics of the object orientated paradigm, including class


relationships and SOLID principles.

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.

D1 Evaluate the impact of SOLID development principles on object orientated application


development.
Those points are must cover/include:

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

M2 Refine the design to include multiple design patterns.


You should need to enhance the initial design pattern by cooperating multiple design pattern
Those points are must cover/include: demonstrating ability to select and interpreted various design
pattern to address specific design challenges in the application

Activity 3

P5 Build a large dataset processing application based on the design produced.


Those points are must cover/include: use of header structure and include file handling technique.

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

- Mention hear did test plan and unite testing.


- Add test case document. Include column like test case, test result, actual result and screenshot

P7 Implement automatic testing of the developed application.


Those points are must cover/include: the student need to implement automates testing using choose
testing tools (mention automates testing tools)
- Evidence of the automated testing process should be provide. Example py-test.

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.

You might also like