Assignment title: Information
COMP1605
(2015/16) Enterprise Patterns and Frameworks Header ID
227822 Contribution
100% of course
Course Leader
Dr Georgios Samakovitis Release Date
Friday 16/10/2015 Deadline Date
Sunday 10/01/2016
This coursework will be marked anonymously
YOU MUST NOT PUT ANY INDICATION OF YOUR IDENTITY IN YOUR SUBMISSION
This coursework should take an average student who is up-to-date with tutorial work approximately 50 hours
Feedback and grades are normally made available within 15 working days of the coursework deadline
Learning Outcomes:
A. Design and implement an enterprise application using appropriate technologies, frameworks and design patterns.
B. Critically evaluate technologies, frameworks and design patterns in the design and implementation of enterprise applications.
C. Demonstrate an in-depth understanding of issues affecting the success of enterprise applications.
Plagiarism is presenting somebody else's work as your own. It includes: copying information directly from the Web or books without referencing the material; submitting joint coursework as an individual effort; copying another student's coursework; stealing coursework from another student and submitting it as your own work. Suspected plagiarism will be investigated and if found to have occurred will be dealt with according to the procedures set down by the University. Please see your student handbook for further details of what is / isn't plagiarism. Details are also on the Student Intranet.
All material copied or amended from any source (e.g. internet, books) must be referenced correctly according to the reference style you are using.
Your work will be submitted for electronic plagiarism checking. Any attempt to bypass our plagiarism detection systems will be treated as a severe Assessment Offence.
Coursework Submission Requirements
• An electronic copy of your work for this coursework must be fully uploaded by midnight on the Deadline Date of Sunday 10/01/2016 using the link on the coursework Teachmat page for COMP1605.
• For this coursework you must submit a single Acrobat PDF document.
In general, any text in the document must not be an image (ie must not be scanned) and would normally be generated from other documents (eg MS Office using "Save As .. PDF"). More details are on the IT Support pages . An exception to this is hand written mathematical notation, but when scanning do ensure the file size is not excessive.
• For this coursework you must also upload a single ZIP file containing supporting evidence.
• There are limits on the file size (current values are on TeachMat and the Student Intranet).
• Make sure that any files you upload are virus-free and not protected by a password or corrupted otherwise they will be treated as null submissions.
• Your work will be marked online and comments on your work and a provisional grade will be available from the Coursework page on Teachmat. A news item will be posted when the comments are available, and also when the grade is available in BannerWeb.
• You must NOT submit a paper copy of this coursework, or include the Banner header sheet.
• All courseworks must be submitted as above. Under no circumstances can they be accepted by academic staff
The University website has details of the current Coursework Regulations, including details of penalties for late submission, procedures for Extenuating Circumstances, and penalties for Assessment Offences. See http://www2.gre.ac.uk/current-students/regs
________________________________________
Detailed Specification
This coursework has three parts. Part 1 is a research project involving the use of social bookmarking using Delicious. Part 2 involves the design of an emergency management application. Part 3 involves the development of the aforementioned application using technologies taught on the course.
Part 1 Research project using bookmarking with Delicious
You are required to address the below research question:
"TOGAF and DSDM are two of the most popular modern EA frameworks. As an Enterprise Architect, identify the critical factors of the target architecture deciding whether TOGAF should be preferred over DSDM and vice versa".
What is expected from you is to identify relevant resources (articles) on the subject and give a thorough report of 500 words providing a critical evaluation of your findings.
Instructions
You must use the social bookmarking software called Delicious (www.delicious.com) to identify, review and comment on online resources relevant to your research question. Use of social bookmarking with Delicious has been introduced to you near the start of the course and you must use it in the way described to you then.
Identify and review five publically available resources relevant to the research question using Delicious. When you bookmark a resource using Delicious you will need to choose suitable tags for the resource and enter your review in the form of notes.
Choose meaningful tags that might be helpful to other people when searching for resources. In addition to these meaningful tags you will need to enter the course code as a tag (comp1605) and the topic code "TOGAFvsDSDM". If you do not correctly enter the course or topic tags we will not see your bookmark and it will not be marked.
The notes you enter are important and should show evidence of critical thinking about the resource. For instance you might comment on: the reliability of the source, how up to date it is, how independent you believe it to be, what problems are raised, are the views expressed justified? etc. Be aware that Delicious only allows you to enter up to 1000 characters in the notes field so you need to be succinct. It is quality not quantity that counts.
Part 2 Design of an emergency management application
You are to design (and at Part 3 implement) an emergency planning system to allocate crews (teams) of fire, ambulance and police to attend emergency situations. Emergency teams work in three 8-hour shifts in order to ensure round the clock support. It is therefore important that crews are only sent to an emergency situation if they are currently on duty.
Your system must be designed to use a database to manage the information about crews and emergencies etc. The data that needs to be stored includes:
• Name of each crew (e.g. FireCrew1, AmbulanceCrew2)
• The shifts that they work on each day of the week (day and start time)
• Details of emergencies e.g. location, which services need to attend and the number of crews from each service that are required e.g. 2 fire crews, 1 ambulance crew etc.
• The status of each emergency e.g. reported, emergency crews dispatched, job completed.
• The status of each crew e.g. on a job.
You may implement the system using Java technologies or any other technology that you see fit for supporting the implementation. In all instances, you will be required to justify:
1. the choice of technological platform (e.g. Java; php; C# etc.);
2. the choice of Design Patterns you are making;
You may implement your system using the DAO design pattern (or equivalent), however you can choose whichever design pattern you see fit. Please justify your choice.
The system should support the following (however, you can add to your design and further implement additional functionality if you wish):
a) The first page will be a login page for administrators. Passwords for all accounts should be stored in the database and checked on login. On successful login the user will be presented with a menu. If the login is unsuccessful then a suitable error message must be displayed.
b) Administrators should be able to view all the information in the database e.g.
• List all crews and their duty hours.
• List details of all emergencies, their current status and for all emergencies other than those just reported, a list of crews that attended the emergency or are currently attending the emergency.
c) Administrators should be able to change the status of a job from e.g. reported to emergency teams dispatched, to job completed.
d) Administrators should be able to enter details of a new emergency and allocate ONLY crews currently on duty to attend the emergency. In order to do this, you will need to generate an appropriate list of crews available to attend by calculating whether they are current on duty (according to the day of the week and the time of the day in relation to their work schedule), and if they are on standby, not already on a job. The administrator should then be able to select from the list available. Note that for testing purposes you will need a facility to enter the current day and time
e) You should be able to view a report of activity, by crew, showing the details of each emergency they have attended / are currently attending.
For steps (d) and (e) it is recommended to use the Spring framework (or equivalent if you are not using Java).
Finally a "log" should be generated by a servlet, to record details of which administrators have accessed the system (so have at least two), the request they made, the time, date etc. Administrators should be able to view the log to see the following:
f) A list of all accesses to the system
g) Summary information such as total number of accesses by administrators on a particular day, how many jobs were completed on a particular day, percentage of crews on duty on a particular day that were sent to an emergency etc.
For Part 2 you are supposed to deliver the whole design of the system including:
• A full UML diagram describing the overall system (you can provide additional diagrams if needed);
• A clear identification and justification of the design patterns used;
• A mini report outlining the logic and steps of your addressed design solution.
It is imperative that you reference and cite the sources that you use, across the whole coursework.
Part 3 Implementation of an emergency management application
You should implement the specified system above following your design proposed in Part 2 as a Web-based application using Java servlets, JSPs, JPA and other technologies discussed in the course (if you use Java) or equivalent technologies if you are adopting other programming environments. Choices should be justified.
You should initialize the data in your database using an SQL script so it has some initial data with a sufficient variety of information in order to fully demonstrate the functionality that you have implemented. You can use the Derby database however you can choose whichever database you see fit. For any decision taken please justify your choice. Validation of user input is expected and should be checked on the server side, not the client side (i.e. do not use JavaScript).
The final delivered system should be fully operational to attract full marks.
Final Deliverables
Report:
You should upload your report as a PDF file created from Word. In addition you must upload your code as a zip file. Details of both are given below.
1. The report should consist of the following sections IN THE ORDER given below and identified by the letters given below:
A. Your name
B. A report on Part 1 (Research project using bookmarking with Delicious). Include:
• The short critical evaluation in response to the research question you were allocated.
• Readable screen shots showing the five resources that you bookmarked, tagged and reviewed. Do NOT include more than five.
C. A report on Part 2 (Design part of the application). Design documentation in addition to the deliverables outlined in Part 2 could also contain the following:
• An entity-relationship diagram of your database
• Use-case diagram
• Class diagram.
• List of classes and interfaces that you have written.
• Class descriptions including brief descriptions of methods or a generated API documentation using Javadoc see http://java.sun.com/j2se/javadoc/.
D. A statement of the level of functionality implemented for your application in Part 3. For each level, state whether you fully or partially implemented the level.
The three levels are defined as follows:
Level 1: Fully Implemented; all the required functionality is executed (and possibly additional functionality was provided)
Level 2: Partially implemented; part of the required functionality is executed in full, but the remaining of the required functionality was not delivered;
Level 3: Attempted; the code implementing the functionality was produced but the functionality cannot be executed
For example you might write:
Level Implementation
1 • Fully implemented :)
2 • I have implemented part (a) but it throws an exception.
• Not part (b)
3 • Attempted. I have used Spring to log the information but cannot retrieve the data.
E. The database script i.e. the SQL commands that you have used to create the tables in your database and initialise the data.
F. A list of any bugs and/or weaknesses in your program (if you don't think there are any then say so!). You should consider uncaught exceptions to be a weakness. Bugs that are declared in this list will lose you fewer marks than ones that you don't declare!
G. Evaluation / Learning Experience: Write between 600 and 1000 words critically evaluating your learning experience in doing this coursework. You must be specific and not just say 'I learned a lot of this and that' but state exactly you learned by your own effort and from other students; also make clear what you would do differently if you were to repeat the coursework again. You can include these as well as other points; e.g. management issues, e.g. time etc, as well as technical issues and decisions you made on the life cycle used, design decisions, assumptions, etc. You may talk about the product and development process and how product and process quality were assured at every stage. Your evaluation should also include discussion of your experience of using the Delicious for bookmarking: was it easy to use, was it helpful etc.
H. Copy and paste screen shots into your report, suitably annotated, showing all the functionality you have implemented in your application.
2. The zip file must contain all your code and any configuration file(s) and your ANT, SQL script and configuration file(s).
Demonstration:
The demonstrations will be conducted during the last week of the course. Details regarding the schedule for demonstrations will be provided later in term. The demonstration is very important and should be treated as such. You must demonstrate your prototype solution.
3. You will be required to demonstrate your work in the last week of the course. Further details will be provided closer to the date. Please check a few days before your tutor to confirm the time the location. At the demonstration you will
• Answer questions about your research topic and use of Delicious for part 1
• Give a demonstration of the application you developed for part 3
• Answer questions about the design and implementation of the application you developed for parts 2 and 3.
Further details of the demonstration are given below.
You will be required to give a demonstration of your system using a suitably configured machine. This may be your laptop or a University machine. Please test in advance to make sure this works. You will NOT be allowed to demonstrate another version that you may have already installed. During the demonstration you will also be required to explain your code in detail.
A demo sheet with a number of questions about what you have achieved will be provided nearer the time and you will be expected to fill this in and bring it to your demonstration.
At the demonstration, you should arrive at least 15 minutes early to set up. When your tutor arrives you should:
• Have logged into Delicious
• Have your IDE open but showing no projects. The DB script should be loaded and the database connected to.
• Have your server started.
• Have a web browser loaded and be ready to download the coursework you uploaded into an empty directory you have pre-prepared (we need to see you demonstrate the version you submitted not any other one that may have been updated since the submission).
• Make sure your code is ready to run in the lab in the final version you submit. Please practice in advance. Remember that you can test your program on a machine suitably configured.
Grading Criteria
Pass:
You may achieve a pass if you have adequately engaged with Part 1, 2 and 3 and have achieved reasonable implementation as well as having all the documentation completed up to a reasonable standard.
Merit:
You need to have engaged with Part 1, produced a critical evaluation report of good standard and bookmarked, tagged and entered notes for five relevant resources using Delicious and reviewed three resources bookmarked by another student as described in the Part 1 specification above. Your tags and notes should be to a good standard.
You need also to provide a complete design approach for Part 2 as well as a functional implementation for Part 3.
Distinction
You need to have engaged with Part 1, produced an excellent critical evaluation report and bookmarked, tagged and entered notes for five relevant resources using Delicious and reviewed three resources bookmarked by another student as described in the Part 1 specification above. Your use of bookmarking using Delicious and your tags and notes should be to an excellent standard.
You need also to provide a complete design approach of high standard (including good documentation) for Part 2 as well as a complete implementation for Part 3.
Assessment Criteria
You should engage with all parts of the coursework. Failing to do so will result to possible failure on the whole coursework.
The report will be assessed for the following and the mark will be adjusted accordingly:
Identification of relevant resources for Part 1. Submission of the critical evaluation. Use of meaningful tags. Notes which show evidence of critical thinking.
Use of appropriate Java facilities - both language features and classes from the API.
Quality of the Java code. For example: inclusion of meaningful comments, use of the sensible naming standards for variables, classes and methods and code layout. Is the code well-structured or an unstructured tangle? Is the code monolithic or is it sensibly partitioned into separate classes and methods? Have good OO principles been applied?
Quality of the design documentation. Is the design documentation clear, concise and precise? Have you made proper user of the UML diagramming techniques where required?
Completeness of the report.
Evaluation / learning experience.
You will fail if:
• You do not have any code that executes. So, be sensible and keep a copy of any working versions before you try to extend their functionality.
• Your report does not contain adequate design documentation.
• Your report does not include a listing of the source code.
SEE FURTHER DETAILS OVERLEAF
COMP1605
Enterprise Patterns & Frameworks
Coursework marking Scheme
Student name: ___________________________ Student number:_____________________
Marker: George Samakovitis
Part 1: Research project using bookmarking with Delicious
Total contribution = 35%
Award 5 marks for providing a complete list of resources (5 resources / articles are required)
Award 5 marks for relevance of the resources (online articles)
Award 5 marks for proper use of the Delicious Resource
Award 20 marks for the critical evaluation (500-word report)
Part 2: Design of an emergency management application
Total contribution = 35%
Functionalities (a) through to (g) must be visibly present in the design documentation:
Marks are awarded as follows:
• A full UML diagram describing the overall system (you can provide additional diagrams if needed) 10 marks (for a fully descriptive set of UML views)
• A clear identification and justification of the design patterns used 7 marks (for a minimum of 2 patterns used and explained)
• A mini report outlining the logic and steps of your addressed design solution 8 marks (for coherence, use of referencing, report structure, academic language)
Part 3: Implementation of an emergency management application
Total contribution = 30%
Level 1: Fully Implemented; all the required functionality is executed (and possibly additional functionality was provided) 25-30 marks
Level 2: Partially implemented; part of the required functionality is executed in full, but the remaining of the required functionality was not delivered 15-25 marks
Level 3: Attempted; the code implementing the functionality was produced but the functionality cannot be executed 0-15 marks
Demonstration
The demonstration is mandatory and does not receive a specific mark contribution. Failing to provide an adequate demonstration of the product will lead to failing the course. Assessment of the demonstration is made on the basis of the following self-assessment form.
COMP1605
Enterprise Patterns & Frameworks
Record of demonstration
Please read and complete this BEFORE your demonstration time
Student name: ___________________________ Student number: ___________________________
Marker: ________________________
1. How many tables does your database have? ______
2. What level of functionality did you implement (circle all those achieved)?
2a 2b 2c 2d 2e 2f 2g
3. Have you used your own ANT(or equivalent build tool) to compile and deploy your system?______
4. Which technologies have you used? (Circle all that apply)
JSPs Servlets JPA Spring Other__________________
5. Which design patterns (other than the DAO and Front controller) have you used? Please mention them. ______________________________________________________________________________
6. Basic functionality
• Written using JPA or JDBC – say which _______
• Have you used the DAO pattern (or equivalent)? _______
a) Login for administrators is present? _______
b) Can administrator view all info in the database? _______
c) Can administrators change the status of a job
from e.g. reported to emergency teams dispatched, to job completed. _______
7. Intermediate functionality
• Have you used both the DAO and front controller patterns? _______
a) Can administrators enter details of an emergency and allocate a crew? _______
b) View a report of activity, by crew, showing the details of each emergency they have attended / are currently attending _______
8. Overall functionality
• Describe where have you used Spring injection (or equivalent) in your menu to display log information?
________________________________________________________________________
• Have you logged:
a) A list of all the accesses to the system _______
b) Summary information e.g. no accesses by administrators on a particular day, how many jobs were completed on a particular day, percentage of crews on duty on a particular day that were sent to an emergency etc. ________
• Have you used Spring to inject the DAO into your POJO called by the FC? _______
9. Any other features or strengths of your program that you have implemented and wish to highlight?
At the demonstration, you should arrive at least 20 minutes early to set up. When your tutor arrives you should be able to demonstrate all the aspects of your implemented coursework and be ready to answer any question regarding the architecture of your system.