Swen


November 30, 2007, 12:12 pm
Filed under: Uncategorized

Teacher we have send the scenarios to your tp email. we couldnt upload the tables here…



CVS
November 29, 2007, 7:00 am
Filed under: Uncategorized

What is CVS?

CVS is a version control system. Using it, you can record the history of your source files.

For example, bugs sometimes creep in when software is modified, and you might not detect the bug until a long time after you make the modification. With CVS, you can easily retrieve old versions to see exactly which change caused the bug. This can sometimes be a big help.

You could of course save every version of every file you have ever created. This would however waste an enormous amount of disk space. CVS stores all the versions of a file in a single file in a clever way that only stores the differences between versions.

CVS also helps you if you are part of a group of people working on the same project. It is all too easy to overwrite each others’ changes unless you are extremely careful. Some editors, like GNU Emacs, try to make sure that two people never modify the same file at the same time. Unfortunately, if someone is using another editor, that safeguard will not work. CVS solves this problem by insulating the different developers from each other. Every developer works in his own directory, and CVS merges the work when each developer is done.

What is CVS not?

CVS can do a lot of things for you, but it does not try to be everything for everyone.

CVS is not a build system.

Though the structure of your repository and modules file interact with your build system (e.g. `Makefile's), they are essentially independent.

CVS does not dictate how you build anything. It merely stores files for retrieval in a tree structure you devise.

CVS does not dictate how to use disk space in the checked out working directories. If you write your `Makefile's or scripts in every directory so they have to know the relative positions of everything else, you wind up requiring the entire repository to be checked out.

If you modularize your work, and construct a build system that will share files (via links, mounts, VPATH in `Makefile's, etc.), you can arrange your disk usage however you like.

But you have to remember that any such system is a lot of work to construct and maintain. CVS does not address the issues involved.

Of course, you should place the tools created to support such a build system (scripts, `Makefile's, etc) under CVS.

Figuring out what files need to be rebuilt when something changes is, again, something to be handled outside the scope of CVS. One traditional approach is to use make for building, and use some automated tool for generating the dependencies which make uses.

See How your build system interacts with CVS, for more information on doing builds in conjunction with CVS.

CVS is not a substitute for management.

Your managers and project leaders are expected to talk to you frequently enough to make certain you are aware of schedules, merge points, branch names and release dates. If they don’t, CVS can’t help.

CVS is an instrument for making sources dance to your tune. But you are the piper and the composer. No instrument plays itself or writes its own music.

CVS is not a substitute for developer communication.

When faced with conflicts within a single file, most developers manage to resolve them without too much effort. But a more general definition of “conflict” includes problems too difficult to solve without communication between developers.

CVS cannot determine when simultaneous changes within a single file, or across a whole collection of files, will logically conflict with one another. Its concept of a conflict is purely textual, arising when two changes to the same base file are near enough to spook the merge (i.e. diff3) command.

CVS does not claim to help at all in figuring out non-textual or distributed conflicts in program logic.

For example: Say you change the arguments to function X defined in file `A'. At the same time, someone edits file `B', adding new calls to function X using the old arguments. You are outside the realm of CVS’s competence.

Acquire the habit of reading specs and talking to your peers.

CVS does not have change control

Change control refers to a number of things. First of all it can mean bug-tracking, that is being able to keep a database of reported bugs and the status of each one (is it fixed? in what release? has the bug submitter agreed that it is fixed?). For interfacing CVS to an external bug-tracking system, see the `rcsinfo' and `verifymsg' files (see section Reference manual for Administrative files).

Another aspect of change control is keeping track of the fact that changes to several files were in fact changed together as one logical change. If you check in several files in a single cvs commit operation, CVS then forgets that those files were checked in together, and the fact that they have the same log message is the only thing tying them together. Keeping a GNU style `ChangeLog' can help somewhat.

Another aspect of change control, in some systems, is the ability to keep track of the status of each change. Some changes have been written by a developer, others have been reviewed by a second developer, and so on. Generally, the way to do this with CVS is to generate a diff (using cvs diff or diff) and email it to someone who can then apply it using the patch utility. This is very flexible, but depends on mechanisms outside CVS to make sure nothing falls through the cracks.

CVS is not an automated testing program

It should be possible to enforce mandatory use of a test suite using the commitinfo file. I haven’t heard a lot about projects trying to do that or whether there are subtle gotchas, however.

CVS does not have a built-in process model

Some systems provide ways to ensure that changes or releases go through various steps, with various approvals as needed. Generally, one can accomplish this with CVS but it might be a little more work. In some cases you’ll want to use the `commitinfo', `loginfo', `rcsinfo', or `verifymsg' files, to require that certain steps be performed before cvs will allow a checkin. Also consider whether features such as branches and tags can be used to perform tasks such as doing work in a development tree and then merging certain changes over to a stable tree only once they have been proven.

http://durak.org/cvswebsites/doc/



pbl3
November 28, 2007, 1:18 pm
Filed under: findings, group

 -A code refactoring is any change to a computer program’s code which improves its readability or simplifies its structure without changing its results.

- Refactoring neither fixes bugs nor adds new functionality.

- Refactoring improves the understandability of the code.

- Changes its internal structure and design, and removes dead code, to make it easier for human maintenance in the future.

Examples of refactoring

-      Change a variable name into something more meaningful.

-      Complex refactoring is to turn the code within an if block into a subroutine.

-      More complex refactoring is to replace an if conditional with polymorphism. 

Types of refactoring

- Encapsulate Field

-Extract Method (to turn part of a larger method into a new method. By breaking down code in smaller pieces, it is more easily understandable. This is also applicable to functions)

 -Generalize Type

   -Pull Up

-Push Down

-Rename Method (changing the name of a method into a new one that better reveals its purpose).   

-Programming style refers to a set of rules or guidelines used when writing the source code for a computer program. It is often claimed that following a particular programming style will help programmers quickly read and understand source code conforming to the style as well as helping to avoid introducing faults.

Elements of good style

Code appearance

-Indenting

-Vertical alignment

-Spacing

-Naming ,logic and higher techniques

-Appropriate variable names

-Boolean values in decision structures

-Left-hand comparisons

-Looping and control structures

-Lists



pbl3 findings
November 26, 2007, 2:21 am
Filed under: findings, group

*Difference between testing and debugging?

First is testing

  - testing is a process of looking at a software system for the purpose of finding errors (no fixing only finding errors).

   -debugging is the process of locating the exact cause of the error and fixing it….

 Types of software testing methods

- Black box-send input data into the black box and watch the output data coming out (depends on the input test data)

-White box- looking inside the module in detail. Look at the specific code and test it out (test if else method, come up with test data test sequence of statements)

-Regression- Testing of modified software system to make sure that all the pre existing functions are still working. (Do it each time when there is a new feature is added)

 ·         Ways to start doing testing

-          Top down approach- start with the UI and go down until the lowest level

-          Bottom up approach- start testing with the components first and than go up until the full system is tested.

 

Integration testing – this is where many problems occurs.

-          Especially when there is huge team working on the module.

-          Main area to check during integration testing is interfaces between the different modules or units.

Plan at least 2 phases in the project.



PBL3
November 26, 2007, 1:36 am
Filed under: Uncategorized

What we know:

  • Pantheon Systems uses IBM testing system
  • Current appointment source code is not up to industry standards
  • we are to reccomend guildlines for good programming styles
  • we are to reccomend code refactoring to improve source code
  • the developers have difficulties in managing their software files
  • we are to explore the CVS

What we dont know:

  • how to do testing
  • IBM rational testing tools
  • industry standards of programming style
  • code refactoring
  • CVS
  • different testing methods/test data/test cases
  • manage sourcecode files

Deliverables

  • The presentation should be done as a group in the 1st session
  • Demonstration should be done individually per test case in the 2nd session.


Interface with other systems
November 22, 2007, 8:57 am
Filed under: Uncategorized

Interface with other systems

 Billing system

  • To be done later(WE NEED HELP)

 Employee’s Account system and Email system

  • Employee’s personal email is retrieved from the account system.
  • When the user forgets his password, a new password would be sent to his personal email which is found in the employee’s account system.
  • The information would be sent over in text format

 PDA system

  • Provides a download function for the user to be able to download and view his entire personal information management system.
  • This function only allows the user to read only and doesn’t allow the employees to create, edit or update and delete any of the data in the system.
  • The system shall allow the user to view his entire appointment schedule and details.
  • The system shall allow the user to view his entire contact list and details.
  • The system shall allow the user to view his entire to do task list and details.
  • The information would be sent in text format

 



Security and Access Control Requirements
November 22, 2007, 8:56 am
Filed under: Uncategorized

Security and Access Control Requirements

 

Managers are granted rights to create, view, update and delete in

  • appointment
  • contact list
  • to-do task functions

 

Staffs are also granted rights to create, view, update and delete in

  • appointment
  • contact list
  • to-do task functions

 

Administrators are given the rights to maintain the entire system.

They are also given the right to create accounts for the employees, update, view and delete the employee’s data information.

 



Special Requirements
November 22, 2007, 8:55 am
Filed under: Uncategorized

Special Requirements

[The system shall provide an email server (name@sonium.sg) for the system( E.g. for the retrieval of password]

[The system shall provide a help function to assist the staff in using the system]

[The system shall be accessible from the PDA]

[The system shall be available in multi languages (E.g. Tamil, Malay, Chinese, and English)]

[The system shall provide an alarm reminder for the user when his task deadline is due]



Availability
November 22, 2007, 2:48 am
Filed under: Uncategorized

Availability

The system shall be available to the staff everyday of the week for 24 hours. However, the system will be down for maintenance every last Sunday of each month  



Performance
November 22, 2007, 2:45 am
Filed under: Uncategorized

Performance

Peak hours: Employee’s working hours Off-peak hours: Employee’s non-working hours 

Response time during peak hours(9am-11am):

Response time during peak hours:

•         Appointment scheduling

-Add appointment scheduling: 5secs

-Delete appointment scheduling: 5secs

- Edit appointment scheduling: 5secs

Contact list management

-         Add contact: 5secs

-         Delete contact: 5secs

-         Edit contact: 5secs

•         To-do (task) list management

-Add task: 5secs

-Delete task: 5secs

-Edit task: 5secs

Response time during average hours:

•         Appointment scheduling

-Add appointment scheduling: 2secs

-Delete appointment scheduling: 2secs

- Edit appointment scheduling: 2secs

Contact list management

-         Add contact: 2secs

-         Delete contact: 2secs

-         Edit contact: 2secs

To-do (task) list management

-Add task: 2secs

-Delete task: 2secs

-Edit task: 2secs