Page 2 of 7


The objective of this discussion is to introduce the Therac-25 case, explain what happened in this historical event, discuss the ethical responsibilities of such individuals and organizations and at the end provide my viewpoint about this historical event.


The way as the software becomes more complex and usable, this is very common that scientists introduce the use of software to the medicine. Between June 1985 and January 1987 disasters occurred with a system named the Therac-25, which was a computerized radiation therapy machine. In the related period, six known accidents occurred with massive overdoses applied to the patients (Leveson & Turner, 1993).

As stated by the Leveson & Turner, 1993, the Therac-25 software was developed by only one person, using the assembly language, and it took many years to be completed. However, there wasn’t much documentation.

The technical aspect of the Therac-25 failure is that that software controlled by the operator if the operator used to trigger the buttons of the controller board slowly, the machine would operate fine, because while the development of the Therac-25 machine it was tested with slow command inputs. However the operators of this machines after operating thousands and thousands of patients became familiar with the controller board, they got used to the machine and used to type very and very faster, what used to trigger the bug, and the bug started to send massive radiations over the patients. (Udacity – Software testing Course, 2017).

In my viewpoint, it is more of a software testing failure, but of course, as software testing is part of software engineering, it needs to be considered an engineering failure.


In spite of having to know that software developed in the seventies and to do not have been properly tested, is a big failure in the procedures of the development of the critical health machine. But a machine of such complexity in my viewpoint, to be developed by a single person without documentation is also a big mistake by the company who created it. Unfortunately, the software engineering methods and studies we have today weren’t available at that time.

Just by the factor of the software to have minimal or none documentation puts all the responsibility to the developer: How can we build something we don’t know how it works since assembly code is very close to the machine code and all the other equipment were handled by this single software? How could understand the error codes provided by the software since there is no documentation?

If the error code showed that the problem was related to the operating timing while using the control board, the software could be easily repaired and the machine could continue to be used and to save lives.


Since technology is under development and it is not certainly free of problems and mistakes. According to the mistake evidenced in this documentation, in my opinion, it is not a case of cyberethics nor computer ethics, but a concern of professional ethics. I purely believe that because the operators of the Therac-25 had to be in a constant training environment of the use of such machines. Since the first case, that should be evidenced what was the mistake happened, what was the cause of that and why should we continue operating such machine since the first people who died because of the mistake which happened.


Spite of an engineering mistake mixed to an operative mistake, the development of software engineering and the advances of the medicine has, of course, much to improve the social quality of life in terms of the health. I consider many mistakes may have caused the Therac-25 case, but of course evicted. Spite of all the factors, it can be considered a software engineering failure, since the program was waiting for the perfect use of the software, the software had no documentation and the problems could not be fixed since it had no feedback of what was going on and could not help in the fix of such problem.


N.G. Leveson, C. T., 1993. An investigation of the Therac-25 accidents. IEEE Computer Society, 26(7), pp.18-41.

Udacity, 2017. YouTube. [Video Online] Available at: [Accessed 27 August 2017].


The subject of my weekly discussion is social change caused by new communication resources created by the new inventions of mankind. To begin, I introduce ways of communicating like the wireless telegraph and the wireless telephone, how they impacted the way we communicate in the familiar, business and other regular human relationships.

 The invention of the Wireless Telephone

In spite of being unknown for some people, the priest Landell de Moura is with no doubt one of the most notable scientists in Brazil, and his contribution to the modern communication and society is relevant until today. He was the precursor of wireless communication. (Alencar, M. S., Alencar, T. T. & Lopes, T. A, 2004)

 The work of Landell de Moura

Landell de Moura is known as the inventor of the wireless telephone and the wireless telegraph. Landell he Moura moved temporarily to the United States with the objective of proving his inventions. Landell de Moura had success patenting in his inventions giving him the status of the most important scientists of that time. (US Patents 775846 A, 771917 A, US775337).

 Impact on the Society

In spite of the wireless technology have its distance limits, today, we have the possibility of communicating with people being localized dispersed in the same city, state or even overseas. The further development of technology such as developed by the priest Landell de Moura allowed us to use mobile/cellphones which helps us to communicate with family, friends, and coworkers, in different localization and without the use of cables.

 Recent studies show that using phone and e-mail is the most common use of technology among Americans. The figure below shows the percentage of communication resources in a recent study among American society:

Figure 1 Poll, 2014



