Software Design
The Project
Design and develop a tool in Java and Linux Shell which enables users to source open media from the internet and be able to create new content via manipulation of that content.
Design Process
- Design Brief and Technical Specifications
- Build basic application with simple user interface
- Set out GUI parameters and design principles and modeling
- Release Alpha build
- Release Beta build
Requirements
Modelling
Implementation
Application Specifications:
-
Use Linux system calls
-
Create an engaging and easy to use and robust user interface
-
Allow user to manipulate the video
-
Allow user to manipulate audio
-
Include intelligent file management considerations
Text Based UI
A simple UI allowed the testing of the basic functionality
==============================================================
Welcome to VAMIX
==============================================================
Please select from one of the following options:
(d)ownload an mp3 file
e(x)tract an mp3 file
(p)rint VAMIX history log
(q)uit VAMIX
GUI Design Principles
- Simplicity
- Engaging look and feel
“Focus on the user and all else will follow.”
"Incorporate color, depth, translucence, and complex textures into a visually appealing interface"
Team Project -Alpha Build
Working as a team
- Work Collaboration
- Version Control
Version Control
Version control makes working collaboratively on a project easy.
- It allows users to change code simultaneously
- It allows team members to track changes
- Revert changes
Working as a team
-
The initial design was brainstormed together
-
This also enabled us to separate tasks as each person could independently work on different modules of the application.
-
Collaborative discussion were held.
-
Set project milestones were set; met and the process was repeated until all requirements were met .
Mock layout
Alpha Build
Beta Build
What I learned
-
Becoming familiar with UNIX commands and Shell scripts
-
Learning and applying design principles to create an affective UI
-
Developing a functioning application to playback and manipulate media files (over 4000 lines of code)
-
Learning to work on a collaborative project
-
How to use version control and apply good software engineering principles
Thank you
204 Presentation
By Ofek Wittenberg
204 Presentation
- 606