CSC 309 Lecture Notes Week 1 Introduction to the Course - - PowerPoint PPT Presentation

csc 309 lecture notes week 1 introduction to the course
SMART_READER_LITE
LIVE PREVIEW

CSC 309 Lecture Notes Week 1 Introduction to the Course - - PowerPoint PPT Presentation

CSC309-S15-L1 Slide 1 CSC 309 Lecture Notes Week 1 Introduction to the Course Introduction to the Design Process CSC309-S15-L1 Slide 2 I. First-day handouts A. Syllabus B. Milestone 1, including 1. SCO format 2. work breakdown format 3.


slide-1
SLIDE 1

CSC309-S15-L1 Slide 1

CSC 309 Lecture Notes Week 1 Introduction to the Course Introduction to the Design Process

slide-2
SLIDE 2

CSC309-S15-L1 Slide 2

  • I. First-day handouts
  • A. Syllabus
  • B. Milestone 1, including
  • 1. SCO format
  • 2. work breakdown format
  • 3. meeting minutes format
slide-3
SLIDE 3

CSC309-S15-L1 Slide 3

Syllabus Review Page 1:

  • Instructor
  • Course Objectives
  • Class Materials
  • Activities
slide-4
SLIDE 4

CSC309-S15-L1 Slide 4

Syllabus Review, Cont’d Page 2:

  • Project Milestones
  • Evaluations
slide-5
SLIDE 5

CSC309-S15-L1 Slide 5

Syllabus Review, Cont’d Page 3:

  • Bi-Weekly Activity Reports
  • How to Submit Project Work
  • Team Work
  • Computer Work
slide-6
SLIDE 6

CSC309-S15-L1 Slide 6

Syllabus Review, Cont’d Page 4:

  • Lecture, Lab, Milestone & Exam Schedule
slide-7
SLIDE 7

CSC309-S15-L1 Slide 7

Milestone 1

slide-8
SLIDE 8

CSC309-S15-L1 Slide 8

Milestone 1

  • 1. Form teams.
slide-9
SLIDE 9

CSC309-S15-L1 Slide 9

Milestone 1

  • 1. Form teams.
  • 2. Select project.
slide-10
SLIDE 10

CSC309-S15-L1 Slide 10

Milestone 1

  • 1. Form teams.
  • 2. Select project.
  • 3. Read specs.
slide-11
SLIDE 11

CSC309-S15-L1 Slide 11

Milestone 1

  • 1. Form teams.
  • 2. Select project.
  • 3. Read specs.
  • 4. Write initial SCOs.
slide-12
SLIDE 12

CSC309-S15-L1 Slide 12

Milestone 1

  • 1. Form teams.
  • 2. Select project.
  • 3. Read specs.
  • 4. Write initial SCOs.
  • 5. Define initial levels of completion.
slide-13
SLIDE 13

CSC309-S15-L1 Slide 13

Milestone 1

  • 1. Form teams.
  • 2. Select project.
  • 3. Read specs.
  • 4. Write initial SCOs.
  • 5. Define initial levels of completion.
  • 6. Determine initial work breakdown.
slide-14
SLIDE 14

CSC309-S15-L1 Slide 14

Milestone 1

  • 1. Form teams.
  • 2. Select project.
  • 3. Read specs.
  • 4. Write initial SCOs.
  • 5. Define initial levels of completion.
  • 6. Determine initial work breakdown.
  • 7. Install admin templates.
slide-15
SLIDE 15

CSC309-S15-L1 Slide 15

Milestone 1

  • 1. Form teams.
  • 2. Select project.
  • 3. Read specs.
  • 4. Write initial SCOs.
  • 5. Define initial levels of completion.
  • 6. Determine initial work breakdown.
  • 7. Install admin templates.
  • 8. Create project repository, release.
slide-16
SLIDE 16

CSC309-S15-L1 Slide 16

Milestone 1

  • 1. Form teams.
  • 2. Select project.
  • 3. Read specs.
  • 4. Write initial SCOs.
  • 5. Define initial levels of completion.
  • 6. Determine initial work breakdown.
  • 7. Install admin templates.
  • 8. Create project repository, release.
  • 9. Consider implementation platform.
slide-17
SLIDE 17

CSC309-S15-L1 Slide 17

M1, Task 1 -- Form Project Team

  • In lab today.
  • You may change teams & projects.
  • Admin tasks:
  • a. Exchange contact info.
  • b. Determine meeting times.
  • c. Elect officers
slide-18
SLIDE 18