While communication is one of the most natural senses of human beings, technologies help us on such task by allowing resources such as the wireless telephone. In my opinion, society has been positively affected by the use of wireless communication. The example of distance, limits people to communicate, and communication could evict a disaster to happen, or a life to be saved.


Alencar, M. S., Alencar, T. T. & Lopes, T. A, 2004. What Father Landell de Moura Used to Do in His Spare Time. Federal University of Campina Grande, [Online]. 7. Available at: [Accessed 19 August 2017].

US Patents, Robert Landell De Moura. 22 November 1904. Wireless telephone. United States. Pat. US775337.

US Patents, Roberto Landell De Moura. 11 out. 1904. Wave-transmitter. United States. Pat. US 771917 A.

US Patents, Roberto Landell De Moura. 22 nov. 1904. Wireless telegraph. United States. Pat. US 775846 A.

Frank Newport, 2014. The New Era of Communication Among Americans, [Electronic] PRINCETON, N.J: Available at: [Accessed 19 August 2017].


The objective of this discussion is to introduce Wikileaks, describe the motivation of such activism, discuss the social impacts in the globalized world and at the end give a conclusion with my personal insight about the subject.

 About Wikileaks

The Wikileaks foundation was created by Julian Assange in 2006. In an analogy, it is very similar to Wikipedia while thousands of contributors worldwide provide his knowledge in order to produce a social tool to provide informative articles or documents. The key difference here is that different from Wikipedia, The Wikileaks is focused on governmental, spy and corruption documentation. This is a community of people who share secrets with this nonprofitable entity, in order to provide transparency between governmental or diplomatic relation between nations (, 2015).

The Motivations for such Activism

The motivations of bringing secrets up to the table can be many, in the enumeration below I list some of the most relevant motivations an organization like Wikileaks to have its importance:

1) Transparency: Usually transparency strikes out corruption. Based on the principle that secrets hold illegal acts or self-benefit motivations, the transparency that Wikileaks can bring to the table especially of diplomatic relations and be deep such to help countries to have benefits and to beat down corrupt governors.

2) The free market in the business: Companies may have thousands of secrets in deals and agreements which may reduce the competitiveness of many other businesses. Ethics and honesty is a key concern here. The Wikileaks foundation may serve as a tool to bring to the table ethical concerns about business deals in some countries or even around the globe (Forbes, 2010).

The ethical aspects of such leaks

Leaks can lead to prisons, scandals and even may cause a war. The ethical aspects of such activism can be glorious to some people but very bad reputation to others, which believe the response of such actions should live in jail. If the discussion is about pure ethics, the Wikileaks foundation does a very decent and important job in the world especially for people which believes in libertarianism.


I conclude this discussion as Julian Assange being a visionary, which created a tool to help people which libertarian mindset, but a headache for many governors and businessman involved in corruption, cartels and power obsession.


Julian Assange, 2015. Wikileaks Foundation. [Online] Available at: [Accessed 19 August 2017].

Forbes, 2010. An Interview With WikiLeaks’ Julian Assange. [Online] Available at: [Accessed 19 August 2017].

Software Engineering is a very important field of study regarding software development since the beginning of modern computing and the rise of software complexity.

If you consider that to achieve a deliverable software component you may need to understand more than just bits and bytes, moreover, for software to be successful in the piece of the problem it may solve, there are much more than just electrical circuits behind that.

Based on that affirmation you should consider that software development requires more than machines and code, but also, the idea of the business behind it to be understood, the abstraction while designing based on its requirements, the right methodologies and procedures which will make the code with quality enough to support maintenance, the testing environment which will confirm that the software is reliable enough to run and automate some human task.

In the enumeration below I list my personal view of the greatest challenges regarding software engineering in the next 20 years.

#1 Testing multiple software components with integration with other software components

I personally believe one of the most critical software development phases is the integration testing. If we consider that today we have more and more integrated applications running in a space where many applications depend on each other, how to guarantee our software will work integrated with other software components we do not know much about its infrastructure and availability?

Moreover, according to StackOverflow, 2017, there’s the issue of data that changes in back-end systems over time. Sometimes you don’t really have any influence over these changes, and they can render detailed integration tests useless. Often this results in making “smoke test” like integration tests that really don’t assert too much of the content of the back-end systems.

I believe in a twenty year period, more applications will be connected and more will be integrated and dependent of each other, so how to make integration testing with all these applications and how to guarantee all them will work in a 24/7 scheme?

