August 15, 2020, 05:57:53 pm

### AuthorTopic: HSC Software Design and Development - State Ranker QnA  (Read 2451 times) Tweet Share

0 Members and 1 Guest are viewing this topic.

#### cthulu

• Trailblazer
• Posts: 35
• Respect: +1
##### Re: HSC Software Design and Development - State Ranker QnA
« Reply #15 on: October 27, 2018, 09:34:06 am »
0
Hey @opengangs,

Earlier you said a class cannot access private methods written inside? Is this accurate because I've learnt otherwise ! SO I'm very confused atm.

Also was just wondering, when attempting questions that ask for a recommendation of a development approach, what is the best way to answer these questions? Do you have certain attributes to consider from each programming language?

Thanks!

#### JTrudeau

• Trendsetter
• Posts: 109
• Master of the Meeses
• Respect: +90
##### Re: HSC Software Design and Development - State Ranker QnA
« Reply #16 on: October 27, 2018, 09:56:16 am »
+6
Hey Cthulu!

For your dev approaches question, you should definitely be on the lookout for the defining characteristics in the question to guide your recommendation.

Structured: big budget, long time, super high quality custom software, not published until it’s done
Agile: small but diverse team, focus on getting a working product out there, feedback driven, incrementally add features
Prototyping: Also feedback driven, used when the client isn’t sure what they want/there are multiple good solutions, not published until it’s done (except the client gets to see it in progress)
RAD: small budget, short time constraint, not super fussed on quality (just want a working product), may use a lot of APIs and COTS packages
End User: designed by the user of the program (not an external programmer/team), poorer quality (or a greater variation in quality), but needs are met, often lower budget

Go through the question and highlight any specifications/requirements the client needs, and see which one’s the best fit
Data Science, Finance || University of Sydney
== First in State for Software Design and Development 2017 ==
Advanced English | Maths Extension 1 | Maths Extension 2 | Economics | Software Design & Development | Chemistry

#### cthulu

• Trailblazer
• Posts: 35
• Respect: +1
##### Re: HSC Software Design and Development - State Ranker QnA
« Reply #17 on: October 27, 2018, 10:06:31 am »
0

Just another quick question, if some small business per se wants to develop a new digital system for themselves that includes storing customer details and handles money. Would a RAD approach be used in such a case? My teacher stated that it was incorrect as transactions are dealt with so a structured approach is a better choice. But in our time there are plenty of code modules that provide secure transactions.

Thanks

#### JTrudeau

• Trendsetter
• Posts: 109
• Master of the Meeses
• Respect: +90
##### Re: HSC Software Design and Development - State Ranker QnA
« Reply #18 on: October 27, 2018, 10:25:44 am »
+4
@Cthulu
Yeah, that’s definitely one of those iffy ones that change with time. There are pros and cons for both approaches, but keep in mind that the syllabus hasn’t changed since 2011 (meaning RAD doesn’t produce as high quality and secure code as it does now).

I totally see where you’re coming from though. The fact that it’s a small business is also an indicator that they probably don’t have the time nor budget for a large scale structured-approach program.

I think for the purposes of the exam, err more on the side of conservative. As a gross oversimplification, Structured is for high performing code that’s like “try and hack me, I dare you”, while RAD is more “it works but only if you don’t try to mess with it”.

Thoughts?
Data Science, Finance || University of Sydney
== First in State for Software Design and Development 2017 ==
Advanced English | Maths Extension 1 | Maths Extension 2 | Economics | Software Design & Development | Chemistry

#### Opengangs

• New South Welsh
• Posts: 697
• $\mathbb{O}_\mathbb{G}$
• Respect: +450
##### Re: HSC Software Design and Development - State Ranker QnA
« Reply #19 on: October 27, 2018, 11:53:14 am »
+3
Hey, cthulu.

So a private class is a nested class like we see in the previous questions. That means the methods from the outer class can access the methods in either the private or public nested class.

Now, the difference between a private and a public class is that a private class cannot have its data changed by any other method in the outer class. But these methods can still access anything inside the private class!

So in short, other methods CAN access all the data inside the private class; they just cannot alter or write to it!
[2017: HSC]
English (Adv): 86 $\mid$ Mathematics (Adv): 94 $\mid$ Mathematics (Extension 1): 45 $\mid$ Biology: 84 $\mid$ Business Studies: 87 $\mid$ Software Design and Development: 88