CSC309-S15-L1 Slide 18

M1, Task 2 -- Select a Project

  • EClass, Grader, Scheduler, TestTool
  • From last quarter, and/or before.
  • We’ll discuss in lab today and Wed.
slide-19
SLIDE 19

CSC309-S15-L1 Slide 19

M1, Task 3 -- Read the specs.

  • Goto 308 specs link.
  • Look for
  • a. important features missing
  • b. features not spec’d clearly
  • c. features that could be "better"
  • d. how to merge features, if appro
  • e. models inconsistent with scenarios
slide-20
SLIDE 20

CSC309-S15-L1 Slide 20

M1, Task 4 -- Initial SCO’s

  • Choose a base spec.
  • Add features as appropriate from other specs
slide-21
SLIDE 21

CSC309-S15-L1 Slide 21

M1, Task 5 -- Levels of completion:

  • LEVEL 1: fully design and fully implement
  • LEVEL 2: fully design but no implementation
  • LEVEL 3: provide design hooks
slide-22
SLIDE 22

CSC309-S15-L1 Slide 22

M1, Task 6 -- Initial Work Breakdown

  • For high-level design phase
  • Will refine as quarter progresses
slide-23
SLIDE 23

CSC309-S15-L1 Slide 23

M1, Task 7 -- Fill in Templates

  • In handouts dir:

ο scos-template.html ο work-breakdown-template.html ο meeting-minutes-template.html

  • Commit to repository when ready
slide-24
SLIDE 24

CSC309-S15-L1 Slide 24

M1, Task 8 -- Repository

  • Librarian creates repository.
  • Template filler inners commit.
  • Librarian releases by 7PM Monday 9 January.
slide-25
SLIDE 25

CSC309-S15-L1 Slide 25

M1, Task 9 -- Imple’n Platform?

  • Consider what you’d like to use.
  • Instructor component must be desktop app
  • Students can use web app
  • Java recommended, Python an alternative
slide-26
SLIDE 26

CSC309-S15-L1 Slide 26

  • II. Milestone 2 Discussion
  • A. See the writeup.
  • B. We’ll go over key points in class.
slide-27
SLIDE 27

CSC309-S15-L1 Slide 27

Milestone 2, cont’d

  • C. Objectives:
  • 1. Package design
  • 2. Model/View class design
  • 3. Initial implementation of

model/view communication

slide-28
SLIDE 28

CSC309-S15-L1 Slide 28

Milestone 2, cont’d

  • D. Deliverables
  • 1. Package structure
  • 2. overview.html
  • 3. package.htmls
  • 4. Compilable model and view classes
slide-29
SLIDE 29

CSC309-S15-L1 Slide 29

Milestone 2, cont’d

  • 5. Menubar or equivalent top-level UI
  • 6. At least two model/view class integrations
  • 7. Javadoc (pydoc) commentary for all
slide-30
SLIDE 30

CSC309-S15-L1 Slide 30

Milestone 2, cont’d

  • 8. admin/m2-duties.html
  • 9. admin/work-breakdown.html
  • 10. HOW-TO-RUN.html
  • 11. Generated javadoc, or equiv
  • 12. A runnable .jar file, or equiv
slide-31
SLIDE 31

CSC309-S15-L1 Slide 31

  • III. Review of software systems life cycle.

Analyze Specify Design Implement CSC 308 CSC 309 Problem Statement Problem Solution

slide-32
SLIDE 32

CSC309-S15-L1 Slide 32

Life Cycle, cont’d

  • A. Requirements Analysis determines what end

users want and need.

  • B. Specification formally defines user requirements.
  • C. Design defines and organizes operational parts.
  • D. Implementation defines operational details.
slide-33
SLIDE 33

CSC309-S15-L1 Slide 33

  • IV. Review of requirements analysis and

specification phases

  • A. What the system does as opposed to

how it works.

  • B. The domain of CSC 308.
slide-34
SLIDE 34

CSC309-S15-L1 Slide 34

Review of requirements, cont’d

  • C. In 309, we’ll work on EClass, Grader, TestTool
  • 1. from last quarter
  • 2. and/or from previous quarters
  • 3. we’ll discuss in week 1 lab
slide-35
SLIDE 35

CSC309-S15-L1 Slide 35

Review of requirements, cont’d

  • D. 308 specs located at:

http://wwww.csc.calpoly.edu/ ˜gfisher/classes/309/specs

slide-36
SLIDE 36

