25.2.09

Static Analysis Tools for C

From coder@slug

coverity - commercial
flexelint - commercial

CIL http://hal.cs.berkeley.edu/cil/ http://sourceforge.net/projects/cil http://et.redhat.com/~rjones/cil-analysis-of-libvirt/
sloccount - lines of code analysis only




24.2.09

Do the Right Things & Do the Thing Right

Analysis = Do the right thing
Design = Do the thing right

Object-oriented analysis: there is an emphasis on finding and describing the objects and concepts in the problem domain.
Object-oriented design: there is an emphasis on defining software objects and how they collaborate to fulfill the requirements.

OOA -> OBJECTS and CONCEPTS (in problem domain)
OOD -> SOFTWARE OBJECTS and COLLABORATION (in software domain)

Further more:

Object-oriented analysis is concerned with creating a description of the domain from the perspective of objects. There is an identification of the concepts, attributes, and associations that are considered noteworthy. -> domain model -> domain model is not a description of software objects; it is a visualization of the concepts or mental models of a real-world domain. -> conceptual object model.

OOA -> domain model / conceptual object model -> concepts/objects, attributes, associations

Object-oriented design is concerned with defining software objects, their responsibilities and collaborations. A common notation to illustrate these collaborations is the sequence diagram.

OOD -> sequence diagram (or others) -> software objects, objects' responsibilities and collaborations.

Use Case

User Cases are not an object-oriented artifact. They are simply written stories.

---- Applying UML and Patterns

Requirements analysis may include stories and scenarios of how people use the application; these can be written as USE CASES.

USE CASES == STORIES

17.2.09

Java's Bitwise Operators

Some notes on Java's bitwise operators, answering a question from one of my friend:

1. There are only three bitwise shift operators, <<, >>, and >>>. Remember there is no <<<
2. << and >> move only the bits other than the sign bit.
3. >>> works the way as >> does, except that the former one uses the sign bit as the top bit. Please try -1 >>> 1 to see what will happen.
4. When applying bitwise shift operators on negative integers, make sure you have translated the BITs into binary expression. Don't simply shift the bits as if you work on a positive value.


13.2.09

New Life Here!

Sydney, I'm here now! In fact, I've been in Sydney for about one and a half month. So far so good.

Early last month I enrolled myself in the NSW AMES, taking a full-time course named SkillMax. The course will last as long as ten weeks, concerning Australia culture, professional environment, and job seeking techniques.

Early this month, I went to TAFE and enrolled another full-time course, Software Programming. This is a professional course, teaching Java, VB.net, Software Analaysis and Design, Web Technology and Project Management. Although with more than 9 years of experience in software development using C, C++ and Java,  I still get benefits from the course, improving my verbal skills, learning jargons, and update my knowledge.

People in NSW AMES and TAFE are nice, including college staffs and classmates. So I make many new friends. Thank you guys! I love you all!