1. Design document
Content
1. 선택한 design method
2. design architecture
3. risks
1. 선택한 design method – Agile method & waterfall model
●왜 Agile method를 선택했나?
1. 짧은 개발기간
- 한 학기동안의 개발기간, 다른 과목들과의 병행으로 인한 개발 집중 시간 부족
- 팀원들 모두가 android application 개발은 처음이였기 때문에 android app 개발을 공부할 시간
이 추가적으로 필요했음.
2. Implementation First and, maintainable code Second
- 코드의 maintenance에 집중하기 보다는 일단은 빠른 구현이 중요했음
●왜 waterfall model을 선택했나?
1. 완벽한 업무 분배
- 팀원들이 모두 수업시간이 각각 다르고 같은 공간에 시간을 정하여 모이기 어려운 관계로 업무
분배를 확실히 하여 자신의 파트를 완성한 후에 완성된 코드를 합치는 형태의 작업을 했다
- UI 작업완료
- database 적용
- GPS 구현
- 마지막 database 적용
이러한 순서로 일을 진행했고, 각 작업들은 완벽하게 분리하여 작업했고 마지막에 완성된 코드를
합쳤다.
2. design architecture
본 팀의 시스템을 한 눈에 알아보기 쉽도록 design architecture를 만들어 보았다.
2-1. use case
2-2. activity diagram
2-3. sequence diagram
2-4. state diagram
2. 2-1. use case
2-2. activity diagram
register
Edit profile
Show exercise
record
Start exercise
3. 2-3. sequence diagram
<Edit User Information - Sequence diagram>
Edit User Information - Tabular description
Actors User, Data Base
Description Change User information from database.
If user’s weight or Inch is reduced or increased, we should
use this function.
Data User Information( weight, Inch), Password, etc ….
Stimulus Edit button, User Input(weight, Inch)
Response Confirmation about updating DataBase or not
Comments We should use this function sincerely and honestly.
Then we can check change of our body, and we can plan
exercise correctly.
Message(Fail)
Message(OK)
OK
Error (Type, storage
error etc..)
Store(User info)
Check(Fail)
Check(Ok)
Uqdate(User info)
Edit( )
Check(password)
Fail
Authorization
(Password)
User
Information
Data Base
4. < Show User’s Record >
show user’s menual – table description
Show Menu
Actors User, DBS
Description
Display user’s record about past exercise.
If users want to check previous exercise record or want to
make better exercise plan, then We have to pass this function.
Data User’s information about previous exercise
Stimulus User record button, Correct User information
Response Show user’s previous exercise information
Comments
It can help users who want to establish better exercise plan.
Also it helps to check user’s previous exercise information
5. Start exercise – table description
Start Exercise
Actors User, DBS
Description
When user starts exercise, this mode is excuted automatically. In this
function, we can know the time (that we spend in exercise), the
way(that we exercised until now)
Data - (Nothing)
Stimulus Exercise start button
Response Show current exercise information
Comments
Users can check current exercise information, like distance and time.
So we can manage our exercise more effieciently.
6. 2-4. state diagram
3. risks
처음 개발을 진행하기 전, design을 할 때 고려했던 risk들 이다. 이러한 risk들을 예상했고, 그에
대한 대비책을 마련했었지만 발생했던 risk도 있었고 발생하지 않은 risk도 있었다.
7. 실제로 발생한 risk
1. 짧은 개발기간
미리 준비해두었던 solution대로 documentation에 집중하기 보다는 개발과 android study에 더
많은 시간을 투자했다. 먼저 개발 prototype을 내고 난 후, 조금씩 수정을 거쳤다.
2. 적은 인원의 개발자
적은 인원이 참여한다는 risk에 대비하여 job을 나누지 않고 함께 모여서 개발을 진행하겠다는 대
안을 세웠었지만, 실제로 solution대로 진행을 하다보니 여러가지 환경적 문제들이 발생했다. 따라
서 다시 계획을 세워 job을 철저하게 나누면서 waterfall process model을 적용함으로써 개발 시
간을 단축시키고 환경적 제약사항들을 극복할 수 있었다.
3. 새로운 버전의 안드로이드 시스템 등장
본 시스템 개발을 착수하기 이전에 tomcat을 이용하여 외부 서버와 android application을 통신하
는 과제를 수행할 적에, android 높은 버전에서 구현이 어려웠던 문제가 발생했다. 따라서 본 팀
에서는 외부 서버를 이용하는 대신, android 상에서 직접 제공하는 내부 database인 SQLite를 사
용함으로써 버전이 맞지 않아 발생하는 문제에 대응할 수 있었다.
본 팀이 SQLite를 사용한 이유는, 시스템의 특성상, 사용자의 운동 기록 정보를 핸드폰 외부에서
access하여 열람할 가능성이 거의 희박하기 때문에 SQLite를 사용하여도 시스템 상에 전혀 문제
가 발생하지 않을 것이라고 판단하여 SQLite를 사용하기로 결정하였다.
실제로 발생하지 않은 risk
1. 팀 멤버의 휴학
다행히 어느 누구도 휴학을 하지 않아서 project를 효율적으로 진행할 수 있었다.