CSC309-S15-L1 Slide 36

  • V. Major goals of the design process
  • A. Adhere to the specification
  • 1. Any deviation in a SCO
  • 2. The spec + SCOs form binding contract
  • 3. No changes without consulting customer
slide-37
SLIDE 37

CSC309-S15-L1 Slide 37

Goals of design, cont’d

  • B. Achieve design quality goals:
  • 1. Tr

aceability

  • 2. Modularity
  • 3. Portability
  • 4. Maintainability
  • 5. Reusability
slide-38
SLIDE 38

CSC309-S15-L1 Slide 38

  • VI. 309 design process
slide-39
SLIDE 39

CSC309-S15-L1 Slide 39

Design High-Level Architecture Apply Design Patterns Refine Model and Process Design Refine User Interface Design SCO if necessary from Requirements Spec to Implementation Formally Specify Design Apply Design Heuristics Define SCOs as Necessary Design for Non-Functional Requirements

slide-40
SLIDE 40

CSC309-S15-L1 Slide 40

  • A. Design High-Level Architecture

Design High-Level Architecture from Requirements Spec Derive View Classes from User Interface Derive Model Classes from Objects Derive Model Functions from Operations Derive Packaging from Modules Derive Initial Design from Specification Design Inter-Package Sharing and Communication

...

slide-41
SLIDE 41

CSC309-S15-L1 Slide 41

  • B. Apply Design Patterns

Apply Design Patterns Apply Architectural Design Patterns Apply MVP Design Pattern

...

slide-42
SLIDE 42

CSC309-S15-L1 Slide 42

  • C. Refine

M & P

Refine Model and Process Design Define Member Visibility Define Inheritance and Other Relations Choose Appropriate Data Representations Associate Functions with Classes Objectify Function Signatures Refine Model Class Design Design Process Packages and Classes Design Control Flow Refine Model Class Design

slide-43
SLIDE 43

CSC309-S15-L1 Slide 43

Design process, cont’d

  • D. Refine UI Design
  • 1. The fourth step.
  • 2. Relies heavily on libraries.
  • 3. Commonly-used interface elements and layouts.
  • 4. Model classes must be refined.
  • 5. Particularly useful is "Observer/Observable".
slide-44
SLIDE 44

CSC309-S15-L1 Slide 44

Design process, cont’d

  • E. Design for Non-Functional Requirements
  • 1. Any non-functionals not yet incorporated.
  • 2. Ensure system-related non-functionals are fully

addressed.

slide-45
SLIDE 45

CSC309-S15-L1 Slide 45

Design process, cont’d

  • F. Formally Specify Design
  • 1. As detailed program design established.
  • 2. Precise def of function signatures and pre/post.
  • 3. Derived from pre/posts defined in ops.
slide-46
SLIDE 46

CSC309-S15-L1 Slide 46

Design process, cont’d

  • G. Apply Design Heuristics
  • 1. Applied throughout the process.
  • 2. Minimizing coupling.
  • 3. Maximizing cohesion.
  • 4. Other heuristics, such as controlling size.
slide-47
SLIDE 47

CSC309-S15-L1 Slide 47

Design process, cont’d

  • H. Define SCOs and Iterate Back
  • 1. Aspects of requirements spec may need to be

modified or enhanced.

  • 2. Designer defines a specification change order.
  • 3. In keeping with our "traditional" process.
slide-48
SLIDE 48

CSC309-S15-L1 Slide 48

  • VII. Comments on the 309 Design Process
  • A. Employs a number of design methodologies:
  • 1. UML
  • 2. "Classical" structured design techniques.
  • 3. MVP (Model-View-Process),

(aka, MVC -- Model-View-Controller),

slide-49
SLIDE 49

CSC309-S15-L1 Slide 49

Design process comments, cont’d

  • B. Works for systems with substantial HCIs.
  • C. Also for types of system, with adjustments.
  • D. Types of system without significant HCI:
  • 1. Realtime systems
  • 2. Utility systems
  • 3. Embedded systems
slide-50
SLIDE 50

CSC309-S15-L1 Slide 50

  • VIII. Languages of specification and design.
  • A. Sometimes problems in translation from spec

language into imple’n language.

  • B. Spec lang may differ from prog lang.
  • C. Not the case in 309 this year.
slide-51
SLIDE 51

CSC309-S15-L1 Slide 51 Obects Operations End User Datatypes Functions DERIVED DESIGN REFINED DESIGN Classes

* *

SPECIFICATION

slide-52
SLIDE 52

CSC309-S15-L1 Slide 52