Friday, 13 May 2011

FIT 2011 Week 10

Lecture

So blogger was down yesterday so I couldn't blog...Interesting and also my SVN repository is down as well for another subject...bah it will get better.....

Anyway Test Cases....This is so important....Since I am doing FIT 2024 I can see a huge correspondence here with that subject and I like the Test case combination table...The one with all the test cases showing their paths. I am going to implement that into my report as a summary of my test cases for FIT 2024.

Its great when you can apply something you learnt from another unit into another unit. A big correlation and love that. Anyway test cases are so useful for the programmer...How do you know if something is to specification? Test it....How can you be sure the system will work according to requirements? Test it....

Without testing one cannot prove quality.

3 kinds of testing stage
  1. Unit Testing
  2. Integration Testing
  3. System Testing
In Object Oriented(OO) Design I believe one can't test every procedural statement so testing state changes seems to be the best way to conduct unit testing but since OO's smallest unit is a Class / Module it would be better to call it Class / Module testing. Hence why the Use Cases can generate test scenario's for OO easily since it flows naturally of behaviors of an Object..

Integration testing should be done based on what the system needs...Like System needs a purchase order, allright lets integrate that now, and then now needs to confirm the order, lets integrate that now. Based on number of threads. Why this is done? Because if you think about it, if I have tested my unit cases why should I worry if the system would break on integration? The reason why it would break on integration would be many other comnponents and modules do not necessarily communicate with each other well... High coupling or low cohesion problems tend to show up during Integration testing.

System testing, is when everything is integrated lets make sure the system works. Smoke tests are tests runned daily so that the system is exercised daily.

Turotial

Writing Test cases is not easy. There are many paths to consider. This does looks like the cyclomatic complexity flow graph though but the cyclomatic complexity is to determine the maximum number of test cases needed to test all states through the class. Anymore then that would mean, there are too many test cases and thus wasting time.

In the same way the test cases applied in FIT 2001 takes the Use case as the stepping stone to creating test cases. I suppose if I were to start a process to generate test cases...

I would first get the basic flow....Like a tree and make all the alternative connections at each step... When I have completed my tree then I can evaluate the test cases I need and then start constructing them and then testing them the moment code has been implemented..

Allright need to go and finish another assignment....

FIT 2001 Week 9

Lecture

I didn't realise I made it to blog of the week until today...Shows how much time I invest into this subject reading other peep's blogs.

Hmm....Request For Proposals(RFP)....I remember doing something about this in FIT 2008 for Networks. What was I doing....ah right I remember now....Good to have an archive of it... we were playing vendors for RFP's and had to work a Project requirement Brief based on the Scope of Work and Objectives of the RFP.

An RFP goes out and vendors will ussually, in some way, bid for it via offers. Then the client with all these offers will ussually choose the solutions based on the multitude of alternatives available unless the client is already decided on developing in-house and thus only has one solution already in mind. Ussually client's will use a matrix with weights on it. Engineering disciplines use a similar table to check alternatives for alternative solutions. The way we do it is just weighing requirements and checking how well the system being develop is meeting this requirements.

It is better to have alternatives, just like a backup plan in case anything goes wrong, but if you only have 1 plan, don't spend too much effort thinkingof another plan of action. Just follow through and iteratively remodel the plan and if a new plan does come out and then you can iterate again and examine. In other words iterate in the small, don't commit too far into the plan....Divide and conquer...Explore opportunities as they arise..You can get stuck in planning stage for a long time.

Tutorial

Converting class diagrams to relationships

1. Create a table (or entity) for each class
2. Choose a primary key for each table (invent one if needed)
3. Add foreign keys to represent one-to-many associations
4. Create new tables to represent many-to-many associations
5. Represent classification hierarchies
6. Define referential integrity constraints
7. Evaluate schema quality and make adjustments
8. Choose appropriate data types and value restrictions for each field.

Seems like a tedious amount of steps....

I think all it means is just converting class diagrams into ERD diagrams....Why are the lines in the solution dashed....I thought ERD was solid lines....hmm.....I am going to assume it is suppose to be solid...

Blogger was down yesterday and yes this post is long overdue....I will upload Week 10 very soon

Sunday, 1 May 2011

FIT 2001 Week 8

 Lecture 

