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

cse 2221 software i software components and cse 2231
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

CSE 2221 Software I: Software Components and CSE 2231 Software II: Software Development and Design

8 January 2019 OSU CSE 1

slide-2
SLIDE 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

slide-3
SLIDE 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

slide-4
SLIDE 4

Restated Learning Outcomes

  • Theme 2: Java programming language

– Be competent with Java programming

8 January 2019 OSU CSE 4

slide-5
SLIDE 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

slide-6
SLIDE 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

slide-7
SLIDE 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

slide-8
SLIDE 8

Restated Learning Outcomes

  • Theme 4: professional best practices

– Be familiar with Java programming “best practices”

8 January 2019 OSU CSE 8

slide-9
SLIDE 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

slide-10
SLIDE 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

slide-11
SLIDE 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

8 January 2019 OSU CSE 11

With respect to kernel components, this is the focus of Software I.

slide-12
SLIDE 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

8 January 2019 OSU CSE 12

With respect to kernel components, this is the focus of Software II.

slide-13
SLIDE 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

slide-14
SLIDE 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

slide-15
SLIDE 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

slide-16
SLIDE 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

slide-17
SLIDE 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