Category Archives: Software Architecture

Software Architecture

IASA Israel meeting – Atzmon Hen-Tov on the Adaptive Object Model

The International Association of Software Architects (IASA) in Israel organized a special event with the participation of Atzmon Hen-Tov, who talked about the “Adaptive Object Model”. Title: Adaptive-Object-Model – Empower your users to evolve the system Abstract: In this talk … Continue reading

Posted in Adaptable Design, IASA Israel, Software Architecture | Tagged , , | Leave a comment

Coping with Change in Agile Software Development

Traditional software development methodologies, such as Waterfall, tried to follow a series of isolated steps: First you define all the system requirements, then you devise a detailed system design that satisfies these requirements, and then you implement the system according … Continue reading

Posted in Adaptable Design, Agile, Refactoring, Requirements Specification, Software Architecture, Software Evolution | Tagged , , , , , | 4 Comments

Attention Agile Programmers: Project Management is not Software Engineering

I’m happy to see so many software developers who are enthusiastic about Agile methods. It’s nice when people enjoy their work. However, I think there is a problem: Some teams are giving too much emphasis to Project Management activities, while … Continue reading

Posted in Agile, Programming, Software Architecture | Tagged , , | 16 Comments

Software Product Line Engineering

Last week I had the opportunity to participate in a Product Line Engineering (PLE) seminar by Dr. Paul Clements, who is one of the global experts on this subject and author of the book “Software Product Lines: Practices and Patterns” … Continue reading

Posted in Adaptable Design, Software Architecture, Software Evolution | Tagged , , | 3 Comments

Simplicity in Software Design: KISS, YAGNI and Occam’s Razor

“Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.” – Antoine de Saint-Exupery Simplicity is a desirable quality attribute in any software system. In this article I try to … Continue reading

Posted in Agile, Software Architecture | Tagged , | 32 Comments

IASA Israel meeting – Daniel Gross on Architectural Description Languages

The International Association of Software Architects (IASA) in Israel organized a special event with the participation of Dr. Daniel Gross, who talked about “Architectural Description Languages”. Synopsis: In this talk Daniel reviews main findings of a recent international survey on … Continue reading

Posted in IASA Israel, Software Architecture | Tagged , | Leave a comment

IASA Israel meeting – Hayim Makabee on Adaptable Design Up Front

The International Association of Software Architects (IASA) in Israel organized a special event with the participation of Hayim Makabee, who talked about “ADUF – Adaptable Design Up Front”. Synopsis: This talk tries to answer the question: “How much Design Up … Continue reading

Posted in Adaptable Design, Agile, IASA Israel, Software Architecture, Software Evolution | Tagged , , , , | Leave a comment

Adaptable Design Up Front and the Open/Closed Principle

The Open/Closed principle is one of the SOLID principles of software design: “The Open/Closed Principle states that the design and writing of the code should be done in a way that new functionality should be added with minimum changes in … Continue reading

Posted in Adaptable Design, Design Patterns, OOD, Software Architecture, Software Evolution | Tagged , , , , | 11 Comments

The Myth of Emergent Design and the Big Ball of Mud

Software developers following Agile methodologies often ask themselves how to adapt the traditional Design phase to an iterative software lifecycle. The basic question is how much design should be done before starting the implementation. There seems to be a consensus … Continue reading

Posted in Adaptable Design, Agile, Refactoring, Software Architecture, Software Evolution | Tagged , , , , | 26 Comments

Meta-Decisions: Agreeing on the criteria before discussing the alternatives

In a working environment, meetings may consume lots of time. In general, the goal of meetings is to make decisions based on the input provided by several people. There are normally many different ways to solve a problem or address … Continue reading

Posted in Efficacy, Software Architecture | Tagged , | 3 Comments