[2018 $-$ 2022: UNSW]
Degree: Bachelor of Science (Computer Science) / Bachelor of Science (Mathematics)
Specialisation: Artificial Intelligence

#### cthulu

• Trailblazer
• Posts: 35
• Respect: +1
##### Re: HSC Software Design and Development - State Ranker QnA
« Reply #20 on: October 27, 2018, 12:19:48 pm »
0
Hey, cthulu.

So a private class is a nested class like we see in the previous questions. That means the methods from the outer class can access the methods in either the private or public nested class.

Now, the difference between a private and a public class is that a private class cannot have its data changed by any other method in the outer class. But these methods can still access anything inside the private class!

So in short, other methods CAN access all the data inside the private class; they just cannot alter or write to it!

Ah that makes complete sense! Now I understand why the open_accounts method was overriden thank you heaps for this!

@Cthulu
Yeah, that’s definitely one of those iffy ones that change with time. There are pros and cons for both approaches, but keep in mind that the syllabus hasn’t changed since 2011 (meaning RAD doesn’t produce as high quality and secure code as it does now).

I totally see where you’re coming from though. The fact that it’s a small business is also an indicator that they probably don’t have the time nor budget for a large scale structured-approach program.

I think for the purposes of the exam, err more on the side of conservative. As a gross oversimplification, Structured is for high performing code that’s like “try and hack me, I dare you”, while RAD is more “it works but only if you don’t try to mess with it”.

Thoughts?

Thanks for this reply, it makes sense. But I am still torn simply due to the fact that a structured approach requires a big budget. How about a prototyping approach?

#### DrDusk

• NSW MVP - 2019
• Posts: 511
• I exist in the fourth dimension
• Respect: +128
##### Re: HSC Software Design and Development - State Ranker QnA
« Reply #21 on: October 27, 2018, 02:54:06 pm »
0
@Opengangs so method inside a private class can be accessed but its data cannot be altered.
Firstly what do you mean by altered? Do you mean that it cannot be processed differently depending on what class?, i.e. you cannot use polymorphism on it

Secondly the sample answer says place the open_account method in the private section so it cannot be accessed, but this contradicts that it can be accessed but not altered.
HSC/Prelim Physics tutor

#### Opengangs

• New South Welsh
• Posts: 697
• $\mathbb{O}_\mathbb{G}$
• Respect: +450
##### Re: HSC Software Design and Development - State Ranker QnA
« Reply #22 on: October 27, 2018, 06:38:21 pm »
+2
@Opengangs so method inside a private class can be accessed but its data cannot be altered.
Firstly what do you mean by altered? Do you mean that it cannot be processed differently depending on what class?, i.e. you cannot use polymorphism on it

Secondly the sample answer says place the open_account method in the private section so it cannot be accessed, but this contradicts that it can be accessed but not altered.
Methods and data in the private class can be accessed if it is under the same outer class.

As an example, let's say I have an outerclass called "OC" and it has a private and public subclass.

Any method called in the public subclass of "OC" can access (but cannot change) the data in the private subclass. This is because all methods in the public subclass belong to the same class "OC".

But if you were to have a totally new class "OC2", then the data from the private subclass in "OC" cannot be accessed by this new class!

So in our example, we have two different classes and although FastCash IS a Teller, they're still two completely separate classes. This means that data in the private subclass of FastCash cannot be accessed by Teller and vice versa. But any methods in the public section of FastCash can still access these data.

This is really important in the case where you have encryption and decryption or storage - you still want to be able to retrieve information about (for example) your bank details but you don't want any methods from changing the data. So by placing it in the private class, you restrict access from a third party class/method from gaining access.

So by placing the empty "open_account" method into the private subclass of FastCash does 2 things:

1) Any class that is not FastCash has no way in retrieving the data in "open_account".

2) No methods IN the FastCash class can change information about it.

Hopefully, this clears up any problems!
[2017: HSC]
English (Adv): 86 $\mid$ Mathematics (Adv): 94 $\mid$ Mathematics (Extension 1): 45 $\mid$ Biology: 84 $\mid$ Business Studies: 87 $\mid$ Software Design and Development: 88

[2018 $-$ 2022: UNSW]
Degree: Bachelor of Science (Computer Science) / Bachelor of Science (Mathematics)
Specialisation: Artificial Intelligence

#### DrDusk

