首页 > 其他分享 >159.251 - Software Design and Construction

159.251 - Software Design and Construction

时间:2024-09-16 10:35:49浏览次数:1  
标签:code text 159.251 should metrics Construction Design file your

Massey University159.251 - Software Design and ConstructionAssignment 1

Deadline and Late Submission Penalties

You must submit your final work using the stream submission system no later than 9 October 2024 at 11.59 pm. The penalty is 20% deducted from the total possible mark for every daydelay in submission (one day late – out of 80%, two days late then out of 60% … etc.).You are expected to manage your source code and other deliverables using version control“The Cat Ate My Source Code” is not a valid excuse for a late submission.

Contribution to Final Grade of the Course: 22%

Please read carefully, as there are many parts that you should be aware of.

Overview

You are to work in self-selected pairs (i.e., select your teammate) to create the programdefined below. You will need to use git to manage source code contribution and integrationbetween the two members. All project issues and changes should be tracked using an issue

tracker (set up within your repository).

Note: Both group members will receive the same mark unless it is clear that the work ispredominantly that of a single person. These will be sorted out on a case-by-case basis. Thepartition of the work is entirely up to you and your project partner.Part of this assignment is to become familiar with using git for version control. You must useGitHub for this assignment, and the repository must be private.

IMPORTANT: use the following conventional name for your repository: 251-Assignment1-

2024-FirstName1-FirstName2. For example, if the first student is Sarah and the second

student is Li, then the repository name should be (251-Assignment1-2024-Sarah-Li).After submitting your assignment on Stream, you must send an invitation to your GitHub

repository to one of our markers. After the submission is completed, one of the markers

will contact you to request access to your repository.

Tools Required

  • IDE independent: You may develop this in any IDE or code editor you like! The tools

included here are available for major IDEs and Maven dependencies.

  • Git and GitHub(for version control)
  • GitHub Issue Tracker (for log changes and bugs)
  • Maven (for dependency management and process automation)
  • A code metrics tool
  • Docker for packaging
  • PMD (for code quality check)
  • other libraries to perform the different functionalities (you are free to search and use

any library that will help in implementing any of the functionalities).

Tasks

  1. 1) Developing a text editor program using Java – see details below.
  2. 2) Source code and version control:
  3. a) create and maintain a git repository on your local machine for your source codeand on a remote repository to provide a central server accessible to bothmembers and also accessible for marking.
  1. b) keep an audit trail of commits in the git These will inform part of

the marking.

  1. c) make sure that you actively (almost daily) use git features such as branchingand merging (not only on the last day before submission!).
  1. d) write your configurations in YAML file. You must submit at least oneconfiguration file that works with the text editor. This could be a file with theefault parameters for the text editor, such as the default text format or defaultfont colour.
  1. 3) Log changes and bugs: keep track of changes and issues – use an issue tracker aspart of your version control. Please use the same issue tracker that is provided by yourGit project hosting site (i.e., the “issues” feature in GitHub). This has to be activelyused!
  1. 4) Automation: automate your process so it is easier to load files and generate reports.

Use Maven to declare all dependencies.代写 159.251 - Software Design and Construction  If you are using any external libraries, do not

nclude any jar files with your submission but add them as Maven dependencies! Also,don’t try to change your Maven files into a different format. The pom file shouldbe anXML file.

Build those Maven build tasks in your Continuous Integration (CI) pipeline using GitHubActions. Make sure that the configuration (YAML) file is correctly added.

  1. 5) Readability: ensure you write clean code, correctly handle exceptions, and add

comments to explain your code. Make your code “human-readable!”.

  1. 6) Quality: check the quality of your code and outputs

2a) use code quality tools to report metrics data of your program. The metrics reportgenerated from your code should be submitted. The process should beautomated and included in your Maven dependencies (see Section 2 below).

  1. b) (Bonus) Write unit tests using JUnit to test (at least) the following functionalities:

