مهندسی نرم‌افزار
Common Misconceptions about Software Architecture – Part III

“Architecture is the work of a single architect.”“A great architecture is the work of a single architect. ” Fred Brooks wrote this in 1975.Granted, there are some great examples of this: But in practice, geniuses are rare, and in many organizations good architectures are most often the work of a small group of people working […]

مهندسی نرم‌افزار
استفاده مجدد (Reuse)

Reuse is something that is far easier to say than to do. Doing it requires both good design and very good documentation. Even when we see good design, which is still infrequently, we won’t see the components reused without good documentation. – D. L. Parnas, _Software Aging. Proceedings of 16th International Conference Software Engineering, 1994 […]

مهندسی نرم‌افزار
Common Misconceptions about Software Architecture – Part II

“Architecture is [insert favorite technology here].”“The network is the architecture. The database is the architecture. The transaction server is the architecture. The GUI is the architecture. CORBA is the architecture. This standard is the architecture…” This is a special case of the previous point. Yes, many of these aspects are part of the architecture, but […]

مهندسی نرم‌افزار
Common Misconceptions about Software Architecture- Part I

“Architecture is design.”Yes, architecture is design. It is about making the difficult choices on how the system will be implemented. It is not just the “what.” But not all design is architecture. Architecture is one aspect of the design, focusing on the major elements — the elements that are structurally important, but also those that […]

مهندسی نرم‌افزار
Responsibility-Driven Design

Responsibility-Driven Design و به خصوص تکنیک CRC-Class Responsiblity Collaboration- یکی از ساده‏ترین تکنیکها و روشهای طراحی شیءگرای نرم‏افزار است. مبدع آن، خانم Wirfs-Brock است. کتاب ایشان با نام Designing Object-Oriented Software منتشر شده به سال 1990، یکی از تأثیرگذارترین کتابهای حوزه طراحی شیءگرا بوده است. در سایت شرکتشان در مورد ایشان آمده است: Rebecca Wirfs-Brock, […]

مهندسی نرم‌افزار
What Is Domain-Driven Design?

Over the last decade or two, a philosophy has developed as an undercurrent in the object community. The premise of domain-driven design is two-fold: For most software projects, the primary focus should be on the domain and domain logic; and Complex domain designs should be based on a model. Domain-driven design is not a technology […]

مهندسی نرم‌افزار
Coding Standards- بخش سوم

The Tyranny of Tools I have seen teams attempt to enforce a style through the use of tools. Some tools are benign and helpful. Many IDEs, for example, allow you to specify things like indent level, brace placement, etc. With a single keystroke you can ensure that a batch of code conforms to the team […]