Barren

Barren

Wednesday, February 16, 2011

First Submission Graded

I graded the 1st submission and sent emails out with comments and the number of points your team got.

Points structure was
1 point for your Product Name
3 points for Mission Statement
6 points for Process Model choice and reasoning

If you did not receive your grade then that means I did not receive your project.

Friday, February 11, 2011

Some tips for this week's submission!

1. Don't try to fit the process model with what your project is about. It is supposed to be the other way round. Create your process model, then work on the project following those principles. Don't worry about what model will work best for your project. You don't have the expertise in those models yet to make such decisions. Remember: The Process Model and it's Reasoning hold most of the marks for this submission. Not the project idea or name.

2. Everyone keeps coming to me for suggestions for project topics. I have mentioned 10s of projects in class. I cannot help you out there. If you have a question regarding whether the project is complex enough, then yes, come to me. If you have 2,3 or 4 ideas and want my opinion about which one to pick, then yes, come to me. Don't ask me to pick a project for you. That makes you look like you are incapable of thinking. Not a very good trait to publicize to your teachers (or anyone for that matter). Here are some of the ideas I spoke about in class

  • Automated Course Registration System
  • iOS or Android App to update Twitter, Facebook and LinkedIn status
  • Intrusion Detection System for college network
  • Implement a HoneyNet for your college's network
  • If you remember any other I mentioned, please write them in the comments!

3. I want a Mission Statement. It means you tell me: What is this a solution for, and who will use it. Don't say "Database project." or "Static Website". That's a zero right there.

4. Please don't plagiarize. Or steal code. Or use older projects to do this one. If I catch it, that's a zero for the entire project component (and getting an official letter to the HOD, Faculty Advisor and Parents). And believe me, I am very good at googling, so if you think I won't be able to find it - then you are wrong. I have already found some project ideas lifted directly from a particular website. It's kind of ok to take ideas (even though my whole speech about being creative apparently fell on deaf ears), it is another to steal code. So I'll wait and see for now. Ask yourself if it is worth it.

Good luck with the submissions. I'll have the comments back to you as soon as possible.

Friday, February 4, 2011

Retooling the Software Engineering Curriculum

The HOD asked me if there is any way in which the Curriculum could be made better, and of course I jumped onto the offer. So I have a week to come up with some suggestions. Some might impact the current students and some might be kept to incorporate next year/semester. A real life example of Phased Development, right? :)

So here are some of my quick thoughts on the matter. And since I am making a big hue and cry about creating an interactive process to learning, this is your opportunity to chime in. YOU will be the torch bearers of this process, incoming students (and teachers) will follow your example, so set the bar high and voice your opinions. Success here might lead to changes in other classes also. So take the initiative and help yourself.

My 2 cents on the matter -


  1. The book is outdated. We need to get a book that has more practical examples and less theory. An excellent candidate would be "Software Engineering - A Practitioner's Guide" by Roger Pressman
  2. UML integration. Although the HOD assured me you will learn UML in 7th Semester, but a rudimentary knowledge of UML will go a long way in making the concepts clearer, if I may use a cliche.
  3. Group Projects. This I think would be a big and necessary change.
    • At the end of  Unit 1 - basically where we are currently - students will be broken up into groups of 4-6 people.
    • Each group will go through a Software Life Cycle through the semester and produce something of substance by the end.
    • When the groups are formed, the students decide which process model they will follow, but with a twist. You create your own process - you take an existing process and add your improvements to it. The more innovative the changes, the better it'll be. Waterfall will not be allowed.
    • You pick a sufficiently complex project and nominate one person in the group as a Customer. 
    • As we go through the curriculum you create requirements, design the system and program, do backend coding, create test cases and test the system and deliver the project.
    • You decide what softwares to use for each leg of the project. Everything should not be done in MS Word, but the idea is to expose you to new softwares out there which take into account the Software Engineering processes.
    • Deliverables will match with the progression through units.
    • Idea is not to have a running system (although that would boost your marks) but to find out creative ways to tackle Software Development.
So here are my very quick thoughts on the matter. If we follow my suggestions I can guarantee you will be better engineers and therefore have better chances of employability. And to those who only care about becoming the next "Ambani" - it won't hurt to have a paying job after college.

Wednesday, February 2, 2011

Problems with installing Red Hat Linux.

There was a very atypical problem that was brought to my attention. Someone was not able to install the latest RedHat Fedora distro on their HP notebook. Fedora could not recognize the hard disk in the computer and refused to move ahead.

I am guessing there are Linux Gurus out there who'd be able to modify a generic hard disk driver to get the Toshiba drive in this laptop to work with Linux. Sadly I am not one of them.

But I did find a workaround.

Install VMWare on your laptop. This software (and it's crack) is available on torrents. That way you can create a Virtual Machine on your Windows environment and install RedHat (or Ubuntu or Mandriva or even Mac OSX) without the undue burden of creating multiple boots.

So there, problem solved.

Good luck messing around with Linux. And always backup your important documents before you create dual boot systems.

Tuesday, February 1, 2011

How to create a video game?

I got a question on Game Development today. That is an exciting field of Software Engineering and any coder worth his salt out there has attempted to write a game of his/her own. It has been a very long time since I did any development in the Gaming area, so I did some research and found some resources which might be useful.

Windows Gaming. Uses DirectX. Short tutorial.
OpenGL Game Development Resources.
OpenGL Book for 3D Gaming like World of Warcraft. : This book is available on piratebay.org.

To create your own game is perhaps one of the best ways to become good at coding. Once you figure out the intricacies of multi-threaded programming you can code in pretty much any language. Apply the Software Engineering priciples we have learnt so far - which means spend a little extra time on figuring out what you want to build exactly.

Good luck to those who are planning to attempt this. I am always around for more help.

PS: Here is a list of open source games.

UML - Unified Modeling Language

"The Unified Modeling Language (UML) is a graphical language for visualizing,
specifying, constructing, and documenting the artifacts of a software-intensive system.
The UML offers a standard way to write a system's blueprints, including conceptual
things such as business processes and system functions as well as concrete things such
as programming language statements, database schemas, and reusable software
components."
The important point to note here is that UML is a 'language' for specifying and not a method or procedure. The UML is used to define a software system; to detail the artifacts in the system, to document and construct - it is the language that the blueprint is written in. The UML may be used in a variety of ways to support a software development methodology (such as the Rational Unified Process) - but in itself it does not specify that methodology or process.
Download the free trial for Enterprise Architect to your computers and play with it. When the trial runs out, figure out how to get it again. :) Here is the link : Download Enterprise Architect