open, save and search (see details below).

  1. 7) Deployment: package your project and deploy it into a Docket container (a Windows

Docker container (without the need to install or configure the environment). Make sureto include your Docker file with your project, and to include details on howtoload andrun your container in the README file.

Make your own text editor!

  1. The Text EditorYour program is basically a standard text editor (or text processor) – something similar toNotepad, Atom, or Geany. The editor should allow you to write text on it using standard textencoding formats (i.e., ASCII/UTF-8). You should develop this program in Java. Note: astandard text file (mostly) does not need any additional metadata files to assist the reader ininterpretation,

The main functionalities of the text editor are:

- Full GUI access to the application

- Create a menu of options at the top of the editor, similar to the following

The menu should (at least) include the following sub-menus: File, Search, View, and Help

- Implement the following functionalities:

o New function: to create a new (fresh) window.

o Open function: to read other text files (just standard .txt files). This shouldallow users to navigate the file system to select\search for a file.

o The ability to read OpenDocument Text (.odt) files. This is part of the Open function.

o Save function: save text output into .txt file format. This should allow users tonavigate the file system to save the file in a selected drive/location.

o Search: search for text within the screen (this will be tested based on a single

word)

o Exit: to quit the program – close all windows.

o Select text, Copy, Paste, and Cut (SCPC) capabilities.

o Time and Date (T&D): retrieve the current time and data from the OS andplace it at the top of the editor's page.

o About: display the names of both team members and a brief message in apopup message box.

o Print function: allow your editor to print text by connecting it to the local printerin your machine (similar to any other text editor you have used).

3Harder functions

  • ability to read source code files such as .java, .py, .cpp or similar. differentsyntax should be shown in different colours. For example:
  • reading and displaying other file formats beyond txt and source code files:mainly, Rich Text Format (RTF) and OpenDocument Text (ODT) format.Hint: you can use an external library to do so.
  • include a PDF conversion function in your editor, so the file can be saved inPDF format (for standard text files). Use an external library for this, such as

Apache PDFBox.

Note: There is no specific requirement regarding which GUI library you should use, but try tomake your program as cool as possible!

  1. Code Quality and ManagementOnce development is done, you must report metrics data using a metrics tool. You may usea software metrics tool (see some examples above). Code quality report from PMD shouldalso be submitted with your assignment.
  1. a) generate a metrics data report from any software metrics tool (see below for thespecific metrics) and add the report file (.txt or html) to $project$/reports/metrics
  1. b) create a new maven goal called “pmd” that should generate a metrics report using

PMD (see below for the specific metrics) and add the report files to

$project$/reports/pmd.

  • Code Size (per class): Lines of Code (LOC) and Number of Methods (NOM)
  • Code Complexity: Cyclomatic Complexity and code coupling metrics

(Coupling Between Objects (CBO) OR Efferent Coupling).

  • Code Quality Report from PMD. Use only Java Basic rules such as Naming

Convention for classes and variables (extract the full report and include it with

your submission).

Submitting your assignment Submission must be completed on Stream using the Assignment submission site.Share your program on your private GitHub repository with us by sending a shareinvitation to the user. This is to track commits on your Git repository.

Include a README file in the top level of the project

The Readme.md is a file with a Markdown syntax (this should be correctly formatted

as a markdown) that contains:

  1. the names & IDs of BOTH MEMBERS of the group.
  2. clear instructions on how to run your program and if there are any otherdirectories, what they contain.
  1. for each student, a couple of the most significant git commit IDs show thework of each individual member of the group.
  1. a link to your private GitHub repository. A marker will contact you aftersubmission to request access to the repository. Note: there will be a penalty if

the repository is found to be public.

Who submits what?

Only one member of a group should submit a complete project, the other just submitthe Readme.md file:

  • member A: submit (through Stream) a single compressed (e.g., zip or tar) filethat contains the assignment (Maven project files and other configurationfiless without the /target directory)

o name the compressed file with both members’

FirstName_LastName and ID numbers (e.g. Xiaofeng_Liu-87878787-

Susan_Jones-01010101.zip)

  • member B: submit just the README.md file containing your name and that of

标签:code,text,159.251,should,metrics,Construction,Design,file,your
From: https://www.cnblogs.com/qq---99515681/p/18416055

