CSE564 Lecture 05

CSE564 Lecture 05

Software Design
Programming in the large
(202009)

B546a9b97d993392e4b22b74b99b91fe?s=128

Javier Gonzalez

August 05, 2020
Tweet

Transcript

  1. jgs CSE 564 Software Design Lecture 05: Programming in the

    Large Dr. Javier Gonzalez-Sanchez javiergs@asu.edu javiergs.engineering.asu.edu | javiergs.com PERALTA 230U Office Hours: By appointment
  2. jgs Previously

  3. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 3 jgs

    Timeline 1971 Wirth 1972 Parnas 1975 DeRemer 1989 Beck Programming in the Large OO Thinking Stepwise refinement Information Hiding 1997 UML
  4. jgs Large vs Small Programming

  5. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 5 jgs

    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
  6. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 6 jgs

    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.
  7. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 7 jgs

    Programming in the large (1975) § Top-down. § Bottom-up. § One level at a time. § Horizontal § Linking § Composition § Decomposition § Accessibility (public, private) § Hierarchy
  8. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 8 jgs

    Teaching Object-Oriented Thinking (1989) Programming in the large vs programming in the small Kent Beck International conference on OOPSLA 1989 Creator of eXtreme programming and Creator of Unit Testing Framework (JUnit for Java with Erich Gamma) ACM
  9. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 9 jgs

    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.
  10. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 10 jgs

    The Unified Process And Unified Modeling Language
  11. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 11 jgs

    Concepts • Procedure, Function Method • Module • Unit ? • System • Class • Object • Task • Responsibility • Collaborator • Encapsulation / Accessibility • Hierarchy • Composition / Decomposition • Levels • Linking
  12. jgs And …

  13. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 13 jgs

    Object Oriented World | Relationships Association Directed Association Reflexive Association Multiplicity Aggregation Composition Generalization Realization
  14. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 14 jgs

    Object Oriented World | Example
  15. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 15 jgs

    What about an Assignment 02? Starting point:
  16. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 16 jgs

    What about an Assignment 02?
  17. jgs CSE 564 Computer Systems Fundamentals Javier Gonzalez-Sanchez javiergs@asu.edu Fall

    2020 Disclaimer. These slides can only be used as study material for the class CSE564 at ASU. They cannot be distributed or used for another purpose.