CEN 5011
Advanced Software Engineering
Projects
Instructor: Masoud Sadjadi
http://www.cs.fiu.edu/~sadjadi/Teaching/
[email protected]
CEN 5011
Project Objective and Grading

Objective
– The primary objective of this project is to give you practice in
applying the phases of the software development process to a
"real" software project.

Grading Scheme
– The grade for this project is based on deliverables and
presentations, representing 50% of the final grade.
– Students in the same project team may NOT receive the same
grades.
– Each student will be evaluated according to his/her performance in
the group and his/her presentation.
CEN 5011: Advanced Software Engineering
Projects
2
Project and Team Selection

Selection of Project:
– I will introduce a number of real projects that you can choose from.
– You can also propose the project of your choice and the required
skills to the members to join.
– Before starting work on the project, we need to decide on the
scope of your project.
– Project selection should be finalized by the end of today.

Project Teams
– Each team shall consist of 5 to 10 students.
– After learning about the projects, you will get a chance to select up
to 3 group projects that you are interested in and of course you are
qualified for.
– If you select more than one project, I will make the decision for
you, which group you should join in.
CEN 5011: Advanced Software Engineering
Projects
3
Expertiseof Members

You need to evaluate yourself and provide me with a
grade of your expertise on each topic using the below
scale:
–Excellent
–Very Good
–Good
–Fair
–Weak
–None
CEN 5011: Advanced Software Engineering
5
4
3
2
1
0
Projects
4
Term Projects

A Patient-Centric Healthcare Solution
– Voice-Enabled Web-Based Graphical User Interface
– Forms
– Multimedia Communication






TRAP.NET
Integration of TRAP/J and Grid Superscalar
Transparent Grid Enablement using TRAP/J
Portal for a Scientific Application
Grid Enablement of WRF
Porting MotoWaveZ to Cluster/Grid
CEN 5011: Advanced Software Engineering
Projects
5
A Patient-Centric Healthcare Solution (1)

Problem:
– Patients with complex congenital heart problems often require
multiple staged procedures over their lifetime. Early detection,
complete repair, continuous feedback, and continuity of care are
necessary to improve their quality-of-life and chance for survival.
Consequently, these patients require extensive monitoring,
continuous testing, long hospital stays and care from various
multidisciplinary specialists often geographically dislocated from
one another.
– Current healthcare processes results in massive amounts of data
in various multimedia formats with a high degree of separation and
incompatibility. Improving medical information exchange, properly
informing and educating patients, and reducing preventative
medical errors remain an elusive goal.
CEN 5011: Advanced Software Engineering
Projects
6
A Patient-Centric Healthcare Solution (2)

Scenario
– To better explain these challenges, a typical patient with complex
congenital heart disease at Miami Children’s Hospital (MCH) is outlined.
– Scenario 1: Pre-Surgery
– Precondition: A five year old boy named John Smith has been referred to
Dr. Burke, Chief Cardiovascular Surgeon, at Miami Children’s Hospital
(MCH) by Dr. Y from Baptist Children’s Hospital for follow-up after
collapsing on the school playground.
– Description:

Child is transported to Miami Children’s Hospital by ambulance and stabilized
on oxygen. Meanwhile, Dr. Burke meets with the parents to gather what ever
information he can on the patient. The parents explain that he has had two
prior cardiac procedures at Children’s Hospital of Philadelphia (CHOP) but they
do not have a copy of his medical record.
CEN 5011: Advanced Software Engineering
Projects
7
A Patient-Centric Healthcare Solution (3)
– Description (cont.):
– Due to the lack of Johns prior medical information Dr. Burke is forced to
redo all of the diagnostic test and contact the Chief of Pediatric Cardiac
Surgery at CHOP to obtain a copy of John’s medical record. During this
time Dr. Burke makes a request to the attending nurse practitioner to
schedule a complete physical exam with the in house cardiologist and
order an echocardiogram and diagnostic catheterization for John.
– After reviewing the test results, Dr. Burke and the team realize that John
has Hypoplastic Left Heart Syndrome and he has already undergone the
first two stages of the procedure including the Norwood Stage 1 and the
Bi-Directional Glenn. Dr. Burke immediately schedules John for the third
and final stage of the procedure known as a Fontan Procedure.
– Dr. Burke meets with John’s parents and describes his heart condition to
them as well as the procedure he plans to perform. Dr. Burke provides
John’s parents with some related literature so that they can become
familiar with John’s condition and the surgical procedure he plans to
perform.
– Postcondition: John goes to surgery.
CEN 5011: Advanced Software Engineering
Projects
8
A Patient-Centric Healthcare Solution (4)



