cse 2221 software i software components and cse 2231
play

CSE 2221 Software I: Software Components and CSE 2231 Software II: - PowerPoint PPT Presentation

CSE 2221 Software I: Software Components and CSE 2231 Software II: Software Development and Design 8 January 2019 OSU CSE 1 Restated Learning Outcomes Theme 1: software engineering concepts Be familiar with sound software engineering


  1. CSE 2221 Software I: Software Components and CSE 2231 Software II: Software Development and Design 8 January 2019 OSU CSE 1

  2. Restated Learning Outcomes • Theme 1: software engineering concepts – Be familiar with sound software engineering principles for component-based object-oriented software design 8 January 2019 OSU CSE 2

  3. Software Engineering Concepts • Component-based software engineering – System thinking • Mathematical modeling • Design-by-contract • Client vs. implementer view – Object-oriented software building blocks • Components and their relationships – Discipline • Single-point control over change • Adherence to conventions 8 January 2019 OSU CSE 3

  4. Restated Learning Outcomes • Theme 2: Java programming language – Be competent with Java programming 8 January 2019 OSU CSE 4

  5. Java Programming Language • Core syntax and features – Variables, types, values, operators, expressions, control flow (selection, iteration) – Reference vs. value types – Interfaces, classes, methods, objects – Inheritance, polymorphism – Generics, exceptions • Libraries – Input/output, Java’s Swing for GUIs – Collections (e.g., List, Map, Queue, Set, …) 8 January 2019 OSU CSE 5

  6. Restated Learning Outcomes • Theme 3: industry-standard tools – Be familiar with the use of industrial-strength software development tools 8 January 2019 OSU CSE 6

  7. Industry-Standard Tools • Eclipse – Industrial-strength open-source IDE – Many (free) plug-ins/extensions, including Checkstyle and FindBugs • JUnit – Industry-standard library for unit-testing software components • Javadoc – Industry-standard documentation utility for Java programs 8 January 2019 OSU CSE 7

  8. Restated Learning Outcomes • Theme 4: professional best practices – Be familiar with Java programming “ best practices ” 8 January 2019 OSU CSE 8

  9. Professional Best Practices • Problem – Complex language mechanisms make it easy to produce code that is wrong, brittle, inextensible, and hard to maintain • Solution – Discipline that helps (but does not guarantee) that developers write better code • Examples – Naming conventions, coding conventions – Design-by-contract and programming-to-the- interface 8 January 2019 OSU CSE 9

  10. What’s New in Software II? • Client : a software engineer who uses a software component (in Java, a class) by programming to its interface • Implementer : a software engineer who designs a Java class that implements an interface 8 January 2019 OSU CSE 10

  11. What’s New in Software II? • Client : a software engineer who uses a software component (in Java, a class) by programming to its interface • Implementer : a software engineer who designs a Java class that implements an interface With respect to kernel components , this is the focus of Software I . 8 January 2019 OSU CSE 11

  12. What’s New in Software II? • Client : a software engineer who uses a software component (in Java, a class) by programming to its interface • Implementer : a software engineer who designs a Java class that implements an interface With respect to kernel components , this is the focus of Software II . 8 January 2019 OSU CSE 12

  13. Role ≠ Person • It is typical for a given software engineer to play both roles at the same time, as he/she designs and codes a new class by programming to the interfaces of existing classes – As you will do throughout Software II for implementations of kernel interfaces as well as others... 8 January 2019 OSU CSE 13

  14. Resources • Class meetings – Ask questions! – Answer questions! • Instructor and grader – Make sure they know you by name – Visit during office hours or make appointment – Ask questions! – Answer questions! 8 January 2019 OSU CSE 14

  15. Resources • Course web site – http://cse.osu.edu/software/ – All materials and links • Class discussion group on Piazza – http://piazza.com/ – A non-threatening forum for “anytime” Q&A • Class website on Carmen – http://carmen.osu.edu/ – Assignment submissions – Grades 8 January 2019 OSU CSE 15

  16. Resources • Online Java tutorials – http://docs.oracle.com/javase/tutorial/index.html • Online OSU CSE components API – http://cse.osu.edu/software/common/doc/ • Online Java libraries API – http://docs.oracle.com/javase/8/docs/api/ • Many other Java resources available on the web! 8 January 2019 OSU CSE 16

  17. Resources • Many Java books available for free to OSU students via Safari Books Online http://proquest.safaribooksonline.com.proxy.lib.ohio-state.edu/ • Recommended books – C.S. Horstmann, Java for Everyone , John Wiley and Sons, 2013 http://osu.worldcat.org/title/java-for-everyone-late-objects/oclc/808511232 – J. Bloch, Effective Java , 3nd ed., Prentice Hall, 2018 http://osu.worldcat.org/title/effective-java/oclc/1018480592 8 January 2019 OSU CSE 17

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend