Monday, October 4, 2010

TASK 5.4

This task is to summarize the research paper "Automatic Transformation from Data Flow Diagram to Structure Chart". Researcher, Minyi Guo, emphasizes the importance of transforming data flow diagrams into structure charts during the software design phase.
This paper not only highlights the importance of the transformation but also the difference between data flow diagrams and structure charts and how they use transform and transaction analysis to bridge the gap thereby ensuring a smooth transition between software development phases.
From the paper, we understand that a data flow diagram is a natural tool for the analyis phase of the software life cycle. It is also a graphical network representing the processes and data interfaces of a system. On the other hand a structure chart is useful in design and implementation phases and is also a graphical tool for descibing the hierarchy of modules to be implemented as well as algorithmic relationships and communication links among them.
Guo then describes transform and transaction analysis in further detail. The main definition i captured from the paper was this:
"In transaction analysis there is a transaction center which captures an input transaction, determines its type and then processes it in the appropriate branch of the center while in transform analysis the input and output data streams of a data flow diagram are followed to determine the central portion of the system responsible for main transform of data."
Guo also mentions about structured analysis and structured design being the most popular and successful software development methodologies used in most CASE (computer-aided software engineering) environments.
However despite these methodologies being successful and popular, the process of transforming from software specification to design document is not only complex and diffcult but cannot assure correctness. Thus, a tool called CAST (Computer-Aided Specification Transformation) has been constructed to automatically translate requirement specifications into design specifications during the development phase of the software life cycle.
CAST consists of a description language, a rule base and an automatic transformation system. It accepts a software specification expressed in terms of data flow diagrams as input. Then the researcher mentions about how the CAST system actually works. In brief, data flow diagram is inserted, then translated into a structured language representation. After this is done, it is determined whether transform or transaction analysis would be used to produce structure chart. Once that is decided, a structure chart is formed, evaluated and finally displayed to Sc_file.
Now last main point discussed in paper is about problem identification. The paper emphasizes about the improvements that need to be made to the proposed techniques of using structured specification language and transformational algorithms. The main areas needed for improvement are efficient use of semantic information to improve quality of transformation and better description of structure chart evaluation criteria.
That's all....
It was a long article to read and took me time to understand. Hopefully this summary is good enough to cover the main points of the paper... :)

Friday, October 1, 2010

Task 2.3

Now it's Semester 2, 2010 and blogging begins again. This time for FIT2027 System Design & Implementation (SDAI).


For this task, I have been asked to answer a few questions. Questions regarding the nature of my team such as do i have a good team and why? What is required to be done as a group in order to be effective? how will team make decisions? how will you work together and how will you communicate?


Firstly, I believe that i have a good team. The reason being that it was my first choice team and i was glad everyone agreed to be part of my team. I consider my team to be a group of smart individuals who come up with bright ideas and have the relevant business as well as I.T skills required to do a good job for this unit. My team comprises of 4 people: Archana, Abdur Rehman, Farhanah and Kavinesh.
Moving on, I think as a group we need to be very frank with each other and be very helpful to each other so everyone feels comfortable in the team environment. Based on my experience of working with my team, we always look to divide work according to a person's level of ability and at same time provide guidance if they are stuck in some part of the task assigned to them. This requires each member of our team to be patient, considerate and compromise whenever possible.


For instance if one member has some other commitments or other priorities he needs to give attention, we postpone our meetings to a reasonable extent to accomodate their needs. Basically we have a good rapport with each other since we know each other and we know each one of us are responsible people who will do their work.
In order to be an effective team, we need to have good time management skills and be committed to doing the work for the unit. By time management skills i mean proper planning of how much each individual member can realistically give to do their parts, be available for group meetings and research to give valuable input to the team's final work. Because the amount of tasks to do for this unit can be tough at times so self motivation or motivation from team members is required and luckily my group members have those characteristics. Confidence in each one's ability and knowing strengths and weaknesses of each individuals helps to divide work appropriately, which means less conflicts and wastage of time.
The team will make decisions based on majority votes. We usually consult everyone about a decision in our meeting and first know about our member's opinion regarding a particular topic. Then we have a voting process and majority votes wins the argument and everyone respects the decision. The hardest decision so far our team had to make was this one situation when we voted and it was a draw. 50% agreed and 50% disagreed. We ended up convincing each individual of the team to change their opinion to make the majority votes win. This situation was about adding another group member or not to have 4 members or 5 members. Members agreed because it would have brought new ideas and workload would be reduced whereas members disagreed since it would lead to more conflicts and co-ordiantion problems especially since all members did not know the standard of work that the added member does. In the end after a thorough discussion our new voting results were 75% disagreed and 25% agreed.
Our group would usually communicate over the phone, via SMS messages and e-mails. We would book discussion rooms or work in labs that are less crowded to have more focus and discuss in peace. We would have meetings on days when everyone were not so busy with other commitments and when it was required to meet a deadline soon.
So far everything has gone smooth with my group and i am truly grateful to have such a group... :)

