Object-Oriented Design

所在平台: Coursera

课程主页: https://www.coursera.org/learn/object-oriented-design

课程评论:没有评论

第一个写评论        关注课程

课程简介

课程名称:面向对象设计 课程概述:本课程旨在帮助Java初学者提升技能,深入探讨面向对象的分析和设计。您将学习如何创建模块化、灵活且可重用的软件,通过应用面向对象设计原则和准则。同时,您将能够使用统一建模语言(UML)以可视化的方式呈现这些设计。在课末的综合项目中,您将应用面向对象设计知识,完善并文档化一个Android应用程序的Java代码库及相应的UML文档。 完成本课程后,您将能够: - 应用类责任协作(CRC)技术分析和设计问题的面向对象模型。 - 解释和应用面向对象建模原则及其目的(例如,抽象、封装、分解、泛化)。 - 解释和应用不同类型的继承。 - 解释关联、聚合和组合依赖的区别。 - 将面向对象模型表达为UML类图。 - 在UML类图和相应的Java代码之间进行转换。 - 应用模块化、关注点分离、信息隐藏和概念完整性等设计准则,创建灵活、可重用、易于维护的设计。 - 解释聚合性与耦合性之间的权衡。 课程大纲: 1. 面向对象分析与设计:良好的软件设计始于编码之前。在确定初始软件需求后,设计实践主要包括两个活动:概念设计和技术设计。本模块将让您认识到设计和面向对象思维的重要性,并学习如何使用CRC卡进行软件设计。 2. 面向对象建模:最佳软件设计实践随着编程语言的发展而演变。今天,所有开发人员都应熟悉抽象、封装、分解和泛化等面向对象设计的基本原则。您将学习这些原则在Java中的表达方式以及如何通过UML进行可视化沟通。 3. 设计原则:额外的设计原则将帮助您创建灵活、可重用和可维护的代码。在此模块中,您将学习耦合性和聚合性、关注点分离、信息隐藏和概念完整性等内容。您还将了解如何避免继承中的常见陷阱,以及如何在UML中表达软件行为。 4. 综合挑战:在前面的模块中,您了解了面向对象的分析和设计、面向对象建模和设计原则。为了巩固对这些内容的理解,您将从一个示例Android代码库创建UML类图,并利用对该代码库的理解制作行为模型的时序图和状态图。在课程的最后一个模块中,根据新的功能描述和更新的UML类图,您将实现更新后的设计到Android代码库中。完成此开发任务后,您将准备好进行期末考试。

课程大纲

Name:Object-Oriented Analysis and Design

Description:Good software design begins before coding. After establishing the initial software requirements, design practices involve two main activities: conceptual design and technical design. In this module, you will realize the importance of design and object-oriented thinking, and learn how to design software using techniques like CRC cards.

Name:Object-Oriented Modeling

Description:Best software design practices have evolved alongside programming languages. Today, all developers should be familiar with abstraction, encapsulation, decomposition, and generalization, which are fundamental principles in object-oriented design. You will learn all of these principles and how they are expressed in Java and communicated visually in Unified Modelling Language.

Name:Design Principles

Description:Additional design principles will help you to create code that is flexible, reusable, and maintainable. In this module you will learn about coupling and cohesion, separation of concerns, information hiding, and conceptual integrity. You will also learn to avoid common pitfalls with inheritance, and ways to express software behavior in UML.

Name:Capstone Challenge

Description:In the previous modules you were introduced to object-oriented analysis and design, object-oriented modeling, and design principles. To cement your understanding of this material, you created a UML class diagram from an example Android code base, and used your understanding of the code base to make sequence and state diagrams to model its behavior. Now, in the final module of the course, given a description of new functionality and an updated UML class diagram, you will implement the updated design into the Android code base. After completing this development task, you will be ready to complete the final exam.

课程评论(0条)

课程详情

This course takes Java beginners to the next level by covering object-oriented analysis and design. You will discover how to create modular, flexible, and reusable software, by applying object-oriented design principles and guidelines. And, you will be able to communicate these designs in a visual notation known as Unified Modelling Language (UML). You will be challenged in the Capstone Project to apply your knowledge of object-oriented design by evolving and documenting the Java codebase for an Android application with corresponding UML documentation. After completing this course, you will be able to: • Apply the Class Responsibility Collaborator (CRC) technique to analyze and design the object-oriented model for a problem. • Explain and apply object-oriented modeling principles and their purpose (e.g., abstraction, encapsulation, decomposition, generalization). • Explain and apply different types of inheritance • Explain the difference between association, aggregation, and composition dependencies. • Express object-oriented models as Unified Modeling Language (UML) class diagrams. • Translate between UML class diagrams and equivalent Java code. • Apply design guidelines for modularity, separation of concerns, information hiding, and conceptual integrity to create a flexible, reusable, maintainable design. • Explain the tradeoff between cohesion and coupling.

课程标签

0人关注该课程

主题相关的课程