Object Oriented Software Engineering   View all facts   Glossary   Help
subject > person or group > person > stakeholder > software developer > programmer > Java programmer
Next programmernovice programmer    Upprogrammer    Previous programmercoder   

Java programmer
subjectfact 
Java programmeris a subtopic of 2.10 - Difficulties and Risks in Programming Language Choice and Object-Oriented Programming2001-08-30 14:56:20.0
is a kind of programmer2001-08-30 14:56:20.0
should consider languages other than Java for number-crunching applications2001-08-30 14:56:20.0
should follow the specific conventions for commenting classes and methods that allow for documentation to be automatically generated using a program called 'javadoc'2001-08-30 14:56:20.0
should learn about about the different programming strategies that make a Java program run faster2001-08-30 14:56:20.0
programmercan write comments before writing the code2001-08-30 14:57:06.0
is responsible for anticipating things that can go wrong and writing exception handling code in preparation2001-08-30 14:57:06.0
may also design the system2001-08-30 14:57:06.0
may have difficulty thinking at the level of abstraction needed to create effective models2001-08-30 14:57:06.0
must ensure that the code she writes based on a UML diagram always respects the constraints imposed by each OCL statement2001-08-30 14:57:06.0
must learn documentation navigation, which includes looking up the methods available to achieve some objective2001-08-30 14:57:06.0
often uses glass-box testing informally when he is verifying his own code2001-08-30 14:57:06.0
should adhere to object oriented principles2001-08-30 14:57:06.0
should apply the 'isa' rule religiously2001-08-30 14:57:06.0
should avoid duplication of code2001-08-30 14:57:06.0
should avoid over-use of class variables or class methods2001-08-30 14:57:06.0
should choose alternative that makes code simpler over more complicated one2001-08-30 14:57:06.0
should comment any changes to the code so that it is easy to see what has changed from one version to the next2001-08-30 14:57:06.0
should comment whatever is non-obvious2001-08-30 14:57:06.0
should create several small classes, rather than one big, complex class2001-08-30 14:57:06.0
should ensure that anything that is true in a superclass is also true in its subclasses2001-08-30 14:57:06.0
should group classes into logical sections with a clear comment separating each section if a class has many methods2001-08-30 14:57:06.0
should keep related methods together inside a class2001-08-30 14:57:06.0
should keep the number of instance variables small. If this number exceeds 10, then consider splitting the class into separate classes - e.g. a superclass and a subclass2001-08-30 14:57:06.0
should not comment obvious things since they add clutter2001-08-30 14:57:06.0
should not use tab characters in code - use two spaces for indentation instead because when code is printed on certain printers, or displayed in certain editors, the width of the indentation resulting from the tab can vary and make the code hard to read2001-08-30 14:57:06.0
should pay attention to to the documentation describing which features of Java are deprecated2001-08-30 14:57:06.0
should reject 'clever' or 'cool' coding techniques unless they make the code simpler to understand2001-08-30 14:57:06.0
should remember that shorter code is not necessarily better code but unnecessarily long code is also bad2001-08-30 14:57:06.0
should restructure code to make it simpler if necessary2001-08-30 14:57:06.0
should take advantage of polymorphism, inheritance, abstract classes, and methods2001-08-30 14:57:06.0
should use consistent code layout style2001-08-30 14:57:06.0
should write comments at the same time as writing code , and perhaps even before writing the code2001-08-30 14:57:06.0
writes program2001-08-30 14:57:06.0
software developerasks several evaluators to independently perform heuristic evaluations2001-08-30 14:57:35.0
develops software2001-08-30 14:57:35.0
has goal rewarding career, recognition, or the challenge of solving difficult problems or by being a well-respected 'guru' in a certain area of expertise2001-08-30 14:57:35.0
is part of software development team2001-08-30 14:57:35.0
maintains software2001-08-30 14:57:35.0
may be judged on when they deliver product, not on its quality level2001-08-30 14:57:35.0
may be reluctant to develop new libraries, APIs and frameworks because
  • developing anything reusable is seen as not directly benefiting the current customer
  • If a developer has painstakingly developed a high-quality reusable component, but management only rewards the efforts of people who create the more visible 'final product', then that developer will be reluctant to spend time on reusable components in the future
  • Efforts at creating reusable software are often done in a hurry and without enough attention to quality. People thus lose confidence in the resulting components, and in the concepts of reuse and reusability
2001-08-30 14:57:35.0
may refuse to reuse components in which they lack confidence2001-08-30 14:57:35.0
most often works on custom software2001-08-30 14:57:35.0
must inform the project manager about any problems2001-08-30 14:57:35.0
must understand the customer's business environment, their problems and the available technology which can be used to solve the problems2001-08-30 14:57:35.0
often fails to adequately involve users in the development process2001-08-30 14:57:35.0
often has significantly less knowledge about modelling than about design and programming2001-08-30 14:57:35.0
often underestimates software development time because it is very hard for people to assess the quality of software or to appreciate the amount of work involved in its development2001-08-30 14:57:35.0
performs cost estimation2001-08-30 14:57:35.0
reuses libraries and APIs delivered with a programming language2001-08-30 14:57:35.0
should be rewarded for developing reusable components2001-08-30 14:57:35.0
should emphasize the use case or use cases which are central to the system, which represent a high risk because of problematic implementation, or which have high political or commercial value2001-08-30 14:57:35.0
should identify all the use cases associated with the software product2001-08-30 14:57:35.0
should not document a design only after it is complete2001-08-30 14:57:35.0
should not omit design documentation2001-08-30 14:57:35.0
should only reuse technology that others are also reusing2001-08-30 14:57:35.0
should realize that attention to quality of reusable components is essential so that potential re-users have confidence in them2001-08-30 14:57:35.0
should realize that developing and reusing reusable components improves reliability, and can foster a sense of confidence2001-08-30 14:57:35.0
should realize that developing reusable components will normally simplify the resulting design, independently of whether reuse actually occurs2001-08-30 14:57:35.0
should work for several months on a testing team; this will heighten her awareness of quality problems she should avoid when she returns to designing software2001-08-30 14:57:36.0
wants software that is easy to design and maintain and which has parts that are easy to reuse2001-08-30 14:57:36.0
stakeholdermust agree on requirements2001-08-30 14:57:46.0

Next programmernovice programmer    Upprogrammer    Previous programmercoder