Sunday, October 31, 2010

Object Oriented Analysis & Design (OOAD) and Unified Modelling Language (UML)

Part 1 – Identifying Use Cases – Use Case Diagrams
Recently I went through OOAD and UML training. The OOAD and UML tutorial was very impressive and I decided to share it with you. Object Oriented Analysis & Design and Unified Modelling Language is very important in a life cycle of a project. Previously I was involved in project requirement study and technical design. But this time, I learned the tricks of the trade. I discovered different tips for identifying Use Cases, Actors and Classes. In this series of posts, I am planning to take you through the process of involvement of UML in Requirement analysis and Design phase.

This series will include 3 parts...

Part 1. Identifying Use Cases – Use Case Diagrams
Part 2. Realizing Use Cases – Sequence Diagrams
Part 3. Identifying Classes – Class Diagrams

For this purpose we will take commonly available sample requirementStudent Registration process. From this requirement we will identify the ACTORS and USE CASES.

Tip: For identifying Actors, identify Noun in the requirement provided to you. Also identify external systems as actors.

Tip: For identifying Use Cases, identify Verb in the requirement provided.

Sample Student Registration Requirement

As the head of information systems for WestCoast University you are tasked with developing a new student registration system. The college would like a new client-server system to replace its much older system developed around mainframe technology. The new system will allow students to register for courses and view report cards from personal computers attached to the campus LAN. Professors will be able to access the system to sign up to teach courses as well as record grades.

Due to a decrease in government funding the college cannot afford to replace the entire system at once. The college will keep the existing course catalog database where all course information is maintained. This database is an Ingress relational database running on a DEC VAX. Fortunately the university has invested in an open SQL interface that allows access to this database from college's Unix servers. The legacy system performance is rather poor, so the new system must insure that access to the data on the legacy system occurs in a timely manner. The new system will access course information from the legacy database but will not update it. The registrar maintains course information, professor information and student information through the same system.

At the beginning of each semester students may request a course catalogue containing a list of course offerings for the semester. Information about each course, such as professor, department, and prerequisites will be included to help students make informed decisions.

The new system will allow students to select four course offerings for the coming semester. In addition, each student will indicate two alternative choices in case the student cannot be assigned to a primary selection. Course offerings will have a maximum of ten students and a minimum of three students. A course offering with fewer than three students will be cancelled. For each semester, there is a period of time that students can change their schedule. Students must be able to access the system during this time to add or drop courses. Once the registration process is completed for a student, the registration system sends information to the billing system so the student can be billed for the semester. If a course fills up during the actual registration process, the student must be notified of the change before submitting the schedule for processing.

At the end of the semester, the student will be able to access the system to view an electronic report card. Since student grades are sensitive information, the system must employ extra security measures to prevent unauthorized access.

Professors must be able to access the online system to indicate which courses they will be teaching. They will also need to see which students signed up for their course offerings; In addition, the professors will be able to record the grades for the students in each class.

From the above requirement, we have identified 6 Actors:

4.Legacy System / Course Catalog (External system)
5.Billing System (External system)
6.New DB (External system)

And there are 13 use cases:

3.Registration for Secondary Courses
4.Modify Schedule
5.View Report Card
7.Sign up to Teach
8.Record Grades
9.View Student Details
10.Maintain Student Details
11.Maintain Professor Details
12.Maintain Course Details
13.Cancellation of Courses

Now we will see how these Actors and Use Cases are depicted in Use Case diagram. I have made use of Enterprise Architect for tooling.

Registration process.

 Professor System.

 Registrar System.

In the next part, I am going to talk about Realizing Use Cases – Sequence Diagrams.

- Vighnesh Bendre

Friday, October 15, 2010

Adding Custom Action in Central Administration

In my last post I had mentioned about custom actions locations and IDs. In this post you will see how to add a custom action to Central Administration's Application Management.