Its been awhile since I kept up with blogging on FIT 2001... I was swamped that week with loads of assignments. Its just crazy when suddenly in that one week you have more then 4 assignments due...

Anyway on to the business at hand...

Design Use Case Realization...Wow this topic had a huge bunch of information to take in, for a two hour lecture...

The 4 symbols for entity, control , boundary and data access can be used in a Robustness diagram which shows the initial system design.

• Entity – Seems like domains of the problem to me
• Boundary – System wall boundary between user and system
• Control – between view layer and domain layer there is this message flow that needs to be manage and the control does that
• Data access –Accessing data

The above is what I took from the lecture on it....The lectures provide a more formal definition but I needed something more intuitive.

Coupling is the measure of how the classes are linked.

Cohesion is the measure of consistency of functions in a single class.


Coupling and cohesion are very important. Its best to have low coupling so most classes are independent...It is reducing dependencies. Also good practice to have classes of high cohesion then a single low cohesion class.

Examples that I would use would be a car has many coupled parts like driveshaft and gearbox but it has high cohesion means that the gear box does it's function to switch gears and the driveshaft is just to transmit power to a differential and then to the wheels. If dependencies could be reduced then the car would run even more efficiently and maintenance will be easier. Less moving parts.

Same for an information system.You want to reduce as many dependencies as possible.

To get to the Package diagram which shows the 3 different view of objects. The robustness diagram is used to develop the first cut sequence diagram, and then the more complete sequence diagram using the additional view layer and data access objects are added on and then the final class diagram inclusive of methods and visiblity will lead to the package diagram.

Tute

Took me a long time to understand what was going on regarding the work involve. But once the robustness diagram is figured out, it is so much simpler to progress towards the package diagram.

I found that the Use Case Narrative can be described as an Activity Diagram. I only just started reading the SJB text book and I find that I should continue if its not too late to start reading it in detail because concepts like this aren't obvious to me.

Also the solutions are for review questions on page 430 but the questions are for page 474...Very interesting.....

Thursday, 14 April 2011

FIT 2001 Week 7

Lecture

Today I found the material very general and not specific in any case regarding design.

Design phase activities and key questions table looks very important.
  1. Design and Integrate the Network
  2. Design the Application Architecture
  3. Design the User Interfaces
  4. Design the System Interfaces
  5. Design and Integrate the Databases
  6. Prototype for Design Details
  7. Design and Integrate the System controls
The 7 above I would summarize as, Integrate into network design, Application design, User interface Design, System Interface or how sub systems interact with each other design, Database integration design, prototype before implementation and Integration of system controls.

I guess a story probably is more interesting then the above though.


A company releases a tender for an upgrade of their system. Now after all the analysis has been done, then the design work can begin. Some key notes is whether the current company has a network and can we actually use it? If we can then it solves a lot of key design issues, if not then we may need to reconstruct a network system that can integrate with the current network for our new system.

Whoever gets the tender has to come out with a proposal and this can be describe in the application architecture and demonstration of the application can be done using user interface mock ups if its a software system. The system interfaces requires integration of communication between the company's system and the new system being developed. The database also has to be updated to link up with the new system. A prototype is developed and tested and then we integrate the entire system controls into the new system.

And then we come into the topic of networks....Ah networks, reminds me of the FIT 2008 course....ahh memories.....Networks are like a whole entire field on its own. Integration into one requires a lot of planning and even the bandwidth can bring down a good system. A system that takes up too much bandwidth will compromise the companies current systems that are still being used. So networks are very important because of communication.

Client - Server, 2 layer, 3 layer, just seems to be cascading or buffering load by using seperate servers to handle different sets of data.

Single tier, Multi Tier Computers, Clusters.....describes the systems of computer interfaces

• Internet – Global collection of networks that use TCP/IP networking protocols
• Intranets– Private networks using same TCP/IP protocol as the Internet
– Limited to internal users
• Extranets – Intranet that has been extended outside the organization

Tute
Today's tute was about thoughts on design. My thoughts is that design is a very messy business. In order to actually be a good designer, one must have a lot of references and knowledge on the particular design before one can design for it. Going in without a plan in design wastes a lot of time. I remember how hard it was to make a inertia powered model without a plan.