相关文章

  • 自研electron32+vue3+arcoDesign桌面OS系统应用-源码版
    Vue3-ElectronWinOS:基于最新前端跨平台技术electron32.x整合高性能构建工具vite5.js搭建的一款高颜值桌面端os管理系统程序。整个项目采用vue3setup语法糖编码开发,全新封装electron多窗口栅格引擎。【源码版】Electron32+Vue3+ArcoDesign桌面版os系统模板功能特性......
  • QtDesigner控件提升为自定义控件
    创建自定义控件classMyTextEdit(QTextEdit):fanYi=Signal(str,QPoint)def__init__(self,parent=None):super(MyTextEdit,self).__init__(parent)#指定菜单self.setContextMenuPolicy(Qt.CustomContextMenu)#连接菜单函......
  • 广州Altium Designer 软件许可优化实施成功案例
    AltiumDesigner许可证优化助力电子制造企业提效降本实施行业:电子制造与电路设计实施软件:AltiumDesigner软件一、背景概述1.项目背景AltiumDesigner是一款功能强大的电子设计自动化(EDA)工具,广泛应用于电子制造和电路设计领域。某电子制造企业在研发过程中,因电子产品设计日......
  • ENG 5105 Design and Construction of a Wildlife Camera
    ProjectBrief-ENG5105DesignandConstructionofaWildlifeCameraThisdisciplineunitcoordinatorofENG5105electricalstreamisreceivingunwantedguestsntheirgardenduringthenight.Toidentifytheunwantedguests,thcoordinatorhassearched......
  • 3.2 Upload源码分析 -- ant-design-vue系列
    Upload源码分析–ant-design-vue系列源码地址:https://github.com/vueComponent/ant-design-vue/blob/main/components/upload/Upload.tsx1概述本篇是对Upload组件的分析,这个组件调用了vc-upload,是对vc-upload的封装。作用包括:上传数据的管理、上传行为的定义、上传结......
  • [基于 Vue CLI 5 + Vue 3 + Ant Design Vue 4 搭建项目] 05 创建一个 web 项目
    1.通过vuecreate项目名命令创建项目这里创建一个项目名叫做web的项目vuecreateweb选择Manuallyselectfeatures然后摁回车选择了Router和Vuex然后摁回车选择3.x然后摁回车是否使用历史模式,这里y然后摁回车历史模式和非历史模式(Hash模式)主要......
  • [基于 Vue CLI 5 + Vue 3 + Ant Design Vue 4 搭建项目] 03 使用 npm 安装依赖出现 ce
    文章目录问题描述解决问题1.修改镜像源2.清理缓存3.临时禁用SSL证书验证4.再次安装依赖问题描述在使用npminstall进行按安装依赖的时候出现了下面错误npmerrorcodeCERT_HAS_EXPIREDnpmerrorerrnoCERT_HAS_EXPIREDnpmerrorrequesttohttps://registr......
  • ant design使用本地IconFont文件
    先参考这个官网的示例:官网示例:通过设置createFromIconfontCN方法参数对象中的scriptUrl字段,可以使用 iconfont.cn 项目中的图标。在iconfont.cn网站使用symbol方式生成在线链接。 但官网的说明有个问题,就是全部使用的是网络引用,有时候我们需要的环境可能并不是一个有......
  • Power Designer 连接 PostgreSQL 逆向工程生成pd表结构操作步骤以及过程中出现的问题
    、使用PowerDesigner16.5链接pg数据库1.1、启动PD.选择CreateModel…。 1.2、选择Modeltypes/PhysicalDataModelPhysicalDiagram:选择pgsql直接【ok】  1.3、选择connect在工具栏选择Database-Connect…快捷键:ctrl+shift+N.如下图:  1.4、选择配置连接......
  • PowerDesigner 逆向工程 Could not Initialize JavaVM!
    原项目的大量的表,使用PowerDesigner进行逆向工程。提示CouldnotInitializeJavaVM! 网上找到原因,PowerDesigner不可以使用64位JDK环境! 有一种不修改环境变量的方法在PowerDesigner目录下,建立一个启动批处理,如:startup.bat,在其中配置JAVA_HOME、CLASSPATH,如下例所示: ......