Scenario 2: Post-Surgery
Precondition: John’s surgery is difficult but successful and he is placed in the
Cardiac Intensive Care Unit for recovery.
Description:
– Dr. Burke meets with John’s parents to inform them how the surgery went and to answer
any concerns they may have regarding the procedure. Dr. Burke shares some pictures
of John’s heart with the parents to describe what he found in the OR.
– On the following day Dr. Burke and a nurse practitioner meet with John’s parents to
inform them of the post-surgery care that John will have for the next several weeks in the
hospital. This care involves intensive monitoring and the administering of medication at
specific time periods during the day. Dr. Burke informs the parents that John can go
home once he is discharged by the attending physician in the Intensive Care Unit.
– One week after the procedure a FedEx box is received by the secretaries in the cardiac
offices containing a paper copy of John’s medical record from CHOP. The medical record
failed to include any previous X-Rays, Echocardiogram videos or diagnostic
catheterization images. A thorough examination of the paper record reveals that John
was meant to have a follow-up appointment with his cardiologist over a year ago.
– During the two weeks following the surgery John has recovered and is well enough to go
home.

Postcondition: John is discharged from MCH.
CEN 5011: Advanced Software Engineering
Projects
9
A Patient-Centric Healthcare Solution (5)
Going Home after Heart Surgery
Do and Don’t!
–
–
–
–
–
–
–
–
–
Feeding infants
Feeding Children
Cardiac diet
Care of incision
Care of chest tube sites
Activities after surgery
Change in behavior
Precautions
And many more
CEN 5011: Advanced Software Engineering
Projects
10
A Patient-Centric Healthcare Solution (6)
Redmond Burke and Jeffrey White
When Burke, 42, became chief of cardiac surgery
at Miami Children's Hospital in 1995, he went
looking for an engineer who could help him
redesign his surgical tools to allow him to operate
on babies' hearts by making only small holes in the
chest.

– "The adult instruments simply didn't fit," he says.

But at the same time, he had his eye on another problem: keeping
track of patient information before and after he operated.
– "I vowed that we would keep tabs on every baby we touched."

Medical diagnosis requires that the right information reach the right
doctors at the right time.
– The results of a single disconnect are grave: An estimated 50,000 deaths
per year result from medical errors.
Source: Medical Innovation Saving Lives With PDAs, Matthew Herper, 04.23.02, 12:00 PM ET
CEN 5011: Advanced Software Engineering
Projects
11
A Patient-Centric Healthcare Solution (7)

Electronic Medical Record (EMR)
– A computer-based patient medical
record.

EMR facilitates
–
–
–
–
–
–
access by clinical staff
Claims by insurance companies
Automatic allergy checks
Prescriptions
Scheduling
etc.

Personal Health Record (PHR)
– A health record that is created and
maintained by the individual.
– It provides a complete and accurate
summary of the health and medical
history of an individual.





Allergies and Medications
Illnesses and hospitalizations
Surgeries and other procedures
Vaccinations and Laboratory results
Family history
EMR
Hospital
Laboratory
EMR
PHR
Doctor’s Office
CEN 5011: Advanced Software Engineering
EMR
Patient
Projects
12
A Patient-Centric Healthcare Solution (8)

Challenges
– Patients do not take the responsibility of maintaining their PHR.
– Doctors are slow in adapting new technologies that are difficult to use.
– Hospitals are not willing to pay for technologies that their benefits are
hard to vision and far out reaching.
– Insurance companies do not pay for fancy equipments.
– Solutions to patients and insurance companies being overcharged are
difficult to achieve.

Goals
– Basically, overcoming the above mentioned challenges.
– Providing a solution that




is easy to use for doctors and care givers.
is easy to use and manage by patients and their families.
reduces the healthcare expenses
improves the healthcare quality.
CEN 5011: Advanced Software Engineering
Projects
13
A Patient-Centric Healthcare Solution (9)

Communication Virtual Machine
User/ Application (Initiator)
User/ Application (Initiator)
CVM
CVM
User Communication
Interface (UCI)
Synthesis Engine
(SE)
User-centric Communication
Middleware (UCM)
Network Communication
Broker (NCB)
Communication Network
CEN 5011: Advanced Software Engineering
User Communication
Schema Instance
Negotiation
Communication Logic
Communication Data
User Communication
Interface (UCI)
Synthesis Engine
(SE)
User-centric Communication
Middleware (UCM)
Network Communication
Broker (NCB)
Communication Network
Projects
14
A Patient-Centric Healthcare Solution (10)

Graphical User Interface
CEN 5011: Advanced Software Engineering
Projects
15
A Patient-Centric Healthcare Solution (11)

Voice-Enabled GUI
CEN 5011: Advanced Software Engineering
Projects
16
A Patient-Centric Healthcare Solution (12)

