目录

前言

一、开发团队调度管理模块

1.模块功能说明

2.模块结构

3. 模块运行效果

二、开发项目管理模块

1.模块功能说明

2.模块结构

3.模块运行效果

三、程序运行主界面类

四、完整源代码链接


前言

       这篇博客的内容是接着我的上一篇博客《Java小白实践项目初体验——项目开发团队分配管理软件(一)》。因为篇幅限制,上一篇博客只给小伙伴们分享了项目的前两个模块,这次我给大家分享下剩下的两个模块:开发团队调度管理模块、开发项目管理模块。


一、开发团队调度管理模块

1.模块功能说明

① 实现添加团队功能

  • 查看当前团队成员列表子功能
  • 添加团队成员子功能(添加后该开发人员的状态要变为false)
  • 删除团队成员子功能(删除后该开发人员的状态要变为true)

② 实现查看团队功能

       列出所有的团队,当没有团队时要给出提示。

③ 实现删除团队功能

       当没有团队或用户输入的团队编号有误时给出提示;删除后该团队所有成员的状态要变为true。

    添加团队成员子功能中,包含以下几种失败信息:(需要抛出自定义异常)

  1. 成员已满,无法添加
  2. 该成员不是开发人员,无法添加
  3. 该员工已在本开发团队中
  4. 该员工已是某团队成员
  5. 团队中至多只能有一名架构师(以下判断可借用instanceof进行判断)
  6. 团队中至多只能有两名设计师
  7. 团队中至多只能有三名程序员

2.模块结构

与开发团队调度管理模块相关的类有3个:TeamException、TeamService和TeamView。

java开发小组模式 java项目小组一般几个人_java开发小组模式

    1)TeamException类

       本类是自定义异常类,目的是添加团队成员时可根据情况抛出自定义异常,它的代码非常简单(代码如下所示)。

package com.team.service;

public class TeamException extends Exception{
    public TeamException() {
    }

    public TeamException(String message) {
        super(message);
    }
}

    2)TeamService类结构

java开发小组模式 java项目小组一般几个人_System_02

TeamService类包含10个方法。首先是3个主功能实现方法:addTeam方法是实现添加团队的功能,getAllTeam方法是实现查看团队的功能,removeTeam方法是实现删除团队的功能。

       然后是添加团队主功能里的3个子功能实现方法:getTeam方法是实现查看当前团队成员列表的子功能,addMember方法是实现添加团队成员的子功能(本方法中要注意根据不同情况抛出相应的自定义异常),removeMember方法是实现删除团队成员的子功能。

最后是私有的仅供本类addMember方法调用的4个团队成员判断方法,作用是为了判断团队成员的组成情况,以便抛出异常。isBelongTeam方法是判断待添加成员对象是否在当前团队中;isHaveArchitect方法是当待添加成员对象是架构师时,判断当前团队中是否已经有一名架构师;isHaveDesigner方法是当待添加成员对象是设计师时,判断当前团队中是否已经有两名设计师;isHaveProgrammer方法是当待添加成员对象是程序员时,判断当前团队中是否已经有三名程序员。

    3)TeamView类结构

java开发小组模式 java项目小组一般几个人_后端_03

TeamView类包含8个方法。首先是developTeamMainMenu方法,该方法是实现开发团队调度管理主菜单。接下来是addTeamView、allTeamShow和removeTeamView方法,这三个方法分别实现添加团队、查看团队和删除团队这三个主功能的交互界面(这三个方法都是private,仅供本类developTeamMainMenu方法调用)。

然后是teamShowView、addMemberView和removeMemberView方法,这三个方法分别实现查看团队成员列表、添加团队成员和删除团队成员这三个子功能的交互界面(这三个方法都是private,仅供本类addTeamView方法调用)。最后是teamShow方法,本方法是打印当前团队成员列表(这个方法也是private,仅供本类teamShowView、removeMemberView方法调用)。

3. 模块运行效果

添加团队:

java开发小组模式 java项目小组一般几个人_java开发小组模式_04

添加团队成员(添加团队里的子功能):

java开发小组模式 java项目小组一般几个人_java_05

团队成员列表(添加团队里的子功能):

java开发小组模式 java项目小组一般几个人_javase_06

    删除团队成员(添加团队里的子功能):

java开发小组模式 java项目小组一般几个人_java_07

查看团队:

java开发小组模式 java项目小组一般几个人_后端_08

    删除团队:

java开发小组模式 java项目小组一般几个人_System_09


二、开发项目管理模块

1.模块功能说明

① 实现项目的添加功能

       根据给出的参考项目添加(不能重复添加同一个项目)。

