CSE681 – Software Modeling and Analysis Fall 2013
Project #5 – Source Code Repository Architecture Document
due Monday, Dec 9th
Version 2.2
Purpose:
This project develops an Operational Concept Document (OCD) for a Source Code Repository client and server. The
purpose of the Repository is to enable insertion and extraction of source code files into a project’s baseline and to
display information about their properties and relationships. Authenticated check-in and versioning are required.
The Repository client displays information about Repository files in a Graphical User Interface (GUI) with several
panes used to display some metadata properties and text of the current file and panes to show the child and parent
dependencies. Clicking on a child or parent makes that file the current file. File caching on Repository and its clients
is required to avoid unnecessary file transfers.
Context:
This Repository is one member of a server federation, illustrated in Figure 1., designed to support software
development. Other members of the federation are a Test server, providing a test harness supporting continuous
integration, and a Project server that stores and publishes project management information and supports
collaborative communication through virtual meetings1 and shared document resources.
All of the federated servers are designed as distributed virtual servers. This means that: they can be run in virtual
environments, server contents can be distributed across several server instances, and that they provide a cloning
facility that will allow any authenticated user to create an instance on a local desktop with a specified subset of the
source server contents, and that new and modified contents can be checked into the source server. This allows local
use of the development environment for initial creation and testing before inserting the new products into the
project’s baseline.
In Figure 1, below, we show the Federated Server context in which the Repository server must operate. We see that
all the servers collaborate through message-passing communication to provide a powerful software development
environment. The Repository’s role is to manage a project’s current baseline, e.g., the collection of its
documentation and source code.
The Project server manages all of the data required to manage a large project, e.g., definition of work packages and
their schedules and assigned responsible individuals, and means to support collaboration between project teams,
some of which may be in remote locations. As an example, Figure 2 shows a hypothetical package structure for the
Project server. This illustrates the level of detail needed to capture the concept for a large federated system. The
Repository server will need a similar, though not identical, package structure.
The Test server supports continuous test and integration. Whenever a new package is inserted or an existing
pa.
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
CSE681 – Software Modeling and Analysis Fall 2013 Project .docx
1. CSE681 – Software Modeling and Analysis Fall 2013
Project #5 – Source Code Repository Architecture Document
due Monday, Dec 9th
Version 2.2
Purpose:
This project develops an Operational Concept Document (OCD)
for a Source Code Repository client and server. The
purpose of the Repository is to enable insertion and extraction
of source code files into a project’s baseline and to
display information about their properties and relationships.
Authenticated check-in and versioning are required.
The Repository client displays information about Repository
files in a Graphical User Interface (GUI) with several
panes used to display some metadata properties and text of the
current file and panes to show the child and parent
dependencies. Clicking on a child or parent makes that file the
current file. File caching on Repository and its clients
is required to avoid unnecessary file transfers.
Context:
This Repository is one member of a server federation,
illustrated in Figure 1., designed to support software
development. Other members of the federation are a Test
server, providing a test harness supporting continuous
integration, and a Project server that stores and publishes
2. project management information and supports
collaborative communication through virtual meetings1 and
shared document resources.
All of the federated servers are designed as distributed virtual
servers. This means that: they can be run in virtual
environments, server contents can be distributed across several
server instances, and that they provide a cloning
facility that will allow any authenticated user to create an
instance on a local desktop with a specified subset of the
source server contents, and that new and modified contents can
be checked into the source server. This allows local
use of the development environment for initial creation and
testing before inserting the new products into the
project’s baseline.
In Figure 1, below, we show the Federated Server context in
which the Repository server must operate. We see that
all the servers collaborate through message-passing
communication to provide a powerful software development
environment. The Repository’s role is to manage a project’s
current baseline, e.g., the collection of its
documentation and source code.
The Project server manages all of the data required to manage a
large project, e.g., definition of work packages and
their schedules and assigned responsible individuals, and means
to support collaboration between project teams,
some of which may be in remote locations. As an example,
Figure 2 shows a hypothetical package structure for the
Project server. This illustrates the level of detail needed to
capture the concept for a large federated system. The
Repository server will need a similar, though not identical,
package structure.
3. The Test server supports continuous test and integration.
Whenever a new package is inserted or an existing
package has a new version checked into the Repository the Test
Harness runs a sequence of tests against the
modified subsystem or entire project to see if anything breaks.
This implies that every check-in of new or modified
source code should be accompanied by one or more tests to be
added to a test sequence for the project baseline.
Figure 3 provides a class diagram for a major part of the Test
server. This is a rare case where classes and class
relationships help to clarify the system concept. Usually class
diagrams are reserved for design documentation.
1 This might be implemented by automating google+ hangouts.
CSE681 – Software Modeling and Analysis Fall 2013
Figure 1 - Software Development Collaboration System
Project Server
Repository
Server
Test Harness
Server
Client
Check-in
Check-out
4. Run analysis tools
View reports
Run collab. Tools
View reports
Post test configurations
Run tests
View reports
Supply code to Test Harness
Post test results to Repository
Retrieve Product Status
Chat,
Exchange Docs,
Whiteboard collab
Dependency-based Storage
of certified code and
documents, provides
product analysis tools
Runs certified tests
on certified code
Stores management information
(work packages, schedules, job descriptions),
provides collaboration tools
All development
5. occurs here. Posts
results to servers.
QueryHandler
ServerExec
TeamStructure
Server
Comm
WorkPackage
Server
Scheduling
Server
WhiteBoard
Server
Wiki
Server
ProgressMonitor
Server
MessageHandler
Figure 2 – Project Server Packages
6. CSE681 – Software Modeling and Analysis Fall 2013
+write()
+showAll()
«interface»
ILogger
MemoryLogger
+test() : bool
+registerTest() : void
-ArrayList
-failed : unsigned int
tester
+test() : bool
+title(in str : string) : void
-tout : ILogger
-title : string
test
aTest - Application Specific Test Driver
8. Repository Relationships:
Figure 4 illustrates how the Repository server manages
dependency relationships between the resources it holds.
Note that the metadata graph is virtual. It does not exist as an
in-memory data structure. Instead all the graph
relationships are embedded into metadata files. To traverse the
graph we open each metadata file in turn to get
navigation information, closing the file when we no longer need
that information. Often that will be part of a
recursive search. The file is opened when we first navigate to
that node of the graph, and is closed when the
recursion pops out of that node.
When a modified file is checked into the Repository a new
version of its metadata file is created and added to the
repository contents along with the modified file. These do not
replace the previous versions. Any packages that link
to the old version remained linked to the old version. When the
owner of a parent package wishes to update to the
new version, without changing the parent contents, a new
version of the parent metadata is created that links to the
old parent and has a dependency to the new version. This
allows existing code that works to continue with their
working components until it becomes convenient for the owner
to update.
How will you make it convenient to support these relationships?
What functionality must be provided by the client
and the Repository so that human users find it very easy to use
this facility?
9. CSE681 – Software Modeling and Analysis Fall 2013
M1.3
M2.2
M3.3
M4.1M5.2
F2.1
F3.2
F1.2
F5.2 F4.1
F1.2
F2.1 F3.2
F5.2
F4.1
Repository Manifest Network File Dependency Graph
XML File
Manifest M2
Version 2
Source Code
10. File F4
Version 1
Figure 4 – Repository Dependency Relationships
Repository Policies:
One reasonable policy for check-in is that dependencies must
already exist in the repository. If we use that policy
we will need to define an open check-in state that allows
changing parts of the check-in without creating a new
version. So, for example, if we which to check-in a package
that has children not yet in the Repository we can do an
open check-in and add the child packages whenever we are
ready. When all of the dependencies are resolved, we
close the check-in. You will need to think about policies that
control what you can do with an open check-in.
In order to allow projects to craft their own policies, it would
be useful to support rule-based policies, in much the
same way that the Parser supports code analysis rules. One
such policy concerns ownership. That is, who is allowed
to check-in a particular package? To enable ownership
management you will need to provide an owner element in
file metadata. The same is true for open check-ins.
CSE681 – Software Modeling and Analysis Fall 2013
Requirements:
11. The Repository:
1. The Repository client shall support insertion and extraction
of files and their metadata from a, possibly remote,
Repository server using Windows Communication Foundation
(WCF). Files shall be stored in the Repository in
directories for each category encountered in the source code.
We will assume that each GUI has a unique
category distinct from the categories of the files on which it
depends.
2. The Repository shall provide a separate tool that searches
metadata files to build a map of parents for each file
in the repository. This tool is run each time the Repository
starts. When a file is inserted into the Repository its
parent relationship with each of its children is recorded in the
map.
3. The Repository Client shall be a WPF application that
provides an information view with two information panes,
one for metadata and one for file text. The client shall also
provide two navigation panes, one showing the
current file’s children and one showing its parents. Clicking on
either a child or parent changes the current file
to the file represented by the clicked link.
4. The Repository Client shall provide a second file
management view that supports local browsing for files to
insert into the remote Repository and means for the user to
12. provide description text and lists of child
dependencies and keywords. The metadata tool, implemented in
Project #2, shall be used to automatically
build a metadata file from the information supplied here. This
view shall also support editing metadata
information for the current file.
5. The Repository shall accept text query messages2 and return
the fully qualified name3 of every file containing
that text in a clickable list. Clicking on any item in the list
makes that file the current file in the client display.
6. The repository shall accept metadata query messages
specifying metadata tags and return the contents of each
element of the metadata for every file in the file set. This
information is used by the Repository Client to build
its display information. If a file does not have an associated
metadata file, the query shall emit an error
message and continue processing the remaining files.
7. Your project submission shall include two prototypes, one of
which is a recursive search tool that uses the
metadata graph, shown in Figure 4., to make Text and Metadata
queries against a package and all its
dependencies. You may select another topic that interests you
for the second prototype.
8. Your submission shall supply a zip file containing the Project
#5 Operational Concept Document and the
13. solution for your project prototypes and all their files. It shall
also include compile.bat and run.bat files that
compile and run your project prototypes without the user
needing to specify any information. Please make sure
these work as expected when you extract the zip in an empty
directory at any level in your computer’s file
system. In order for that to work you must use relative
directory paths in your Repository and Client code.
Note:
You are not asked to implement the Repository virtual server
nor to consider the Project and Test server concepts.
You are asked to develop a concept for the Repository server
and prototypes to illustrate the concept and explore its
feasibility. There are many interesting questions on which this
Project Statement has been nearly silent:
1. How are the virtual servers implemented?
2. How are rule-based policies implemented?
3. What kind of notifications and other communications are
needed that the Repository must receive and
process or emit?
4. How is file caching implemented?
5. What about security issues?
6. How can ownership be configured to support change in a
controlled but flexible and low-friction way?
2 A query message should contain one or more categories to
filter the search.
3 Returning the filename and category may be more effective
than returning a physical server path.
14. CSE681 – Software Modeling and Analysis Fall 2013
7. How are server contents distributed across multiple servers?
8. How are queries routed across multiple servers?
9. What are the Repository packages? How do they
communicate? What are their activities?
10. How will the Repository integrate into the server
Federation? What facilities does it need to provide to
support interactions with the Project and Test servers?
11. What facilities will the Project and Test servers need to
provide so the Repository can carry out its mission?
There are many more questions to ask and explore. Part of your
grade will be to identify interesting ideas and
issues, some not discussed here, and explore them in moderate
detail.
References
Biggs, . (2001). Euthanasia, Death with Dignity and the Law.
Oxford: Hart Publishing.
Kasher, A. (2009). Dying, assisted death and mourning.
Amsterdam: Rodopi.
Keown, J. (2002). Euthanasia, ethics, and public policy: An
argument against legislation. New
York: Cambridge University Press.
McDougall, J. F., & Gorman, M. (2008). Euthanasia: A
Reference Handbook. Santa Barbara, Calif.: ABC-CLIO.
Silbergeld , N. A., Jonsen, A. R., & Pearlman, R. A. (1997).
Bioethics: An Introduction to the History, Methods, and
Practice. Boston: Jones & Bartlett Learning.
15. Council of Europe. (2003). Euthanasia: Ethical and human
aspects. Strasbourg: Council of Europe.
Tulloch, G. (2005). Euthanasia, Choice and Death. Edinburgh:
Edinburgh University Press.
Mass, V., Delden, J. M., Pijenborg, L., & Looman, N. (1991).
Euthanasia and other medical decisions concerning the end of
life. The Lance, 338.8768, 669–674.
RUNNING HEAD: THE RIGHT TO DIE (EUTHANASIA,
ASSISTED SUICIDE)
1
9
THE RIGHT TO DIE (EUTHANASIA, ASSISTED SUICIDE)
The Right to Die (Euthanasia, Assisted Suicide):
Student name
University
Eng
Instructor name
Date
1.1 Introduction
Euthanasia is the act of intentionally ending a person’s life for
purposes of relieving them
from unnecessary pain and suffering. Different countries have
different euthanasia laws that all used in determining
ways in which a suffering person’s life can be terminated.
For instance, a suffering cancer patient may be given an
overdose of muscle relaxants for purposes of terminating their
life. This is the perfect form of euthanasia where the patient is
rescued from experiencing unnecessary suffering. Euthanasia
can also be referred to as assisted suicide. This is because the
16. victim may be assisted to end his or her own life albeit within
the confines of the law. This perspective involves offering the
would-be suicide victim with sedatives. Euthanasia is driven by
the need to end the long term sufferings of loved ones
especially when it is certain that they would not get better. In
addition to that, keeping a terminally ill person in a hospital bed
is highly expensive as they rely on life support machines. In
such situations, it is necessary
to apply euthanasia. Apparently
, euthanasia helps to solve two problems. These include saving
the terminally ill person from extra suffering and also saving
the family and relatives from excessive medical expenditure
. Based on this understanding, it is imperative for terminally ill
persons to be allowed by law to access euthanasia services so as
to save them from negative health predicaments. Proponents of
this view argue that it is better to experience a dignified and
quick death than to suffer for a long time and then eventually
have a painful death. It is against this backdrop that this paper
seeks to investigate and support the legalities of allowing
euthanasia to end the sufferings of the terminally ill persons.
Your introduction is somewhat repetitive. Try to be more
concise.
1.2 Background
Despite the strong identifiable effectiveness of euthanasia, some
people still think that it
should not be legally allowed. According to them, doctors have
a duty to ensure that their patients stay alive in accordance with
their oaths. Apparently, they have unjustifiably equated
euthanasia to murder. Besides, they have also argued that
legalizing euthanasia will directly target the poor and the
disabled who cannot afford proper medical attention. Moreover,
it will help insurance companies save a lot of money after
terminating the lives of suffering clients.
Although these arguments are very genuine, it is also true that
keeping people to continue to suffer without any apparent
17. reason is unjustifiable. This leaves euthanasia to remain
the only identifiable to
help to avoid the occurrence of severe negative implications.
One form of euthanasia is abortion that allows for the
termination of the life of a child in order to save that of the
mother.
There is no such a marked difference between this and
euthanasia as someone is saved from unnecessary suffering and
pain. Euthanasia and assisted physician assistance
to conduct suicide are better methods to end one’s life rather
than a patient committing suicide by themselves (Kasher, 2009).
One significant advantage of euthanasia is its effectiveness as
compared with normal suicidal practices which can be very
dangerous if the involved victim
survives the ordeal. It is also better than a patient suffering in
their hospital bed, incurring extra expenses for the treatment of
a terminal illness which can never be cured.
1.3 Euthanasia is effective and easily conducted
The most selling
facts in favour of euthanasia are its effectiveness and
friendliness
to the victim. It is a very quick process and is not associated
with any form of pain. In some cases, muscle relaxants are
applied to calm the client within a few minutes. In this
perspective, this is the only friendly way which can be applied
to ensure that terminally ill patients lose their lives in an
honorable manner. The main idea of conducting euthanasia is
not in any way connected with murder as stated by critics.
Euthanasia and physically assisted suicide are an alternative
form meant to ensure that patients do not spend a long period of
time undergoing suffering and pain. Alternatively, the family
members of the suffering victim may decide to relieve their
loved one by giving them sedatives in order to undergo a slow
18. but sure death (Keown, 2002)..
Based on this, it is illogical for the law to classify euthanasia as
an illegal undertaking. This is because it will be ignoring the
plights of the suffering occasioned by untreatable diseases. The
only result emerging from legalization of euthanasia is a state
where the law subjects innocent citizens to mandatory suffering.
This begs the question, why should someone live a painful life
while there is a quick and easy way of helping them?
1.4 Doctors should ensure by all means that they assist all
suffering patients to save them from the pain.
Just subjecting doctors to some unorthodox oaths
should not be a justification for continuous suffering of
patients. There is no need of a doctor to subject a patient to
unending treatments while they are suffering from a terminal
illness which cannot be cured. As a matter of fact, this will only
drain the patient’s financial reserves due to the expensive bills
charged by hospitals. Worse still, some health officers are
aware that some patients would not recover but they still insist
on keeping them under medication. This is not fair as it will
result in painful death and unnecessary loss of financial
resources
. If the only outcome to a patient’s illness is death, then there is
no need to delay the inevitable because it will save many
predicaments. Of equal concern is the fact that some doctors
resort to neglecting the suffering patients simply because they
are aware they cannot get well (Kasher, 2009). So far, there is
no need of subjecting a sickly patient to unending suffering
while there is a suitable method that can be applied to solve
their health problems. Based on this understanding, it is
important to ensure that the society relates fairly to those
undergoing bodily pain in regards to their health. The
legalization of euthanasia is therefore important as a means of
relieving patients of intense suffering. Banning it only implies
19. that we continue to subject suffering patients to prolonged
problems. The only immediate solution able to solve painful
experiences is by ensuring that we apply assisted suicide and
euthanasia. It is better to help a suffering patient to rest
peacefully than to give them a long life full of suffering and
nothing to enjoy about living (Kasher, 2009).
1.5 Euthanasia is essential for people who cannot hold on to life
anymore
Euthanasia is a perfect remedy for people who are
contemplating suicide so as to enable them to use a fast and
effective means of life termination. Forcing a 90 year old
patient to continue to suffer in hospital is not good at all. In a
case where a terminal illness is involved, keeping this type of
person under constant medication is like punishing them softly
(Keown, 2002). It is important to advocate for a situation where
a person lives to enjoy their life as much as they can. When it
results in a case where pain and suffering are the order of the
day, then it is necessary to help them rest peacefully by
conducting euthanasia. There is no any compound reason of
keeping a patient who cannot eat, talk, see or walk in hospital in
anticipation of getting them cured on a later yet unsure date.
Therefore, the law and the medical society has been keeping
suffering patients alive for no apparent reason
. Interestingly, some of these patients who are subjected to long
periods of suffering are neither useful to the society nor self
(Kasher, 2009).
Additionally, euthanasia should be highly recommended as it
saves the suffering of a patient as well as that of the immediate
relatives and friends. The view of someone suffering in a
hospital bed because of interment
or incurable illness has huge psychological effects on the people
closest to the person. This effect is caused by the sorrow and
20. pity generated whenever a normal human being notices another
one suffering. It usually gets more painful when someone
suffers while in hospital and ends up dying due to lack of any
possible solution. This is pain doubled as everybody wishes that
their relative gets well and leaves the hospital to enjoy their life
at home. Once this is not achieved, the involved parties seem to
become psychologically tortured. This situation can only be
saved by offering assisted suicide so as to save them from
experiencing more predicaments. It is usually very painful to
watch someone under pain in a hospital bed and later die at the
same place due to the severity of the health complication
(Keown, 2002).
1.6 Euthanasia is essential for patients suffering from terminal
illnesses
Watching people suffer due to terminal health complications is
not fun at all as you place yourself in their shoes and assume it
was you. At some point, some patients make suicidal decisions
on their own depending on the status they are in. In response to
the comments made by critics of euthanasia, all human beings
are meant to die at a certain period of time. The only important
reason why euthanasia should be openly practiced is because it
helps end the pain and suffering. If death can rob a healthy
person of life, then why not assist a suffering person with
death? It would be understandable for someone to seek death
than to fight to live and continue experiencing pains which
never end. In this case, it is important to allow anyone seeking
for euthanasia to acquire the service with ease in order to rest
their troubled souls (Keown, 2002)..
Euthanasia is also suitable for people who are economically
challenged and might find it difficult to support their relatives
in terms of meeting their medical bills. In order to avoid the
burden of treating a patient who is terminally ill without a
possibility of recovering, it is important to apply euthanasia.
21. This solution is better compared to struggling to acquire
medication for a patient who will end up dying despite the
attempts made. In order to be able to understand this, we should
think on the basis of the Unitarian point of view affecting
human beings. In this case, one should be allowed to live for as
long as their mental and bodily strength can allow them to.
Prolonging the life of a suffering person because it is their right
to live is not concrete reasoning. The society might be happy to
see someone being treated while they are unaware of the pain
and suffering being experienced. In this case
, the occurrence of a situation where one is not able to recover
from a terminal health condition, then they can be allowed to
make their own decisions. In some cases, the immediate family
members can also decide to save their loved one from
undergoing endless pain in the name of acquiring treatment
(Keown, 2002).. In this perspective, it is of great importance to
ensure that patients and their relatives can make wise decisions
to save their family members from suffering continuously.
Additionally, traditional beliefs and religious beliefs ought to
be applied in the right places but not to complicate the need for
a solution to save a suffering friend (Kasher, 2009). You need
to deal with the difference between patient consent vs. someone
unable to give consent. Deal with separately with the
implications for each situation.
Conclusion
The idea of conducting euthanasia should be allowed all over
the world for purposes of saving all the suffering people. When
no medical procedures are able to cure health complications,
then it is important for doctors to make the right decisions in
regards to the most suitable solutions. Euthanasia is vital for
ensuring that terminally ill patients do not continue suffering in
hospital wards while a suitable solution exists and can be put in
use. Despite opposition from critiques
, euthanasia is indeed beneficial and should be legitimized all
over the world. It is therefore clear that choosing to terminate
22. the life of a suffering client is the best thing health care
professionals can do. As a result, I strongly advocate for
euthanasia to be conducted to all willing patients because it is a
justified procedure.
References
Keown, J. (2002). Euthanasia, ethics, and public policy: An
argument against legislation. New
York: Cambridge University Press.
Kasher, A. (2009). Dying, assisted death and mourning.
Amsterdam: Rodopi.
Essay Grading Rubric
The title reflects the essay’s contents.
___5___ out of 5
The introduction has an effective hook.
___4___ out of 5
Enough background information is provided for the audience.
___5___ out of 5
The issue being discussed is clearly stated.
___4___ out of 5
A clear, argumentative thesis is found at the end of the
introduction.
___4___ out of 5
23. Each paragraph has an appropriate topic sentence.
__6___ out of 10
Paragraphs are coherently developed with evidence and
examples.
___3___ out of 5
No words, terms, or phrases are ambiguous.
___4___ out of 5
The order of the information is presented in logical order and
the reasoning supports the conclusion(s).
___2___ out of 5
Important counterargument(s) are addressed.
___4___ out of 5
Transitions between paragraphs are present.
___5___ out of 5
All quotes are framed.
___5___ out of 5
Conclusion effectively unites and ties together writer’s main
points.
___5___ out of 5
No new information is presented in conclusion.
24. ___5___ out of 5
The correct number of appropriate and credible sources are
used.
___5___ out of 5
APA format is used for in-text citations and Works Cited.
___5___ out of 5
Format and page length requirements are met.
___5___ out of 10
Surface errors are minimal.
__4____ out of 5
Total
___85___ out of 100
�delete
�Put title of paper here instead. Don’t need a heading for the
Introduction. Also, do not right justify for APA papers
�Review Hook Strategies in Unit 3 under Resources
�determine
�is it a must, or an alternative.
25. �delete
�this is a major counterargument, that relatives will euthanize
for financial reasons.
�Do not need numbers
�Rhetorically, it is more effective to support your argument
first and then deal with the counterargument.
�as
�del
�Should not use to support euthanasia. Situations are not
comparable.
�Physician-assisted suicide. You should explain what the
difference is between this and euthanasia and deal with any of
those differences as you support them both. Consider logical
order of information for the reader’s understanding. Also you
should research how these policies have been legalized in other
places. Also, to support your paragraphs, add in real-life
examples.
�Not a good word choice.
26. �Word choice – not sure what you mean.
�Word choice is odd here.
�Need to research the “Hippocratic Oath.” It is not unorthodox,
rather it is an oath all physicians take. Need to understand why
some people feel that euthanasia goes against it.
�Different topic than oath. Need a new paragraph.
�They do have reasons. Need to understand them and then
discuss in counterargument.
�This mean burial.
�How is this heading different from the previous one?
�repetitive
�del
�critics
�Insert a page break before information that needs to be on its