#2 Accuracy in Software Development Cost Estimates

According to Fowler, 2003: “One of my biggest irritations are studies of productivity based on lines of code. For a start, there’s all the stuff about differences between languages, different counting styles, and differences due to formatting conventions. But even if you use a consistent counting standard on programs in the same language, all auto-formatted to a single style – lines of code still doesn’t measure output properly.”

As long as more modern software development tools are created and developed, one thing I personally believe is that it will be possible to be more accurate in terms of cost and productivity estimates, which with my experience in the software development area it is strictly difficult to measure cost and productivity estimates with accuracy, and the way more specific development tools are available in order to provide more ways to be accurate with estimates and to measure productivity, but this is a constant challenge the science of software engineering is facing and will continue to face during the next years.


Martin Fowler. 2003. CannotMeasureProductivity. [ONLINE] Available at: [Accessed 1 June 2017].

Stackoverflow. 2017. What are the challenges you have faced in writing integration tests?. [ONLINE] Available at: [Accessed 1 June 2017].


A RTS or “Real Time System” is an information processing system which responds to external command inputs, and delivers information in a reliable expected time (Petters, 2008). It is very common to be embedded systems running inside cars, electronic devices, airplanes and cell phones, for instance.


One of the most important subjects in this discussion is the timing non-functional requirement for real-time systems. On the need of responding in expected time, the timing should flow the way as the requirement expects, in order to do not have the loss in the quality of the real-time system.

According to Magalhães (1993), real-time systems can be cataloged into two views:

  • Soft real-time System

    • Soft real-time systems are systems in which not meeting a timing deadline will not affect or damage the environment, which makes this acceptable.

  • Hard real-time System

    • A hard real-time system, it would not be acceptable that a timing deadline to be not met because it would have catastrophic results to the environment.


The most difficult concern and OOP and real-time systems in the concurrency because of the need for fusing the two concepts, which are different. According to (R. Welch, L. & Dieter K., H, 1996) the difficulties while working with OOP programming languages to build RTS’s are:

#1 Parallelization in real-time systems should not be arbitrary but according to the application semantics;

#2 Traditional real-time computing paradigms may not be adequate in addition to objects, abstractions at higher levels of granularity are needed (e.g., execution paths consisting of time-constrained sequences of method invocations);

#3 Object-oriented features that make real-time system engineering difficult include: method lookup, garbage;

#4 Collection, and variation in invocation latency due to object distribution and dynamic binding;


In spite of the object-oriented paradigm to be very popular in the development of enterprise applications, the low-level programming languages such as C (for instance) are still a better fit for programming real-time systems. The ‘virtual world’ created by the virtual machines in order to allow programmers to deal with more ‘human’ data types and classes/objects allows more ease while developing some kinds of systems, but systems that get closer of the machine and low-level requirements, usually tends to be best solved with low-level programming languages.


Petters, S., 2008. Real-Time Systems Lecture, [PPT] Australia: UNSW SIDNEY. Available at: <; [Accessed 23 July 2017].

António P. Magalhães, et. al, 1993. Deadlines in Real-Time Systems, [Technical Report] Portugal: Faculdade de Ciências e Tecnologia, Universidade de Ciombra (Portugal). Available at: <; [Accessed 23 July 2017].

R. Welch, L. & Dieter K., H., 1996. OOPS Messenger special issue on object-oriented real-time systems. ACM SIGPLAN, 1 January, pp.1-2.


The objective of this discussion is to introduce SOA, to provide a view of how software can be integrated and developed in such manner to allow software solutions to be interconnected, the problems of this approach, a suggestion of solutions and at the end a conclusion.


The SOA – Service Oriented Architecture was born based on the need of the legacy software systems to get interconnected. You can imagine a bunch of many systems developed during many years in different locations inside a company, what leads to a high granular reality in the company software space (and you should consider all that applications built in many different languages and technologies) (Abrams, 2008).

SOA is based on low coupled services, which can be written in different technologies or programming languages, what makes the integration between solutions in an interoperable reality (Kodali, 2005).


In the list below, it is enumerated some of the common problems on the attempts on integration with SOA.

#1 DIFFERENT DOMAINS: Based on my experience, most systems do not capture the reality of the business equally, so for one system a client can be designed simply as a client but for another system, it was designed as a company. Different languages in SOA leads to the use of the Enterprise Service Bus translators.

