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.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/ofekwittenberg/images/715559/premiere.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/ofekwittenberg/images/716865/premiere.jpg)
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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/ofekwittenberg/images/716868/designprocess.png)
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.”
![](https://s3.amazonaws.com/media-p.slid.es/uploads/ofekwittenberg/images/715099/materialdesign-principles-layersquares_large_mdpi.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/ofekwittenberg/images/716878/materialdesign-goals-landingimage_large_mdpi.png)
"Incorporate color, depth, translucence, and complex textures into a visually appealing interface"
![](https://s3.amazonaws.com/media-p.slid.es/uploads/ofekwittenberg/images/715113/AquaControlsIB.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/ofekwittenberg/images/716882/lion-gui.png)
Team Project -Alpha Build
Working as a team
- Work Collaboration
- Version Control
![](https://s3.amazonaws.com/media-p.slid.es/uploads/ofekwittenberg/images/718514/IMAG0340.jpg)
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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/ofekwittenberg/images/716903/alpha.png)
Beta Build
![](https://s3.amazonaws.com/media-p.slid.es/uploads/ofekwittenberg/images/716904/betaa.png)
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
- 581