Thursday 23 October 2008

Industry best prictices

The last methodology principle we were consider is the using industry best practices.
Understanding and applying best practices can improve the flexibility and extensibility of a software solution.
Design principles are guide line [...] about half software interact and combine to providing flexibility, extensibility and deep coupling across the system.
This principles provide rules from which software pattern arise.
An example is the separation of concern principles. This principle stays that different types of behavior should be separated into different components.
The result of this principle is the coming separation between UI, service and entity components.
This principle also leads that [...] of your controller pattern and DAO pattern.
Software pattern can be defined as "a repeatable solution to the required problem within a context".
Patterns describe expert solutions to everyday problems. Patterns appear in all levels of system development.
Architectural patterns affect hight-level structure of the system and usually support non-functionally requirements.
An example of architectural pattern is load-ballancing. This pattern increase the system [equality??]
and system throughput by adding additional servers to handle [...].
Design patterns affect medium level of structure and usual support functional requirement.
An example of design pattern is a strategy pattern. This pattern allows the runtime selection one variant from a set of possible other variants.
An example of this can be sorting. There are many sorting algorithms such as the bubble sort, merge sort and so on.
Each sorting algorithm has its own kinds. The strategy pattern would propose the user to dynamically select an appropriate sort technique at runtime.

According Martin Fowler refactoring is "the process of changing the software system in such way than it doesn't effort the external behavior of the code, but improve internal structure". Refactoring is done all the time doing software development and especially doing maintenance.
Refactoring is recognized as regiment and significant practice.
Programmer should be [..] to develop [..] refactoring. Find several books in title refactoring providing detail exploration of this topic.
Sun microsystem's published documents that print together best practices in wide [...] of technical areas including J2EE development,
cluster configuration and so on. http://www.sun.com/blueprints

Tuesday 21 October 2008

Modeling principles

In the past three slides we talked a lot about the model that created during software development workflows.
Lets step back a minute and ask an important question. Why do we want to create any these models?
If the ultimate goal is to create software, why should I waste time creating models?
..... then he wrote: we build models we can better understand the system we are developing.

Then building a house you could just buy some lumber and start nailing board together and hope that all that walls fit together.
And then you have room ... a kitchen (м.б. украсить или выбрать кухню).
Such [анхак] approach to build a house is unlike little fail.
Instead you hiring an architect and designer [хелс].
The architect create some model of the [хелс] in his head, but he must share his vision with you, the client.
In the construction [крую], it takes order in a house to construction requeres unique view of the architecture.
You, as an owner need to see artistic renderings of the exterior and landscaping,
the builder need to see three-dimensional views of rooms, doors, stairs and so on.
The electrician needs a wiring view, the plummer needs the view of pipes and so on.

Software development also uses models to represent aspects of the system.
All software developers have a mental model of the system they are building.
You can draw your own diagrams to visualize those mentals models. You can also draw a diagram to capture a design of some existing system.

Communication is very important for success of any software project.
Models help communicate the design and decisions being made about the project.
These decisions must be share with stakeholders, so everyone is on the same page about stages and direction of the project.
In large teams each workflow may be performer by different workers. As the project transitions from one workflow to the next,
it is important that workers document and communicate decisions to the next workflow group.
Models help document those decisions.

Specific UML diagrams show different views of these models.
For example you can use a class diagram to show types ant entities of the system.
And you can use the sequence diagrams to show time order flow of messages between objects to accomplish some functional requirements.

Thursday 9 October 2008

The death penalty is never justified

Unfortunately, now offenders still committing lots of crimes, and there are no effective way to turn events around. The fact is majority offenders commit crimes again after years spending in cell: murders butcher people again and again, thief steals money and properties.

In this situation, personally, I am for death penalty. It is obvious to everyone death penalty isn't for manslaughter or violent crime. Then I speak about death penalty I mean heinous crimes such as acts of terrorism, statutory rapes, bloodbath, not as violent as speeding or shoplifting. There are several other conditions to impose the death. First one is existence of irrefutable proofs of guilt. And second – an offender should have right to appeal against the court's sentence.

The main argument against death penalty is it's a God's decision: kill and give a life. It's a bit hypocritical position, 'cause everybody eats meat, and God gave life to the cow. What about vegetarians? Mmm... God gave a life to wheat, why did you kill and eat it?