Ectropic Design: Support for Open Source Development

33
Sunday, October 30, 2022 1 Ectropic Design: Support for Open Source Development Spencer Rugaber, Kathy Gray, Mark Guzdial

description

Ectropic Design: Support for Open Source Development. Spencer Rugaber, Kathy Gray, Mark Guzdial. What is Ectropy??. Ectropy = ¬ Entropy Ectropy is “order out of chaos” Good Description of Open Source Development…!. Open Source Success Stories. Linux Linus Torvals gcc Richard Stallman - PowerPoint PPT Presentation

Transcript of Ectropic Design: Support for Open Source Development

Page 1: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

1

Ectropic Design:Support for Open Source Development

Spencer Rugaber, Kathy Gray,Mark Guzdial

Page 2: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

2

What is Ectropy??

Ectropy = ¬ EntropyEctropy is “order out of chaos”Good Description of Open Source

Development…!

Page 3: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

3

Open Source Success Stories

Linux Linus Torvals

gcc Richard Stallman

python Guido Von Rossum

Page 4: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

4

Open Source Development only works...

When there is a Champion Someone who maintains coherence of the

design over time, Someone who integrates changes in a

reasonable way, Someone who is the recognized authority in

identifying a new release.

Page 5: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

5

Can we do Open Source with an automated Champion?

Imagine a server that: Accepts code from a team of programmers Knows the programmers and their tasks Makes sure that the code meets design

requirements Alerts the team to issues Integrates software to define a “release”

Big job!

Page 6: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

6

Our Solution: Ectropic Software

Ectropic Software evolves over time becoming more highly structured better able to accomplish goals of its users

Ectropic Objects are all bound to the goals they meet

Page 7: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

7

Ectropic Software

Two Key Ideas Ectropic Design

A design method by which order and structure are created from collaborative efforts of multiple, unrelated software developers

Ectrospaceactive collaboration space to support Ectropic

Design

Page 8: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

8

Introducing ECode

Ectropic

COllaborative

Design

Environment (pronounced “echoed”)

Page 9: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

9

But First!A Review of OOA/OOD/OOP

A Review of Object Oriented Software Design OOA OOD OOP

Page 10: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

10

OOA

Object Oriented Analysis (OOA) Requirements Analysis Use of Scenarios in Requirements Analysis Build List of Collaborator-Responsibility Cards

(CRC Cards) Distribute Responsibilities Among CRC Cards

Page 11: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

11

OOD

Object Oriented Design Complete all Scenarios with Responsibility-

CRC Card Pairs Add Method Names, with method categories

and descriptions Integrity Check!

Page 12: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

12

OOP

Object Oriented Programming Select CRC Cards for Classes Generate Class Stubs Complete Full Implementation of Classes

Page 13: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

13

ECODE

Ectropic Collaborative Design Environment A design tool to assist you in mapping an

Object-oriented design process to Ectropic A non-collaborative prototype release For design purposes - not to replace the

Squeak programming environment!

Page 14: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

14

Getting Started with Ecode

Download and filein from the class coweb: Ectropic-Basic.st Ectropic-Views.st

Copy to your Squeak folder: logo.gif

Save your image.

Page 15: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

15

Ectropic Objects• EctropicDesign

• has Scenario(s) and CRCCard(s)• Scenario

• has Responsibility/CRCCard pairs• CRCCard

• has Responsibility(s)• Responsibility

• has a Method and possibly a CRCCard collaborator

Page 16: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

16

Main Ecode Approach

• Analysis Mode• Determine CRCCards and Responsibilities

using Scenarios• Design Mode

• Distribute Responsibilities to CRCCards and create a Method for all Responsibilities

• Program Mode• Create Class stubs from selected CRCCards

Page 17: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

17

Analysis Mode

Requirements Analysis Use Scenarios to Help with Requirements

Analysis Build List of Collaborator-Responsibility Cards

(CRC Cards) Distribute Responsibilities Among CRC Cards

Page 18: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

18

Scenarios Help with Design!

Determine a Scenario for a TaskBuild the Scenario, step-by-step by creating

a set of ResponsibilitiesAssign each Responsibility to a CRCCardECoDE will allow you to select or create

CRCCardsAll Responsibilities should be assigned to or

removed

Page 19: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

19

Design Mode

Complete all Scenarios with Responsibility-CRC Card Pairs

Add Method Names, with method categories and descriptions

Integrity Check!

Page 20: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

20

Integrity Check

When shifting to Program Mode, ECoDE makes a quick integrity check for you Are all responsibilities assigned to

CRCCards? Do all responsibilities have associated

method names? You have the option to continue

Page 21: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

21

Program Mode

Select CRC Cards for Classes

Generate Class StubsParent ClassInstance Variables

Complete Full Implementation of ClassesIn a System Browser!

Page 22: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

22

Compile Errors

This version of ECoDE will not catch all compile errors

When generating code, if you get the pink compile error Abandon Correct your code Retry

Page 23: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

23

Completing the Implementation

ECoDE is not intended to replace the built-in programming environment in Squeak

It is a design tool – which will generate Class stubs for you

It is highly recommended that you switch to a System Browser when completing your implementation

Page 24: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

24

Saving Your Work – 2 Ways

Save Project (for turnin) Snapshot of your image as a .pr file Many open windows = long long time! BUT main ECoDE window MUST be open!

Save Saves your design with a simple fileout Saves a .ect file and a .st file

Page 25: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

25

Loading Designs

When loading your design (not as project) ECoDE loads the corresponding .st file MAKE SURE the .st file in the same directory

with your .ect file is the MOST RECENT copyOf course you can always close and retry

without saving image

Page 26: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

26

Critical Reminders!

Copy logo.gif to your squeak directoryWhen transferring saved designs, you

need to transfer both designName.ect file designName.st file (MOST RECENT!)

When saving project for turnin, USE ECoDE for save, NOT Squeak Navigator “Publish It”

Page 27: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

27

UML Options

In Squeak, ConnectorMorphsRational RoseVisioHand-draw diagrams and scanPower-point drawings

See http://coweb.cc.gatech.edu/cs2340/2112

Page 28: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

28

Turnin

See http://coweb.cc.gatech.edu/cs2340/1937 for details

TA’s want PROJECTS!!But if any problems saving as project

Do regular save Turnin .ect and .st files along with diagrams

Page 29: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

29

Technical Assistance

Kathy Gray, kgray@cc Office hours: Tuesday, 1:30 – 3:00

Jonathan D’Andries, bane@cc Office hours: Wednesday, 11 – 1

Page 30: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

30

ECoDE on CoWeb

ECoDE on CoWeb from class admin page) http://coweb.cc.gatech.edu/cs2340/2100

Defect LogUsability LogComments/Feedback/Suggestions

Page 31: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

31

Classroom Experiment

Consent FormsPreliminary SurveyProblems with PrototypeYour feedback is critical!

Page 32: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

32

Advice!

Design before coding!Save and manage saved files wellTeams should consider configuration

management with Designs!Back up your workReport Bugs immediately

Page 33: Ectropic Design: Support for Open Source Development

Saturday, April 22, 2023

33

Questions?