Rober Covington created a compilation of current EDA and ESP related standards available on
Friday, March 09, 2007
[Tech] Event Driven Architecture Standards
Rober Covington created a compilation of current EDA and ESP related standards available on
Posted by
Szabolcs Rozsnyai
at
Friday, March 09, 2007
0
comments
Categories: Technology
Wednesday, February 28, 2007
[Pub] Our new Baby is online :-) (actually in beta)
Besides these examples we provide information to used software patterns inlcluding interface, delegation, data access object, dependency injection and so on, plus an introduction and motivation for the used technologies.
This whole project is published under Apache license, hence can be used and extended by everyone. Currently we are running the beta-phase also with our SE course in the summer semester, and we hope for feedback and suggestions to enhace the samples and/or the documentation. It will also be updated rather frequently, so please stay tuned!
Posted by
Alexander Schatten
at
Wednesday, February 28, 2007
1 comments
Categories: Architecture, Open Source, Processes, Publication, Technology
Sunday, February 25, 2007
[Pub] AOSSS Conference
However, this was just one impression, but a symptomatic one. I personally spoke about the ECDL/ICDL as an option to bring basic IT education (also in the OS environment) to a country like Indonesia and in my second talk about the connectio of the OS development process and modern economic strategies. This leads from the assumption, that Software becomes more and more a commodity towards new software production and "consumption" patterns with a new role that users play in the game.
Maybe check out my presentation and give some feedback...
Posted by
Alexander Schatten
at
Sunday, February 25, 2007
0
comments
Categories: Conference, Event, Open Source, Processes, Publication
Monday, February 05, 2007
[Pub] Webservices with Axis and xFire
Both frameworks can be used to build modern Web-Service driven architecture, however choosing the right one for the projet is not always an easy decision:
Apache Axis
The current installment is Apache Axis 2. It is again a redesign of Apache 1 and is up-to-date with modern standards like:
- SOAP 1.1 and 1.2
- REST style services
- WS-reliable messaging
- WS-Coordination and WS-AtomicTransaction
- WS-Security
- WS-Addressing
- basic message exchange patterns in WSDL 2.0
Codehaus xFire
Fazit
Read more...
... in our Infoweek article.
Alexander Schatten, Markus Demolsky
Posted by
Alexander Schatten
at
Monday, February 05, 2007
0
comments
Categories: Java, Open Source, Publication, Technology
Thursday, February 01, 2007
[Tech] Software Reusability
Several days ago a topic with the title "Software Reusability: Myth Or Reality?" was posted on Artima. Following the comments on this post since the first publishing I think you should take a look there too. Developing SW for 6 Years now (by far not that long as the poster) I have to agree with him. The problem with reusability is that there are several issues that must be fulfilled that libraries objects .... can be reused.
1) Clean self speaking code
2) Documentation
a) Tests: they are the best documentation of a program because their actual status (which is documentation) can be verified easily by executing them.
c) Diagrams: all the UML Stuff which in my opinion is even more difficult to hold up to date.
Answers?
I would answer the question raised in the article as follows:
1) Is reusability something that can be trained for?
2) Should reusability be a requirement?
Posted by
Gerd Saurer
at
Thursday, February 01, 2007
6
comments
Categories: Modeling, Processes, Technology
Friday, January 19, 2007
[Event] Software Engineering for Everday Business - Review of the Last Event
Dietmar Winkler introduced the day defining the term quality and giving some introduction about quality factors and quality management, quantification of quality and measurement issues. He continued describing quality assurance strategies on the example of V-Model (XT), Rational Unified Process and SCRUM. Then the process enhancement cycle following PDCA (plan, do, check, act) was described.
In the next presentation, Dietmar explains strategies to review and audit Software artifacts. He explains different review strategies and reading-techniques (explaining typical checklist-based approaches) and the planning of Software Reviews. He recommends the usage-based reading (UBR), that is priorised according to business value, as best-practice inspection technique following studies that have been performed at our institute.
The second speaker, Denis Frast, introduces the term testing and discusses the cost and efficiency of testing. Validation and verification are discussed in the context of the V-model. Fundamental test-strategies are described:
- "Private" tests
- Module test
- Integration test strategies (increment, Big-Bang...)
- System-test
Also the psychology of testing is important to acknowledge. It suggests to implement own test-teams that are only focusing on testing and are not developers of this system (module). Developers themselves sometimes unconciously try to proof their program right (show that it works) and not necessarily try to push it to or over the limits. This is understandable, as a programmer is successful when he makes no mistakes, whereas a tester is assumed successful when he finds errors.
We can eventually identify two general strategies to derive test-cases: black-box and white-box methods. Black-box tests are more derived from specifications, whereas white-box tests are based on code-structure.
Finally Alexander Schatten gave a brief overview on modern tools to automate project-tests:
- Unit Tests
- UITests
- Codestyle Checks
- Profiling
Please download all presentations from the Event-Website (partly in german).
Posted by
Alexander Schatten
at
Friday, January 19, 2007
1 comments
Sunday, January 14, 2007
[Tech]EAExpression - building a new DSL
- addressing events - this includes events itself and their attributes which can be primitive types, collection, dictionaries, other events ...
we use a "." notation for this e.g. Event1.Attr1.Attr2 can be used to address the Attribute "Attr1" of Event1 which in this case again is a Event where the Attribute "Attr2" is evaluated. For Collections we use the Syntax Attr1[1] and for Dictionaries Attr1["Test"] - Constant values (e.g. Strings "Test", integer 12, float 12.5f, boolean true|false, ...)
- calculation at least we need to calculate +,-,+,/ and % (modulo)
- boolean expressions AND, OR, XOR, NOT
- comparison expressions =, if possible chained
Now you can do things like this:
----Code---
Event1 ev1 = new Event();
ev1["Attr1"] = 12;
ev1["Attr2"] = 15;
ev1["Attr3"] = 1;
EAExpression expr = EAExpression.Compile("Attr1 < Attr2 + Attr3");
bool val = (bool)expr.Evaluate(ev1);
----Code----
This is just a very simple example where the first 4 lines shows how an event is created.
We have learned several things while building the language:
- don't be afraid to create one for a specific purpose - some times it is really useful to do it
- it was much less work than I expected, because there are several tools out there that can help you
- the language you build should be as simple and easy as possible. Don't try to do fancy stuff or allow several ways to do the same thing. This will be more confusing than helpful to users.
- in the end we needed to introduce defined functions e.g. Now() for the DateTime. Now in C# which was a little bit tricky
- Autocompletition and syntax highlighting for user inputs within the GUI - I will post as soon as we have it and how we will solve it because i think it is a very important part of languages for business folks.
Posted by
Gerd Saurer
at
Sunday, January 14, 2007
2
comments
Categories: Technology
[Event] Software Engineering for Everyday Business
- Enhancements of Softwareproducts and -processes
- Reviews and inspection
- Methofs of software testing
Posted by
Alexander Schatten
at
Sunday, January 14, 2007
0
comments
Categories: Event
[Tech] Generate the Persistence Layer for iBatis from the Database Schema
As I am writing some articles about iBatis these days, I came across the iBatis "Subproject", or "Tool" Abator.
- Create database schema and build a database from it
- Write the SQLMaps for each table, including all SQL statements, i.e. typically inserts, updates, selects and deletes
- Write the domain models (transfer objects)
- Write the data access objects following the DAO pattern typically using the Spring framework's iBatis templates.
- Write the unit tests for each data access object
- You create an XML config file (rather simple) containing the information about the databas (URL, JDBC driver and the like)
- Fine tune the code generation setup, e.g., what type of DAOs should be generated: iBatis style (deprecated) or Spring DAOs.
- Add the tables you want to access into the config file
- Make some optional configuration steps (like, should the pojo be named different to the table, should some fields in a table be omitted, should they by named differently in the POJO, ...)
- Define the target directories
- Start Abator
I personally think I will make sense in many cases, particularly when the data base consists of many tables. Writing the Abator config is rather simple and it generates all the artifacts of n-classes within one step. These generated artifacts are often a robust point to start from, much faster then writing everything from scratch.
Additionally it very easy to understand Abator and allows "newbies" to get a set of SQLMaps, objects and DAOs plus one example class for each table showing how to use the DAOs. This helps to get a quick an easy introduction into the iBatis concepts.
Remark: Please read the design philosophy part of the Abator documentation. It is clearly mentioned that this strategy is a database-model driven strategy. If this is fitting for the project it seems to be great, if the project or developer focus is more a object-model driven one (which is seldom the case in enterprise projects) this approach might not be fitting.
Posted by
Alexander Schatten
at
Sunday, January 14, 2007
2
comments
Categories: Java, Open Source, Persistence, Technology
Monday, January 08, 2007
[Tech] Best-Practices for Spring Configurations
- Avoid using autowiring
- Use naming conventions
- Use shortcut forms
- Prefer type over index for constructor argument matching
- Reuse bean definitions, if possible
- Prefer assembling bean definitions through ApplicationContext over imports
- Use ids as bean identifiers
- Use dependency-check at the development phase
- Add a header comment to each configuration file
- Communicate with team members for changes
- Prefer setter injection over constructor injection
- Do not abuse depencency injection
Maybe our readers want to contribute their practices?
Posted by
Markus Demolsky
at
Monday, January 08, 2007
1 comments
Categories: Java, Open Source, Technology