Anyway looking at websites showed me the multiple use of architectures and then you have competitions between cloud computing and the traditional server client architectures. I see the usefullness of the cloud but sounds like more of a power company sort of service. Imagine then in  world fully on to cloud computing, one only needs to use a word processor by renting a service for word processing from a cloud. Then we would be charged based on the rental time or usage from that cloud. It would keep our computers neater and backups are handled by databases but privacy and security may be an issue.

I think I am confuse now regarding this topic, must find out why are we learning about network architectures...So I asked Sutti and I finally understand. Before we can design a web system, we need information on how much load the system can take. The benefits and risks of different architectures. ....

Anyway can't spend anymore time, in conflict with other subject assignments and exams, such a busy weekend

Monday, 11 April 2011

FIt 2024 Funny crash

 










GCC crash




after GCC Crash , under projects -> freeze...then on run looks like the above....

Friday, 8 April 2011

FIT 2001 Week 6

Lecture

Use case diagrams...ah....long live the actors who made our lives so enjoyable.

Users are known as actors well in this role playing game anyway. Games seem to come to my mind when I think of Use Case diagrams. Developing games require a lot of objects interaction within the system as well as User interaction so definately there must be Use Cases to test whether a certain functionality is required, desired or even if its worth implementing.

Lets say an Ogre wielding a club.Most likely whack the player for some damage . The player also can interact with the Ogre thus whacking the Ogre for some damage as well. This would be called an includes relationship. Well obviously 1 whack won't do so hence we then have the repeating message to associate that it will take a couple of twacks before either the Ogre or the Player gets knocked out.

Domain models are static models but use case models are dynamic. I believe the meaning is that domain models are subject to iteration but they are highly fixed to the requirements but the dynamic models require more user interaction and thus requirements change every time on the whim of users also iteratively.

Drawing use cases involves a stick figure defining the role. This role is highly dependent on who the system being developed is catered for. Thinking of roles reminds me of my time playing Neverwinter Nights, following D&D roles. Roles determine who and how will that role affect the usage of the system.

CRUD, create ,read/report ,update, delete....Use cases should cover all the above because then the system can be integrated fully. Like the Ogre above which has to be created by someone, able to report and be read, update its status or on KO be deleted in the system.

Tute

Tute gave some practice on domain modelling and use case diagram...To do a full domain class diagram seems to be quite tedious because of the interpretive nature of the cardinalities.

One thing tht I asked my tutor was regarding the System Sequence Diagram. Can the system actually send messages to the user? I didn't thought about it because the arrow denotes message sending and the dashed line arrow represented return message so I was informed that it is on the perspective on the user not of the system.


For example, System displays a prompt asking for user to click okay or cancel. Wouldn't this be a system sending a message to user. Yes in some way but note that before the system can actually display this mesage the user must first see the message and thus it would look more like , User sends a message to the system I want to do something because I saw this message, system responds by sending the appropiate message back and then the user sends the message in respond to the return message of the system.

Got to start on my assignment 2.... 

Thursday, 31 March 2011

FIT 2001 Week 5

Lecture

Today's lecture was on Usability Testing.

Usability evaluation which are formative and summative. Formative to form, Summative to sum.. Based on that, one can gather, to form feedback and to sum results i.e. measure effectiveness.

You can thus have analysis and empirical forms of evaluation.

An analytic evaluation is an analysis evaluation. Basically thinking through the system based on guidelines is one of the forms. Heuristic analysis goes in here. Heuristics is basically sort of like a rule of thumb. A set of rule of guidelines that one has reference to, to make a generally good form of evaluation.

The empirical form sounds more like experiements on guinea pig users. Well not to call them that but it is a test of the system through the use of actual users.

There are so many standards out there regarding usability and one controversial one which I happen to read was why Ubuntu switched to left side minimize, maximize and close buttons. It was found that it was actually more productive but me being a windows user felt ackward at first but who am I to complain about increased productivity. Eventually I adapt to that standard but shouldn't a standard be something intuitive and not adapted to? There was a lot of complaints about the buttons being the wrong side at first but eventually some conform and now it is as it is, but Ubuntu does have the ability to revert back to the original button position if user so wishes.

Tute 

In tutorial, I got to play a role playing game of facilitator and participant for Monash Library site for a Usability Test. This would be an empirical type though.

