# data[].attributes.body
group 5

2 a) Microsoft Teams is Application Software within the Collaborative and Communication Software domain, designed to support real-time collaboration and communication.

b) ·  Students: Use Teams for group discussions, sharing study materials, and collaborating on projects.

·  Teachers/Professors: Use it to conduct virtual classes, share resources, and provide assignments.

·  Administrative Staff: Use Teams to schedule classes, manage communications across departments, and coordinate events.

c)

·  Students: Access chat, file sharing, and shared documents for group work.

·  Teachers: Set up classes, assign tasks, and record lectures.

·  Administrative Staff: Manage schedules, communicate with faculty, and handle announcements.

d) Interactive Whiteboard Integration: A built-in interactive whiteboard could allow teachers and students to collaborate visually, which would be especially useful for subjects like math or science.

Virtual Classroom Breakout Rooms: Teams could add a feature for teachers to divide students into smaller "breakout rooms" during virtual classes to facilitate group discussions and teamwork.

e) - Security Requirements: New security threats may require updates to protect data.

Compatibility: Updates to integrate with other tools or newer platforms.

# data[].attributes.body
Question 1

Knight’s $440M in bad trades, 2012

The Knight Capital Group incident is a clear reminder of why strong software engineering practices are essential, especially in high-stakes fields like finance. A $440 million loss in just 30 minutes due to a software error highlighted how dangerous it can be when development processes lack solid safeguards. This case has since become a classic example of why structured software engineering is crucial for systems carrying significant financial and operational risk.

Key Lessons for Software Engineering Practices Highlighted by the Incident

1. Quality Assurance and Testing
Knight Capital’s trading software didn’t go through thorough real-world testing. Effective software engineering calls for extensive quality assurance, covering integration, stress testing, and failure simulations. This incident emphasizes how vital it is to use both automated and manual testing to ensure systems respond as expected in every scenario.

2. Code Review and Error Handling
The incident also stresses the importance of rigorous code review and solid error-handling. Adopting practices like peer reviews, static code analysis, and design walkthroughs can catch potential issues before they escalate. Additionally, strong error-handling mechanisms can help systems recover from unexpected issues smoothly.

# data[].attributes.body
The term software crisis refers to the challenges and difficulties associated with software development, particularly in meeting user requirements, delivering projects on time and within budget, and ensuring software quality. This crisis occurred in the late 1960s and has persisted as software complexity has increased.

Causes of the Software Crisis

1. Increased Complexity: As software systems have grown more complex, the difficulty of managing and developing them has also increased, often outpacing the skills and methodologies available to developers.

2. Poor Communication: A lack of effective communication between developers and stakeholders can lead to misunderstandings about requirements, resulting in software that does not meet user needs.

3. Project Management Issues: Many projects suffer from inadequate planning, leading to overruns in budget and time. High expectations regarding delivery timelines often result in unrealistic project scopes.

4. Quality Assurance Failures: Insufficient testing and quality control can lead to low-quality software that is inefficient and prone to bugs.

5. Rapid Technological Change: The fast pace of technological advancement can leave developers struggling to keep up with new tools and languages, leading to ineffective use of resources.

Examples of Software Crisis

- Therac-25 (1985-1987): This radiation therapy machine suffered from critical software failures due to a race condition, resulting in patients receiving lethal doses of radiation. The incident highlighted severe flaws in software safety protocols.

- Ariane 5 Rocket (1996): The European Space Agency's rocket exploded shortly after launch due to a software error related to an integer overflow. This failure underscored the importance of rigorous testing in high-stakes environments.

- National Grid Gas Company (2012): A costly transition to a new cloud-based system led to significant errors and operational disruptions, costing the company an additional $561 million to rectify issues that arose from poor initial implementation.

Solutions to the Software Crisis

1. Adoption of Software Engineering Practices: Implementing structured methodologies such as Agile or DevOps can enhance collaboration, improve project management, and ensure better alignment with user needs.

2. Improved Communication: Establishing clear communication channels between developers, stakeholders, and users can help clarify requirements and expectations, reducing misunderstandings.

3. Enhanced Training and Education: Investing in ongoing education for software engineers can help them stay current with technological advancements and best practices in software development.

