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..