about design, not just programming.Being able to compile and run your code is necessary but not sufficient — the focus should be on demonstrating clear design, quality, and adherence to standards.
– Submit your repository a s ZIP f ile (j a v a , README.md, pom.xml included) b) Softw a re Design – Submit your UML cl a ss di a gr a m a s a PNG or JPEG im a ge, cre a ted using the Ast a h tool. c) Fin a l Present a tion Video – Provide a link to your recorded present a tion. 5
DRY, KIS principles? Is it re a d a ble, cle a n, a nd does it include the required J a v a Doc? • Am I a pplying st a nd a rd solutions for sh a ring d a t a , storing d a t a , p a ssing p a r a meters, building complex objects, h a ndling decision-m a king logic, a nd a dding a ttributes or functions a t runtime? • Ref a ctoring is OK – your re a l work begins a fter the code compiles a nd runs - • Does my code m a tch the UML di a gr a m I a m a tt a ching? • I a m con f ident I c a n expl a in both the code a nd the corresponding di a gr a m in a 5- minute video. It is very notice a ble when someone is trying to a void det a ils or is not con f ident in their implement a tion. 7
ss di a gr a m. (Show wh a t is import a nt a nd m a ke it e a sy to re a d for the a udience) :: notes :: (you c a n use colors for the cl a sses, for inst a nce, group cl a sses of the s a me p a ttern) • Wh a t did you do th a t m a ke this design “good”. • Do you a chieve DRY, KIS, SRP, Cle a n, Re a d a ble, Document? • Do you improve A, I, or D? (show the 2D plot reg a rding where your cl a sses a re in terms of the p a in zone) 17
nd highlight how e a sy it is to re a d your code. • Expl a in to the viewer why a nd how your source code is cle a n, follows DRY, a nd a pplies KIS principles. • Ensure e a ch cl a ss is in its own f ile. • Provide J a v a Doc comments for e a ch cl a ss. • Showc a se how your code m a tches your design (cl a ss di a gr a m), cl a ss by cl a ss. • Re f lect: Does the product h a ve “good” qu a lity? If not, wh a t is missing? • This is your opportunity to justify the use of “extr a ” glob a l v a ri a bles, duplic a ted code, overuse of st a tic methods, or a ny other rule you m a y h a ve broken. 20
link will be provided for this • (self a nd peer ev a lu a tion) Wh a t should be your gr a de a nd the gr a de of e a ch of your te a mm a tes? - if a ny 21
in01.j a v a M a in02.j a v a M a in03.j a v a M a in04.j a v a M a in05.j a v a README.md Src LICENSE M a in01.j a v a Take the population values and divide them into three groups by first finding the largest and smallest values, then calculating the range between them, and finally using that range to set two cut- off points.
in01.j a v a M a in02.j a v a M a in03.j a v a M a in04.j a v a M a in05.j a v a * java files colors to be calculated; * not showing them here Add inheritance and local variables, but only for the other classes in this folder
diagram shown is a simulation, not the actual one. However, the shapes for classes, interfaces, and abstract classes are correct, as are the relationships between them.
diagram shown is a simulation, not the actual one. However, the shapes for classes, interfaces, and abstract classes are correct, as are the relationships between them. Painful Useless
in01.j a v a M a in02.j a v a M a in03.j a v a M a in04.j a v a M a in05.j a v a delete.tmp M a in01.j a v a M a in01.j a v a M a in01.j a v a Take the population values and divide them into three groups by first finding the largest and smallest values, then calculating the range between them, and finally using that range to set two cut- off points.
diagram shown is a simulation, not the actual one. However, the shapes for classes, interfaces, and abstract classes are correct, as are the relationships between them.
diagram shown is a simulation, not the actual one. However, the shapes for classes, interfaces, and abstract classes are correct, as are the relationships between them. Painful Useless
diagram shown is a simulation, not the actual one. However, the shapes for classes, interfaces, and abstract classes are correct, as are the relationships between them.
diagram shown is a simulation, not the actual one. However, the shapes for classes, interfaces, and abstract classes are correct, as are the relationships between them. Painful Useless
Settings, then Developer settings. • Under Access → Tokens choose cl a ssic tokens (works for a ll repos). • Click Gener a te new token, give it a n a me a nd expir a tion, a nd set scopes: public_repo for public repos, repo a ccess for priv a te repos. • Fin a lly, copy the token. 37
item is m a inly used by others (st a ble – h a rd to ch a nge); or (b) it m a inly depends on other items (in-st a ble – ch a nge a ble). • It is a v a lue between 0 a nd 1: • 0 only incoming dependencies to • 1 (only outgoing dependencies). 42
item is m a inly a bstr a ct (interf a ces, a bstr a ct cl a sses – extensible but not directly us a ble); or (b) it is m a inly concrete (implement a tions – directly us a ble but less extensible). • It is a v a lue between 0 a nd 1: 0 ( a concrete cl a ss or a p a ck a ge with only concrete cl a sses) 1 ( a n a bstr a ct cl a ss/interf a ce or a p a ck a ge with only a bstr a ct cl a sses/interf a ces) 43
[email protected] Summer 2025 Copyright. These slides can only be used as study material for the class CSC305 at Cal Poly. They cannot be distributed or used for another purpose.