For this we need to add 'Module' to VS 2010 SharePoint project. You can delete the text file which gets created by default when you create module. Now in the Elements.xml file add the below xml code.

This will add a custom action under Web Applications which is under Application Management.

You can see 'People Editor Settings' menu under Application Management->Web Applications

- Vighnesh Bendre

Default Custom Action Locations and IDs

Following are the custom action Locations and IDs for SharePoint 2010. This list will
help you in putting an application page or administration page in Central Administration (CA) or site settings.


Custom Action Group ID





Applications section under Application Management on Central Administration


Collections section under Application Management on Central Administration


Databasessection under Application Management on Central Administration


ServiceApplications section under Application Management on Central Administration




Servers section under System Settings on Central Administration


and Text Messages (SMS) section under System Settings on Central Administration


Farm Management section under System Settings on Central Administration




HealthAnalyzer section under Monitoring on Central Administration


Timer Jobs section under Monitoring on Central Administration


Reporting section under Monitoring on Central Administration




Farm Backup and Restore section under Backup and Restore on Central Administration


Granular Backup section under Backup and Restore on Central Administration




Users section under Security on Central Administration


General Security section under Security on Central Administration


Information policy section under Security on Central Administration




and Patch Management section under Upgrade and Migration on Central Administration




External Service Connections section under General Application Settings on Central Administration


Site Directory section under General Application Settings on Central Administration


SharePoint Designer section under General Application Settings on Central Administration




Farm Configuration section under Configuration Wizards on Central Administration









Thursday, October 14, 2010

Access denied by Business Data Connectivity.

You would get this error after configuring a list which uses External Content Type (created using SharePoint Designer or VS 2010). Now you must be wondering when ECT and the list is created with the same login id, why should one get access denied error.

When you create a new list which uses the ECT, it gives Access Denied error

But there is one more step before you use the ECT in a list. In Business Data Connectivity Service in Central Administration we need to set object permission for the ECT.

1. Open CA, navigate to click on ‘Manage Service Applications’ under ‘Application Management’.
2. Click on ‘Business Data Connectivity Service’
3. Select the ECT you are looking for
4. Click on ‘Set Object Permissions’ on the ribbon,

In BDC service application, select the ECT and click on 'Set Object Permissions' in the ribbon

5. Enter the user name you want to give permission to, Click on Add
6. Select permissions for the selected user and click OK.

In the set object permissions popup, add the user and set permissions

That’s it, now go and refresh your list…

-Vighnesh Bendre

Monday, October 11, 2010

Create list view - Conditional Formatting in SharePoint Designer 2010

In this example, we are going to format a column based on certain condition. Here I already have a list called Projects. I also have workflow associated with it. So whenever I create a new item in the list, workflow status column shows ‘In Progress’. Subsequently when the workflow in completed, the workflow status column shows ‘Completed’.
For demonstration purpose, I will set the background color of workflow status column to yellow when the status is ‘In Progress’ and to green when the status is ‘Completed’.
In SharePoint Designer open the site on which you are working. Click on ‘Lists and Libraries’ link. Choose the ‘Projects’ list.

In SharePoint Designer Navigation, choose ‘Lists and Libraries’.
In the list settings page, click on ‘New’ in ‘Views’ section. Provide appropriate name for the view and click OK.

After choosing list, click on ‘New’ in the Views section. Give appropriate name to the list.
Now click on any column, then in the ribbon, click on List View Tools->Options->Conditional Formatting->Format Column.

Click on List View Tools->Options->Conditional Formatting->Format Column in the ribbon.
Select the field name as workflow status column, Comparison as Contains and Value as ‘In Progress’.

Set the condition criteria for In Progress status.
We have specified the condition, now we have to set the style. Click on ‘Set Style’.
Set the background-color as appropriate.

Now repeat the step for creating formatting for workflow status ‘Complete’. Click on save in SPD. Navigate to the newly created view in browser.
You will be able to see the conditional formatting on Workflow status column.
-Vighnesh Bendre