4. Robust Testing Protocols: Implementing comprehensive testing strategies throughout the development lifecycle can help identify issues early, ensuring higher quality software upon release.

5. Use of Automation Tools: Automating repetitive tasks can reduce human error and free up developers to focus on more complex problem-solving tasks.

# data[].attributes.body
a) Specify the software application domain and category of the software.

Domain: Communication and Collaboration Software.

Category: Web/Mobile Application.

b) Who are the main users of the software? Specify at least 3 different roles for the software.

Student: Uses Teams for attending classes, submitting assignments, and group work.

Instructor: Uses Teams to deliver lectures, share resources, and assign work.

Administrator: Manages user access, schedules meetings, and oversees platform maintenance.

c) For each role, describe a few main functions provided by the software for the role.

Student:

Attends live lectures through video conferencing.

Submits assignments and participates in group chats.

Accesses class materials and recordings.

Instructor:

Schedules and hosts meetings or lectures.

Shares documents, assignments, and course materials.

Evaluates assignments and provides feedback.

Administrator:

Manages user permissions and roles.

Monitors system performance and ensures data security.

Handles updates and user support.

d) What additional features that you would like to add to the software?

Improved integration with other educational tools (e.g., Google Classroom, Kahoot).

Enhanced whiteboard features for better in-class engagement.

Personalized reminders for due dates and lecture times.

Offline access for resources, allowing students to download and view materials without an internet connection.

e) Describe possible factors that would affect the software to be updated to a newer version.

User Feedback: Updates may be driven by user requests for new features or improvements.

Security Enhancements: Regular updates are needed to patch security vulnerabilities, especially for platforms handling sensitive data.

Technological Advancements: New technologies or improvements in video conferencing and data storage could lead to updates.

Competition: Competitors like Zoom or Google Meet may introduce new features, prompting Microsoft Teams to innovate.

System Compatibility: Updates may be required to ensure compatibility with new devices or operating system updates.

# data[].attributes.body
1. Search the Internet for information on “software crisis”. Discuss how this situation developed the need for the software engineering process.

The “software crisis” was a term used in the 1960s to describe serious problems in software development. As software became more complex and widely used, many projects ran over budget, missed deadlines, or didn’t work as expected. Developers often faced issues like unclear requirements, lack of planning, and frequent project failures.

This crisis showed that software development needed a more organized approach, leading to the creation of the software engineering process. This new approach used structured methods, like breaking down tasks into smaller parts, reusing code, documenting work, and testing thoroughly, to make software projects more reliable, efficient, and easier to manage. By following these practices, the software industry aimed to solve the challenges of the software crisis and improve the quality of software overall.

https://www.scaler.com/topics/software-crisis-in-software-engineering/#

# data[].attributes.body
1. Search the Internet for information on “software crisis”. Discuss how this situation

developed the need for software engineering process.

The software crisis caused projects to be running over-budget, projects running over time,   software's was very innefficient, low of quality, and often did not meet any requirements  due to the complexity of the problems and the existing methods were inadequate thus needing the software engineering processes.

2. Identify a software that you are using together with other students. Answer the following questions:

MICROSOFT TEAMS

a) Specify the software application domain and category of the software.

The software application domain is Web/Mobile Application. The category are web apps and mobile apps.

b) Who are the main users of the software? Specify at least 3 different roles for the software.

The main users of the software is students. Lectures, students and administrators.

c) For each role, describe a few main functions provided by the software for the role.

For students, viewing and managing assignments, accessing lecture/ lab  materials for studies and communication with the lecturers. As for the lecturers, they can post announcements for students, create and publishing assignments, hold class discussionsamong students. Lastly for administrators, they can create new classes, control the access of class, view report of attendance percentage, manage the other roles and monitor the operations as a whole.

d) What additional features that you would like to add to the software?

Have better and aesthetically pleasing user interface, integrate task and project management.

e) Describe possible factors that would affect the software to be updated to a newer

Version.

Bugs, bad feedback, technological advancement, compliance and security issues.

# data[].attributes.body
1. Software Crisis is a term used in computer science for the difficulty of writing useful and efficient computer programs in the required time. The software crisis was due to using the same workforce, same methods, and same tools even though rapidly increasing software demand, the complexity of software, and software challenges. With the increase in software complexity, many software problems arose because existing methods were insufficient.

