CS 381 Software Development
The objective of this project to reinforce, via practice, the understanding gained from the discussions and lectures about modern distributed, parallel and concurrent programming, processing, computing, computation, software development, algorithms and applications.
Choose one of the case study categories presented in the attachment.
Systematically perform 1 pass through the agile or spiral SW development life cycle:
Describe→Specify→Design→Develop-Program-Code→Demo-Prototype
Note: At each stage,
- Use both text and diagrams to convey your architectures, models, concepts, embodiments.
- Use (semi-) formal methods, such as UML, ER models, NOSQL models, MapReduce, Data parallel models, Dataflow models, Algorithmic Structures, Functional and function style computing, SOA, ESB, Petri nets and transitions models, semi-structured models for data, information, meta-data and knowledge structures and representation and their manipulations by algorithms, functions, procedures, processes, agencies.
- Be as concrete as possible, for the level of presentation and discussion.
- Assume that your work product or output, in the form of design and engineering canvass, will be handed over to someone else to continue where you left off. (Hence, your work output should be comprehensive, clear, well-organized and readable.)
- Pick a specific, particular and concrete application or scenario for the chosen category.
- Provide a comprehensive analysis, description, explanation and model of the case study as an example or exemplar for the use of distributed processing, parallel processing and/or concurrent processing among multiple, swarms, teams, groups, cohorts, legions, collectives, colonies, societies, crowds, ensembles of computational entities (processes, actors, agents, bots, ants, demons, sprites, robots, etc. In essence, how such a collective behaves as a superorganism, organization or computational enterprise, corporation or empire. Potentially, such a collective can have from tens O(10) to millions O(1 million) computational actors, bots, agents.
Provide the overall architecture (framework, configuration) of the application. Use lots of diagrams, at different levels of details and refinement. Explain each diagram, with the text and diagrams supporting coherently and seamlessly supporting each other.
- Identify what can constitute an MVP for the chosen scenario and provide the Pseudo-code implementations of the MVP. Identify appropriate technology stacks (HW, MW and SW) as part of the Pseudo-code. For parts of the Pseudo-code that will be developed “in-house” and not purchased or procured, identify object classes, data structures, pseudo-code for the CRUD and other procedures, routines, methods that can be used to manipulate the identified data representations.
- Implement a demo prototype of the application MVP. Your demo should be executable code that successfully runs.
- Write and submit a Project Report about the Effort.
Application Areas:
- TensorFlow Applications, (or variant dataflow, computational graph applications)
- MapReduce Applications or Hadoop Applications
- SpatialOS Applications
- Robot Team Applications
- Drone Team Applications
- Robot-Drone Teams Applications
- Zombie Control computational model
- Blackboard Architecture Distributed AI Applications
- Multi-agent System Applications
- Collective Intelligence Applications
- Swarm Intelligence Applications
- Stigmergy computational model
- Distributed sensor network, or Wireless sensor network applications (including, Biochips, Microarrays, Multi-cameras, Poly-cameras)
- Assemblage Structures computational model, (including foldable space structures and tensegrity structures)
- ANN-based Deep Learning AI Applications
- Tuple-space computing support of Coordinating Languages such as Linda
- Amorphous computing Applications
- Trellis computing Applications
- LifeStream™ computing Applications
- Electronic-skin (e-skin) Applications (includes, Chameleonic adaptation)
- Sensate Media, Pushpin, Paintable Computing Applications
- Computational Teams for Social, Affective, Wearable, Tangible computing applications
- Full body integrated network of wearable and implantable devices applications
- @Home Computing Applications
- SOA-ESB applications
- Second Life Online World
- Spore Online Game
- Massively Multi-player Online Games (Role Playing, Strategy, Building and Construction)
- Complex Adaptive Systems Applications
- Other Domains of Student’s choosing
- Other domains encountered earlier in the semester.
(Note each of these must be considered from the point of the view of the participation of multiple computational entities, agents, actors, bots, machines, automata, as part of a team or collective, to deliver services and applications for the targeted computational objective):
- Amazon Go, cashless, just-walkout store
- Automated warehouse, with Robot teams (JD.com, Amazon.com)
- Smartwatch – Smartphone wearables (Watch OS – IOS, Wear OS – Android)
- Smart Speaker – Smartphone at home (Apple, Amazon, Google, Alibaba)
- Multi-Sided Platform (MSP) (Uber, Lyft, AirB’nB, EBay, Amazon)
- Database system for: Inventory management; Hospital, Medical Electronic Health Records (EHR)
- Capsule Endoscopy Data Analytics
- Smart City (NYC, Chicago/AOT)
- Smart Highway, Intelligent Highway
- City IOT, Municipal IOT
- Autonomous Car, Automobile, Vehicle, Truck, Train, Cargo Container Carrier, Supertanker
- Tandem-Cascade-Chain of Automobiles, Trucks, Vehicles
- Computer Game
- Massive, Multi-player Online Game
- Augmented Reality (AR) application