Categories
Systems Analysis and Design

FIT9030: Week 8

Today’s catch up lecture was title ‘The Nature of Good Design’ and began our work on the Design phase [PADIS]. David’s analogy for the Design phase in comparison to the Analysis phase was, ‘the analysis phase is like the architects rendering of a how a house will look and its features… the design phase is the conversion of that outline into a blueprint from which the house can be built’.

Categories
Foundations of Programming

FIT9017: Week 7

This weeks lecture was once again presented by Michael Smith which was once again quite entertaining. The lecture was quite light with consideration given to the submission of the assignment at the start of the lecture. I was quite happy with the assignment, getting most of it done early and being able to consult with Michael on the solutions I had prepared. With some feedback from Michael I was then able to make some improvements and test them before the submission. This seems like it will be the necessary path for all assignments in this course as my failure to consult with the lecturer prior to handing in the Systems and Analysis Assignment 1a resulted in a mediocre mark for a very simple assignment.I suspect we will get the marks back in the first week of May.

In any case, the title of this weeks lecture was ‘Documentation, Identity, Equality and more Collections’. Covering the Java API and its presentation in Javadoc first off. As I learned the Javadoc notation when I first studied Java none of the ensuing slides where new.

Next came the equality  of Strings. Again this was one of the first important points mentioned in all Java text books. Basically using the arithmetic operator ‘==’ on two strings (or any objects for that matter) does not evaluate the content of the objects. Thus, if one wants to compare the state of two string objects string1.equals(string2) must be utilized. We spent some time discussing why this is the case, concluding that it the memory location that is compared when using the ‘==’ and that further ‘under the hood’ analysis was beyong the scope of this subject… o_o

We then looked at the immutable nature of Strings, which also applies to ArrayLists and other Collection objects that utilize Arrays.

Interfaces Implementations
Hash table Resizable array Tree Linked list Hash table + Linked list
1
Set
1
HashSet
1
TreeSet
1
LinkedHashSet
1
List
1
ArrayList
1
LinkedList
1
Queue
1
Map
1
HashMap
1
TreeMap
1
LinkedHashMap

Next came the most interesting part of the lecture.. HashMaps and HashSets (which also leads to other interfaces and implementations of Collections). I don’t have time right now to review all about collections but Michael gave me a great link: http://java.sun.com/docs/books/tutorial/collections/index.html which I will read thoroughly as from my limited experience strong knowledge on this topic is very valuable.

Categories
Computer Technologies and O/S

FIT9018: Week 7

Andy presented another high paced lecture this week, the theme was Deadlock and Inter-Process Communication. This is a continuation of the Process Management topic from last week.

As a recap:

  • Deadlocks: Can occur on any multitasking O/S where a single process is given exclusive access to a file, device or resource. Detailed conditions:
    • Mutual Exclusion – One process can hold a resource exclusively
    • Hold and Wait – A process can request a new resource over time whilst still holding other resources.
    • No pre-emption – resources can only be released by the program that is holding them
    • Circular Wait – 2 or more processes waiting for resources held the other processes.
Categories
Database Technology

FIT9019 – Week 7

Manoj presented lecute number 7 this week, titled “SQL III”. True to the title, we churned through 2 hours of SQL definitions and examples. Interestingly there are a number of differences between Oracle and MySQL. To really get the hang of SQL I have just set up a MySQL server on my home PC and running over the commands show in the lectures/tutorials and in the Text book.

Interestingly in some I stumbled upon the following in a google search: ‘On its earnings call last night, Oracle president Charles Phillips crowed about IDC data showing Oracle’s database share at 44.3% vs. 21% for IBM vs. 18.5% for Microsoft.’ Source: http://itknowledgeexchange.techtarget.com/channel-marker/database-market-share-war-resumes/

