OBJECT-ORIENTED SOFTWARE ENGINEERING PDF
By Professor : Glenn David Blank
Prerequisites: Familiarity with a high-level programming language and data structures
Textbooks:
Craig Larman, Applying UML and Patterns, 3rd Edition, Prentice-Hall, 2007. Required. The following online books are recommended:
Bruce Eckel's Thinking in Java,4th edition, with JDK 2 code, is available for free, electronically.
Bruce Eckel's Thinking in C++, 2nd edition, a recommended textbook, is available for free, electronically.
Goals and requirements:
1) To learn object-oriented (OO) analysis and design using UML and other techniques.
Students will practice OO A/D techniques with individually homework exercises: 20%
2) To learn how to OO languages support abstraction and polymorphism.
Students will practice class implementation with dynamic binding in a Java, C++ or C# program: 10%
3) To learn an agile software process, with multiple iterations, design patterns, test-driven development & pair programming.
Student teams will identify real world customers for project requiring OO analysis, design and programming: 60%
Team Project Roles, Deliverables and Grading Criteria: please review!
Team Project Role Assessments (HTML file) (or as Word file, with each role on a separate page).
Each student should evaluate him/herself and each other person with whom he interacts in each role,
and email these assessments to me at the mid-semester project handoff and with the final project submission.
4) To improve communications skills in the contect of software development (crucial!)
Students will present project ideas, analyses, designs, prototypes, etc., through the semester:
5) To explore specialized topics in OO software, such as Eclipse vs. Netbeans vs. Visual Studio, Servlets, JDBC,
components and Javabeans, distributed objects and CORBA, J2EE, .NET, SOAP, JavaFX, etc.
Lecture notes and assignments:
By Professor : Glenn David Blank
Prerequisites: Familiarity with a high-level programming language and data structures
Textbooks:
Craig Larman, Applying UML and Patterns, 3rd Edition, Prentice-Hall, 2007. Required. The following online books are recommended:
Bruce Eckel's Thinking in Java,4th edition, with JDK 2 code, is available for free, electronically.
Bruce Eckel's Thinking in C++, 2nd edition, a recommended textbook, is available for free, electronically.
Goals and requirements:
1) To learn object-oriented (OO) analysis and design using UML and other techniques.
Students will practice OO A/D techniques with individually homework exercises: 20%
2) To learn how to OO languages support abstraction and polymorphism.
Students will practice class implementation with dynamic binding in a Java, C++ or C# program: 10%
3) To learn an agile software process, with multiple iterations, design patterns, test-driven development & pair programming.
Student teams will identify real world customers for project requiring OO analysis, design and programming: 60%
Team Project Roles, Deliverables and Grading Criteria: please review!
Team Project Role Assessments (HTML file) (or as Word file, with each role on a separate page).
Each student should evaluate him/herself and each other person with whom he interacts in each role,
and email these assessments to me at the mid-semester project handoff and with the final project submission.
4) To improve communications skills in the contect of software development (crucial!)
Students will present project ideas, analyses, designs, prototypes, etc., through the semester:
5) To explore specialized topics in OO software, such as Eclipse vs. Netbeans vs. Visual Studio, Servlets, JDBC,
components and Javabeans, distributed objects and CORBA, J2EE, .NET, SOAP, JavaFX, etc.
Lecture notes and assignments:
- Lecture 1: Software process life cycles (Powerpoint). See an overview of Larman's UML process.
- Lecture 2: Inception phase.
- Lecture 3: Requirements analysis and specification
- Lecture 4: More about inception, requirements and use cases
- Lecture 5: Domain modeling
- Lecture 6: System Sequence Diagrams
- Lecture 7: Abstract Data Types and Operation Contracts
- Lecture 8: Interaction Diagrams and Domain Class Diagrams (DCDs)
- Lecture 9: GRASP Design Patterns
- Lecture 10: Visibility of messages
- Lecture 11: Mapping Designs to Code
- Lecture 12: Test-driven and Object-oriented Testing. Lecture on Junit testing tools
- Lecture 13: From Iteration-1 to Iteration-2 (more requirements and refactoring)
- Lecture 14: Pure Fabrication and “Gang of Four” Design Patterns
- AWT, Swing and Graphical User Interfaces
- Activity Diagrams and State Charts for detailed modeling
- Lecture on JDK 1.5 (5.0). Lecture on Java Collections. Lecture on Assertions in Java.
- Domain Model Refinement
No comments:
Post a Comment