Development Architecture blog is designed for developers who have some troubles in their code.
This blog will be mainly on web development, though many of it's posts can be used also on software design.
I wish you nothing but the best,
Inevitability of Change in Complex Systems
University of Liverpool - Masters in Software Engineering
Discuss why change is inevitable in complex
systems and give examples of software process activities that help
predict changes and build software to be more resilient to change.
Complex systems are comprised of interconnected parts, which
as a whole exhibit one or more properties, not evident from the specific
properties of the individual parts (Rocha, 1999).However, as complex systems are studied by
quite an impressive number of fields, including ecology, cybernetics, business,
and economy, their definition is subject to the particular context in which
they are used (Collier, 2005).
Although the definition and interpretation of a complex
system is subject to many variables and to the field that is studying it, there
is one aspect regarding this matter which most experts tend to agree with; that
change is innate to any complex system. Complex systems are dynamic and thus,
they are prone to transformation from their very inception.
A complex system is subject to change for a number of
reasons. Firstly, these types of systems are installed in an environment which
instantly adapts to the complex system and starts generating new requirements
from the very moment it starts using it. These new requirements may occur
because only after a process of trial and error can one truly see what
functions with a system and what does not; and these things may not have been
evident before the installment of the complex system.
As a part of evolution, the user’s own requirements will
also change and, in a way, become more demanding. As business policies and
goals evolve and transform, new requirements will be generated for complex
systems as well. It is this evolution and demand that will prompt the changes
that also have to affect the complex system for it to match with what is being
asked and expected of it.
Change is essential for a complex system to preserve its
usefulness. As long as a system is in accordance with the definition of
“complex”, change will occur naturally and automatically in order to increase
efficiency and effectiveness (Kirshbaum,
2002). Although change is accepted as a natural occurrence in complex systems,
there are certain ways in which this change can be predicted.
activities that help predict change and that build software to be more
resilient to it include: design modeling that documents the software’s structure;
recording requirements rationale in order to know why a certain requirement is
present; tracing requirements to demonstrate the dependent relationship between
one requirement and another, and between requirements and the software’s
activity useful for the prediction of changes is requirements-driven impact
analysis or RIDA, for short. This analysis is used to pinpoint which software
entities need to be altered in order to be able to implement a certain
requirement (Lindvall, 1998). RIDA, which is conducted during the release
planning phase, takes two variables into consideration. Firstly, there is the
input, which refers to the existing complex system and the set of requirements.
Secondly, there is the output, which represents the specific software entities
that have to be changed to meet each requirement.
The main idea one has to understand is that change is not an
exception, but rather, the only constant in life (Brooks, 1975). To some
extent, changes in complex systems can be predicted and the system can be
altered in such a way that it becomes resilient to these transformations.
Nonetheless, change in complex systems has to be accepted as an invariable
constant and a natural component in evolution.
·Brooks, F (1995). The Mythical Man-Month:
Essays on Software Engineering. 2nd ed. US: Addison-Wesley Pub. Co. 15
Protecting personal data can be overwhelming, but it is not impossible. There are highly secure tools both online and offline to protect personal data. Shielding personal data can be logical, highly secure as well as inexpensive. Protecting Personal Data Offline Physically lock your financial records and personal documents in a safe place in your home. Purchase an inexpensive fire-proof safe that can be stored in a secure closet, built in your floor or wall. A good fireproof safe costs from $100 to $3000 (Sears, 2013). Protect your wallet and or purse in a desk drawer at work. Limit what you carry when you go out. Never keep your social security card in your wallet; lock it up. When filling out forms in the workplace, the doctor’s office, or your child’s school ask how your information will be safeguarded. If you do not have to fill out every little detail of your life, leave that portion blank. Ask for the consequences of not providing specific information. Shr
Behavior Driven Development, Test Driven Development, and Everything Between What is TDD (Test Driven Development) Test Driven Development was introduced by Kent Beck, in 2003. This followed the concepts of Extreme Programming, introduced in 1999 with a development experiment done by both IBM and Microsoft. The purpose of the Test Driven Development is to make sure code is clear, tested, and as redundant as possible, by making sure the tests are written first, and code is being added to "fill the blanks". Every code iteration needs to pass all tests (may those be unit tests, integration tests, data integrity tests, or UI tests). Writing the tests first allow us to see what fails, how, and allow us to visualize the structure of our code, by making sure each test is performed to test a specific, extremely defined sub-section of a feature. Let's assume a "BasicMaths" class, to perform simple mathematics operations. [TestClass] public class Uni