My first mistake when attempting to create my directory on SVN was when I sat down and decided to do it. I assumed I had to ssh in, and after I started typing in the command, realized I wasn't provided a port and that I was an idiot.
After typing "svn" into my terminal, it took very little time to install. I had looked up the command to actually create the directory earlier, mkdir, and recalled it was similar to how other file systems on Linux work.
Unfortunately, after a quick perusal of the staple SVN commands, I thought that the "checkout" command would give me what "ls" would normally - this turned out to be wrong. Luckily enough though, it did allow me to login to the server so that I needn't be bothered when running other commands, so it wasn't a complete waste - and it did show me that someone else had beat me to the punch.
I quickly found the command I was looking for, the list command, with the reasoning that even if I make the directory I was looking for, I would need to verify it's existence in an easy way. Besides, I was curious to see how many other people had completed the assignment as well, just in case checkout was reporting oddly.
Unfortunately while using mkdir, in my confusion, I may not have properly logged my actions when prompted - however, upon using the list command, found that I was indeed successful.
Friday, August 30, 2013
Wednesday, August 28, 2013
Homework 5 – Software Engineering – CSCI 362-001
The software problems that caused the
aerospace accidents seem like things that should have been easily
avoided to us now, but perhaps then not so much. I don't know how the
schooling was for the engineers, nor the common procedures – we
seem to have a process for trying to cover as much as possible
nowadays and a better standard for making decisions on what should be
included and making sure it works. I was most troubled when it was
mentioned that software was apparently assumed correct until proved
faulty – as if they were just going to see if a program worked on a
cheap replaceable computer instead of launching hardware into space.
The lack of responsibility in these
projects shocked me as well. I thought people in higher up agencies
at least tried to make sure someone else could take responsibility –
even if it was due to simple paranoia for their own skins. The fact
no one was doing certain things was also baffling; certainly checking
whether something was done or at least basically tested would be on
the checklist? It seems odd to have more software and procedures than
necessary on something that once deployed would be essentially
unmodifiable. The old adage less is more should hold some weight when
applied to something where everything must go perfect – and who
isn't willing to specify exactly what they need when they're going to
be shipping the thing off to space?
The Sentinel and Virtual Case File
articles disappointed me. As a kid I always assumed that the
government was always listening and constantly keeping up to date with
information and how to manage it – it seems like the FBI should
have a better system than paper to keep records. The fact they don't
seem able to communicate with those it has working to make a more up
to date system is also baffling – certainly they should be
harassing those who work for it for constant work updates, if nothing
else? These agencies are usually thought of as more capable – or at
least more capable of intimidation in regards to getting others to do
something they want. The fact that security was apparently an issue
was also appalling – for any system for the government I would
imagine security would be the top priority.
The situation with medical equipment –
radiation emitters specifically – seems like something that should
have happened at most with one device. I would expect more caution
from anyone working on a medical device. Furthermore, I would think
that the makers would be more paranoid about lawsuits or being held
responsible for their product malfunctioning so horribly. It seems
all of the systems did not have nearly enough feedback, and attempted
to be way too complicated – offering features such as auto
treatment when something so life threatening should be given
instructions very discretely. For the Therac-25 it seemed like a
horrible legal and PR move to deny knowing of other accidents at one
point – especially when evidence existed to the contrary.
Tuesday, August 27, 2013
Homework 4 – Software Engineering – CSCI 362-001
11.4 – Giving reasons for your
answer, suggest which dependability attributes are likely to be most
critical for the following systems:
An Internet server provided by an ISP
with thousands of customers – Availability and reliability so that
the thousands of customers can get the services they pay for.
A computer-controlled scalpel used in
keyhole surgery – Safety, reliability, and security so that when
the scalpel does perform, it does so correctly and does not cause
damage. Security is involved in this so that the system is not
compromised and used to murder patients.
A directional control system used in
satellite launch vehicle – Availability, reliability, and security
are paramount. This is so that the satellite can be moved out of the
way of debris at any time without worrying about malfunctions, and
security so that it isn't used for terrorist purposes.
An Internet-based personal finance
management system – Security and reliability are the most
important. The finances should not be compromised at any cost, and
accidents involving the finances should not occur.
11.7 – In a medical system that is
designed to deliver radiation to treat tumors, suggest one hazard
that may arise and propose one software feature that may be used to
ensure that the identified hazard does not result in an accident.
An example of a hazard in this
situation is that the sensor that measure how much radiation is to be
released may stop working. In this situation the software should not
allow the treatment to proceed until it is fixed.
11.9 – Using the MHC-PMS as an
example, identify three threats to this system (in addition to the
threat shown in Figure 11.8). Suggest controls that might be put in
place to reduce the chances of a successful attack based on these
threats.
An unauthorized user will gain access to
the system by infecting an access terminal and stealing login
credentials.
An unauthorized user will harass and
clog the system in an attempt to cause a denial of service.
An unauthorized user will bypass login
terminals and inject malicious software into servers in order to
change or steal confidential information.
Thursday, August 22, 2013
Homework 3 - Software Engineering - CSCI 362-001
10.6 - A multimedia museum system offering virtual experiences of ancient Greece is to be developed for a consortium of European museums. The system should provide users with the facility to view 3-D models of ancient Greece through a standard web browser and should also support an immersive virtual reality experience. What political and organizational difficulties might arise when the system is installed in the museums that make up the consortium?
Depending on where the physical museums are located there may be legal issues depending on the content of the system. Ancient Greece had several activities which are not necessarily accepted today - this ranges from pedophilia, young marriage, and brutal murder. If the system includes these then there may be political damage done to the institutions. Organizational difficulties may arise if the system makes staff members irrelevant - the job that they previously done has been replaced.
10.10 - You are an engineer involved in the development of a financial system. DUring installation, you discover that this system will make a significant number of people redundant. The people in the environment deny you access to essential information to complete the system installation. To what extent should you, as a systems engineer, become involved in this situation? Is it your professional responsibility to complete the installation as contracted? Should you simply abandon the work until the procuring organization has sorted out the problem?
As a systems engineer you should attempt to gain the information you require to do the job you were
contracted to do. If it is being kept from you by others, you should avoid direct conflict (getting in
arguments or threatening those barring your way), and have the procuring organization gain and provide the data. At no point should you do any illegal activity to gain access to the data you need.
Homework 2 - Software Engineering - CSCI 362-001
No Silver Bullet by Frederick P.
Brooks, Jr has many fair points, though seemingly none revolutionary.
I agree that the nature of software means that a sure-fire way to
complete every software project seems unlikely. The complexity, need
for change, and variety of all software required seems too vast,
especially with changing hardware and the variety of hardware. I also
agree that high level programming languages did a huge amount for
software development – it reduces labor time and complexity.
While object orientated programming
does help in terms of design, I do not personally feel having a class
hierarchy greatly aids the whole field of software engineering. While
it does aid in the complexity of the craft, there are other factors
that simply outweigh the advantages it gives. Similarly, I do not
feel that artificial intelligence is going to make software
engineering really easy – at least not in the near future. There
are still great strides left to be taken to get the AI field to
smaller accomplishments – solving something like easy software
engineering development seems far off. I feel similarly about
automatic programming.
In Kode Vicious' Cherry-Picking and the
Scientific Method I agree that preparation for thins such as mergers
is more important than trudging through old code for diamonds in the
rough. Doing so seems like a much better use of time and will lead to
more efficiency. Similarly, any time any bugs are to be fixed I think
good documentation is in good practice – that way, if nothing else,
you can always backtrack if your fixes have unexpected consequences,
or someone wants proof that you have been working on something
specifically.
Software Analytics by Tim Menzies and
Thomas Zimmerman proved to be an interesting read. This was due to
the fact that I had previously heard of and conceived the field, but
had not actually read anything about it previously. I definitely find
software analytics techniques necessary with all the data available
today – it would be impossible to search through it all with
humans, and would more than likely prompt many mistakes. The article
also supports the idea that the “silver bullet” for software
engineering is not likely to pop up, as even they state that what you
learn from one experience may not apply to a different one. The
article also reassures job security when they state that having a
huge amount of processing power is useless without good scientists
behind it – something I would assume that most people would think.
It seems out of the three articles that
this one describes a subject that may encounter legal issues the
most, depending on what type of data is being worked on and where it
comes from. With recent scandals such as the NSA debacle and the
companies related, this field may be greatly affected if legislation
is passed to alter what is allowed. I must admit though, the
predictions for software analytics in 2020 seemed a bit generic and
lack luster.
Tuesday, August 20, 2013
Homework 1 - Software Engineering - CSCI 362-001
1.3 : What are the four important attributes that all professional software should have? Suggest four other attributes that may sometimes be significant.
Four Important:
I. Functionality/Performance
II. Maintainable
III. Dependable
IV. Usable
Four Suggested:
I. Secure
II. Safe (In terms of potentially damaging hardware)
III. Portable
IV. Understandable and Simple
1.8 : Discuss whether professional engineers should be certified in the same way as doctors or lawyers.
Professional engineers should be certified in a similar way to doctors and lawyers. They should
have to demonstrate some level of competence in regards to knowing a variety of different software
engineering techniques. This would be so that they are capable of making a decision about what techniques should be used for development, as opposed to applying one approach to every problem.
1.9 : For each of the clauses in the ACM/IEEE code of ethics shown in figure 1.3, suggest an appropriate example that illustrates that clause.
I. Public - Do not develop systems designed to harm the public, such as making a program that acts as
mal-ware.
II. Client and Employer - Develop systems that meet client and employer specifications whilst still
preventing harm to the public, such as meeting specifications while maintaining security and performance.
III. Product - Do not create shovel-ware designed to capitalize on a fad whilst disregarding quality, such as creating a bad application to capitalize on the release of a new popular movie.
IV. Judgement - Do not allow yourself to be swayed into violating or ignoring moral or legal problems, such as accepting bribes to let something go or stealing previously developed software for use in your project.
V. Management - Not only should you hold yourself to a code of ethics, but encourage others to do so as well, such as in an office with potentially unethical business practices.
VI. Profession - Do not "paint software engineers black" by attempting to jeopardize the integrity or
reputation of the profession due to a fall-out with employers or colleagues.
VII. Colleagues - Do not belittle colleagues who have failed or are having trouble, and instead help or
give advice and support, even if in direct competition.
VIII. Self - Continue to learn about new software engineering techniques and encourage others to be ethical in their approach to software engineering, as opposed to refusing to use new techniques and sitting idly by whilst others do unethical actions without being encouraged to be ethical.
1.10 : To help counter terrorism, many countries are planning or have developed computer systems to track large numbers of their citizens and their actions. Clearly this has privacy implications. Discuss the ethics of working on the development of this type of system.
By working on this type of citizen monitoring system several of the clauses above may be breached.
This is somewhat dependent on whether or not the citizens would like to be monitored and whether they agree such a system would be in their best interest, as well as your own thoughts on the matter. It would seem more likely that the citizens would not be in favor of such a system - and therefore, according to the clauses above, your actions potentially unethical.
Subscribe to:
Posts (Atom)