1 / 33

Ectropic Design: Support for Open Source Development

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

susanmjones
Télécharger la présentation

Ectropic Design: Support for Open Source Development

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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?

More Related