Tuesday, September 28, 2010

Task 1.3

Blogging continues.....
My first blog of the new semester.....and this time not for SAAD but for SDAI...

You would be wondering what SDAI stands for? Its System Design And Implementation (SDAI)
From what I'm told by my lecturer..... SDAI is just the continuation of System Analysis and Design (SAAD) and looks at the design and implementation phases in more detail.
Anyways my first blog is to summarise an article titled -Growing Up: Moving from technology- Centered to Human- Centered Products for task 1.3.

Initially, I found the article to be boring and really LONG! But since it was the first task and i wanted to get started with blogging, I forced myself to go through the article several times to get the gist of it and understand what is the motive of the article. Finally i found it interesting and quite informative about the computer industry.

Basically the article outlines how the computer industry is evolving from just being technology- focused companied to customer/ human-focused companies. Before technology companies would just sell their products based on what technology they produce and hoped people would buy it. And people did buy those products. Those people who were willing to try new technology and able to purchase them were called Early adopters. However, as products matured companies suddenly found themselves in a completely different position. A mass market was created and these people were taking interest in their products and started demanding better technology and features. These people were called Late adopters. These people are considered to be conservative and pragmatic who would wait for technology/ computer companies and their respective products to establish themselves in the market before they make a purchasing decision in their favour. But they would demand for brand name, price, appearance, value, convenience, prestige, ease of use, low cost, good user experience, reliability and basically want solutions that simplify their lives and not technologies that complicate them.
Companies realized that their products needed marketing experts to persuade people that their product was unique from other company products. But at the same time this would bring internal tension and conflicts within the organization, especially between technologists/ engineers and marketers. The reason being that its hard to come up with new technologies and implement them at a faster rate and sometimes the features that customers want is either not possible or will take time to achieve or unreasonable. But Marketers don't understand technology and the engineers for their job is simply discover and meet consumer requirements.
In general, customers have greater demands and want to be shown that the product is a worthwhile investment. And unfortunately the mass market is not technically sophisticated so require services such as help desks from the organization to handle their technology/ user related queries. These services can be expensive for the organization so would need to work on the product beforehand to ensure it enhances the user experience. Thus, technology companies discovered that they not only need marketing, technology but also require user experience to meet overall customer needs.
Now its time to introduce you all to the phenomenon - "Human Centered Product Development". Human centered development means that successful products requires 3 equal partners, or 3 skill set or 3 legs of tripod: Technology, Marketing and User Experience. All three provide necessary and complementary strengths.
To explain the importance of these partners take the following scenarios: a product fails if it is easy to use and understand but has deficient technology so that it is too slow and limited in ability. Similarly if a product fails if it has wonderful technology but is too difficult to use. A Product also fails if it has wonderful technology, accomplishes wonderful things, and is easy to use but is too expensive. Hence all three partners must be in balance.
An example from the article, of companies facing similar situation, are the following:
  • The Xerox Star is a product that failed despite superb user experience; it had insufficient technology and marketing.
  • The Apple II and the IBM PC illustrate are products that succeeded despite limited technology and poor user experience. They had great marketing but more important they handled tasks of sufficient value that their users were willing to tolerate the deficiencies.


A lesson to learn from this article is that people (early adopters) are willing to overlook the deficiencies because of the great benefits. Superb functionality can conquer, can make for a viable business, but without full support for all three legs of the tripod, it will never stand as a business for the everyday consumer (late adopters/ mass market). So in a mature market, a human-centered development process is not only appropriate, it is required.