• NSW MVP - 2019
• Posts: 511
• I exist in the fourth dimension
• Respect: +128
##### Re: HSC Software Design and Development - State Ranker QnA
« Reply #23 on: October 27, 2018, 07:17:09 pm »
0
OOOH I get it, that example literally cleared everything up for me! Thank YOU
HSC/Prelim Physics tutor

#### JTrudeau

• Trendsetter
• Posts: 109
• Master of the Meeses
• Respect: +90
##### Re: HSC Software Design and Development - State Ranker QnA
« Reply #24 on: October 27, 2018, 07:25:30 pm »
+2
Thanks for this reply, it makes sense. But I am still torn simply due to the fact that a structured approach requires a big budget. How about a prototyping approach?

Prototyping doesn’t seem like it has a specific budget size, but compared to structured it’s budget and time is much smaller, because the development process is iterative (i.e. you catch mistakes in the user specs much earlier in project dev). In structured, the team refined user specs and then goes off to develop, with the end user not seeing the program until it’s complete. So if there are mistakes in the initial specs, that’s incredibly costly to fix.

In the context of the question, I feel like the security issue can’t be addressed with more prototypes (because the client doesn’t know system security), which is why structured is still the best answer.
Data Science, Finance || University of Sydney
== First in State for Software Design and Development 2017 ==
Advanced English | Maths Extension 1 | Maths Extension 2 | Economics | Software Design & Development | Chemistry

#### DrDusk

• NSW MVP - 2019
• Posts: 511
• I exist in the fourth dimension
• Respect: +128
##### Re: HSC Software Design and Development - State Ranker QnA
« Reply #25 on: October 27, 2018, 08:52:48 pm »
0
@opengangs according to that, I don't see a problem with just moving open_account to the private section of the Teller class. This way FashCash cannot access it or retrieve its data which is good as it wont be able to open up an account. However the teller class can access it, but it can't change its data, which I don't see a problem with. Would there be a problem with Teller not being able to change the data in open_account?

Such there should not be a problem with adding open_account to the private section of Teller
HSC/Prelim Physics tutor

#### Opengangs

• New South Welsh
• Posts: 697
• $\mathbb{O}_\mathbb{G}$
• Respect: +450
##### Re: HSC Software Design and Development - State Ranker QnA
« Reply #26 on: October 27, 2018, 09:00:34 pm »
+2
@opengangs according to that, I don't see a problem with just moving open_account to the private section of the Teller class. This way FashCash cannot access it or retrieve its data which is good as it wont be able to open up an account. However the teller class can access it, but it can't change its data, which I don't see a problem with. Would there be a problem with Teller not being able to change the data in open_account?

Such there should not be a problem with adding open_account to the private section of Teller

Normal tellers can open accounts; FastCash cannot. So what do you think will happen if we place the "open_account" method into the private subclass?
[2017: HSC]
English (Adv): 86 $\mid$ Mathematics (Adv): 94 $\mid$ Mathematics (Extension 1): 45 $\mid$ Biology: 84 $\mid$ Business Studies: 87 $\mid$ Software Design and Development: 88

[2018 $-$ 2022: UNSW]
Degree: Bachelor of Science (Computer Science) / Bachelor of Science (Mathematics)
Specialisation: Artificial Intelligence

#### DrDusk

• NSW MVP - 2019
• Posts: 511
• I exist in the fourth dimension
• Respect: +128
##### Re: HSC Software Design and Development - State Ranker QnA
« Reply #27 on: October 27, 2018, 09:34:56 pm »
+2
Yep yep I fully get it now, I was getting confused as to what 'alter' meant. Yeah I get it, Thanks Heaps
HSC/Prelim Physics tutor

#### Opengangs

• New South Welsh
• Posts: 697
• $\mathbb{O}_\mathbb{G}$
• Respect: +450
##### Re: HSC Software Design and Development - State Ranker QnA
« Reply #28 on: October 28, 2018, 09:15:52 am »
+4
Thank you for all of the questions! The QnA went for a day longer than anticipated but that's okay!

If you have any further questions, feel free to use the Questions thread!

Thanks for participating!
[2017: HSC]
English (Adv): 86 $\mid$ Mathematics (Adv): 94 $\mid$ Mathematics (Extension 1): 45 $\mid$ Biology: 84 $\mid$ Business Studies: 87 $\mid$ Software Design and Development: 88

[2018 $-$ 2022: UNSW]
Degree: Bachelor of Science (Computer Science) / Bachelor of Science (Mathematics)
Specialisation: Artificial Intelligence