I have now finished the budgeted period of familiarisation for this application.
So far I feel I have a reasonable understanding of how this application works and I feel confident that I can soon move onto the design phase of the project
In order to familiarise myself with the system I took the following steps;
Firstly I broke the system into its applications (as defined in the original business requirements and by the URL's used to navigate to them)
- Applicants
- Administrators/Staff
For each of these I drew a UML (there is every possibility it may not be perfect UML) model of the page sequence (and any deviations from it) a user would follow in making a portfolio submission. As I went through this I noted the functions each page used.
Following on from here I then went through the code starting from the Application.cfc file and began to model all the processes used in the Applicants side, where they start and what functions are involved in automating them. This model also took into consideration the datasources used and queries ran for each process.
These step were also repeated for the Admin side, although I ran into problems here as I am unable to access certain parts of the administrator functions and it seems that without getting another administrators passwords, I don't think this will be allowed as the MiniPortfolio is still a live application and so is its database. I don't have access to the ECA's servers so my access is restricted, what I do have access to is the code itself and a read only copy of the database.
The software itself has been written in a procedural style and has vaguely been compartmentalised (i.e. the admin side in an admin directory, business logic in another directory and some form of framework to the architecture). As I missed the chance with iSkills I am going to design this application to use the Mach-II framework (frameworks are the last hard skill I need to have before I leave my placement then that gives me a working experience of them).
I know I will need to add a further table to the database schema however I asked other developers to look at the original and was told its only semi relational and will need changes, at this stage its probably worth redesigning that as well. The database itself is on a Microsoft SQL Server DBMS and will be replaced with the latest Oracle 11g DBMS which is the standard for the university and will not incur further expense in terms of licences. Luckily I have some experience with both.
The issue which may arise here is the application depends heavily on the database and there are LOTS of queries taking place on each page and through many of its functions. If I am to redesign the database then this will make the existing queries obsolete as some of the tables and fields may no longer exist meaning longer development time. To compound this I only have limited experience in relational databases, my DBMS module was a long time ago now and I'll be learning on the job, first I have to find out if its worth the work as there is every chance I might not get to do it as a restructure of the database and rewrite of the existing code may exceed the allocated budget, however I don't know until I ask.
To summarise:
Completed
- Applicant side modelled
- Admin side modelled (as far as possible)
- User (movement through the pages) sequences mapped
- Database Schema mapped
- New Schema under development
No comments:
Post a Comment