Going through the Monash Library system and found much difficulty. My participants had some trouble using the search key word and they would rather search using google then the library's search function. As a participant I felt that I could generally find stuff that I want because I am so used to searching short key words and if I can't find the book that I want, I look for the location of a similar sounding book and just go to that section, its bound to be there buried among the tons of results and besides, they are of similar value.

Anyway can't spend too long on the blog, assignment due on Sunday..     

Thursday, 24 March 2011

FIT 2001 Week 4

Lecture
User Interface. We all have use them and we all carry them. Our occular organs have to adjust to it if they are not damage. But even this we must cater. User interface makes or breaks software because if the user interface is bad, no one will use it.

User Interfaces handles the input and output interaction between user and system. To many users this is the actual system.

A user interface contains aspects of physical, perceptual and conceptual in nature. Physical represents the actual device, perceptual refers to the senses of the user and the conceptual is user's knowledge on the logic of the system.

Human Computer Interaction was very interesting though because it represents our methods of communication with the software. The method of communication shown in lecture at the end was brain waves, multitouch and a comedy about bad user interface.

I liked the brain waves one but the device looks goofy and that is one reason why I won't use something like that. The idea is great in concept but some of us still need feedback when we're doing things.  I remember seeing a documentary on flying planes with our minds, but reliability was scary. Imagine if the system failed or the mind failed, the plane would lose control. Still a bit primitive but lets see what the future can bring in the next 20 years.

Talking about user interface, I am a gamer and I play games and hence user interface is very important to me when I play video games. I had the fortunate opportunity to try Microsoft's Xbox Kinect playing without actual control pad. My opinion is that no doubt it is a great idea for interaction but as a gamer, I still felt something was wrong when I played it without a controller interface for the first time.

I am still not satisfied with the method of the user interface using this type of system of visual recognition for gaming because I am missing some feed back. I was playing a table tennis game and I had to carry a prop, a dvd case just so that I can feel like I am holding a racket when I swing. At least Kinect detected my hand with a prop and can detect quite accurately. This type of interface though I felt is very apt for dancing games as there is no feedback to really tell you what your doing is right or wrong. Just studying the choreography would have been enough to beat most dancing games. Is it fun? Well some games do make you look goofy.

The interface should be user centric since user are using gonna ultimately in the end use the interface. You wouldn't design a user interface for a panda for a human since they are both have different motor skills and interaction with the environment. A panda probably would smack the computer off his ledge and go back toeating rich shoots of bamboo.

How do those things grow just by eating bamboo? If you look up bamboo nutritional facts, they are somewhat low in saturated fat, cholesterol high in dietary fibre. So I guess eating just greens can also make you grow, if you eat and sleep all day.

Oh another good question is why penguins do not get cold feet? :p I already know the answer but you guys go look it up.

Tutorial

Amazon.com....oooo.... how I am reminded why every shopping site has too much details. Aesthetic and Minimalist design came into my mind when visiting this site, this criteria alone was not satisfied since I went searching for a book called "Legacy of Injustice". This was a book picked by my sis since she's a literature student. So it was easy enough to find but do they really have to tell me of other options and the whole menu though consistent is full of clutter. Most of the time, isn't people interested in how much it would cost first before review.

I decided to see what happens if I add to cart and to my shock and horror, there were even more other stuff I didn't need to know. And then on proceeding to checkout, foosh~~~ I see no go back button. I guess when your designing a web interface it is assume everybody knows that there is a back button on the browser. May be nit picky about that though.

 Well I have found another mock up tool that is open source, its called Pencil Project....It is lacking certain things compared to mockflow and balsamiq.......but it works I guess and good enough wireframe design with linking story boards and the ability to export to .html, images and pdf's. Gotta love free stuff....

Yay this is the Jolly Owl with satires signing off.

Oh the moodle page for week 4 tutorial has balsamiq website pointed to balsamic which is the spice and not the software. Thought I let someone know on my blog.

Thursday, 17 March 2011

FIT 2024 Week 3

Here I go again on another episode of FIT 2024...I am getting into fits.... :p

Anyway proceeding with the usual format

Lecture

