SWEN30006 Software Modelling and Design Workshop 3: Design Models and Coding
School of Computing and Information Systems University of Melbourne
Semester 1, 2023
!
Assessment: Youshouldcompletetheexercisesasateam.Toreceiveaworkshopmark,youneedto demonstrate your active participation during the workshop. Your tutor will observe your participation for you to be eligible to receive a mark for this workshop. The active participation include (but not limit to) present your solutions, help your teammates, and actively engage with the team. Attending the workshop with only passive participation will not be given a mark. See the Workshop Overview under Subject Information on the LMS for more details.
 Requisite Knowledge and Tools
To complete this workshop you will need to be familiar with the following terms and concepts:
• Use cases and use case diagrams
• Domain models and system sequence diagrams • The representational gap
• Object Oriented Programming in Java
Introduction
This week workshop will move focus to the solution space and static and dynamic design modelling. We will be considering the relationship of the design models to the domain model and system sequence diagrams and the representational gap between the static models. We will also look at the transformation of the design models into Java code. Once again we will be using Draw.IO as our supported diagramming tool.
We suggest you use the textbook and resources provided in the "Pre-Workshop Learning" sub-module which include UML notation references for Design Class Diagram and Design Sequence Diagram.
1
Part 1 From Domain to Design Class Diagrams
i
Having now generated a Domain Model for a subset of our new student learning management system, lets look at the work involved in deriving a Design Model from this Domain Model. Focusing on the Upload an Assignment Submission use case from the previous workshop, create a Design Model that specifies the software classes required for this functionality. You may abstract concepts such as Databases to a higher level. Assume the implementation is in Java.
After completing version 1 of your Static Design Model, answer the following questions:
1. When deriving our Design Model from the Domain Model (and other constraints) it is common that we try to minimise the Representational Gap. That is, we translate a domain class Exam to a design class Exam. We could have easily called the design class BaseBallGlove or AhKisuLwjMMn but we don’t. What advantages does this give?
2. What kind of assumptions did you need to make about the design to construct the Design Model from the Domain Model? Where would you normally get this kind of data?
Part 2 Creating a Dynamic Design Model
Starting from the Submission System Sequence Diagram, draw a Submission design sequence diagram. Ensure that your system sequence diagram, your design class diagram, and your design sequence diagram are consistent; you may need to iterate a few times making changes to achieve this.
After completing version 1 of your Dynamic Design Model, answer the following questions:
1. What does the dynamic model tell us about the static model?
2. Would it have been better to start with the dynamic model and use it to inform construction of the static model?
 Note: Alltasksshouldbedoneasateamanddemonstrateactiveparticipation.
2

Part 3 From Design to Implementation
i
The final step after you have finished your static modelling is to move to actual implementation. Often it is the case that developers will focus on Static models (including domain and design class diagrams), along with use cases, to specify how software is to be written. Figures 1 and 2 specify the domain and class diagrams for a basic program that validates student submissions to our new LMS system. The interface required have been provided in the workshop package for you, along with a sample mock implementation.
Figure 1: Incomplete Domain Model for Submission Validation
 Codingcollaboration: Teamsmustsharethecodingfortheirprojects.Youshouldusethisexercise to practice dividing up the coding work in an effective way.
 3

 Figure 2: Incomplete Design Model for Submission Validation
Based on this information alone, create a Java implementation of the Design Model in Eclipse, along with a driver program to test your program. Once you have completed this, answer the following questions.
1. Did you have sufficient information to complete the implementation?
2. What assumptions, if any, did you have to make about certain functions or relationships within the program?
3. Does your program work the same as people’s sitting near to you? If not, how does it differ?

