Software Development

32
COSC 1P03 Data Structures and Abstraction 2.1 Software Development The leadership instinct you are born with is the backbone. You develop the funny bone and the wishbone that go with it. Elaine Agather

description

Software Development. The leadership instinct you are born with is the backbone. You develop the funny bone and the wishbone that go with it. Elaine Agather. Software Development. Phases Analysis problem statement requirements specification system analysts inputs and outputs - PowerPoint PPT Presentation

Transcript of Software Development

Page 1: Software Development

COSC 1P03

Data Structures and Abstraction 2.1

Software Development

The leadership instinct you are born with is the backbone. You develop the funny bone and the wishbone that go with it.

Elaine Agather

Page 2: Software Development

COSC 1P03

Data Structures and Abstraction 2.2

Software Development

· Phases· Analysis

- problem statement- requirements specification- system analysts- inputs and outputs- system model

· Design- class specifications- architectural plan- system designers

· Coding- coding according to specifications- programmers

Page 3: Software Development

COSC 1P03

Data Structures and Abstraction 2.4

· Testing

- unit level testing- integration testing- system testing- testers

· Debugging- based on test results

· Production- trainers- technical support

· Maintenance- releases- versions

· Documentation- user documentation- technical documentation- technical writers

Page 4: Software Development

COSC 1P03

Data Structures and Abstraction 2.5

Case Study: Grade Report System

· Problem statement· Analysis

- develop requirements specification° refine statement

- determine inputs and outputs° Graphical User Interface (GUI)° report formats

- develop model° select object/classes° determine relationships

Page 5: Software Development

COSC 1P03

Data Structures and Abstraction 2.7

Analysis· Refinement

- marking scheme?· Inputs

- course name- bases and weights for each piece of work- number of students- for each student:

° student #, name and mark for each piece of work- class list

° text file with class (student) information- mark data arrives over time

° requires persistence×binary file

° application to create a new course° application to enter/update mark data final mark

computation application

Page 6: Software Development

COSC 1P03

Data Structures and Abstraction 2.8

Analysis.

· Outputs- forms

° marking scheme info° student info° course info

- Reports° final mark report

× for each studentstudent number and final grade

×summary statistics: course average° others?

Page 7: Software Development

COSC 1P03

Data Structures and Abstraction 2.14

Grade Report Format

Page 8: Software Development

COSC 1P03

Data Structures and Abstraction 2.15

Mark Report Format

Page 9: Software Development

COSC 1P03

Data Structures and Abstraction 2.16

Analysis..

· Object/Classes- nouns in problem specification- candidate objects- eliminate values, duplicates and irrelevant entities

· Model- relationships between classes- multiplicity

Page 10: Software Development

COSC 1P03

Data Structures and Abstraction 2.20

Software Development

Fact is, you saved my life today. But I'd rather it was my fault I got shot than your fault I didn't.

Jack Beauregard to Nobody(My Name is Nobody : 1973)

Page 11: Software Development

COSC 1P03

Data Structures and Abstraction 2.21

Design

· Classes identified in analysis· Additional classes

- implementation classes- main class

· Goal: detailed class descriptions· CRC card

- class- responsibilities- collaborators- four cards, one per class- do responsibilities for knowing first- then responsibilities for doing- fill in collaborators

Page 12: Software Development

COSC 1P03

Data Structures and Abstraction 2.24

Responsibilities for Knowing

· Nouns in problem statement- keep values- others from analysis/experience

· Assign each to a class- consider real-world- don’t duplicate in another class

· Example:- student number and marks in Student- bases and weights in MarkingScheme- average final mark in Course

Page 13: Software Development

COSC 1P03

Data Structures and Abstraction 2.27

Responsibilities for Doing

· Verbs (actions) in problem statement- keep relevant

· Assign each to a class- who knows data?- collaboration to access data

· Example- computing final mark

° Student and MarkingScheme- generate report

° Course and Report- average

° Course· CRC cards

Page 14: Software Development

COSC 1P03

Data Structures and Abstraction 2.32

work

contains

course

marking scheme

student

includes has a

0..n

0..n

finalgrades for

Design Model

Page 15: Software Development

COSC 1P03

Data Structures and Abstraction 2.33

Architecture

· Main class- identified class or new- Course could be part of something larger- could have applications involving a course- new class (FinalGrades)

· Collaborations- who controls interaction?

° i.e. which is client which is server, source of resource

· Architectural plan- persistence

° various applications access information over time° all classes persistent

- sequential processing° Process students in order.

Page 16: Software Development

COSC 1P03

Data Structures and Abstraction 2.34

Detailed Design· Class design

- responsibility for knowing° instance variables

- responsibility for doing° methods

· Interfaces- class specifications including method declarations- methods identified as “doing” in CRCs- accessor and updater methods- fill in parameter types

· Generalization- design for future use