2. Analysis of Microsoft Outlook Usage Among Students

a) Application Domain and Category

Application Domain: Communication and Personal Information Management

Category: Email Client and Productivity Software

b) Main Users and Their Roles

Students

Educators (Teachers/Lecturers)

Administrative Staff

c) Main Functions Provided for Each Role

Students:

Email Communication: Send and receive emails to communicate with peers, instructors, and administrative staff.

Calendar Management: Schedule events, track deadlines, and organize meetings or study sessions.

Task Management: Utilize the task feature to keep track of assignments, project deadlines, and other academic responsibilities.

Educators:

Email Correspondence: Communicate with students, colleagues, and parents through professional email management.

Meeting Scheduling: Set up office hours, schedule virtual meetings or consultations with students via the calendar and Teams integration.

Shared Calendars: Coordinate with other faculty members and departments through shared calendars for lectures, exams, or institutional events.

Administrative Staff:

Mass Communication: Send important announcements and updates to large groups, including students and faculty.

Event and Meeting Coordination: Manage and organize events such as orientations, staff meetings, and academic events through the integrated calendar system.

Data Management: Keep track of institutional or personal information related to student schedules, staff meetings, and deadlines.

d) Suggested Additional Features

Enhanced Collaboration Tools: More robust tools for collaborative document editing and feedback directly within emails or calendar invites.

Integrated Task Tracking: More detailed task management that integrates with academic course work, such as a feature allowing assignment submissions from email to LMS.

Smart Scheduling with AI: AI-based suggestions for finding optimal meeting times across time zones and conflicting schedules.

e) Factors Influencing Software Updates

User Feedback: Regular user feedback, especially regarding email organization, spam filtering, or calendar integrations, can drive updates.

Technological Advancements: As new tech like AI becomes more integrated into personal productivity, Outlook will likely introduce AI-driven tools to improve scheduling, email prioritization, or task tracking.

Security and Compliance: As email remains a critical communication channel, updates addressing privacy, encryption, and protection from phishing or cyber threats are vital.

# data[].attributes.body
1) it all depends on the methodology that the developer uses. the methodology is the key for time and quality of the program.

2) a: Microsoft teams: communication and collaboration platform.

outlook: email and personal information management tool.

b: 1: Microsoft teams can includes communication with calls unlike outlook only mails.

2: teams contains teams and channels, outlook contains inbox, folders and email filtering.

3: teams contains groups unlike outlook.

c: for point 1 teams made a live calls but outlook has only emails. for point 2 teams can make groups such as the ones we have for the uni but the outlook can only do Cc for a group email.for point 3 in teams you can make private groups with your friends in outlook you can't

d)ms teams I would like to be less complicated.

outlook to make a live messages.

e) to improve the performance in ms teams and for the outlook user experience.

# data[].attributes.body
Q1.

Software crisis is the challenges and difficulties faced by the software industry. This is because the rapid increases of computer power and complexity of the problem, old methods of developing software are not efficient anymore. New method and tools are needed to address this issue.Modern software engineering has adapted by incorporating Agile and DevOps methodologies, which emphasize collaboration, iterative development, and continuous delivery to better manage these complexities and respond to evolving user needs.

Q2.

Identify a software that you are using together with other students.

a) Specify the software application domain and category of the software.

eBWISE - education/knowledge management - learning management system

Ms Teams - communication and collaboration - productivity and collaboration tool

Outlook - email - email client and calendar management

IBM DB2 - database management - relational database management system

Dropbox -  cloud storage and file sharing - cloud file storage and sharing platform

b) Who are the main users of the software? Specify at least 3 different roles for the software.

1. Admin

2. Student

3. Teacher/Lecturer

c) For each role, describe a few main functions provided by the software for the role.

1. Login/Signup

2. Search

3. Managing task

4. Announcement

d) What additional features that you would like to add to the software?

1. Implement ai in current software to enhance the function.

2. Add attendance system with otp security to avoid cheating

3. Implement code writer and compiler so that benefits computer science student

e) Describe possible factors that would affect the software to be updated to a newer version.

1. User required to update so that can get updated version

2. There might be competitive since there are many competitors

3. Take more time than usual since otp security implemented.