slide1 n.
Skip this Video
Loading SlideShow in 5 Seconds..
Ectropic Design: Support for Open Source Development PowerPoint Presentation
Download Presentation
Ectropic Design: Support for Open Source Development

play fullscreen
1 / 33
Download Presentation

Ectropic Design: Support for Open Source Development - PowerPoint PPT Presentation

leann
196 Views
Download Presentation

Ectropic Design: Support for Open Source Development

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Ectropic Design:Support for Open Source Development Spencer Rugaber, Kathy Gray,Mark Guzdial

  2. What is Ectropy?? • Ectropy = ¬ Entropy • Ectropy is “order out of chaos” • Good Description of Open Source Development…!

  3. Open Source Success Stories • Linux • Linus Torvals • gcc • Richard Stallman • python • Guido Von Rossum

  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.

  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!

  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

  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 • Ectrospace • active collaboration space to support Ectropic Design

  8. Introducing ECode Ectropic COllaborative Design Environment (pronounced “echoed”)

  9. But First!A Review of OOA/OOD/OOP • A Review of Object Oriented Software Design • OOA • OOD • OOP

  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

  11. OOD • Object Oriented Design • Complete all Scenarios with Responsibility-CRC Card Pairs • Add Method Names, with method categories and descriptions • Integrity Check!

  12. OOP • Object Oriented Programming • Select CRC Cards for Classes • Generate Class Stubs • Complete Full Implementation of Classes

  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!

  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.

  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

  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

  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

  18. Scenarios Help with Design! • Determine a Scenario for a Task • Build the Scenario, step-by-step by creating a set of Responsibilities • Assign each Responsibility to a CRCCard • ECoDE will allow you to select or create CRCCards • All Responsibilities should be assigned to or removed

  19. Design Mode • Complete all Scenarios with Responsibility-CRC Card Pairs • Add Method Names, with method categories and descriptions • Integrity Check!

  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

  21. Program Mode • Select CRC Cards for Classes • Generate Class Stubs • Parent Class • Instance Variables • Complete Full Implementation of Classes • In a System Browser!

  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

  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

  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

  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 copy • Of course you can always close and retry without saving image

  26. Critical Reminders! • Copy logo.gif to your squeak directory • When 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”

  27. UML Options • In Squeak, ConnectorMorphs • Rational Rose • Visio • Hand-draw diagrams and scan • Power-point drawings • See http://coweb.cc.gatech.edu/cs2340/2112

  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

  29. Technical Assistance • Kathy Gray, kgray@cc • Office hours: Tuesday, 1:30 – 3:00 • Jonathan D’Andries, bane@cc • Office hours: Wednesday, 11 – 1

  30. ECoDE on CoWeb • ECoDE on CoWeb • from class admin page) • http://coweb.cc.gatech.edu/cs2340/2100 • Defect Log • Usability Log • Comments/Feedback/Suggestions

  31. Classroom Experiment • Consent Forms • Preliminary Survey • Problems with Prototype • Your feedback is critical!

  32. Advice! • Design before coding! • Save and manage saved files well • Teams should consider configuration management with Designs! • Back up your work • Report Bugs immediately

  33. Questions?