· Forms and Reports- Can be represented by Classes?

Page 17: Software Development

COSC 1P03

Data Structures and Abstraction 2.35

Interfaces

· Specification for classes- constants and method headers only

· No implementation- cannot create objects of interface type- create objects of implementation classes

· Defines a type- can declare variables of interface type- can assign objects of any implementation type

° subtype· Can be compiled

- can be referenced in other classes without an implementation

Page 18: Software Development

COSC 1P03

Data Structures and Abstraction 2.38

Class Design

· Interface Course- accessor methods- updater methods?- other methods

· Interface Student- accessor methods- updater methods?- other methods

Page 19: Software Development

COSC 1P03

Data Structures and Abstraction 2.41

· Interface MarkingScheme- accessor methods- updater methods- other methods

· Interface Work- accessor methods- updater methods- other methods

Page 20: Software Development

COSC 1P03

Data Structures and Abstraction 2.44

Implementation

· Coding by programmers- responsible for a specific class- implementation can be done in any order

· May be multiple applications in system- e.g. Student Records System

° new course setup° mark entry° mark reporting° final grade computation with report*

Page 21: Software Development

COSC 1P03

Data Structures and Abstraction 2.45

Coding· Contract

- interface provides specification- interfaces for other classes

° collaborators – what can be used· Implementation Classes

- implements clause- requirements

· Instance variables- from “knowing” in CRCs- others as needed for implementation

· Methods- As required by the interface- Additional support is provided by private local

methods.

Page 22: Software Development

COSC 1P03

Data Structures and Abstraction 2.46

Class MarkingSchemeImpl

· Persistent· Instance variables· Constructor

- for initial setup· Identified methods

- accessor/updater- apply

° weighted sum- display

· Support (private) methods

Page 23: Software Development

COSC 1P03

Data Structures and Abstraction 2.47

Class StudentImpl

· Persistent· Represents single student· Instance variables· Constructor

- initial setup- initializes marks (-1)

· Identified methods- accessor/updater- calcFinalMark

° delegates to MarkingScheme- update

° for mark update application

Page 24: Software Development

COSC 1P03

Data Structures and Abstraction 2.48

Class WorkImpl

· Persistent· Instance variables· Constructor

- initializes fields- For new course

· Identified methods- accessor/updater

Page 25: Software Development

COSC 1P03

Data Structures and Abstraction 2.49

Class CourseImpl· Persistent – contains students and marking scheme· Instance variables· Constructor

- initial setup only, creation of the object, afterward it becomes persistent.

- initializes classAve (-1)· Identified methods

- accessor/updater- doUpdateMarks, doMarkReport

° other applications- calcFinalGrades

° process each student×Writes a detail line to the report

° compute average° write summary (gets average using course

accessor)- display

· Support methods

Page 26: Software Development

COSC 1P03

Data Structures and Abstraction 2.50

Class MarkingSchemeForm

· Visibility- marking scheme data

· GUI for marking scheme display· Not persistent· Instance variables· Constructor

- builds form· Methods· Local methods

Page 27: Software Development

COSC 1P03

Data Structures and Abstraction 2.51

Main class (FinalGrades)

· Object creation- All persistent object are assumed to exist- The course object is read from disk.

· Course object will be modified (average grade) so this is a file update (1 record)

· Course object does work· Write updated Course object (file)· Cleanup

Page 28: Software Development

COSC 1P03

Data Structures and Abstraction 2.52

Class CourseForm

· Visibility- course data

· GUI for course information display· Not persistent· Instance variables· Constructor

- builds form· Methods· Local methods

Page 29: Software Development

COSC 1P03

Data Structures and Abstraction 2.53

Class FinalGradeReport

· One of the Report types· Not persistent· Instance variables· Constructor

- initializes report on ReportPrinter· Identified methods

- writeDetailLine- writeSummary

° must use accessor to get average (cannot change method header)

· Support methods

Page 30: Software Development

COSC 1P03

Data Structures and Abstraction 2.54

Testing· Class stubs

- collaborator classes?- class stub implements same interface so is pluggable- method stubs

· Test harness- replaces main class for testing- perform desired tests

° test all methods and constructors- repeatable

· Integration testing & system test· Test sets

- sets of test data to test all possibilities- test ends of ranges

° 0, 1 and other number of students° 0, full and other marks

- predicted output- prepare ahead of time and keep on file

Page 31: Software Development

COSC 1P03

Data Structures and Abstraction 2.55

Debugging, Production

& Maintenance· Debugging- apply program to test data- when unexpected output, re-code, re-design and/or re-

analyze° System.out.println

· Production- when satisfies all tests, release to users

· Maintenance- correction of errors found in field (hopefully few)- addition of new features

° re-analyze etc.- change of specification

° re-analyze etc.

Page 32: Software Development

COSC 1P03

Data Structures and Abstraction 2.58

The End