• Design Tools (e.g., Sparx Enterprise Architect)
• Development Tools
o IDEs (e.g., Xcode, Eclipse, IntelliJ IDEA, NetBeans, Microsoft
Visual Studio, Atom)
o Source Control Management (e.g.,GitHub)
o Release Orchestration (e.g., OpenMake)
o Collaboration (e.g., Jira, Trello, Slack)
• Operations Management Tools
o Database Automation (e.g., Datical)
o Deployment (e.g, ElasticBox)
o Configuration Management (e.g., Ansible, Chef, Puppet)
o Continuous Integration (e.g, Jenkins)
o Container Management (e.g., Docker, Kubernetes)
• Testing Tools and Frameworks
o Testing Tools (e.g., Junit, Selenium)
o PaaS (e.g., PythonAnywhere, AWS Code9, Heroku)
• Management and Monitoring Frameworks
o - AIOps (e.g, Splunk, Logstash)
o - Analytics (e.g., Dynatrace, ElasticSearch)
o - Monitoring (e.g., Nagios)
• Security Frameworks (e.g., Snort, BlackDuck)
• Cloud Platforms (e.g., AWS, Azure, GCP, IBM Cloud)
• Project Management (e.g., Scoro, Basecamp, Microsoft Project)
• Selecting Appropriate Tools
5. PLANNING AND MANAGING REQUIREMENTS
• Requirements Development Methodology
• Specifying Requirements
• Eliciting Accurate Requirements
• Documenting Business Requirements
• Defining User Requirements
• Validating Requirements
• Achieving Requirements Traceability
• Managing Changing Requirements
• Reviews, Walkthroughs, and Inspections
• Requirements Modeling
• Agile Requirements Engineering
READINGS: Selected readings assigned in class
Handouts posted on the course Web site
6. INTRODUCTION TO SOFTWARE ANALYSIS AND DESIGN
• Roles of Analysis and Design