Data in a Form
MeidaType
File
TextFile
Text
BinaryFile
StreamFile
AudioFile
VideoFile
CEN 5011: Advanced Software Engineering
LiveStream
LiveAudio
LiveVideo
LiveAV
NonStreamFile
AVFile
Projects
17
A Patient-Centric Healthcare Solution (13)

Sub Projects
– Voice-Enabled Web-Based Graphical User Interface

Java Script, AJAX, Voice XML, XML, Java, HTML, Graphics.
– Forms

Java Script, AJAX, XML, Java, HTML
– Multimedia Communication

Java, Networking, TCP/IP, SIP, Multimedia, Distributed Computing,
DBMS.
CEN 5011: Advanced Software Engineering
Projects
18
A Patient-Centric Healthcare Solution (14)

Form Sub-project
– As technologies advance, human interaction is greatly transfigured. This
phenomenon can be observed in the medical industry. Communication
between doctor and patient began by physically meeting at the
hospital/clinic and then evolved to allow the use of a land line, cell phone,
and email.
– Today a medical professional can send virtually any kind of media file to a
patient and/or other medical professional. But, there are risks involved.
Take the following scenario for instance. A doctor wants to send another
doctor a patient’s medical record. This may include a heart scan, x-ray, as
well as the latest checkup information. The doctor would have to send
these files individually, not to mention, that he may have to worry about
giving out information that the other doctor should not see. Say, the doctor
was just asking a general question about his findings, he may not want the
other doctor to know any personal information about the patient. What can
the doctor do to remedy the situation? The answer is a form.
– A form allows the doctor who is sending a collection of media information,
to package it all up into one complex data type. Also, the doctor is able to
restrict what information certain user groups can see and what actions are
allowed on certain files.
CEN 5011: Advanced Software Engineering
Projects
19

Multimedia Subproject
– Current healthcare processes results in massive amounts of data
in various multimedia formats with a high degree of separation and
incompatibility. Improving medical information exchange is difficult
but offers improvement in the quality of healthcare.
– There may be basically two types of communication modes;
synchronous and asynchronous. In synchronous mode, for
example, patients can communicate with the doctors
simultaneously using audio/video and data transfer. In
asynchronous mode, for instance, a doctor may generate and put
some exercise schedule for an out-patient to follow for the next
week, and the doctor can get feedback from the patient. For this,
we need a common data repository, where all the participants have
access in pre-determined level.
– To manage these, we need a communication agent, which is
secure, easy to use, supporting synchronous and asynchronous
communication as mentioned above to transfer audio/video/data
and special-formatted medical data records.
CEN 5011: Advanced Software Engineering
Projects
20
TRAP.NET (1)

Problem Statement
– To develop a tool that will modify an application’s functionality so it
is ready to receive adaptive or new behavior at runtime. This tool
will also offer the means to remotely provide new behavior to the
specified functionality.
– Attributes shall be used to indicate which functionality will become
adaptive. The primary user will be a .NET 2.0 application
developer. As such, the tool to be developed shall be CLR
compliant in order to support all the .NET languages that support
attributes. Also, this tool shall be provided as a Visual Studios
add-in so it is executed every time an application using this tool is
built.
– At this time, it can be assumed that functionality will only be
provided in the form of methods. Thus, only methods shall be
made adaptive.
CEN 5011: Advanced Software Engineering
Projects
21
TRAP.NET (1)

Problem Statement (cont.)
– As part of remotely providing new functionality, an HTTP server
shall be used. At this time, this tool will only add adaptive behavior
to executable assemblies. Thus, the HTTP Server can be started
at the entry point of the application. The HTTP server will host the
web interface for the composer. At runtime, the user will interact
with this web interface to get the status of the application, as well
as loading and adapting new functionality.
– This tool shall be developed to replicate the current level of
functionality of the TRAP.NET Generator. New ideas are welcome
but not required since they are being researched by a different
team.

Expertise
– .NET Framework, C#, Visual Studio, Client/Server, .NET
Remoting, .NET Attributes, .NET Reflection, MSIL, and CLR.
CEN 5011: Advanced Software Engineering
Projects
22
Integration of TRAP/J and Grid Superscalar (1)

Problem Statement
– Grid computing is getting more and more attention since more and more
applications require an incredibly huge amount of computer power.
However, writing applications for a computational Grid turns out to be a
very hard job to achieve.
– Despite the fact that there are many well skilled programmers that may be
willing and able to write applications with complex programming models,
scientists usually look for simple programming methodologies that may
allow them to develop their applications with both flexibility and ease of
use. Furthermore, once having these applications grid-enabled, we would
like to have them ready for any change we might need at runtime when
being executed in the Grid, since different actions could be necessary to
be taken at a different moment at one or more specific node(s). Therefore,
adaption becomes a crucial issue.
– To sum up, our problem is basically the lack of having a programming
model that could give us ease of development for grid applications and at
the same time that could provide us with some sort of adaptability.
CEN 5011: Advanced Software Engineering
Projects
23
Integration of TRAP/J and Grid Superscalar (2)

