Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

Certainly!

Here's a comprehensive assignment outline for an advanced software


engineering course, specifically tailored for ME CSE students at Anna University. This
assignment will encompass key topics such as software design, architecture, testing,
project management, and modern software development practices.

Advanced Software Engineering Assignment

Part 1: Software Design and Architecture

1. Design Patterns Implementation

 Objective: Implement and demonstrate the use of three different design patterns
(e.g., Singleton, Observer, Factory) in a software application.
 Tasks:
 Choose a problem domain and justify your choice of design patterns.
 Implement the chosen patterns in a suitable programming language.
 Document the design process, including UML diagrams.
 Write unit tests to validate the implementation.
 Deliverables: Source code, design documentation, and test reports.

2. Microservices Architecture

 Objective: Design a microservices-based architecture for a given application


scenario.
 Tasks:
 Define the application requirements and identify services.
 Design the microservices architecture, including service interaction diagrams.
 Implement a small prototype with at least three microservices.
 Discuss the benefits and challenges of microservices in this context.
 Deliverables: Architectural design documents, prototype source code, and a report
on the benefits and challenges.

Part 2: Software Testing and Quality Assurance

3. Automated Testing Framework

 Objective: Develop an automated testing framework for a web application.


 Tasks:
 Select a web application (existing or newly developed).
 Choose an appropriate automated testing tool (e.g., Selenium, JUnit).
 Create test cases covering functional and non-functional requirements.
 Integrate the automated tests with a continuous integration (CI) pipeline.
 Deliverables: Test scripts, CI pipeline configuration, and a test report.

4. Performance Testing

 Objective: Conduct performance testing for a web application.


 Tasks:
 Define performance criteria and benchmarks.
 Use performance testing tools (e.g., JMeter, LoadRunner) to conduct tests.
 Analyze the results and identify potential performance bottlenecks.
 Propose optimizations based on the test results.
 Deliverables: Performance test plan, test results, and optimization proposals.

Part 3: Project Management and Modern Development Practices

5. Agile Project Management

 Objective: Plan and manage a software development project using Agile


methodologies.
 Tasks:
 Form a team and define roles.
 Create a product backlog and sprint plans.
 Use project management tools (e.g., Jira, Trello) to track progress.
 Conduct sprint reviews and retrospectives.
 Deliverables: Project plan, sprint backlog, burn-down charts, and retrospective
reports.

6. DevOps Practices

 Objective: Implement a DevOps pipeline for continuous integration and continuous


deployment (CI/CD).
 Tasks:
 Set up a version control system (e.g., Git).
 Configure a CI/CD pipeline using tools (e.g., Jenkins, GitLab CI).
 Implement automated builds, tests, and deployments.
 Monitor the pipeline and maintain deployment logs.
 Deliverables: CI/CD pipeline configuration, deployment logs, and monitoring
reports.

Submission Guidelines

 Format: All documents should be in PDF format. Source code should be well-
documented and submitted in a Git repository.
 Deadline: Specify a deadline based on your course schedule.
 Evaluation Criteria:
 Completeness and correctness of the implementations.
 Quality of the design and architectural documentation.
 Effectiveness of testing and performance analysis.
 Adherence to Agile and DevOps practices.
 Clarity and professionalism in reports and presentations.

Additional Resources

 Books:

 "Design Patterns: Elements of Reusable Object-Oriented Software" by Erich Gamma,


Richard Helm, Ralph Johnson, and John Vlissides.
 "Continuous Delivery: Reliable Software Releases through Build, Test, and
Deployment Automation" by Jez Humble and David Farley.
 "Agile Project Management with Scrum" by Ken Schwaber.

 Online Courses:

 "Software Design and Architecture" on Coursera.


 "Agile with Atlassian Jira" on Coursera.
 "DevOps Foundations" on LinkedIn Learning.

Tips for Success

 Start early and plan your work schedule to meet the deadlines.
 Collaborate effectively with your team and communicate regularly.
 Seek feedback from peers and instructors to improve your work.
 Focus on practical implementation and real-world application of concepts.

This assignment outline should provide a comprehensive and challenging experience


for advanced software engineering students, covering essential aspects of modern
software development.

You might also like