In conclusion, computer industry has to go through this revolution of changing times and changing behavior where old fashion techniques won't work and have to adopt new philosophies to thrive in a competitive industry and one of the solution is to embrace quickly the phenomenon of "Human centered development" which requires three different skill sets, three legs of product development: Technology, Marketing, and User Experience.

Hope everyone enjoyed my blog and don't worry there are many more to come for this semester...

Look out for it! .... :)

Friday, June 4, 2010

Week 13

Good Morning SAAD! It's Week 13.....

I am relieved that i just submitted my assignment 2 before the lecture.

Assignment 2 was quite hard as i got stuck between making a choice of which possibilities to follow especially while doing the first-cut sequence diagram and design class diagram. This was a result of the Assignment 2 specification not being very clear about what it wants and how is it suppose to be like. Anyways i did the assignment to the best of my abilities and hope i get a good grade for this assignment as well.

I am so happy that all my assignments are over and i can primarily focus on my exams.

For me Week 13 is the final week for lectures and tutorials in my SAAD journey.

Week 13 was basically about Revision and Exam tips. Our lecturer told us about the exam format and which main topics we must focus on to do well in the exams. I considered these tips as very important and my hand was quickly jotting down all the points that seemed relevant to me during the lecture.

From my understanding, the exam would have 3 sections:

Section A - MCQS (20 marks)
Section B - Short answers (40 marks)
Section C - Long Answers & Diagrams (40 marks)

After going through the topics i feel the exam is do-able.... the only worrying factor would be for me is TIME MANAGEMENT!

I need to know my stuff very well and need to time myself. I just follow one simple phrase when i do exams: "Do your best and God will do the rest"

Now moving on to the tutorial for this week......

We did the sample and past year exams in class and tried to understand the format of the exam. This exercise proved very useful as i was able to clarify some of my doubts with the tutor and know where i stand at the moment for the exams. I also figured out some of my weaknesses that i would be working on in next few days so i am better prepared for exam.

So this is my last official entry for this semester. However, I may write a new post on my feelings and experience on the exam after 15th June.

I would like to thank the unit leaders of Fit2001 for providing excellent study resources and initiating this blog facility. It helped me regularly vent my feelings and reflect back on what i have done on the subject.

A personal thanks goes to Mr. Peter O' Donnell for making me the week 8 blog of the week.... i seriously did not think my blog was that impressive to be given such a recognition. It does mean a lot to me and i am proud of it.

I would like to also thank Mr. Peter O' Donnell for some of the advices he gave regarding the assignments in my blog and for the useful responses he gave in the Discussion Forums.

Lastly a BIG thank you to my lecturer, Mr. Yeap Boon Han, and my tutor, Mr. Ramesh Kumar, for their continuous help, advice and guidance throughout the semester. Hope we meet again in some other unit because i am not graduating yet and it was lovely having both of you teaching this subject.

Another thanks to my followers for taking the time to read this blog and all of my previous blogs....

To All of my FIT2001 students......Best of Luck for Exams and Happy Holidays!

Week 12

WEEK 12 to me means the last lecture for this unit and a sad moment. After this i would be left with just one revision class and my exam before i end my journey.

It feels like it was just yesterday when i was beginning this unit and here i am at the closing stages of this unit..... I am getting sentimental now as i reflect back on the previous weeks i have gone through this unit..... but i guess that's the type of person I am.... who cherishes small memories of life...

Now moving on from my emotional moment to the actual lecture material...

Week 12 was titled - Design: System Interface

This lecture was again interesting for me because i did not see any complex diagrams.... by now my blog followers should know that i am not a big fan of diagrams.... : -)

This lecture taught us about relational databases and what technologies are there for databases. To name a few DB2, MySQL and Sybase. I was paying close attention to this because relational database was one part of assignment 2 and this is what i was looking for earlier.

Relational Model is a diagram where you convert your classes into tables and you need to identify primary keys and foreign keys. After that you need to figure out the appropriate data types and the relationships between these tables and use crow's notation. Luckily, i did database last semester so i was aware of the notation already.

