ITS66404 Software Engineering
ITS60604 Principles of Software Engineering
ASSIGNMENT
HAND OUT DATE: Week of 30th September 2024
HAND IN DATE: Week of 17th November 2024
GROUP PROJECT: 30%
Instructions to students:
• The assignment should be attempted in groups of 5 students.
• Complete this cover sheet and attach it to your assignment - this should be your first page.
• Your presentation date will be conducted at a different date.
1.0 Learning Outcomes
MLO3
Demonstrate subject specific skills with respect to apply modelling techniques and notations in the group project coursework.
TGC3 - Communication Skills
• Communication Skills refer to the ability to create and deliver messages effectively, expressively and sensitively inappropriate contexts and specific to the discipline.
• Deliver content with consideration of audience, purpose, and context surrounding the task, both orally and in written form. as well as any other appropriate forms
OBJECTIVES
This assignment has been designed for students to:
• Determine requirements for a software system.
• Demonstrate subject specific skills with respect to applying modelling techniques and notations in the group-project coursework.
• Apply theory and foundations of software engineering.
• Apply some key aspects of a software engineering process.
• Create and finalise models for analysis of a software system.
• Apply some key aspects of project management.
• Create testcases based on use case specification
2.0 Project Scenario and Requirements
In this project, students are required to create a SOFTWARE IDEATION PROJECT PROPOSAL. Students are first to explore existing software systems or applications that address one of the 17 United Nations Sustainable Development Goals (SDGs). The objective is to identify limitations or inefficiencies in the current system and propose an enhanced software application that can improve its effectiveness and impact. Students are advised to explore Malaysia SDG Summit 2024 for a clear and descriptive understanding of the various SDG’s.
3.0 Project Requirements
1. Create Groupings: Each group is to have Maximum if 5 members. Document the grouping list in
the link given below.
https://docs.google.com/spreadsheets/d/1bh4-
XnWbvWkIRLOt17ZPvukvAW43HgeIgTQIsVOa_Gs/edit?usp=sharing
2. SDG Selection: Each team must select one of the 17 SDGs, which include areas such as:
• No Poverty (SDG 1)
• Good Health and Well-Being (SDG 3)
• Quality Education (SDG 4)
• Affordable and Clean Energy (SDG 7)
• Climate Action (SDG 13)
3. Existing System/Software Identification: Students must research and identify a system or software application currently being used to address their chosen SDG. This can include:
• Government or NGO applications (e.g., poverty relief platforms).
• Public or private sector software solutions (e.g., energy management systems).
• Mobile or web applications with social impact (e.g., education platforms in underserved areas).
4. Problem Analysis: After selecting the system, teams must conduct a thorough analysis of its current functionality. Identify key problems, challenges, and limitations, such as:
• Inefficiency in resource management.
• Poor user interface design.
• Limited scalability or accessibility issues.
• Data management challenges.
5. Proposed System/Software Application: Teams are required to design and propose an improved version of the system. The new system should address the identified problems and improve upon:
• Functionality: Improved features and usability.
• Scalability: Adaptability to larger userbases or geographies.
• Efficiency: Better performance, reduced costs, or more sustainable resource use.
• User Experience: Enhanced UI/UX, accessibility, and inclusivity.
• Integration of Emerging Technologies: Utilize AI, blockchain, IoT, or other relevant tech to enhance impact.
6. Technical Considerations: The proposed system should demonstrate a solid understanding of software engineering principles and include:
• Appropriate software development methodologies (Agile, Waterfall, etc.).
• A clear system architecture and design pattern adopting all relevant UML design diagrams.
• Justification for technology stack choices (e.g., backend and frontend technologies).
• Data handling and security considerations.
4.0 Deliverables
1. Proposed system requirements type:
Functional Requirements - core system functionalities needed to full-fill the system’s objectives. E.g., user authentication, data processing, reporting features.
Non-Functional Requirements - system qualities such as performance, security, usability, and scalability that must be maintained.
Tasks:
Identify functional and non-functional requirements using requirements elicitation techniques (e.g., interviews, surveys).
2. Define the Scope of the Proposed System:-
• People involved in system processes.
• Individuals controlling the data.
• The volume of data processed.
• Costs and consequences of system failure.
What is covered:
Clearly explain the system boundaries, processes, and stakeholders involved.
What is not covered:
Specify functionalities or scenarios outside the system’sscope.
3. UML USE CASE DIAGRAMS:-
Deliverables:
• Draw TWO (2) or more UML Use Case Diagrams for your proposed system.
• Ensure each use case models interactions between users and the system.
• Complete use case descriptions and use case specifications for MAIN use cases (2 Use Cases). Use the template provided for use case descriptions and specifications.
4. UML CLASS DIAGRAMS:-
Deliverables:
• Draw THREE (3) UML Class Diagrams.
• Each diagram should have 5-10 classes representing the information to be stored by the system.
5. UML OBJECT DIAGRAMS:-
Deliverables:
• Draw THREE (3) UML Object Diagrams.
• Model four non-trivial situations in your system to visualize object interactions and states.
6. User Interface mock-ups
Deliverables:
• Create 3-5 major user interaction design layouts/pages
• Explanation of the interface design
7. Test Plan
Deliverables:
• Create THREE (3) testcases per use case (follow use case specification). Use the template provided for testing.
8. UML SEQUENCE DIAGRAM
Deliverables:
• At least ONE (1) sequence diagrams expected for any use case covering the happy path and one of the alternative pathways.
9. UML ACTIVITY DIAGRAM
Deliverables:
• At least ONE (1) activity diagram.
10. UML STATE CHART DIAGRAM
Deliverables:
• Draw at least TWO (2) state chart diagram.
11. Discuss your design rationale consisting of
• Strengths and weakness of the final design-including any known issues with the design as it is. Minimum 3 paragraphs.
• Alternative design ideas that were considered (classes, structures, patterns, etc…) and why they were eventually rejected?. Minimum 3 paragraphs.
• Evaluation of the proposed ideas, the feasibility study.
12. A group analysis to be completed at the end of the project, consisting :-
• A brief discussion about the strengths and weaknesses of the project team and how/if these were managed effectively. Minimum 2 paragraphs.
• An evaluation of lessons learnt about teamwork – what would you do differently (and the same) give the opportunity. Minimum 2 paragraphs.
13. Prototype (or mock-ups of the user interface) or Prototype Video (Less than 4 minute video):
• Develop a prototype (alpha version is required, but preferably beta version) of the proposed system and include a brief description of the major functionalities and key benefits.
• It should be submitted in video format and your presentation should show some level of interactions.
14. Presentation (F2F). Max 25-minute:
• To conduct a technical and value proposition pitching with expected impact in line with purpose learning and to show prototype
IMPORTANT NOTE:
• Presentation is conducted to propose the new system and teamwork. It may include Introduction, Background, Ideas & Rationale, Lessons learned and Prototype.