Software Systems and their Development (M301)
So have you ever wondered how your computer really does what it does. I mean I'm sitting here right now typing into my HTML editor whilst my computer is also broadcasting a radio station, maintaining the right time on the little clock in the corner, I'm connected to the Internet and I've got an icon in my tasktray flashing away. So how come my computer is able to do all that with just one little processor. In fact how on earth would you go about developing something like an operating system or a word processing program to do stuff like that? Take this course and you won't have to wonder anymore.
You know what, this course has been nicknamed the Scottish Course (along the lines of that Scottish play who's name your not suppose to say out loud) and I was quite frankly pretty worried about it. Yes it's a lot of work, yes Bacon can be hard going at times, yes there is a mountain of information to take on board but I actually really enjoyed this course. I have learnt so much this year, about how that little box under my desk really achieves what I want it to. So how does the course go about imparting this wisdom to its students.
Nice start to the course learning Java, obviously this is a Level 3 course and you are expected to have a good knowledge of programming before you start. Using JBuilder 3.5 (in 2004) as our programming environment we were off. The emphasis of the course is on reusing code, so you are mainly concentrated on learning to read code and then twiddle it rather than creating whole programs from scratch. As most of my programming is done this way anyway I was in my element ;o) All the theory behind inheritance, classes, interfaces, using packages and putting the whole caboodle together to create software is covered and it made a lot of my previous experience make a whole lot more sense than it used to.
In the next two blocks we learnt all about distributed systems, client/servers, concurrency, processes, threads, asynchoronous and synchronous inter-process communications (locally and remotely), maintaining consistent data, how cache, buffers and registrys work and how your little processor achieves the appearance of multi-tasking when in fact its only ever doing one thing at any given moment. It just jumps around a lot between tasks at speeds incomprehensible to us.
Onwards to the A and D (Analysis and Design) of software development, my least favourite part. I bet you've read all those criticisms of the Bacon book used during blocks 2 and 3, well as far as I was concerned Bacon was a walk in the park compared to A and D ;o) I've got to admit though this course finally made me understand that development is a lot easier if you break it down into lots and lots of smaller chunks and the only way to do that is to design it first. That is how they develop those huge software programs. I still don't like A and D very much but I can't deny its necessity. We used a program called Rational Rose to help get to grips with UML, a language for producing diagrams for use when designing,modelling and documenting systems. Those diagrams were really beginning to make more sense than they did in M206.
Block five was (I think) about integration, project management, risk assessment and other outside influences of the software development process, but my revision hasn't got that far yet and my brain has gone complete blank!! So I'll be back to update a bit more over the next couple of weeks.
Jack Wilson - Student.
Please email me with any other suggested websites.
|Home — Personal — Pictures — OUStuff — Nuffink — Links|
|Copyright © 2004 Toni Walton All Rights Reserved.|