② 实现项目分配开发团队功能

       项目随机分配给一个空闲的开发团队(没有空闲团队要给成相应提示,没有添加项目也要给出相应提示)。

③ 实现项目的查看功能

       可以查看所有项目的相关信息以及项目的开发状态(没有添加项目给出相应提示)。

④ 实现项目的删除功能

       可以将未被开发的项目删除(开发中的项目不能删除)。

2.模块结构

与开发项目管理模块相关的类有3个:Project、ProjectService和ProjectView。

java开发小组模式 java项目小组一般几个人_后端_10

    1)Project类的设计

Project类的UML类图如下:

java开发小组模式 java项目小组一般几个人_后端_11

小伙伴们可根据自身需要提供各属性的get/set方法以及重载构造器等其他方法。

    2)ProjectService类结构 

java开发小组模式 java项目小组一般几个人_javase_12

ProjectService类包含6个方法。前4个是主要方法,addProject方法是实现项目的添加功能,dealingPro方法是实现项目分配开发团队功能,getPro方法是实现项目的查看功能,delPro方法是实现项目的删除功能。后2个是辅助方法, isNotDeveloped方法是判断是否有未被开发的项目,isAdded方法是判断项目是否已被添加到集合中(此方法是private,仅供本类addProject方法调用)。

    3)ProjectView类结构

java开发小组模式 java项目小组一般几个人_java开发小组模式_13

       ProjectView类包含5个方法。首先是projectManageMainMenu方法,该方法是实现开发项目管理主菜单。然后是addProjectView、dealingProView、showPro和delProView方法,这四个方法分别实现项目的添加功能交互界面、项目分配开发团队交互界面、项目的查看展示和项目的删除交互界面(这四个方法都是private,仅供本类projectManageMainMenu方法调用)。

3.模块运行效果

项目的添加:

java开发小组模式 java项目小组一般几个人_后端_14

    项目分配开发团队:

java开发小组模式 java项目小组一般几个人_System_15

    项目的查看:

java开发小组模式 java项目小组一般几个人_System_16

java开发小组模式 java项目小组一般几个人_java开发小组模式_17

    项目的删除:

java开发小组模式 java项目小组一般几个人_System_18


三、程序运行主界面类

IndexView(程序运行主界面)类。代码如下:

package com.team.view;

/*
  软件主界面类(将4个模块衔接在一起)
 */
public class IndexView {
    private static LoginView lv = new LoginView();
    private static NameListView nlv = new NameListView();
    private static TeamView tv = new TeamView();
    private static ProjectView pv = new ProjectView();
    /*
      颜色特效
     */
    public static final String ANSI_RESET = "\u001B[0m";
    public static final String ANSI_BLUE = "\u001B[34m";

    public static void main(String[] args) {
        IndexView iv = new IndexView();
        lv.initMenu();
        iv.softwareMainMenu();
    }

    //软件主菜单
    private void softwareMainMenu() {
        while (true) {
            System.out.println(ANSI_RESET + ANSI_BLUE);
            System.out.println("🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣");
            System.out.println("🔣                                   🔣");
            System.out.println("🔣             ~软件主菜单~            🔣");
            System.out.println("🔣                                   🔣");
            System.out.println("🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣🔣");
            System.out.println("🐻1. <用户信息修改>                *");
            System.out.println("🐘2. <开发人员管理>                *");
            System.out.println("🦁3. <开发团队调度管理>             *");
            System.out.println("🐻4. <开发项目管理>                *");
            System.out.println("🦊5. <退出软件>                    *");
            System.out.println("⬇请选择:  ");
            System.out.print(ANSI_RESET);
            switch (TSUtility.readMenuSelectionPro()) {
                case '1':
                    lv.modifyMenu();
                    break;
                case '2':
                    try {
                        TSUtility.loadSpecialEffects();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    nlv.DeveloperManageMainMenu();
                    break;
                case '3':
                    tv.developTeamMainMenu();
                    break;
                case '4':
                    pv.projectManageMainMenu();
                    break;
                case '5':
                    System.out.print("确认是否退出(Y/N):");
                    if (TSUtility.readConfirmSelection() == 'Y') {
                        System.exit(0);
                    }
                    break;
            }
        }
    }
}

软件主菜单展示:

java开发小组模式 java项目小组一般几个人_System_19


四、完整源代码链接

到此整个项目就介绍完毕啦!本项目完整源代码下载链接分享给小伙伴们:

链接:https://pan.baidu.com/s/1BMwzuEicejYHpQjuXPcFkg
提取码:x0ze