Then i was taught about System interfaces. By definition, System Interface are inputs and outputs with minimal or no human interaction. Similarly system interface, system output and system controls does not require much human interaction.

Examples to help identify System Interfaces are:

1) Highly automated input devices
2) Inputs from other systems
3) Inputs from data in external databases
4) Outputs to external database
5) Outputs with minimal Human Computer Interaction (HCI)
6) Outputs with other systems
7) Real-time Connections

Another thing that caught my attention were some names of input devices that were used to avoid human entry and eliminate human errors. These input devices were:

1) Magnetic card strip readers
2) Bar-code readers
3) OCR readers and scanners
4) RFID (Radio Frequency Identification Device)
5) Electronic pens & writing surfaces
6) Digitizers such as digital cameras & digital audio devices

To identify user and system inputs, Traditional Structured Models (such as DFD's & structure charts)and Object Oriented Models (such as System sequence diagrams and design class diagrams) can be used.

Output can be shown in the form of reports and there are 3 types of reports: Printed, Electronic Displays and turnaround documents. And these Reports can be formatted to avoid information overload and to ensure that the information is meaningful and presented in a professional manner with dates and page numbers.

Now a system interface needs some form of control and the types of control that system developers design and implement to protect the system and its data are: Integrity and Security

Integrity Controls are used to ensure only appropriate & correct business transaction occurs, ensure transactions are recorded & processed correctly, prevent any fraud, protect & safeguard assets such as (software, hardware and information)of organization.
Integrity control has 3 types: Input, Database and Output

Security Controls are used to protect assets of organization from all threats.

Data Security include methods such as encryption, decryption, symmetric key, asymmetric key and public key. There was also a concept of digital signatures and certificates being taught which i found quite interesting. For example, a term called Secure Hypertext Transport protocol( HTTPs )is basically what we see in the URL bar to indicate a web visitor has entered a secure website.

After this interesting lecture was another interesting tutorial....

Our Lecturer.... Mr. Yeap Boon Han made his final "Guest Appearance" in our tutorial classes by helping us with Week 12 and doing previous tutorials that were relevant to our assignment 2. He taught us about relational database models by drawing a sample diagram on the whiteboard and also told us about how to construct a design class model and how does a first-cut sequence diagram looks like. He also briefly told us about what was needed and the purpose of a user interface. And i found all these tips very useful for my assignment 2..

We were also showed how an actual system analysis and design report looks like by showing a THICK booklet of a Pharmacy System.... and it must have been close to 850 pages.

From that point I realized that a System Analyst job is no joke and involves a lot of work. Nonetheless, this experience has just made me more confident that pursuing a career in System Analysis and Design is challenging and worth it.

Now i proceed to do my remaining assignments for this week and i hope by now i have all that is required to do assignment 2... because i have not done much work on it yet.


Thursday, June 3, 2010

Week 11

Good Morning Monday! Good Morning SAAD!

We are in week 11 and i just cannot believe that how quick the semester has gone by.
Although i was sleepy today some key terms were able to catch my attention. Words like affordance, visibility, human computer interaction(HCI), 8 golden rules, user interface, system interface and metaphors were more appealing and attention gaining to me than the diagrams which left my mind blank and i would stare at them being clueless and dismayed.
We did not start off with week 11 lecture since Sir, Mr. Yeap Boon Han, wanted to revise the first-cut sequence diagram, collaboration and interaction diagram so we could understand them better and how they are constructed. Understanding these diagrams now would make our life easier when doing assignment 2. Thus i paid close attention reluctantly to what the diagram was all about. After explaining those diagrams there were a few slides from week 10 were explained.
Then we started week 11 lecture titled - "Design: the user Interface"
User interface basically gives an idea about the inputs and outputs related to the system and what suitable form should the system be in to have an effective interaction with users.
There are 3 types of User Interfaces:
1) Physical aspects: touched by the user
2) Perceptual aspects: these are things that the user sees, hears or touches
3) Conceptual aspects: this is what the user knows about the system & the logical functions related to it.
There were plenty more of key terms that i do not vividly remember from this lecture at the moment but after a long while and for a change that was overdue ... this lecture was not about understanding complex diagrams ....* sigh* .....i am truly grateful for that.
Moving on to the tutorial class....
To my amazement, the tutor missed tutorial 10 that we were supposed to do this week since we did tutorial 9 last week and he was telling us to do the review questions that were related to todays lecture.... yes you guessed right we were doing Tutorial 11.
Should i call it a blessing or a curse? After doing the tutorial i was able to relate the key terms mentioned in lecture and enhance my understanding on them. On the otherhand i have to do week 10 tutorial in my own slef-study time which is being used for a hectic assignment schedule this week!
Anyways i was happy again and was able forget my assignment headache for a short while.... because at the end of the lecture we had a photo session!!!..... Yipeeeeeeeee
I was taking photos with my friends and i was at the very center next to the tutor.....
However, when i saw the actual photo i was upset because my eyes were closed.
But anyways i want to thank Mr. Ramesh for being very kind, helpful and useful for me as a facilitator throughout the duration of this subject.
And a Vote of Special Thanks to Yeap Boon Han as well for his "GUEST APPEARANCES" in some of the tutorial classes because without his help i might have not have had much progress in my assignments.
As i move towards the end of this journey, i have memories that will truly cherish my life and soemthing i can reflect back with pride and self-fulfillement.

