Introduction to the Class Projectand Computing Facilities
CSCI 599 – Software Engineering for Embedded Systems
September 3, 2002
Class Project Logistics• 10 teams of 3 students• 1 PocketPC per student
– wireless support– NexiCams (as needed)– keyboards (as needed)– YBIYBI
• Prism-MW– Java – EVC++
• Prism-DE if desired• DRADEL if desired
Embedded Systems Lab• Located in KAP 103• 12 Windows machines
– JDK– MS Visual Studio– MS Office– ethernet connections– wireless setup
• Use for the class only!– combination lock to the Lab– each student must read the USC Ethics Code– will be required to sign a declaration of fair use– the Lab will be checked periodically after-hours
What You Will Be Able to Do
What You May Choose to Do
How Much Prism?
Overall Design of Prism-MW – YES!
ComponentThreadConnectorThread
ArchitectureAdapter
Notification Request
Message
Se rializab le
IScaffo ld
Connector
IArch ite ctu re
Arch ite ctu re Eve n tConstan ts
ICompone n t
Peer
Component
IConne cto r #top
#bo ttom
#side
AdminComponent
Architecture
Brick
#scaffo ld
Address top Id
bo ttomId
side Id
A
D
CB
How Much Prism?
Prism-MW API – YES!
Architecture
Architecture()Architecture(name : String)Architecture(name : String, n : int)start() : voidstop() : voidshutdown() : voidhandle(r : Request) : voidhandle(n : Notification) : voidaddComponent(comp : Component) : voidaddConnector(conn : Connector) : voidweld(conn : Connector, comp : Component) : voidweld(comp : Component, conn : Connector) : voidweld(conn1 : Connector, conn2 : Connector) : voidremoveComponent(comp : Component) : voidremoveConnector(conn : Connector) : voidsetThreadCount(n : int) : voidgetThreadCount() : intthreadFunction() : voidnotifyArchitecture() : voidsearchFIFO(f : SynchronizedFIFO, o : Object) : Object
Component
Component(name : String)Component()Component(name : String, junk : String)send(r : Request) : voidsend(n : Notification) : void
ComponentThread
ComponentThread()ComponentThread(s : String)run() : void
Connector
Connector()Connector(name : String)handle(r : Request) : voidhandle(n : Notification) : void
ConnectorThread
ConnectorThread(n : String)
Message
Message()Message(name : String)name() : StringaddParameter(parameterName : String, parameterValue : Object) : voidhasParameter(Name : String) : booleanremoveParameter(Name : String) : voidgetParameter(Name : String) : Object
Notification
Notification()Notification(Name : String)
Request
Request()Request(Name : String)
How Much Prism?
Internal Design of Prism-MW – Perhaps
Component BComponent A
Component D
R1
N1
R2
R3
N2
send
Req
uest
hand
leR
eque
stConnector C
Thread Pool
R
X R
Assigning Project Teams
• You may form 3-person teams– no exceptions unless class size is not a multiple of 3
• Mail me and the TA– team name (optional)– team member names– team member USC ID numbers
• Otherwise, you will be assigned to a team during Week 4
Project Details
• To be discussed in class during Week 4
• Will rely on the principles of software architecture
• Will leverage Prism
• Will require substantial design and implementation
• Will be fun!