To solve this problem we count with two tools mentioned below:
– TRAP/J is a software tool that enables new adaptable behavior to be
added to existing Java applications transparently (that is, without
modifying the application source code and without extending the JVM).
– GRID superscalar is a Grid programming environment that allows to
simply program applications that will be efficiently run on a computational
Grid, converting a sequential code into a parallel one.
– Our objective now, is to integrate these two tools so that we can have an
aplication that is adapt ready and able to run on a Grid enviroment.
TRAP/J for instance could be used to not only convert the sequential code
into a parallel one but also to leave it ready to keep track of the status of
the program as it is being executed in each host of the Grid. In this way,
we could add new functionality to the code executed in each host at
runtime if needed.

Expertise
– Java, Java Reflection, Grid Computing, Grid Superscalar, TRAP/J.
CEN 5011: Advanced Software Engineering
Projects
24
Transparent Grid Enablement using TRAP/J

Problem Statement
– In today’s computing environment, development of software is becoming more
complex and demanding of computer resources like memory and processing power.
A grid provides higher throughput computing by taking advantage of many
networked computers that model a virtual computer architecture that is able to
distribute process execution across a parallel infrastructure. Certainly many
scientific applications which perform intensive calculations and memory
consumption could benefit from such an infrastructure.
– Unfortunately, adapting an application to run on a grid involves tangling the
business logic of an application with code specific to a grid. Our project, titled
“Transparent Grid Enablement,” provides a solution that allows for the separation of
two main concerns: the business logic of an application and grid enablement code.
In addition, it will allow us to deploy existing sequential applications on a grid
environment transparently (preserving the original code). Our solution is to develop
a tool called TRAP/J (Transparent Reflective Aspect Programming in Java) to show
that sequential applications can be transparently adapted to be deployed on a grid
environment. At this stage TRAP/J is capable of providing transparent generic
adaptation. This project focuses on two main goals: 1) Finish implementing and
improving the performance of TRAP/J; 2) Customize TRAP/J so that it can be used
to adapt a sequential Java application to be run on FIU’s LA Grid.

Expertise
– Java, Java Reflection, Grid Computing, GT4.
CEN 5011: Advanced Software Engineering
Projects
25
Portal for a Scientific Application

Problem Statement
– Last semester for our “Advanced Topics in Software Engineering” class,
Ariel and I, developed a project that took 500 records of biological data,
and using OGSA, the globus grid, a program written by Dr. Giri and two
programs written by Ariel, we were able to have five different grid
computers process simultaneously one hundred records each creating in
fact a parallel processing environment in the grid. These processes were
run manually. The purpose of this semester’s project is to continue with
last semester’s project and create a high-level portal for it, make the
processing totally automatic, and create full, detailed and complete
documentation.
– The data to be used is the complete 5,570 protein sequences created
from over 6.5 million DNA nucleotides of a bacteria known as
Pseudomonas Aeuriginosa (PA01). It is our intention to present this work
for publication.

Expertise
– Grid Computing, Java, Perl, Posgres Database, Bioinformatics, Graphics.
CEN 5011: Advanced Software Engineering
Projects
26
Grid Enablement of WRF

Problem Statement
– The impact of the hurricanes in Florida are so devastating
throughout different levels of the society that there is a pressing
need to provide a range of users with accurate, timely information
to enable effective planning for and response to potential hurricane
landfalls. With this objective, this project will work on the Grid
enablement of Hurricane applications based on open source WRF
(Weather Research and Forecasting) model code and
Visualization tools.
– These applications like many other computational problems have
extensive resource requirements that require a computational grid.
Even if a working sequential application exits, it is difficult to build,
debug, deploy, and maintain its “equivalent” Grid enabled
application. To meet the project objectives, we will also investigate
techniques and tools to simplify the process of grid enablement.

Expertise
– Linux, Grid Computing, GT4, Fortran, C, MPI, OpenMPI.
CEN 5011: Advanced Software Engineering
Projects
27
Porting MotoWaveZ to Cluster/GT4

Problem Statement
– The MotoWaveZ computational engine is a standalone Win32
executable.
– As an input, it reads couple of files and outputs a single but large
file containing a table of integer and float data.
– During the execution, this application creates (file) caches of some
intermediate data which may be used later to speed up
subsequent computations.
– The computations are highly parallelizable by nature and the
currently implemented multithreading utilizes win32 threads which
execute almost independently, so no complex synchronization
efforts are required.

Expertise
– Win32, multithreading, MPI, GT4, Linux, Cluster Computing, Grid.
CEN 5011: Advanced Software Engineering
Projects
28
Descargar

Design of Secure Multi-Tier Web