Prototyping.....Well prototyping is pretty common in the engineering field as well since I have graduated as a Mechanical Engineer and worked for a year. I worked for a Car Shock Absorbing Damper Manufacturing company and, there were lots of prototypes to test new types of product.

A key thing about that company was how it build its database system. It was run over excel with no macros to keep track of stock and prices of its components. It was a really terrible system as no actual system development thought was put into it except keep it simple and the cost low. It was done that way because the manager saw the prototype and immediately jumped on it like a hungry wolf. And it began to be difficult to change the system or even update the system. Updating the system created the pain of having to key in each entry and going to look for receipts to get the latest product prices. Pain because was not updated for 10 years. Prototype dangers are very real.

Basically if you need to prototype something, you build it with a specific client in mind. Like a prototype user interface is built for the clients which are users.  Prototypes are preliminary but some prototypes can look real good, that, it is enough for people to assume that it is the working model. The prototype must display that it is operative, focused on accomplishing the objective and quickly built. I would say that it is about right since a prototype is something that is used for demonstrations more often then actual working models but you will be amazed at the number of people who still jump on the prototype. I guess its due to the nature of business needing to try and tech up faster then it is able.

So now we can see that prototypes will have types in themselves.
-Discovery,
-Design and
-Evolving prototypes.

As their name suggest, one is to find out, another is to have alternative solutions and the evolving one can handle iterations or changes.

A website is a very good example of evolving prototype because if one were to build a website and the client is extremely fickle, like I want blue here and black the next day, it makes it really hard to show a prototype when the client changes the prototype and their requirements hence a prototype that could cope with it would be very valuable.

An example that I can think of regarding discovery prototypes is GUI storyboards. Telling a story on how the GUI functions displaying how the software achieve its objective through User interaction.This discovers the user needs instantly when operating a GUI. Sort of like User stories telling how they want to operate the system.

Two methods to prototyping are predictive and adaptive. I am not a big fan of the naming scheme. I think prototypes are more prescriptive then predictive or adaptive since all prototypes are highly dependent on requirements in the first place, you can't build a prototype without knowing requirements even changing ones. But anyway for the sake of examination purposes ignore my prescriptive thought.

Adaptive will contain Iterative methodologies like "Extreme Programming", SCRUM, Spiral and Iconix. I think predictive has fall out of place due to the lack of solid requirements since requirements are changing so fast. Rapid prototyping is very persuasive.

User interfaces are very fickle since they are highly subjective to user abuse.  How do you know a user interface is bad? Well if nobody is willing to use it after a try or two.

Dialogs:
System : Hi who are you?
User : I am Justin
System: What do you want to do?
User : I don't want to use you
System: I am going to sleep

The above is basically what dialogs mean. They sound like much like user stories though.

Storyboarding is the act of classifying GUI in sequence to display a feature of the model. It can be done in a dialog as above.

Wireframes are tools for GUI prototype generation. I experimented with Visio but it only builds 'Window's interfaces' so not really keen...I have a friend, Matthew who showed me google drawing with templates to user interfaces. They looked good so I am considering trying it out for my assignment.

Tutorial

Today Sutti came in with crutches. Get well soon!!!! We need you....

Today in tutorial we got to take a look at storyboarding, wireframes, looking at some terrible websites and a little discussion on assignment 1 on what are the actual forms to submit.

In my opinion, if I see blink tags immediately I think its terrible. Flashing text does not look cool.

















The most interesting thing about the tute is I got to try mockflow. I registered and was happily designing but it allows you to only save 1 mock-up unless you upgrade for some premium price. Here is a diagram of a mock up I did it tute. Just database tables and if user wants to change I guess they click on customer and the order and item will change accordingly.

Can be improved, I manage to create links but somehow I can't find a template with the select bar option. Oh well I am still set on using google drawing though but whatever tool, assignment 1 will be done. Sutti mention that color scheme is very important so I will be cautious about that when submitting my wireframes.

Oh and submission is preferably in a single pdf file preferably.

Friday, 11 March 2011

FIT 2024 Week 2

Sorry for the delay, fellow readers. My laptop board level failed on me and I had to get a new lap top. So I should be back on track writing another blog-pisode.

FIT 2001 Lecture

Actually lecture was interesting this time, since it was domain modelling. A model drawn with as little implementation information as possible to describe a system to be implemented.

