Slide 1

Slide 1 text

jgs CSE 564 Software Design Lecture 06: Programming in the Large Dr. Javier Gonzalez-Sanchez [email protected] javiergs.engineering.asu.edu | javiergs.com PERALTA 230U Office Hours: By appointment

Slide 2

Slide 2 text

jgs Appendix Java Swing

Slide 3

Slide 3 text

jgs 564 00000110 Example

Slide 4

Slide 4 text

jgs 564 00000110 Main.java

Slide 5

Slide 5 text

jgs 564 00000110 Canva.java

Slide 6

Slide 6 text

jgs Large vs Small Programming

Slide 7

Slide 7 text

jgs 564 00000110 Homework Read: § Programming in the Large vs Programming in the Small F. DeRemer International Conference on Reliable Software April 1975 § Teaching Object-Oriented Thinking Kent Beck (JUnit 👀) International conference on OOPSLA October 1989

Slide 8

Slide 8 text

jgs 564 00000110 Timeline 1971 Wirth 1972 Parnas 1975 DeRemer 1989 Beck Programming in the Large OO Thinking Stepwise refinement Information Hiding 1997 UML

Slide 9

Slide 9 text

jgs 564 00000110 Programming in the large (1975) Programming in the Large vs Programming in the Small F. DeRemer International Conference on Reliable Software April 1975 50 most influential and technically excellent publications programming languages ACM

Slide 10

Slide 10 text

jgs 564 00000110 Programming in the large (1975) § High-cohesion and loose-coupling § Programming versus Structuring § (Develop) Many small programs(modules) written by different people. § (Architecture) Structuring a large collection of modules to form a "system" § Care for the trees without lose sight of the forest § Changes become difficult if operates across module boundaries § Programming in the large involves setting up modules that will not need altering in the event of probable changes.

Slide 11

Slide 11 text

jgs 564 00000110 Programming in the large (1975) § Top-down. § Bottom-up. § One level at a time. § Vertical / Horizontal § Linking § Composition § Decomposition § Accessibility (public, private) § Hierarchy

Slide 12

Slide 12 text

jgs 564 00000110 Teaching Object-Oriented Thinking (1989) Teaching Object-Oriented Thinking Kent Beck International conference on OOPSLA 1989 Creator of eXtreme programming and Creator of Unit Testing Framework (JUnit for Java with Erich Gamma) ACM

Slide 13

Slide 13 text

jgs 564 00000110 Teaching Object-Oriented Thinking (1989) Class name, responsibilities, and collaborators • Designs can be characterized at an abstract level as having processes, data flows, and data stores, regardless of implementation language or operating environment. • A Diagram for Object-Oriented Programs Cunningham, W. and Beck, K.: OOPSLA, 1986.

Slide 14

Slide 14 text

jgs 564 00000110 The Unified Process And Unified Modeling Language

Slide 15

Slide 15 text

jgs 564 00000110 Object Oriented Relationships Association Directed Association Reflexive Association Multiplicity Aggregation Composition Generalization Realization

Slide 16

Slide 16 text

jgs 564 00000110 Object Oriented World | Example

Slide 17

Slide 17 text

jgs 564 00000110 Warning!

Slide 18

Slide 18 text

jgs 564 00000110 Warning!

Slide 19

Slide 19 text

jgs 564 00000110 Questions

Slide 20

Slide 20 text

jgs 564 00000110 Summary • Procedure, Function Method • Module • Unit • System • Class • Object • Task • Responsibility • Collaborator • Encapsulation / Accessibility • Hierarchy • Composition / Decomposition • Levels • Linking

Slide 21

Slide 21 text

jgs 564 00000110 Assignment 02 Submit to Canvas (individually or pairs): § Source Code – Java source code o Show your skills for readability (make your code easy to read) o Use Javadoc o If you are not familiar with Java Guidelines, review this: https://google.github.io/styleguide/javaguide.html o Code SHOULD compile and run § A PDF file a paper describing: o 3 screenshots with the input and output for small, medium, and big scenarios, respectively o A conclusion addressing the quality (and limitations) of your solution

Slide 22

Slide 22 text

jgs CSE 564 Software Design Javier Gonzalez-Sanchez, Ph.D. [email protected] Fall 2021 Copyright. These slides can only be used as study material for the class CSE564 at ASU. They cannot be distributed or used for another purpose.