I'm the tutor, write me the tutorial script for this
WEN30006 소프트웨어 모델링 및 설계 워크샵 3: 디자인 모델 및 코딩멜버른 대학교 컴퓨팅 및 정보 시스템 학교2023년 1학기!평가: 워크샵 마크를 받으려면 워크샵 동안 적극적으로 참여했음을 입증해야 합니다. 튜터는 이 워크숍에 대한 마크를 받을 자격이 있는지 확인하기 위해 여러분의 참여를 관찰할 것입니다. 적극적인 참여에는 솔루션 발표, 팀원 돕기, 팀과의 적극적인 소통 등이 포함되며 이에 국한되지 않습니다. 소극적인 참여만 한 채로 워크숍에 참석하는 경우에는 마크가 부여되지 않습니다. 자세한 내용은 LMS의 주제 정보에서 워크샵 개요를 참조하세요. 필요한 지식 및 도구이 워크샵을 완료하려면 다음 용어와 개념을 숙지하고 있어야 합니다:- 사용 사례 및 사용 사례 다이어그램- 도메인 모델 및 시스템 시퀀스 다이어그램 - 표현 격차- Java의 객체 지향 프로그래밍소개이번 주 워크샵에서는 솔루션 공간과 정적 및 동적 설계 모델링에 초점을 맞출 것입니다. 디자인 모델과 도메인 모델 및 시스템 시퀀스 다이어그램의 관계와 정적 모델 간의 표현 격차를 고려할 것입니다. 또한 디자인 모델을 Java 코드로 변환하는 방법도 살펴볼 것입니다. 다시 한 번 지원되는 다이어그램 도구로 Draw.IO를 사용할 것입니다.디자인 클래스 다이어그램과 디자인 시퀀스 다이어그램에 대한 UML 표기법 참조가 포함된 "사전 워크숍 학습" 하위 모듈에서 제공되는 교재와 리소스를 사용하는 것이 좋습니다.1파트 1 도메인에서 디자인 클래스 다이어그램까지i이제 새 학생 학습 관리 시스템의 하위 집합에 대한 도메인 모델을 생성했으므로 이 도메인 모델에서 디자인 모델을 도출하는 데 필요한 작업을 살펴보겠습니다. 이전 워크샵의 과제 제출물 업로드 사용 사례를 중심으로 이 기능에 필요한 소프트웨어 클래스를 지정하는 디자인 모델을 생성합니다. 데이터베이스와 같은 개념을 더 높은 수준으로 추상화할 수 있습니다. 구현이 Java로 되어 있다고 가정합니다.정적 디자인 모델 버전 1을 완료한 후 다음 질문에 답하십시오:1. 도메인 모델(및 기타 제약 조건)에서 디자인 모델을 도출할 때 일반적으로 표현 갭을 최소화하려고 노력합니다. 즉, 도메인 클래스 Exam을 디자인 클래스 Exam으로 변환합니다. 디자인 클래스를 BaseBallGlove 또는 AhKisuLwjMMn이라고 쉽게 부를 수도 있었지만 그렇게 하지 않았습니다. 이렇게 하면 어떤 이점이 있을까요?2. 도메인 모델에서 디자인 모델을 구성하기 위해 디자인에 대해 어떤 종류의 가정을 해야 했나요? 이런 종류의 데이터는 보통 어디서 구할 수 있나요?2부 동적 디자인 모델 만들기제출 시스템 시퀀스 다이어그램에서 시작하여 제출 디자인 시퀀스 다이어그램을 그립니다. 시스템 시퀀스 다이어그램, 디자인 클래스 다이어그램, 디자인 시퀀스 다이어그램이 일관성이 있는지 확인해야 하며, 이를 위해 몇 번 반복하여 변경해야 할 수도 있습니다.동적 디자인 모델 버전 1을 완료한 후 다음 질문에 답하세요:1. 동적 모델은 정적 모델에 대해 무엇을 알려주는가?2. 동적 모델부터 시작하여 정적 모델의 구성에 정보를 제공하는 데 사용하는 것이 더 좋았을까요? 참고: 모든 과제를 완료하고 적극적인 참여를 보여 주어야 합니다.23부 설계에서 구현까지i정적 모델링을 완료한 후 마지막 단계는 실제 구현으로 이동하는 것입니다. 개발자는 종종 정적 모델(도메인 및 디자인 클래스 다이어그램 포함)과 사용 사례에 집중하여 소프트웨어를 작성하는 방법을 지정합니다. 그림 1과 그림 2는 새로운 LMS 시스템에 대한 학생 제출물의 유효성을 검사하는 기본 프로그램에 대한 도메인 및 클래스 다이어그램을 지정합니다. 필요한 인터페이스는 워크샵 패키지에 샘플 모의 구현과 함께 제공되어 있습니다.그림 1: 제출물 유효성 검사를 위한 불완전한 도메인 모델 코딩 협업: 팀은 프로젝트에 대한 코딩을 공유해야 하며, 이 연습을 통해 효과적인 방식으로 코딩 작업을 나누는 방법을 연습해야 합니다. 3 그림 2: 제출물 검증을 위한 불완전한 디자인 모델이 정보만을 바탕으로 프로그램을 테스트할 드라이버 프로그램과 함께 Eclipse에서 디자인 모델의 Java 구현을 생성합니다. 이 작업을 완료한 후 다음 질문에 답하세요.1. 구현을 완료하기에 충분한 정보가 있었습니까?2. 프로그램 내의 특정 함수나 관계에 대해 어떤 가정을 해야 했습니까?3. 여러분의 프로그램은 사람들이 가까이 앉아 있는 것과 동일하게 작동하나요? 그렇지 않다면 어떻게 다른가요?제가 튜터인데, 이에 대한 튜토리얼 스크립트를 작성해 주세요.