Week 10

Wow! its a Monday morning and i just submitted my Assignment 1b in the assignment submission box. I was feeling so sleepy and tired after all the effort i put in assignment1b for the past few days.

I just realized that Fit2001 assignments can be mentally draining since a lot of thought goes into the assignment and wondered how tough the real system analyst would feel after going through all the work done in an analysis phase.

Anyways my Assignment 1b was basically a Requirement Specification Report which contained a title page, a coversheet, a table of contents, an executive summary, defining the system scope by using a context diagram, a use case diagram, a brief and detailed use case descriptions and (analysis) domain class models.

I made the report as professional as i possibly could and tried my level best to mention all user requirements and business functions in it. While doing this assignment i realized there are many ways in which things can be interpreted and it does not matter how the end result is as long as its logically possible.

For instance, when i was thinking about the problems and opportunities for the system, i was actually made to think what possibilities are there for the system in a logical and rational way.

Overall this assignment made me thoroughly understand the concept of object-oriented approaches which i could not understand it initially during tutorials and the lectures.

Now moving on to the lectures.....Week 10: Use case realization
Actually its part of the design phase where we use object-oriented design techniques to actually build a system based on the analysis phase. According to the lecture the object oriented design bridges the gap between user requirements and the programming aspects of the new system. Thus, programmers are able to understand what to program by looking at these object oriented models. During this lecture, i came across lots of diagrams that by the end of the lecture i could not make out which diagram was for which object-oriented model...hehe...:)
Maybe i was just too sleepy or i just need to go through the diagrams in own time becuase they can be confusing.
The lecturer higlighted important terms such as cohesion, coupling and use case controller as being important for exams. So i guess it was something for me to refer back later.
However there was one lecture slide that i did found really useful and thought was a good indication of what we have done so far and what are we going to do. This was a slide telling that:
Diagrams used during analysis phase: use case descriptions, use case diagram, activity diagram, domain model class diagram and system sequence diagram.
Diagrams used during design phase: design class diagram, interaction and package diagram.
This was a good overview of what all the diagrams were about. Luckily i had my printouts during the lecture or i would have missed this slide becuase apparently my lecturer moves between different slides very quickly that i sometimes lose track of which slide we are currently in.
Lecture ends and now i wait for my TUTORIAL class in a few hours........
For some reason we are behind in tutorials.... ARRGH!!
We were suppose to be doing Tutorial 10 on use case realization....but we were doing tutorial 9 on Data flow diagram....
At the end of this exercise we learnt how to identify a system boundary, divide the programming components and convert them into a system flowchart from a given system. Sadly, it took the whole tutorial time to try to understand the questions and we were not able to do the additional review questions.
Another tiring day..... and i am so not looking forward to my hectic schedule in week 9 where i have 3 assignments due in 3 consecutive days.....
Huh! .... my situation makes me remember a dialog from a movie " You can run but you can't hide"..... just reminds me that i have do my assignments somehow because i cannot stay away from them....
*Sheesh* i am so loving Monash now in my 2nd year.... ;)