User Tools

Site Tools


eiffel:why:petition:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
eiffel:why:petition:start [2020/05/11 19:41]
jonathan [Learning Design by Contract in Eiffel]
eiffel:why:petition:start [2020/05/12 17:16] (current)
jonathan [Learning Design by Contract in Eiffel]
Line 118: Line 118:
     * Evaluation:     * Evaluation:
       * Acceptance tests for design feasibility ​ and correctness       * Acceptance tests for design feasibility ​ and correctness
-      * complete software design document (see [[:​eiffel:​why#​system_design_document_sdd|SDD]]). ​+      * complete software design document (see [[:​eiffel:​why#​system_design_document_sdd|SDD]])
 +      * A software engineering student who completed the course wrote as follows: "//the Project is one of the most important parts of the entire SE curriculum, since it is the only major programming project in 3rd year, similar to the 2311 one, and I would say I took more out of that assignment than any other project I’ve worked on (aside from capstone). It is difficult to create such a complete software design & development scenario, and efforts to shrink the workload through the inclusion of ETF definitely help try to make the process as ’small’ as it could be//".  
 +      * The workload is very high by comparison with other 3 credit courses in large part due to the project, but removing the project would also remove this learning outcome
   * Labtest2   * Labtest2
     * Evaluation of an unbounded undo/redo design pattern     * Evaluation of an unbounded undo/redo design pattern
Line 160: Line 162:
 > 5. EECS3311 places a heavy focus on design by contract. Apart from brief mentions, Test-Driven design or any other type of software design is not explored in depth. This heavy focus on design-by-contract is used as a justification for using the Eiffel language. However, we believe that students should also be able to learn to implement design by contract without explicit contracts - doing so should give students the ability to take away from the design by contract ideology and implement it in the real world with industry-standard programming languages. > 5. EECS3311 places a heavy focus on design by contract. Apart from brief mentions, Test-Driven design or any other type of software design is not explored in depth. This heavy focus on design-by-contract is used as a justification for using the Eiffel language. However, we believe that students should also be able to learn to implement design by contract without explicit contracts - doing so should give students the ability to take away from the design by contract ideology and implement it in the real world with industry-standard programming languages.
  
-By the phrase "​Test-Driven __design__",​ the students probably mean TDD ([[https://​en.wikipedia.org/​wiki/​Test-driven_development#​xUnit_frameworks|Test Driven Development]]),​ which relies on [[https://​en.wikipedia.org/​wiki/​Test-driven_development#​xUnit_frameworks|unit testing frameworks]]. Now unit testing is introduced right at the beginning in Lab0 and used throughout the course; in fact some combination unit testing, specification testing in design, or acceptance testing is used in every lab and the project. TDD is described early on and used repeatedly with the stress on regression testing as new features are introduced in the design. ​+By the phrase "​Test-Driven __design__",​ the students probably mean TDD ([[https://​en.wikipedia.org/​wiki/​Test-driven_development#​xUnit_frameworks|Test Driven Development]]),​ which relies on [[https://​en.wikipedia.org/​wiki/​Test-driven_development#​xUnit_frameworks|unit testing frameworks]]. Now unit testing is introduced right at the beginning in Lab0 and used throughout the course; in fact some combination unit testing, specification testing in design, or acceptance testing is used in every lab and the project. TDD is described early on and used repeatedly with the stress on regression testing ​of design feasibility and correctness ​as new features are introduced in the design. ​
  
 What is also perplexing is that in #4 of the petition, the complaint is that students have not studied testing, and "​students may get a failing grade while passing all test cases if they do not pass the instructors'​ '​hidden'​ test cases, which can cause many issues with grading."​ The hidden tests are precisely there to ensure that students apply the regression testing aspect of TDD. What is also perplexing is that in #4 of the petition, the complaint is that students have not studied testing, and "​students may get a failing grade while passing all test cases if they do not pass the instructors'​ '​hidden'​ test cases, which can cause many issues with grading."​ The hidden tests are precisely there to ensure that students apply the regression testing aspect of TDD.
Line 166: Line 168:
 The petition also claims that "other types of software design is not explored in depth",​ but this is not so as mentioned earlier and described in Design Principles mentioned in [[http://​seldoc.eecs.yorku.ca/​doku.php/​eiffel/​why#​design_principles_covered_in_the_course|why eiffel: Fig 1]]. Many other design principles are covered in depth and applied in many design patterns (covered throughout the course in depth). ​ The petition also claims that "other types of software design is not explored in depth",​ but this is not so as mentioned earlier and described in Design Principles mentioned in [[http://​seldoc.eecs.yorku.ca/​doku.php/​eiffel/​why#​design_principles_covered_in_the_course|why eiffel: Fig 1]]. Many other design principles are covered in depth and applied in many design patterns (covered throughout the course in depth). ​
  
-Ada and Eiffel provide native language support for Design by Contract, but the principle that **specifications** are integral to design carries over to designing in any language. The Unified Modeling Language (UML) is the //de facto// modelling language in software engineering thus supports Design by Contract in the form  of OCL (Object Constraint Language). ​ +Ada and Eiffel provide native language support for Design by Contract, but the principle that **specifications** are integral to design carries over to designing in any language. The Unified Modeling Language (UML) is the //de facto// modelling language in software engineering thus supports Design by Contract in the form  of OCL (Object Constraint Language). For other methods of specification,​ see [[https://​youtu.be/​-4Yp3j_jk8Q|Video:​ Thinking Above the Code]] ​and [[https://​youtu.be/​GMQMzk3DZug|Specifications in Industry]] at AmazonGoogle and Facebook. ​
- +
-For other methods of specification,​ see [[https://​youtu.be/​-4Yp3j_jk8Q|Video:​ Thinking Above the Code]],+
  
 ==== Learning Software Design in Eiffel ==== ==== Learning Software Design in Eiffel ====
Line 174: Line 174:
  
 > 6. In summary, the course does not focus on Software Design, in contradiction with its name. Instead, it focuses on gaining knowledge of the semantics of proprietary,​ obsolete tools and heavy software testing (again - with students that do not know proper test plans and testing patterns). > 6. In summary, the course does not focus on Software Design, in contradiction with its name. Instead, it focuses on gaining knowledge of the semantics of proprietary,​ obsolete tools and heavy software testing (again - with students that do not know proper test plans and testing patterns).
-What we describe above justifies that the use of the Eiffel language, method and tool which allows us to have a clear distinction between implementation and specification,​ and we are thus able to focus on design. The fact that a new language is used should not be a concern, given the amount of resource, as well as scheduled lab hours and TA/​instrutor office hours. ​ 
  
-As mentioned above, student evaluation in the past have been quite positive. ​+In summary, the course focuses on many foundational aspects of design, and a sequence of labs and a significant project allow students to exercise these various design principles. ​As mentioned above, student evaluation in the past have been relatively ​positive. ​
eiffel/why/petition/start.1589226070.txt.gz · Last modified: 2020/05/11 19:41 by jonathan