28
CEN 5011 CEN 5011 CEN 5011 Advanced Software Engineering Advanced Software Engineering Instructor: Masoud Sadjadi http://www.cs.fiu.edu/~sadjadi/Teaching/ [email protected] Projects Projects

CEN 5011 Advanced Software Engineering

  • Upload
    sanam

  • View
    43

  • Download
    2

Embed Size (px)

DESCRIPTION

CEN 5011 Advanced Software Engineering. Projects. Instructor: Masoud Sadjadi http://www.cs.fiu.edu/~sadjadi/Teaching/ [email protected]. Project Objective and Grading. Objective - PowerPoint PPT Presentation

Citation preview

Page 1: CEN 5011  Advanced Software Engineering

CEN 5011

CEN 5011 CEN 5011 Advanced Software EngineeringAdvanced Software Engineering

Instructor: Masoud Sadjadihttp://www.cs.fiu.edu/~sadjadi/Teaching/

[email protected]

ProjectsProjects

Page 2: CEN 5011  Advanced Software Engineering

Projects 2CEN 5011: Advanced Software Engineering

Project Objective and GradingProject 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.

Page 3: CEN 5011  Advanced Software Engineering

Projects 3CEN 5011: Advanced Software Engineering

Project and Team SelectionProject 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.

Page 4: CEN 5011  Advanced Software Engineering

Projects 4CEN 5011: Advanced Software Engineering

ExpertiseExpertise of Membersof Members You need to evaluate yourself and provide me with a

grade of your expertise on each topic using the below scale:

–Excellent 5–Very Good 4–Good 3–Fair 2–Weak 1–None 0

Page 5: CEN 5011  Advanced Software Engineering

Projects 5CEN 5011: Advanced Software Engineering

Term ProjectsTerm 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

Page 6: CEN 5011  Advanced Software Engineering

Projects 6CEN 5011: Advanced Software Engineering

A Patient-Centric Healthcare A Patient-Centric Healthcare Solution Solution (1)(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.

Page 7: CEN 5011  Advanced Software Engineering

Projects 7CEN 5011: Advanced Software Engineering

A Patient-Centric Healthcare A Patient-Centric Healthcare Solution Solution (2)(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.

Page 8: CEN 5011  Advanced Software Engineering

Projects 8CEN 5011: Advanced Software Engineering

A Patient-Centric Healthcare A Patient-Centric Healthcare Solution Solution (3)(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.

Page 9: CEN 5011  Advanced Software Engineering

Projects 9CEN 5011: Advanced Software Engineering

A Patient-Centric Healthcare A Patient-Centric Healthcare Solution Solution (4)(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.

Page 10: CEN 5011  Advanced Software Engineering

Projects 10CEN 5011: Advanced Software Engineering

A Patient-Centric Healthcare A Patient-Centric Healthcare Solution Solution (5)(5)

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

Going Home after Heart SurgeryGoing Home after Heart Surgery

Page 11: CEN 5011  Advanced Software Engineering

Projects 11CEN 5011: Advanced Software Engineering

A Patient-Centric Healthcare A Patient-Centric Healthcare Solution Solution (6)(6)

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.

Source: Medical Innovation Saving Lives With PDAs, Matthew Herper, 04.23.02, 12:00 PM ET

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.

Redmond Burke and Jeffrey WhiteRedmond Burke and Jeffrey White

Page 12: CEN 5011  Advanced Software Engineering

Projects 12CEN 5011: Advanced Software Engineering

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

PHRPatient

LaboratoryEMR

Hospital

Doctor’s Office EMR

A Patient-Centric Healthcare A Patient-Centric Healthcare Solution Solution (7)(7)

Page 13: CEN 5011  Advanced Software Engineering

Projects 13CEN 5011: Advanced Software Engineering

A Patient-Centric Healthcare A Patient-Centric Healthcare Solution Solution (8)(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.

Page 14: CEN 5011  Advanced Software Engineering

Projects 14CEN 5011: Advanced Software Engineering

A Patient-Centric Healthcare A Patient-Centric Healthcare Solution Solution (9)(9)

Communication Virtual Machine

User Communication Interface (UCI)

User/ Application (Initiator)

CVM

Communication Network

Network Communication Broker (NCB)

User-centric Communication Middleware (UCM)

Synthesis Engine (SE)

User Communication Interface (UCI)

User/ Application (Initiator)

Schema InstanceNegotiation

Communication Logic

Communication Data

CVMUser Communication

Communication Network

Network Communication Broker (NCB)

User-centric Communication Middleware (UCM)

Synthesis Engine (SE)

Page 15: CEN 5011  Advanced Software Engineering

Projects 15CEN 5011: Advanced Software Engineering

A Patient-Centric Healthcare A Patient-Centric Healthcare Solution Solution (10)(10)

Graphical User Interface

Page 16: CEN 5011  Advanced Software Engineering

Projects 16CEN 5011: Advanced Software Engineering

A Patient-Centric Healthcare A Patient-Centric Healthcare Solution Solution (11)(11)

Voice-Enabled GUI

Page 17: CEN 5011  Advanced Software Engineering

Projects 17CEN 5011: Advanced Software Engineering

A Patient-Centric Healthcare A Patient-Centric Healthcare Solution Solution (12)(12)

Data in a Form

MeidaType

File Text LiveStream

TextFile BinaryFile LiveAudio LiveVideo LiveAV

StreamFile NonStreamFile

AudioFile VideoFile AVFile

Page 18: CEN 5011  Advanced Software Engineering

Projects 18CEN 5011: Advanced Software Engineering

A Patient-Centric Healthcare A Patient-Centric Healthcare Solution Solution (13)(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.

Page 19: CEN 5011  Advanced Software Engineering

Projects 19CEN 5011: Advanced Software Engineering

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.

A Patient-Centric Healthcare A Patient-Centric Healthcare Solution Solution (14)(14)

Page 20: CEN 5011  Advanced Software Engineering

Projects 20CEN 5011: Advanced Software Engineering

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.

Page 21: CEN 5011  Advanced Software Engineering

Projects 21CEN 5011: Advanced Software Engineering

TRAP.NET TRAP.NET (1)(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.

Page 22: CEN 5011  Advanced Software Engineering

Projects 22CEN 5011: Advanced Software Engineering

TRAP.NET TRAP.NET (1)(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.

Page 23: CEN 5011  Advanced Software Engineering

Projects 23CEN 5011: Advanced Software Engineering

Integration of TRAP/J and Grid Integration of TRAP/J and Grid Superscalar Superscalar (1)(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.

Page 24: CEN 5011  Advanced Software Engineering

Projects 24CEN 5011: Advanced Software Engineering

Integration of TRAP/J and Grid Integration of TRAP/J and Grid Superscalar Superscalar (2)(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.

Page 25: CEN 5011  Advanced Software Engineering

Projects 25CEN 5011: Advanced Software Engineering

Transparent Grid Enablement using Transparent Grid Enablement using TRAP/JTRAP/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.

Page 26: CEN 5011  Advanced Software Engineering

Projects 26CEN 5011: Advanced Software Engineering

Portal for a Scientific Portal for a Scientific ApplicationApplication

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.

Page 27: CEN 5011  Advanced Software Engineering

Projects 27CEN 5011: Advanced Software Engineering

Grid Enablement of WRFGrid 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.

Page 28: CEN 5011  Advanced Software Engineering

Projects 28CEN 5011: Advanced Software Engineering

Porting MotoWaveZ to Porting MotoWaveZ to Cluster/GT4Cluster/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.