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