Thursday 3 March 2016

1.3 Technologies for App (Justification)

For my project, I plan to create my app in Java. The reason for this is that I will be using Android Studio to build my application which requires Java. Java is the industry standard for creating android apps.

For my project, I envision the HR client, updating the app through a web application. For the web application I intend to use ASP.NET technologies. After researching which languages are best to use for creating web applications, I was left with two possible candidates, PHP or ASP.NET framework. I stumbled upon an article written by a developer who describes the pros and cons for both technologies. For me, the selling factor for using ASP.NET was the fact that C# (the language used in .NET framework), supports multi-threading while PHP does not. A lot of performance gains can be made using multiple threads. Furthermore, Microsoft has already produced massive amounts of content about .NET framework and how to utilize it efficiently through tutorials and MSDN. For these reasons I feel that the ASP.NET framework will be more approperiate to use. However, for quick and fast prototypes, I will not exclude PHP completely as it is very good and producing quick web applications.


I also intend on creating a database that will contain fake data to represent the Penneys database. Until I physically connect to the Penneys database, I will create my own database. I intend to use the Firebase software. Firebase is a Google technology that always developers to use real time databases, servers and host websites for free. They also have SDKs specially built for Android Studios. Therefore, Firebase will be a very key and important tool that will help me create a mobile app and web app that is of industry standard.




Firebase:


1.2 Iteration 1 Identifying Functionality

As discussed in 1.1, I will be implementing a Agile Scrum methodology. As part of my first iteration I have to identify functionality and implement them using UML. I identified what I thought were the core functions of my app. Using a use case diagram, I was able to visually see what actors interacted with each use case (functionality) of the system. For visual representation clicks with me a alot more then representing functionality through documentation. Below is a image of the Use Case Diagram that I quickly through together to depict the functionality of my system and its relationship with the appropriate actors.
 The next of the sprint is to create quick draft use case narratives, activity diagrams and sequence diagrams for the functions of the system. I am currently in process of creating the sequence element of the UML. Once that is complete, the design phase of the sprint will be implemented!