Ectropic Design: Support for Open Source Development
description
Transcript of 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
Saturday, April 22, 2023
2
What is Ectropy??
Ectropy = ¬ EntropyEctropy is “order out of chaos”Good Description of Open Source
Development…!
Saturday, April 22, 2023
3
Open Source Success Stories
Linux Linus Torvals
gcc Richard Stallman
python Guido Von Rossum
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.
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!
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
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
Saturday, April 22, 2023
8
Introducing ECode
Ectropic
COllaborative
Design
Environment (pronounced “echoed”)
Saturday, April 22, 2023
9
But First!A Review of OOA/OOD/OOP
A Review of Object Oriented Software Design OOA OOD OOP
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
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!
Saturday, April 22, 2023
12
OOP
Object Oriented Programming Select CRC Cards for Classes Generate Class Stubs Complete Full Implementation of Classes
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!
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.
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
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
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
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
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!
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
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!
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
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
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
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
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”
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
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
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
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
Saturday, April 22, 2023
31
Classroom Experiment
Consent FormsPreliminary SurveyProblems with PrototypeYour feedback is critical!
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
Saturday, April 22, 2023
33
Questions?