CTEC2404 Internet Software Development This log book must be handed in at the end of the current year. This is an official record of assessments. Keep it in a safe place. Your Name __________________________________________ P Number __________________________________________ Course __________________________________________ Tutor __________________________________________ Portfolio of Work During this module you will create a portfolio of work consisting of three web applications each worth a third of the overall module mark. Work must be submitted to your tutor via ftp prior to the set deadline. Each application will be assessed by viva and it is up to you to manage your schedule to maximise your viva marks. All grades will be recorded on your eGrid (available from the module web site) and this log book. Each assignment has marks available for creative development. These marks will be awarded for your creative use of the technologies available. This work may be devised by you and must be agreed with your tutor. Marks are also allocated to members of your SCRUM team based on their engagement. Team engagement will be judged by on-going engagement with the team. This grade will be awarded at the review session for each assignment. Any team members not deemed to have engaged with the work will not be awarded the grade. It is expected that all team members will make some claims for credit at all meetings with your tutor. In most cases zero marks will be awarded for simply copying the examples on the module web site. You must show sufficient personalisation to demonstrate that the work is your own. 1 2 3 Title Weight Implementing a Paper Based Design 75% as a Three Layer Web Application Deadline Friday 10th Dec Scrum Team Engagement Creative development XML/XSLT – Presentation Layer Alternatives 10% 15% 75% Friday 8th Feb Scrum Team Engagement Creative development Collection Classes, Mapping and Controlling Table Data for Multiple Users Scrum Team Engagement Creative development 10% 15% 75% Friday 22nd Mar 10% 15% Schedule for Viva Marks and Meeting Schedule Week 1 2 3 4 5 6 7 8 9 10 11 Xmas Xmas Xmas 15 16 17 18 19 20 21 22 23 24 25 Easter Easter Easter 29 30 Assignment 1 100 100 100 100 100 100 100 100 100 100 FTP Deadline 100 Review week 1 0 0 0 100 Review week 2 90 80 70 60 50 40 30 20 10 0 0 0 0 0 0 Assignment 2 100 100 100 100 100 100 100 100 100 100 100 0 0 0 100 100 100 100 100 FTP Deadline 100 Review week 1 100 Review week 2 90 80 70 60 0 0 0 50 40 Assignment 3 Meeting? 100 100 100 100 100 100 100 100 100 100 100 0 0 0 100 100 100 100 100 100 100 100 100 100 100 FTP Deadline 0 0 0 100 Review week 1 100 Review week 2 Contents Penalties for Late Work .................................................................................................. 1 Penalties for Plagiarism .................................................................................................. 1 Working in Scrum Teams ............................................................................................... 1 Method of Assessment .................................................................................................... 1 Making a Claim for Credit .......................................................................................... 2 Five Minute Claim for Credit ..................................................................................... 2 Review Weeks ............................................................................................................ 3 After the Review Week ............................................................................................... 3 Unclaimed Credits ...................................................................................................... 3 Assignment 1 Implementing a Paper Based Design as a Three Layer Web Application 4 What is the purpose of this assessment? ..................................................................... 4 What you need to do ................................................................................................... 4 Assignment Roadmap ................................................................................................. 5 Marking Grid 1 ............................................................................................................... 6 Assignment 2 XML/XSLT –Layer Alternatives............................................................. 9 What is the purpose of this assessment? ..................................................................... 9 What you need to do ................................................................................................... 9 Assignment Roadmap ............................................................................................... 10 Marking Grid 2 ............................................................................................................. 11 Assignment 3 Collection Classes, Mapping and Controlling Table Data for Multiple Users ............................................................................................................................. 13 What is the purpose of this assessment? ................................................................... 13 What you need to do ................................................................................................. 13 Assignment Roadmap ............................................................................................... 13 Marking Grid 3 ............................................................................................................. 14 Penalties for Late Work Deadlines for each assessment are listed above. Failure to meet a deadline will result in the normal penalties for late work being applied. Extensions will not be given without clear third party evidence such as a Doctor’s note. Penalties for Plagiarism All work you submit should be original to you, created by you. Any questions of authorship of any item of work will result in a plagiarism hearing with the possible result of a zero grade for the module or even expulsion from the University. Working in Scrum Teams In meeting the requirements of the assessment there is a lot of work to complete and many concepts to grasp. You are going to need all of the help you can get in order to do well in this work. In order to help you get to grips with the work you will be placed in SCRUM teams based loosely on SCRUM development (Google it!). In the first week of an assessment you will be placed in teams of 4 – 5 and you will need to identify what work you need to achieve over the assessed period in order for you all to complete the task individually. Over the course of seven days you will perform a sprint where you all set about achieving your set tasks. During the course of the module you will have regular meetings with your tutor where you make claims for credit. You should note the weeks for these meetings on the schedule at the start of this document. One task of your SCRUM team is to ensure that each member of your team is working on a unique project. No two people may be working on the same / similar projects and you should check with your tutor that the selected topics are acceptable. If there is any reason why you are not able to work in a team then please discuss this matter with your tutor. Note that even though you are working in a team your work is still individually assessed. SCRUM teams may be modified at any point during the module by your tutor. Method of Assessment Your work will be assessed by viva. You have been provided with an eGrid (electronic marking grid) which will be completed by your tutor as a result of them interviewing you individually about your work. You have also been provided with an eGrid log book which is your hard copy of the assessment process. Keep this safe and do not loose it otherwise you may have to claim for marks again. 1 Making a Claim for Credit To obtain marks you must make a claim for credit. The first stage in making a claim for credit is to complete a section of your portfolio work to a level where you consider it worthy of some marks. You may make a start on any of the three portfolio tasks as early as you like, this allows you to take more control of your work schedule. Your tutor will award grades in the following bands for each part of the credit category. Absent 0 % Poor 25% Good 50% Very good 70% Perfect 100% Each item of portfolio work has a specific deadline, the rules for claiming credits change dependent on when you claim. To obtain the top marks you will often be required to demonstrate a clear theoretical grasp of what you are doing. Your tutor may devise questions on the spot to really probe your understanding of the work. Five Minute Claim for Credit In the lead up to the deadline your tutor will draw up a schedule of team meetings. Your tutor will allocate a maximum of fifty minutes per lab session to meet with SCRUM teams. Each member of the team is allowed up to five minutes to claim credits. Each member must make claims in turn and your tutor will cut the claim short if you are not able to answer questions in a concise manner in the time allowed. During these meetings a person may only claim a single credit category. These meetings feed directly into the way in which your SCRUM team grade is calculated. You need to document the meetings and get your tutor to sign the documentation. Making a claim for credit on work prior to the deadline allows you to claim credit for work that is not completed. This allows you to make a start on a section of work, find out what you need to do to improve and then claim for credit later on to improve your grade. 2 Review Weeks During the review week there will be no additional material delivered. Two weeks are set aside and typically each team member will have about ten minutes to make claims. At this stage you have already handed in the work and no changes are allowed. After the Review Week Up until the review week the grade for a successful claim for credit is 100% once the review weeks are completed the available viva marks will be reduced each week. This means that the sooner you make a successful claim the better your grade will be. See the front of this document for the schedule of viva marks. You may make claims for outstanding credits during any week of the module and also during subsequent review weeks. Unclaimed Credits At the end of the module it will be assumed that any unclaimed credits deserve zero marks. It is down to you to make sure that you claim all of the credits that you think you deserve in plenty of time before the end of the module. 3 Assignment 1 Implementing a Paper Based Design as a Three Layer Web Application What is the purpose of this assessment? In creating web based applications, architecture is of vital importance. The splitting of software into layers is vital to scalability, security and maintenance. In this assignment you will create and consider a stripped down three layer design. You will see how the data for the application is stored in tables and accessed via stored procedures. You will use a pre-prepared data conduit to access the data layer. This data conduit will provide functionality to your own middle layer classes that allow you to model the data in the database using object oriented technologies. The middle layer classes you create will provide data related functionality to the code in your presentation layer. In addition to learning about layered architecture you will also learn how to program in C sharp using the Visual Studio IDE (Integrated Design Environment). This will introduce you to web forms, creating and using classes in C#, creating and using stored procedures and tables in an SQL server database. At the end of this assignment you should understand and be able to explain how all of these elements fit together and how data is passed from one end of the system to the other. In addition to the above you will create a class library allowing you to re-use your code on later assignments. What you need to do Your task is to create a single page paper based design and implement that as a three layer application in Visual Studio. You will need to decide on a topic for your project. This may be some sort of ecommerce site, however you would be wise to discuss the topic with your tutor to ensure that there is sufficient complexity. Each member of your SCRUM team must be working on a different topic. Within the scope of your project you will need to select a single class of object and design a data entry form as a paper based design. For example, if you are creating a site selling mobile phones then you would identify the phone as your single object. Your next step is to use Visual Studio to create a suitable structure to support your three layer application. For example you will create components of the architecture that allow you to enter data for a single phone and press a suitable button. Code associated with the button will process the data and pass it to suitable classes that will save the details to a database file. The data should be validated to ensure that the program does not crash. 4 You will need to create... Your paper based design A web form allowing the input of a single class A class modelling the methods and properties of that entity The data conduit configured to your requirements A table with a suitable name and fields to store your data A stored procedure allowing access to the table data Assignment Roadmap The details of the product should include as a minimum... Product ID (This should be a unique number generated by the database) Product name (text) Product description (text) Product price (decimal) Model no (integer) Date added (date) Make note of the range of data types that need to be present in your design. Upon pressing a suitable button on the interface the data should be passed to an instance of a class of your design. Your class should include at least two methods; one method to handle the update to the database and the other method to handle validation. 5 Marking Grid 1 (See the eGrid for detailed weightings.) 1. Visual Studio Configuration Visual Studio has been correctly configured to support development against a three layered architecture Presentation Layer Class library Data Layer 2. Paper Based Design The paper based design is professionally presented with suitable annotations making it clear how the system will work. The paper based design has been implemented at all layers of the system. Professionalism of presentation Level of informative detail (annotations) Implementation at all layers of the system 3. Presentation Layer The web form validates the data entered and provides meaningful error messages to the user. The controls on the web form are set up using a suitable naming convention. Your presentation layer code is well documented. The presentation layer code makes use of middle layer objects in such a way that it has no idea of the database structure. Validation and clarity of error messages Selection and configuration of controls Standard of documentation Correct design and use of middle layer classes 6 4. Middle Layer Your middle layer class has a suitable set of methods and properties and the data conduit is fully encapsulated by the design. The class is well documented and provides suitable functionality for the task at hand. Use of naming conventions Correct configuration of methods and properties Standard of documentation 5 Data Layer Your stored procedure is well documented and uses a suitable naming convention. Your table design contains a set of suitably named fields all using appropriate data types. Standard of documentation Correct use of naming conventions in stored procedure Correct selection and range of data types in the stored procedure Appropriate selection and range of data types in the table 6 Theory You are able to have a concise and clear discussion with your tutor on the following topics You have a clear understanding of the need for multiple layers and the function of each layer You are able to discuss some of the advantages and disadvantages of alternative architectures You are able to explain how a single item of data is passed from the presentation layer to the data layer You are able to explain with examples the nature of objects, classes and instantiation 7 7 Creative Development You should agree prior to the review week up to four areas of creative development 1 2 3 4 8 SCRUM Team Engagement Your tutor will judge your engagement with the work based on your participation in team meetings. Team meetings consist of those with your tutor where you claim credits and documented meetings out of class. SCRUM team engagement 8 Assignment 2 XML/XSLT –Layer Alternatives What is the purpose of this assessment? One issue with internet software is that there are a large range of competing platforms and technologies available. It is important to know how to make these different technologies work with each other. An important core technology at the heart of web based systems is XML. XML allows different systems to communicate with each other providing a standard format for structuring data. The .NET framework provides a number of classes that allow the control of XML. The separation of data from presentation is an important feature of multi layer architecture. Even within a single layer there may be other layers. For example splitting data from the presentation of that data allows the application to use the same data on a range of different platforms. For this assignment you will look at how the presentation and data layers may be built on different technologies to the previous assignment. You will learn how an ASPX file operates under ASP.NET and how it is processed by the client and the server. You will see how the .NET classes allow us to control transformations of XML data to other formats. You will learn how an XML document is structured and transform the data using XSLT/XPath into an XHTML file. The resulting XHTML file will allow you to perform simple form processing communicating with the server to filter data. You will work with these documents at a low level so that you understand how they are constructed and how they may interact with each other. What you need to do Setting up your Project Create a new web site inside your solution suitably named to identify it as assignment 2. To this web site you will need to add a reference to your class library. You will need to obtain the file XMLDataPack.zip from the module web site. Extract the contents of the archive and you will find the files to get you started. clsXMLConduit.cs commercial.xml commercial.xslt commercial.aspx Add this file to your class library Place in your assignment 2 folder Place in your assignment 2 folder Place in your assignment 2 folder You will need to create your own XML data matching the topic of assignment 1. This data needs to be processed by an XSLT file and presented in a professional manner as an HTML page. 9 Assignment Roadmap 10 Marking Grid 2 (See the eGrid for detailed weightings.) 1 HTML Form You have created an HTML page that uses a query string to pass data to an ASPX file. This page is professionally presented with the data set out in meaningful columns. You have created an HTML page that communicates to the ASPX page using a query string Your page is professionally presented The data on your page is set out in meaningful columns 2 XML Data Conduit You have constructed the XML Data Conduit which implements AddParameter and Execute methods and the data returned by the XSLT file is exposed by the QueryResults property. Your code is well documented and naming conventions have been followed. AddParameter Execute QueryResults Correct use of naming conventions and high standard of documentation 3 XML and XSLT You have created your own XML data which is transformed using a suitable XSLT file. The XML is well structured demonstrating the use of nodes etc... The XSLT file is well structured and documented. Correct use of tags elements and nodes Use of attributes and values Application of the five rules 11 4 Theory You are able to have a concise and clear discussion with your tutor on the following topics You are able to explain the mechanisms that allow data to be passed from the HTML form to the XSLT file and back You are able to discuss some of the benefits of separating data from presentation You are able to discuss the use of .NET classes used for transformations You are able to discuss the nature and benefit of encapsulation in the context of the first two assignments 5 Creative Development You should agree prior to the review week up to four areas of creative development 1 2 3 4 6 SCRUM Team Engagement Your tutor will judge your engagement with the work based on your participation in team meetings. Team meetings consist of those with your tutor where you claim credits and documented meetings out of class. SCRUM team engagement 12 Assignment 3 Collection Classes, Mapping and Controlling Table Data for Multiple Users What is the purpose of this assessment? In completing the first assignment you will have seen how object oriented technologies may be used to model a single record in a table. In order to perform any meaningful tasks with a database it is essential also to be able to model entire tables of date and manipulate them. In this assignment you will learn about collection classes and how to implement add, edit and delete functionality. You will create a range of stored procedures allowing you to perform the standard operations. You will also take table data stored in a data table and model it in a collection class. This collection class will be bound to a set of web forms allowing you to perform the standard set of actions on a database. In addition you will need to give consideration to creating a multi user system and the security considerations that come with it. What you need to do You need to extend your work for assignment 1 to turn it into a secure multi user system. Your system must allow for adding, editing, deleting and listing of the data. Each user on the system must have their own personal data. For example when user A logs in they may add edit and view their own data. When user B logs in they will also have access to their own personal data with no way of accessing the data belonging to user A. Your design must be implemented in such a way as to allow switching of database files. Assignment Roadmap 13 Marking Grid 3 (See the eGrid for detailed weightings.) 1 Presentation Layer You have created a suitable set of web forms for the task (allowing list, add, edit and delete) that follow the naming convention with a high standard of documentation for the presentation layer code. All data is validated with a comprehensible level of error reporting. Any attempts to delete data require confirmation from the user. Users should not be able to access certain pages in the system without authorisation and should be re-directed to a single point of entry if not logged in. Users should only be able to see the data for which they are authorised. You should have implemented at least one example of binding a list to a collection. Controls conform to naming conventions and the code is fully documentated Web forms implement Add, Edit, Delete and List Data entry is validated with meaningful error messages Users must be authenticated to access the system with a single point of entry Users have their own private data which is not accessible to unauthorised users You are able to demonstrate the use of data binding 2 Middle Layer You have created a suitable set of middle layer classes that provide functionality to the presentation layer. You have a collection class that allows for control and validation of data. You have modified the data conduit in such a way that it inherits from data specific classes in your middle layer e.g. OleDb & SQL Server. Your data conduit is set up in such a way that it is possible to switch database technologies You have a suitable collection class that implements Add, Edit, Delete and List You have applied suitable unit testing to the components of your site 14 3 Data Layer You have created a set of suitably named well documented stored procedures that provide functionality to the middle layer. You have created tables that allow for storage of personal data for each user. The tables and fields are suitably named with appropriate selection of data types. Correct use of naming convention and documentation in stored procedures Correct naming and data types of parameters Suitable naming of tables and fields Selection of appropriate data types in tables 4 Theory You are able to have a concise and clear discussion with your tutor on the following topics You are able to explain the function of the ADO.NET classes used in the data conduit You are able to explain the nature of SQL injection attack and how your system overcomes this problem You are able to discuss the nature of HTTPS You are able to discuss some of the security considerations in your design 5 Creative Development You should agree prior to the review week up to four areas of creative development 1 2 3 4 6 SCRUM Team Engagement Your tutor will judge your engagement with the work based on your participation in team meetings. Team meetings consist of those with your tutor where you claim credits and documented meetings out of class. SCRUM team engagement 15