livlikwav / uosse Goto Github PK
View Code? Open in Web Editor NEWUOS Software Engineering Project
UOS Software Engineering Project
12/ 6 금 , 5분/팀
산출물 : 요구사항 정의서, 설계서, 소스코드
설계결과물 : UML파일
발표자료: 파워포인트자료
보고서에 UML 파일 내용을 삽입하고, UML파일은 조교에게 메일로 보냄
hazard (, )
start (,)
이런식으로 좌표 받아올거니까
MapMatrix 그냥 만들고
0 빈공간
1 hazard
2 start
3 colorblob
4 robot
이런식으로 값 정해놓고
init
다 0으로 해두고
Mapdata 바꿔서
mapmtrix[i][j] = 1
이런식으로 바꿔주는 식으로
하고
repaint로 새로 다 그려주는 식으로 하기
movestatus 써서
이미지 4개 짤라서 쓰기
5 path
해서
앞으로 나갈경로 빨간 사각형으로 보여줄 수도 ㅇㅆ겟음
근데 그럼 나중에 path 받아오는게
위 옆 옆 위 이런명령이아니라
(,)
(,)
이런식으로 좌표값 나열이면 쉽게 할 수 잇음
위 옆 옆 위 이것도
뭐 할라면 생각해보니 할수잇을듯
지금좌표 x,y 받아서
내가 위 옆 옆 위 이걸로
x, y+1
x+1 y+1
이런식으로 만들어 넣고 그리면되니까
Read Hazard Sensor
Read Color Blob Sensor
Read Current Position
할때마다 경로 재설정하는건 비효율적이지 않나?
그냥 RunRobotSearching에
0과 1을 가지는 Flag (Bool)을 두고
Read 한번 할때마다 변화가 있으면
맵의 변화가 있음을
로봇 움직임을 담당하는 클래스에 기록을 해서
다음 loop때 있으면 다시 경로 설정하도록 해야겠지?
GoStep 아예 바꾸면서 수정완료
완료
완료. ROBOTONCLRB
완료
Sensor Data 3개 합치라 하심.
Usecase는 함수가 아니다. 큰 의미의 기능이기 때문에 합치자.
교류도가 아닌거 같음
교류도에는 각 클래스가 들어가는데
글미 자세히보면
표의 주 흐름에 있는걸 그대로 나타낸 그림이고
시스템 두개만 떡하니 있음.
액터와 해당유즈케이스의 시스템
시나리오 같이 작성후
그림도 그려야할듯?
UML파일이 어떻게 저장되는지 모르니까
그냥 따로 저장해서
손수 merge하게
MapGUIForm gui = new MapGUIForm(8, 8, 0, 0);
gui.setMapPoint("NEWHAZARD", 3, 1);
gui.setMapPoint("GOAL", 0, 1);
gui.setOperation("TURN");
gui.setOperation("GO");
gui.setOperation("GO");
MapGUIForm gui = new MapGUIForm(8, 8, 0, 0);
gui.setMapPoint("NEWHAZARD", 3, 1);
gui.setMapPoint("GOAL", 0, 1);
gui.setOperation("TURN");
gui.setOperation("GO");
//gui.setOperation("GO");
이런식으로 사용하면 됨 우찬 코드에서!
그냥 Operation에 저런식으로 두 명령어 넣으면
update해서 다시 그려줌
그냥 다시 텍스트만 해두고
img는 일단 주석처리해둠 ;
그래서 최적화 해보긴 했다, 불필요한 객체 생성 줄이고
문제없길 바람 다시
로봇이 움직이는 그 일련의 과정을 담은
순차도를
어느 유즈케이스에 포함시켜야 되는지 모르겠다
SetSystemtoMoveRobot인지
아니면 ~
도우찬:
각 유즈케이스에 찢어져서 들어갈 것 이다.
1
hwp1 문서에
사전조건 사후조건 같이 수정해보기
2
uml hwp1 hwp2 같이 확인하면서
확정하기
3
(교류도 서로 확인 후 다 확정후에) 각자 교류도 설명 작성하기 - 둘다
전체 액티비티도 그리기 - 우찬
전체 액티비티도 공부
클래스도 공부
클래스도 그리기 - 경민
객체 상태도 공부
메인 클래스도?
아키텍처도?
PPT만들기
Input Map data말고
SIM이랑 하는 것들은
Map GUI파트는
순차도랑
시나리오에서 다 빼야된다
시스템 간에 하는 거니까
MoveRobot()
{
getmapdata()
for
{
if( map changed): planningapath()
moveoperation() #1칸 움직이던지, 회전하든지
correctmove() 잘 움직였나봐
GetCurrentPostionSensor()
True: Continue
False: Compensation()
GetHazardSensor()
if( not rotated): GetColorBlobSensor()
HandlingMapData(Hazard, ColorBlob)
}
}
<1 . Handling Map Data>
개략 명세 : 이 USE CASE는 Operator가 초기화하며, Operator가 시스템에 MAP Data를 삽입, 수정, 삭제하기 위한 기능을 제공한다.
사건의 흐름 :
-Operator가 고유번호를 입력하면서 시작한다.
시스템은 Operator의 고유번호가 유효한지 검사 후 맞으면 Operator에게 Map Data를 입력하라고 표시한다. Operator는 Map data를 입력 한다. 시스템은 Operater가 다음 사항 중 하나를 선택하도록 한다.
-- Map Data 삽입
-- Map Data 수정
-- Map Data 삭제
Operater가 끝났음을 지시한다. 시스템은 입력한 Map data를 화면에 표시하고 입력이 되었음을 알린다.
2.1 Alternate flow
-만일 고유번호가 틀릴 경우 시스템은 등록 시스템 접근을 허용하지 않는다. 삽입되지 않은 Map Data를 수정이나 삭제하려 하거나, 이미 만들어진 Map Data를 또 만들려고 시도할 경우 시스템은 다른 선택을 지시한다.
2.2 Map Data 삽입
2.3 Map Data 수정
-시스템이 삽입된 Map Data를 표시한다. Operator는 삽입한 Map Data에서 수정할 부분을 찾아 입력한다. 학생이 수정을 요청하면 시스템은
--수정한 데이터의 형식을 확인한다.
--수정한 Map Data를 저장한다
--Alternate flow
----수정을 위해 넣은 Map Data의 형식이 다른 경우 시스템은 오류를 표시하고 재입력을 지시한다.
2.4 Map Data 삭제
<2.Set System to Move Robot>
개략 명세 : 이 USE CASE는 Operator가 초기화하며, Operator가 시스템에게 저장된 Map Data로 SIM과의 통신을 통해 로봇을 움직이게 하기 위한 기능을 제공한다.
사건의 흐름 :
-Operator가 고유번호를 입력하면서 시작한다.
시스템은 Operator의 고유번호가 유효한지 검사 후 맞으면 Operator에게 유효하다고 알린다. Operator는 시스템 작동을 지시한다.
2.1 Alternate flow
-만일 고유번호가 틀릴 경우 시스템은 작동 시스템 접근을 허용하지 않는다.
2.2 선조건
-"Handling Map Data" Use Case는 이 Use Case 실행 전에 실행되어야 한다.
시나리오를 적는 과정에서 유스케이스 이름을 적을 때 Move Robot를 해석하는데 뜻은 알겠는데 글로 표현을 못해서 일단 서로 이해했던 ADD-ON 시스템 작동 (Run ADD-ON System)이라 적었고 내일 이거 표현을 어떻게 해야할지 요청.
2.1 Alternate flow
-만일 고유번호가 틀릴 경우 시스템은 등록 시스템 접근을 허용하지 않는다. 삽입되지 않은 Map Data를 수정이나 삭제하려 하거나, 이미 만들어진 Map Data를 또 만들려고 시도할 경우 시스템은 다른 선택을 지시한다.
2.2 Map Data 삽입
2.3 Map Data 수정
-시스템이 삽입된 Map Data를 표시한다. Operator는 삽입한 Map Data에서 수정할 부분을 찾아 입력한다. 학생이 수정을 요청하면 시스템은
--수정한 데이터의 형식을 확인한다.
--수정한 Map Data를 저장한다
--Alternate flow
----수정을 위해 넣은 Map Data의 형식이 다른 경우 시스템은 오류를 표시하고 재입력을 지시한다.
2.4 Map Data 삭제
2.2 선조건
-"Handling Map Data" Use Case는 이 Use Case 실행 전에 실행되어야 한다.
2.1선조건 : "Insert Moving Data" Use Cas는 이 Use Case전에 실행되어야 한다.
1. 개략 명세 : 이 USE CASE는 SIM이 초기화하며, SIM이 시스템에게 ColorBlobSensor에 의해 탐색된 값을 제공하기 위한 기능을 제공한다.2.1선조건 : "Insert Moving Data" Use Cas는 이 Use Case전에 실행되어야 한다.
1. 개략 명세 : 이 USE CASE는 SIM이 초기화하며, SIM이 시스템에게 PositioningSensor에 의해 실제 현재 위치를 제공하기 위한 기능을 제공한다.2.1선조건 : "Insert Moving Data" Use Cas는 이 Use Case전에 실행되어야 한다.
1. 개략 명세 : 이 USE CASE는 시스템이 초기화하며, 시스템이 SIM에게 Map Data에 의해 계산된 경로로의 움직임을 제공하기 위한 기능을 제공한다.2.1선조건 : "Set System to Move Robot" Use Cas는 이 Use Case전에 실행되어야 한다.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.