#2 SECURITY CONCERNS: While there are OASIS standards to implement security with SOA Webservices (Oasis, 2005), the need of transmitting data may lead to security interception of data or even a man-in-the-middle attack, something can compromise the whole company and data.

#3 DESIGN FOR PERFORMANCE: A bunch of XML traffic would not have its better performance while working with SOAP standards.


#1 DIFFERENT DOMAINS: Different languages in SOA leads to the use of the Enterprise Service Bus translators, it may have the mapping of from-to, which will allow the integration to be done, however when designing new solutions, I would suggest using common libraries with common domain classes, which represents the whole company domain and to be shared on the company projects.

#2 SECURITY CONCERNS: The use of HTTPS joined together with WS-security (Oasis, 2005), would allow more security to the system and securing the man-in-the-middle attacks.

#3 DESIGN FOR PERFORMANCE: A REST approach would best fit for solutions which needs more performance with the use of resources of the HTTP protocol (Roy, 2000). The use of JavaScript Object Notation (JSON) as a protocol would allow the use of less network traffic.


The use of the Service Oriented Architecture design pattern allows system integration, in a world which connection is a key concern, removing all that spreadsheet and importation integration used in the past.

SOA became a standard in the market for years, now a new design pattern is emerging to solve most of the problems SOA had in the past, which is called the microservices architectural design pattern.


Charles Abrams, R. W. S., 2008. Service-Oriented Architecture Overview and Guide to SOA Research, [Electronic Article] USA: Gartner. Available at: [Accessed 16 July 2017].

Kodali, R. R., 2005. What is service-oriented architecture?. [Online] Available at: [Accessed 16 July 2017].

OASIS, 2005. Web Services Security UsernameToken Profile 1.1. [Online] Available at: [Accessed 16 July 2017].

Thomas Fielding, Roy, 2000. Architectural Styles and the Design of Network-based Software Architectures. Doctor. California: UC Irvine.


In computer software development, it is not common that a project will be completed developed since the beginning, with its developers writing every line of code and coming up with this complete solution.

Since the first modern programming language, there is the possibility of importing and including code from other developers, something very common while developing computer software.

For instance, if the programmer is writing software to download a file from another computer in an internet server, this programmer will not have the need of writing all the low-level structures to access the network card, dealing with sockets or dealing with the HTTP protocol, since network drivers are installed on the operating system, sockets are already implemented by a provided API, and the HTTP protocol has thousands of implementations available.

Even the programming languages like C, Ada, Lisp, Smalltalk, and ML where not treated as examples of software re-use in the literature, however, the goals and achievements for high-level languages have strong parallels to the current-day aspirations of software reuse researchers (Krueger, 1992).


According to the Lombard Hill Group (2017), some of the benefits of the software reuse are listed below:

  • Increase productivity: software re-use will allow the productivity to increase since the engineers will not have to “re-invent the wheel” and reduce costs in the product development;

  • Shorten-time-to-market: with the reuse of software companies have reported a short time to market, something enables better competitivity;

  • Improve software quality: software that has been used multiple times will have a big probability of having less failure than fresh developed software;


The software reuse is very common and associated with the free software or open source ideology. Richard Stallman founded in 1985, the Free Software Foundation which has a philosophy of allowing developers to copy, redistribute or modify libraries and software of other people. (Stallman, 1985)

Richard Stallman, makes an analogy of the free software philosophy in the Linux Documentary entitled The Code where he explains that

A program is a lot like a recipe, each of one has steps to be carried out, with rules which tells you when you are done or when to go back and at the end, there is a certain result. If you cook, you probably exchange recipes with your friends, and you probably change recipes too, and if you made changes and you like the result, then you might give your friends the change of the recipe. So, imagine a world where you can’t change a recipe because somebody went gone out of his way to set it up that it is impossible to change it and imagine that if you share the recipe with your friends, they will call you a pirate and try to put you in prison for years (The Code Documentary, 2001)


W. KRUEGER, C, 1992. Software Reuse. ACM Computing Surveys (CSUR), [Online]. Vol 4. Issue 2., 131-183. Available at: [Accessed 2 July 2017].

What is Software Reuse?. 2017. Lombard Hill Group. [ONLINE] Available at: [Accessed 2 July 2017].

Richard Stallman. 1985. Free Software Foundation. [ONLINE] Available at: [Accessed 2 July 2017].

Hannu Puttonen. (2001). The Code Documentary. [Online Video]. 2001. Available from: [Accessed: 2 July 2017].