AMIS on Deliver valuable software: “Other posts about the AGILE Principles soon to come:
1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. (This one).
2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
4. Business people and developers must work together daily throughout the project.
5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good design enhances agility.
10. Simplicity–the art of maximizing the amount of work not done–is essential.
11. The best architectures, requirements, and designs emerge from self-organizing teams.
12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. ”
Forget those fancy tools, and try just enough information in requirement gathering.
I come from a background of you design first and coding should be the easier effort. But, its hard to design unless you understand your requirements. Use Cases
Simply Singleton: The Singleton pattern is one of the simplest design patterns, but for Java developers, it’s full of pitfalls
The Single Java Object – A singleton is an class that can be instantiated once, and only once. This is a fairly unique property, but useful in a wide range of object designs.
The double-checked locking idiom – be used with the Singleton creation pattern to limit how much code is synchronized. However, it is not guaranteed to work. Instead of failing consistently, it will fail sporadically.
- Will every application use this class exactly the same way? (exactly is the key word)
- Will every application ever need only one instance of this class? (ever and one are the key words)
- Should the clients of this class be unaware of the application they are part of?
An intermediate class decouples between presentation-tier clients and business services.
On the where to use for the Business Delegate pattern, I think it says it best by indicating :
Hide the underlying implementation details of business service.
From Brett McLaughlin’s article on Business Delegate pattern, he says that its builds on the builds on the Business Interface pattern. It mentions to read up on this here as it is part of the EJB best practices series.
Other related links :
Some references on patterns:
Service Locator Pattern: an intelligent connection from a presentation tier to the various remote services. The service locator is the applications central point to directory services (i.e servlet that needs access to business data). Having a single centralized locator means there is a single piece of code to modify when the directory changes.
Wideband Delphi : “No estimation method is perfect; if it were, it would be called prediction, not estimation. However, the Wideband Delphi technique incorporates some solid estimating principles. The team approach acknowledges the value of combining multiple expert perspectives.”
Below is the link to a UML sequence diagram i composed using Magic Draw.
It contains the following components: Control, Entity, Boundry, and a User:
I had a relative path for locating my properties file. It worked fine inside of WSAD, but when you apply code into websphere, it does not know the path. So I used the tip on this page:
Dump your properties file in /WEB-INF/classes
InputStream inputStream = getClass().getResourceAsStream(“file.props”);
props.load( inputStream );
Howver, this page says it best as far as what you place in quotes for the getResourceAsStream call.
Design patterns are recurring solutions to problems in object-oriented design.
Java design patterns tutorial from IBM developer works. Note that I had to enter a user id and password to get access to the tutorial.
[Huston Patterns page]
software class patterns
Noticed the Pet store demo on this page.
Model (Databases, JavaBeans)
– Stores the application’s state
– Provides access to the application’s data as well as the business rules for modifying the data (accessors and business methods).
– Notifies view when state is changed
View (jsp, html)
– renders the content of the model
– access data from model and decide how to present it
– forward user input to controller
– defines application behavior
– it processes user input and maps them into actions to be performed by the model
– selects views to be rendered
James Gosling interview:
EA I’m curious about your opinion of some of the other languages that in some sense overlap Java. Notably, C#.
JG They did such a job of copying Java, it’s hard to criticize them. Imitation is the sincerest form of flattery.
Free Community download.
The features: UML 1.4 and 2.0 modeling ,Modeling for Logical Entity Relationship diagrams , XMI import , MDL import .
Object Oriented Analysis and Design Using UML
UML in nutshell author page
UML resources via college class
Get the MagicDraw UML 8.0 Beta. It required me to register to get the key. Its says Customers can read the output this tool generates by using the free reader for Magic Draw.
Caché enables rapid Web application development, extraordinary transaction processing speed, massive scalability, and real-time queries against transactional data – with minimal maintenance requirements.
Objectivity Objectivity/DB is the most scalable, high performance, distributed object database (ODBMS).
I recently started reading UML Distilled by Fowler. The book has been updated to include info on UML 2.0
I download IBM Rational XDE Modeler 6.0
created a simple modeling project, analysis model template, design model template.
The RTP area has a Rational Users Group.
Objects by design has some good UML and SW info
All the classes have stereotypes.
Use Case Diagram – requirements gathering. Use case represents the different capabilities the system provides to the client.
Sequence Diagram – can show Object Interactions, Object lifetimes during a use case, Object messaging and when used for analysis it can show overall system behavior thru class/concept interactions.
Actor – any entity that uses the system. Classes relate to other classes via associations.
What UML Is and Isn’t
Model driven Architecture (MDA)