FotoGazmic Software (From left to right: Chad Zbinden, Josey Baker, Rob Mills, Myra Bergman, Tinate...

Preview:

Citation preview

FotoGazmic FotoGazmic SoftwareSoftware

(From left to right: Chad Zbinden, Josey Baker, Rob Mills, Myra Bergman, Tinate Dejtiranukul)

Client & End UserClient & End User

Professor Bernard Waxman

Upper ManagementUpper Management

Professor Xudong Yu

Organization PlanOrganization Plan

Myra BergmanLead Analyzer

Dr. Bernard Waxman

Client

Dr. Xudong YuUpper Management

Josey BakerLead Documenter

Robert MillsProject Leader

Tinate Dejtiranukul

Lead Tester

Chad ZbindenLead Designer

Purpose of the SystemPurpose of the System Image Enhancement Image Enhancement

Color & DensityColor & Density Select Portions of the Image and Select Portions of the Image and

IdentifyIdentify Predetermined List of Object Types Predetermined List of Object Types

Automatically Detect an 18% Gray Automatically Detect an 18% Gray CardCard

Gray CardGray Card

A card that reflects a known A card that reflects a known percentage of the light falling on it.  percentage of the light falling on it. 

Has a neutral gray finish that has an Has a neutral gray finish that has an 18 percent reflectance.18 percent reflectance.

Used to provide a known gray tone Used to provide a known gray tone in color work.in color work.

Gray Card CorrectionGray Card Correction

Original Image Corrected Image

• This example shows the Global Enhancement correction applied to the main image.

Objectives and Success Objectives and Success CriteriaCriteria

Document, Design, Implement, and Document, Design, Implement, and ProduceProduce

Software can Run on any PC that meets Software can Run on any PC that meets the Hardware Requirements the Hardware Requirements

Simplify the Task of Color and Density Simplify the Task of Color and Density Correction Correction

Enhance the Overall Quality of Digital Enhance the Overall Quality of Digital ImageImage

Functional Requirements Functional Requirements

Graphical User Interface Graphical User Interface Open, Read, Display, and Save TIFF Open, Read, Display, and Save TIFF

images images Preview FeaturePreview Feature One Level Undo FeatureOne Level Undo Feature Correction Correction

Automatic and Manual CorrectionsAutomatic and Manual Corrections Single selection or multiple selectionsSingle selection or multiple selections Full Amount or Percentage of Suggested Full Amount or Percentage of Suggested

CorrectionCorrection Entire Image or Selected Portion(s) Entire Image or Selected Portion(s)

Functional (cont.)Functional (cont.) Selection Tool Selection Tool

Pixel Group, Ellipse, or RectanglePixel Group, Ellipse, or Rectangle Identify the Area Identify the Area

Predetermined List of Object Types Predetermined List of Object Types Suggested Correction Suggested Correction

Stored RGB ValuesStored RGB Values

Functional (cont.)Functional (cont.)

Image DisplayImage Display Default—1 to 1Default—1 to 1

Display Options Display Options Zoom Capability Zoom Capability Scroll Bars Scroll Bars

Nonfunctional Nonfunctional RequirementsRequirements

User Interface and Human FactorsUser Interface and Human Factors Simple, User-friendly Graphical Interface Simple, User-friendly Graphical Interface Tool Selection Palette Tool Selection Palette Integrated Help System Integrated Help System

DocumentationDocumentation Well DocumentedWell Documented

Hardware ConsiderationHardware Consideration IBM compatible IBM compatible 1 Ghz Pentium IV, 256 MB Ram1 Ghz Pentium IV, 256 MB Ram 24-bit true color, 1280x1024 - graphics 24-bit true color, 1280x1024 - graphics

cardcard

Nonfunctional (cont.)Nonfunctional (cont.)

Performance CharacteristicsPerformance Characteristics Perform Corrections in a Timely Perform Corrections in a Timely

Manner Manner Error Handling and Extreme Error Handling and Extreme

ConditionsConditions Program Should Program Should NOT NOT Crash Crash Appropriate Error MessagesAppropriate Error Messages

Nonfunctional (cont.)Nonfunctional (cont.)

Quality IssuesQuality Issues High Quality Corrected ImagesHigh Quality Corrected Images Minimal Distortion Minimal Distortion Aesthetically Correct Aesthetically Correct

Density and ColorDensity and Color System ModificationsSystem Modifications

Easy to Modify Without Major Changes Easy to Modify Without Major Changes to System Designto System Design

Possibility for Further DevelopmentPossibility for Further Development

Use Case ModelUse Case Model

Assistance

InterfaceEnhance

View

File Control

Client PC

ArchitectureArchitecture

SubsystemsSubsystems

File Control File Control Initialize system variablesInitialize system variables Open, close, and save images Open, close, and save images Undo the last action Undo the last action ExitExit

Subsystems (cont.)Subsystems (cont.)

View View Display an image to the screenDisplay an image to the screen Zoom functionalityZoom functionality Scrolling functionalityScrolling functionality

Subsystems (cont.)Subsystems (cont.)

Enhance Enhance Manual and auto enhancement functionalityManual and auto enhancement functionality Find Gray CardFind Gray Card Selection toolsSelection tools

Pixel groupPixel group EllipseEllipse RectangleRectangle

Draw, Identify, and Average selectionsDraw, Identify, and Average selections Global or local changeGlobal or local change Correction factorCorrection factor

Subsystems (cont.)Subsystems (cont.)

AssistanceAssistance Integrated help featureIntegrated help feature

ReferenceReference

Subsystem Subsystem DecompositionDecomposition

Persistent Data Persistent Data ManagementManagement

All persistent data is stored using a All persistent data is stored using a file system. file system.

TIFF files are used to store the TIFF files are used to store the images files.images files.

RGB values for the predetermined RGB values for the predetermined object types are stored in a text file object types are stored in a text file containing markup tags.containing markup tags.

Stored Objects FileStored Objects File<n>Grass<v>131, 157, 59<e><s2>Caucasion<s1>Skin<n>Average<v>200, 145,

120<e><s2>Indian<s1>Skin<n>Average<v>175, 115, 65<e><s2>African<s1>Skin<n>Light<v>191, 140, 110<e><s2>African<s1>Skin<n>Medium<v>170, 135,

90<e><s2>African<s1>Skin<n>Dark<v>115, 80, 70<e><end>

Main InterfaceMain Interface

Main InterfaceMain Interface

• Main interface with a TIFF image loaded.

Find Gray CardFind Gray Card

Select Gray CardSelect Gray Card

• Allows user to manually select gray card

Auto Enhance PreviewAuto Enhance Preview

• Dynamically displays preview of changes as the slider control is moved.

Manual Enhance PreviewManual Enhance Preview

• Dynamically displays preview of changes as the slider control is moved.

Manual Enhance PreviewManual Enhance Preview

• Dynamically displays local and global change as radio button is changed.

Process PlanProcess Plan

Evolutionary Delivery Evolutionary Delivery Client Client

Early PrototypeEarly Prototype Early DiscoveryEarly Discovery

Difficulties with Specific FeaturesDifficulties with Specific Features DeliveryDelivery

Product with the Most Important Product with the Most Important FunctionalityFunctionality

No room for extension of deadline No room for extension of deadline

Process Plan (cont.)Process Plan (cont.)

SchedulesSchedules

Schedules (cont.)Schedules (cont.)

Schedules (cont.)Schedules (cont.)ID Task Name Assigned to: Start Finish Duration

Nov 2003Oct 2003

11/1611/98/17 12/78/24 10/58/31 10/269/219/7 10/12

1

3

4

7

9

10

13

14

15

16

20

120d12/12/20038/15/2003Website

25d9/8/20038/15/2003File ControlSubsytem

18d9/1/20038/15/2003Chad, Josey

0d9/3/20039/3/2003Rob, Myra

25d10/2/20039/8/2003DisplaySubsystem

18d9/25/20039/8/2003Chad, Josey

0d9/27/20039/27/2003Rob, Myra

6d10/2/20039/27/2003All

25d10/26/200310/2/2003EnhanceSubsystem

18d10/19/200310/2/2003Chad, Josey

6d10/26/200310/21/2003All

16d11/10/200310/26/2003Chad, Josey

Dec 2003

28

27

22

26d12/12/200311/17/2003Testing

7d11/23/200311/17/2003Tinate

7d11/30/200311/24/2003Tinate29

31 7d12/16/200312/10/2003FinalPresentation

8 6d9/8/20039/3/2003All

19 0d10/21/200310/21/2003Rob, Myra

21 22d11/16/200310/26/2003AssistanceSubsystem

25 0d11/12/200311/12/2003Rob, Myra

26 6d11/17/200311/12/2003All

12d12/12/200312/1/2003Rob, Myra30

33

32 7d12/16/200312/10/2003Rob

0d12/16/200312/16/2003All

Aug 2003

9/289/14

Sep 2003

11/2310/19 11/2 11/30

2 120d12/12/20038/15/2003Rob, TinateUpdate website

Develop

Present prototype

Revise

Develop

Present prototype

Revise

Develop

Present prototype

Revise

Develop

Present prototype

Revise

Integration test

System test

Acceptance test

Make presentation

Final presentation

Subtask

5

6

11

12

17

18

23

24

1d9/1/20039/1/2003TinateTest

3d9/3/20039/1/2003AllRevise

1d9/25/20039/25/2003TinateTest

3d9/27/20039/25/2003AllRevise

1d10/19/200310/19/2003TinateTest

3d10/21/200310/19/2003AllRevise

1d11/10/200311/10/2003TinateTest

3d11/12/200311/10/2003AllRevise

ImplementationImplementation

Implementation (cont.)Implementation (cont.)

Development PlatformDevelopment Platform Microsoft Visual C++ 6.0Microsoft Visual C++ 6.0

User Interface User Interface Microsoft Foundation ClassMicrosoft Foundation Class

Underlying system Underlying system C++C++ CxImage LibraryCxImage Library

Open source libraries for image processingOpen source libraries for image processing

DemonstrationDemonstration

FotoGazmic SoftwareFotoGazmic Software

Module TestingModule Testing

Performed numerous test cases on Performed numerous test cases on each code moduleeach code module

Documented test cases and resultsDocumented test cases and results Lead tester in chargeLead tester in charge

Integration TestingIntegration Testing

Individual ComponentsIndividual Components Assessed Dependencies of ModulesAssessed Dependencies of Modules

ID Task Name Subtask Name Assigned to: Start Finish DurationNov 16 2003

16

2

3

7d11/23/200311/17/2003IntegrationTesting

1d11/17/200311/17/2003TinateAdd File module

1d11/17/200311/17/2003TianteAdd Display module

1

2018 22211917

7

6

5

4 1d11/18/200311/18/2003TinateAdd Select module

1d11/18/200311/18/2003TinateAdd GrayCard module

1d11/19/200311/19/2003TinateAdd Enhancement module

1d11/19/200311/19/2003TinateAdd Help module

8 5d11/23/200311/19/2003AllRevise

23 24

System TestingSystem Testing

Ensured Functional and Ensured Functional and Nonfunctional RequirementsNonfunctional Requirements

Included Functional and Performance Included Functional and Performance TestingTesting

ID Task Name Subtask Name Assigned to: Start Finish Duration23

2

7d11/30/200311/24/2003System Testing

3d11/26/200311/24/2003TinateSystem test scenarios

1

2825 12624

3 5d11/30/200311/26/2003AllRevise

Nov 23 2003

27 3029

Acceptance TestingAcceptance Testing

Internal Acceptance TestInternal Acceptance Test Team MembersTeam Members

Acceptance Test with ClientAcceptance Test with Client

Deployment & TrainingDeployment & Training

Installation PlanInstallation Plan We did not install the FotoGazmic We did not install the FotoGazmic

software package on any of the clients’ software package on any of the clients’ computers.computers.

Source code and a compiled executable Source code and a compiled executable are available on our project web site.are available on our project web site.

Full documentation of the software is Full documentation of the software is provided.provided.

Installation is accomplished using a Installation is accomplished using a standard setup package.standard setup package.

Deployment & Training Deployment & Training (cont.)(cont.)

For FotoGazmic users, we have For FotoGazmic users, we have created:created: An integrated help systemAn integrated help system

Retrospective ThoughtsRetrospective Thoughts

We needed better version controlWe needed better version control Evolutionary delivery worked Evolutionary delivery worked

extremely wellextremely well Dividing the project among team Dividing the project among team

members worked wellmembers worked well We learned a lot about software We learned a lot about software

development & project planningdevelopment & project planning Creating a system from the ground up Creating a system from the ground up

was quite difficult!was quite difficult!

Questions?Questions?

Recommended