面向对象代写:Object Oriented Design FIT2099

面向对象设计 (OOD) 是使用面向对象的方法来设计计算系统或应用程序的过程。这种技术可以实现基于对象概念的软件解决方案。

在面向对象的系统设计和开发中,OOD 有助于设计系统架构或布局——通常在完成面向对象分析 (OOA) 之后。设计的系统随后使用基于面向对象的技术和/或面向对象的编程语言 (OOPL) 创建或编程。

OOD 过程将概念系统模型、用例、系统关系模型、用户界面 (UI) 和其他分析数据作为 OOA 阶段的输入。这在 OOD 中用于识别、定义和设计系统类和对象,以及它们的关系、接口和实现。

面向对象软件开发的阶段

  • 面向对象分析

在这个阶段,制定问题,识别用户需求,然后基于现实世界的对象建立模型。该分析生成了有关所需系统应如何运行以及必须如何开发的模型。这些模型不包括任何实现细节,因此任何非技术应用专家都可以理解和检查它。

  • 面向对象设计

系统设计:在这个阶段,设计所需系统的完整架构。该系统被设想为一组交互子系统,这些子系统又由交互对象的层次结构组成,分组为类。系统设计是根据系统分析模型和建议的系统架构来完成的。这里,重点是构成系统的对象,而不是系统中的过程。

对象设计:在此阶段,基于系统分析阶段开发的模型和系统设计阶段设计的体系结构开发设计模型。标识了所有需要的类。所识别的类之间的关联被建立并且类的层次被识别。此外,开发人员设计类的内部细节及其关联,即每个属性的数据结构和操作的算法。

  • 面向对象的实现和测试

在这个阶段,在对象设计中开发的设计模型被翻译成适当的编程语言或软件工具的代码。创建数据库并确定特定的硬件要求。一旦代码成形,就会使用专门的技术对其进行测试,以识别和消除代码中的错误。

Object Oriented Design FIT2099代写实例

Q1.

You have joined a team that is working on a fully-featured version of the Star Wars game, complete with a graphical user interface, for commercial release. It’s planned to re-use the engine code (which has gained 3 lot of new features, including GUI support) for similar games in the future. The game runs reasonably well, but when you look at the engine code you discover that it contains a lot of “cut-and-paste reuse” – that is, repeated similar sequences of code, sometimes with a few very small changes.

a) Why do software engineers consider repeated code to be a bad thing? Write a paragraph or two about the risks of cut-and-paste reuse.

b) Describe how you would go about fixing the code to reduce these risks.

Q2.

In mathematics, an integer is a number that is the member of the set {…,-2, -1, 0,1, 2,…}

A rational number is any number that can be expressed as a fraction p/q, where p and q are integers and q is not 0.

Trivially, any integer x can be unambiguously expressed as a rational number x/1, so any integer is also a rational number.

Imagine you wished to define two classes, mylnteger and myRational, that (initially) support the following operations:

• Constructing new objects with an initial value

• Incrementing the value by the value of another mylnteger or myRational object. Consider two class diagrams below that show proposed inheritance relationships between mylnteger and myRational

面向对象代写

a) In a couple of paragraphs, explain the advantages and disadvantages of both proposal A and proposal B, considering the design principles relating to inheritance discussed in FIT2099.

b) Propose an alternative design that avoids the disadvantages of both proposal A and proposal B. Draw a class diagram to illustrate it, and explain clearly how your proposal would implement the required operation.

Q3.

Consider the following Java source code implementing a Unit class for a system similar to JavaUniversity 
from your labs: 
 
/** 
 * Represents a Unit at the university. 
 * 
 * @author Robert Merkel 
 */ 
public class Unit { 
 
 // the unit name 
 private String name; 
   
 // a list of assessments for this unit 
 // invariant: the weight of all the assessments in this list must ALWAYS sum to 
100. 
 private ArrayList<Assessment> assessments; 
   
 /** 
   *  
   * @param name the unit name 
   * @param code the unit code 
   * @param assessments the assessments for this unit. Their weights must sum to 
exactly 100. 
   * @throws Exception if the assessment weights do not sum to 100. 
   */ 
 public Unit(String name, String code, Collection<Assessment> assessments) throws 
Exception { 
    this.name = name; 
    int totalweight = 0; 
    for(Assessment a: assessments) { 
   totalweight += a.getWeight(); 
    } 
    if (totalweight  = 100) { 
   throw(new Exception("Assessment weights do not sum to 100")); 
    } 
    this.assessments = new ArrayList<Assessment>(assessments); 
  } 
 
 /** 
   * Simple getter for unit name 
   * @return the unit name 
   */ 
 public String getName() { 
    return name; 
  } 
   
 /** 
   * Simple getter for the list of assessments 
   * @return the assessment lists 
   */ 
 public ArrayList<Assessment>getAssessments() { 
    return assessments; 
  } 
}

contact

Assignment Exmaple

Recent Case

Service Scope

C|C++|Java|Python|Matlab|Android|Jsp|Prolo
g|MIPS|Haskell|R|Linux|C#|PHP|SQL|.Net|Hand
oop|Processing|JS|Ruby|Scala|Rust|Data Mining|数据库|Oracle|Mysql|Sqlite|IOS|Data Mining|网络编程|多线程编程|Linux编程操作系统|计算机网络|留学生|编程|程序|代写|加急|个人代写|作业代写|Assignment

Wechat:maxxuezhang

wechat