This makes me wonder why Oracle is a such a superior option over other (is the actual product better?). On some further investigation (of Oracle’s wikipedia page: http://en.wikipedia.org/wiki/Oracle_Database)there may be a couple of major reasons:

Oracle Corporation claims to have provided:

The name Oracle comes from the code-name of a CIA-funded project… <- hah

Categories
Systems Analysis and Design

FIT9030: Week 7

After finishing our lecture on Use Case Diagrams and Class Models, David completed a lecture titled “Finishing Analysis”.
This stage can be broken down into:
Prioritizing System Requirements -> Describe relevant strategic decisions required for implementation -> Determine alternative approaches for development -> Evaluate and Select an approach -> Write up request for proposal and evaluate vendor proposals (should be prior to selecting approach?) ->Present findings to management.
Put simply the final stage of analysis is to (along with management) decide on what Design, Implementation and Support path will best suit the needs of the organization.

Going back to Week 4’s Lecture, Analysis Phase:

* Gather information (review documents, current practices, conduct interviews, prototyping, questionnaires, JAD sessions, Vendor Solutions)
* Define System Requirements
-> * Prioritize Requirements
-> * Prototype (feasibility and discovery)
-> * Generate and evaluate alternatives
-> * Review with management

These 4 final steps really are just drawing a conclusion from the information gathered in the Planning phase and earlier Analysis phase steps.

Pearl of the week: In the final stages of Analysis with presentations to management it is very easy to respond ‘Yes’ to management requests which would result in serious ‘scope creep’. Ensure the solution will solve the key issues with the resources allocated (this is superior to attempting to solve everything with more than the allocated resources).

When determining alternatives, particularly for businesses, a tiered approach is best; Low Automation and cost, Mid Automation and Cost, High automation and cost. In presenting/selecting alternatives the POSTEL analysis method is relevant as a ‘big picture’ view is necessary.

Build or Buy? Buy will become increasingly prevailent

Categories
Foundations of Programming

FIT9017: Week 6

A bit of a late entry for last weeks classes. The lecture was once again presented by Michael Smith and this week we ran through a number of Java (and programming) basics.

  • Library Classes – Java API, API documentation is generally the first google results when you search a method/data type + ‘JAVA’
  • Collections – Arrays and ArrayLists is a types of collection
  • Dynamic Arrays – called ‘ArrayList ‘ in Java (there may be other collections in Java? but ArrayList the only one I know of). Much better than arrays in that the size is dynamic and objects can be stored and all iteration and sorting is pretty much already optimized. Java’s for-each loop – for(Elementtype element : collection) – for (String note : noteBook)
  • Loops – Some types of loops in Java
    • for(i = 0; i < isbn.Length(); i++) {}
    • while (scanner.hasNext()) {}
    • do {} while (inChar != ‘X’);
    • for (String note : noteBook) {}
Categories
Computer Technologies and O/S

FIT9018: Week 6

Process Management was the theme of Andy’s lecture this week. Specifically, a definition of processes and how they intersect with the CPU, Process Control and Process Scheduling Algorithms.

  • Processes – Simply a program execution.
  • Process Control –  an import part of a multi-tasking O/S (modern O/S’s and CPUs enable multithreading)
  • Information about processes is store in the Process Table by the O/S

The lecture glazed over the process management system stopping at:

Categories
Database Technology

FIT9019: Week 6

Manoj presented a lecture focused on the Structured Query Language [SQL] upon our return from the easter break.  The tutorial was closely tied to the lecture enabling us to work through the code examples shown. With that in mind, shown below are the types of queries covered in the lecture and tutorial with an example and description:

CREATE – create tables (or Databases), specifying the table name and column values. Constraints can be applied to the attributes such as Primary Key, Foreign Key, Default value and Not Null however it is probably easier to add constraints using the ‘ALTER TABLE’ query. CREATE is part of DDL.

CREATE TABLE DEPARTMENT
(DEPT_NUM INTEGER, DEPT_NAME varchar(20), CREATION_DATE DATE);

Categories
Systems Analysis and Design

FIT9030: Week 6

After a weeks break David presented an introductory lecture on the Object Oriented Analysis Phase [PADIS]. As we had already covered Class Diagrams in the previous lecture we moved straight into Use Case Modeling. All of the diagrams used in the Object Oriented Analysis phase (and discussed in this week) are members of the Unified Modeling Language:

Source: Paulo Merson

The Diagrams/Models covered in the Object Oriented Analysis phase are:

Categories
Foundations of Programming

FIT9017: Week 5

This weeks lecture was presented by Michael Smith and targeted an introduction to testing and debugging. Initially was discussed when testing should begin in the Software Development process, the Design phase. As soon as the solution has been designed then tests for that solution can and should also be designed. During the implementation phase testing should be conducted as soon as compilation is complete. Documentation was also recognized early in the lecture as a key aspect of testing and debugging.

Pearl Of The Week: Types of errors in Programs:

  • Syntax Errors -> Mistakes in spelling or unclosed parenthesis etc. Compiler will find these errors, preventing completion of compilation until they are amended.
  • Execution/Run Time Errors -> Null Pointer Exceptions, Attempting to access arrays outside of bounds. Occurrence of these errors in Java will result in relevant exceptions thrown.
  • Logic Errors -> Project has been compiled and runs without error but behavior is not as expected.

We then explored some examples of how important testing and debugging is by reviewing some examples where the process was not done correctly.