To describe things in a system, that is modelling. Modelling is very important to create a plan or roadmap to imagine the end system. It fits all the requirements into understandable blocks so that there is an organized plan to build the system. 

Well if you fail to plan then you plan to fail.

In an object orientated approach, the things are objects with their classes governing the objects blue print.

Class : Type of Thing
Object: The Thing
Method: Behavior of the Thing
Attributes : Descriptive values of the thing

A method I picked up is identifying the nouns and verbs. Nouns for things and verbs for functions of those things. These help make the domain model tangible.

Cardinality / Multiplicity describes the relationship between objects with each other. An example would be a single hospital to multiple departments would have a cardinality of 1 at hospital and 0..* at departments. The '*' character represents many.

Unified Modelling Language is a tool used to model systems. In an object orientated approach, classes, attributes and methods fill most of the domain modelling.Still new to this way of modelling and hence lacking a bit of the rules.

FIT 2001 Tute

A sub-class and a super-class share the amount of attributes of their objects. This is due to inheritance. This is a form of generalization. 

Describing multiplicities, describes associations. The way objects relate to each other, that was how I interpret it. This description helps the developer, understand the relationships between the classes and their neighbouring classes.

Aggregation or whole-part relationships are relationships that relate objects to its parts. Like a car has an engine and multiple other components.

There was one question with the problem of creating a student, teacher , professor system. The question was why would the Human Resource Committee be omitted from the system. I found that it was not the main point of the system problem being described but maybe it was due more to the description of the human resource committee was incomplete and thus with not enough information, you do not go include into the system an unclear object. An unclear object increases the complexity and the requirements may not be met and hence wasted money and time. 

Visual Paradigm is an interesting tool. I was fussing with it since it doesn't work like an ordinary drawing tool where you can just draw lines all over the place. Instead the links are quite specific with generalization lines and aggregation lines to link the classes together. Compared to other visual tools though, I felt like the tool was a bit complex. One thing I do like about the tool though is that it works by projects so I can have multiple diagrams all in a single file instead of image files every where around my computer.

Until my next blog

Wednesday, 9 March 2011

Wednesday, 2 March 2011

FIT 2001 Expectations and Reflection Week 1

Expectations

This unit I foresee that I would be seeing a lot of analysis going on. I have read a Software Engineering book before attempting this course and there are some similarities like the waterfall model. System analyst means Business analyst as well as Information Systems Development. It is analyzing the aspects, outcomes and risks associated with the need to implement system solutions to a business problem.

My beginning expectation is that I predict I will be interested in what tools are available because I do have a system that needs some re-development for my friends back home.

Lecture 1

Today I was a bit bored because the content may just be because it was the introduction since I have read about agile development, waterfall models and such. Although the content was boring, the thing that I got out of it was that I like the Agile Modeling Paradigm especially Extreme Programming methodology. Changes are something that I believe that must be embraced because it is a natural order of life. If I don't change then I cannot improve.

The methodologies all seem similar with changes here and there, so I guess System's methodology is more of a personal taste then an actual algorithm that if you follow rigidly you will obtain a specific result.

Two methods of System analysis Traditional and Object Orientated. I guess object orientated involves object in world of interaction whereas the traditional method is more of step wise, linear, sequential procedures.

Note : Dr Yen Cheung is my lecturer.

Tute 1

The tute was pretty fast because NetBeans IDE allowed me to create a database on a server and update it instantly. That's pretty cool as looking at the java code, at the number of lines that I would have to write, it makes my world a whole lot easier. The NetBeans IDE creates the code based on database of already written code, this is my impression. Maybe patterns can be used instead.

I have used Eclipse IDE before and it does help abstract a layer above the actual digital logic layer. Assembly layer is fun. The downside I suppose is that it is very predictive which may apply unneeded code or comments.

Productivity should be the same for a similar type of system no matter the size. The development of models should be the same if the system is similar but it is still highly dependent on the type of system and its environment.

5 Assignments, choose 2...gosh....all interesting....so planning to do all....

Note: Suttisak.jantavongso is my tutor.

Tuesday, 1 March 2011

First Post

Hello World,

My first blog in so many years that I have never tried to do because I was always so long winded and thus ending up not being able to keep up with content.