0% found this document useful (0 votes)
31 views7 pages

Assignment-Software Engineering (21204012)

Uploaded by

mislam.zidan05
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views7 pages

Assignment-Software Engineering (21204012)

Uploaded by

mislam.zidan05
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

Assignment Prepared By –Minhazul Islam(21204012)

Ans (1) ---- Upon several SDLC methodologies, Team “Bazooka” has choose on
the procedure of agile methodology to follow the cycle of planning, executing and
evaluating. As a reason, it involves breaking the “Car Software” into phases to
multiple iteration and emphasizing continuous collaboration. Over the period time of
25 years, the phases such as requirement gathering, planning, development,
deployment, maintenance, and testing are iterated under agile surveillance. The
duration of time is set identical for each iteration. That means if a newly release
security update is required, our agile development teams needs to agree on the
length of the iteration and then proceed to operate. Certainly, for this particular
software it may go as long as 4 weeks on an iteration –by- iteration basis. At the
end of each iteration, a working product with new feature will be delivered. Mostly
reducing 2 weeks of time spent on requirement gathering purpose, the goal is to
focus on deployment rate. Thus, working on each severity level with lessen
average time between the3 discovery of a security vulnerability and when its patch
in production. Next, a priority – based checking will be approached for rest of the
features to be delivered on next subsequent iteration in term of user needs and
satisfaction. Additionally, as of agile being a detail application method for
development, it keeps anyone “out” who is on a budget plan. Therefore cost is
estimated based on the features or user priorities that are to be implemented
during each iteration as well as the efforts the team has to put on to complete each
feature. As of calculation matters, the total cost of the software is divided by the
total estimated effort.
Ans (2) a: ---- SDLC is capable of providing a modern software development
environment. It consist of 6 steps as follows:
First Step: Analysis
The software is thoroughly analysed to determine the client's overall requirements.
This step is required to make corrections and guarantee that the software operates
correctly in the end. This phase of software development includes every facet of
project management. Resource allocation, capacity planning, project scheduling,
cost estimation, and sourcing are usually included in this. The development team
gathers data from customers, salespeople, internal and external experts, developers,
and other project stakeholders during the planning stage. The resources needed to
complete the project and estimates the related costs. At this point, expectations are
also made very clear.
Step Two: Design
The design stage simulates the functionality of a software programme. Among the
design's features are: Architecture: Defines the general design, industry standards,
programming language, and any templates or models used. User interface:
Describes how users interact with the programme and how input is processed by the
programme. Programming: Problem-solving techniques and performance
techniques, in addition to the programming language. Security: Secure storage,
password protection, and user credentials.
Step 3: Development
At this exact stage, the necessary software functionalities and components are
created. The actual writing of the code and construction of the application in
accordance with earlier design documents and comprehensive specifications takes
place during the development stage. Language such as C++.
Step Four: Testing
During the testing phase, the programme is examined for flaws and any errors are
noted. The team can move on to integration and validation testing after the
development phase. This process is required because it's critical to thoroughly test
the product across all possible parameters. This stage reveals any possible bugs in
the product, which are then fixed if found.
Step 5: Implementation
The following phase is referred to as the implementation stage after all coding errors
found during the testing stage have been fixed. After the code is complete, it is
integrated into software and made available to clients for usage.
Step 6 : Maintenance
Once the software passes through all the stages without any issues, a maintenance
process is followed wherein it will be maintained and upgraded from time to time to
adapt to changes.
Ans (2) b : A system to control anti- lock braking in a car:
The most appropriate generic software process model for controlling anti- lock
braking in a car is waterfall model. The anti-lock braking is a safety critical system. In
the waterfall model for the proper functioning of the anti-lock braking system of the
car, the analysis and design requirements must be scheduled without any flaws
before the system implementation.

Ans (3) : a) Dividing a project into short development episodes or sprints:


Breaking a project into short development episodes or sprints is a core principle of
agile methodologies, like Scrum. This approach encourages iterative development,
adaptability, and responsiveness to changing requirements. It ensures continuous
feedback and allows teams to deliver a potentially shippable product at the end of
each sprint. In our group project, adopting a sprint-based approach significantly
improved collaboration and communication. It helped us prioritize tasks, respond to
feedback quickly, and deliver features incrementally. I would insist on retaining this
feature. The iterative and adaptive nature of sprints aligns well with the dynamic
nature of software development. It enhances team collaboration and customer
satisfaction.

b) Project progress visualization tools such as PERT and GANTT charts:


Visualization tools like PERT and GANTT charts provide a clear overview of project
timelines, dependencies, and progress. They aid in planning, tracking, and
communication, helping teams and stakeholders understand the project's status and
potential risks. Using GANTT charts in our project facilitated effective time
management and resource allocation. It also allowed stakeholders to have a visual
representation of the project timeline and dependencies. I would insist on retaining
these visualization tools. They are crucial for project planning and communication.
Clear timelines and dependencies reduce misunderstandings and contribute to the
overall success of the project.
c) Automated regression testing tools:
Automated regression testing tools help ensure that new code changes don't
introduce unintended side effects or break existing functionality. They enhance the
efficiency of testing processes and contribute to the overall quality and stability of the
software. The use of automated regression testing tools in our project significantly
reduced the time spent on repetitive testing tasks. It also helped catch regressions
early in the development process. I would insist on retaining automated regression
testing tools. They are essential for maintaining software quality, especially in
projects with frequent updates or releases.

d) Source code management tools:


Source code management tools, such as Git, provide version control, collaboration
features, and a centralized repository for code. They enable teams to work
concurrently on different aspects of a project, track changes, and roll back to
previous versions if needed. In our project, Git was invaluable for collaboration. It
allowed team members to work on separate branches, merge changes seamlessly,
and maintain a stable codebase. I would insist on retaining source code
management tools. They are fundamental to modern software development and
contribute to efficient collaboration, version control, and project stability.
e) Scrumming:
Scrum is an agile framework that emphasizes collaboration, accountability, and
iterative progress. It involves regular ceremonies such as sprint planning, daily
stand-ups, and sprint reviews to keep the team aligned and focused. Adopting
Scrum in our project provided a structured framework for our development process.
Daily stand-ups facilitated communication, sprint reviews ensured continuous
improvement, and sprint planning helped set clear goals. I would insist on retaining
Scrum or a similar agile framework. The structured approach and regular
ceremonies promote transparency, collaboration, and continuous improvement—
essential elements for successful software development.

Ans (4) -(a) Processes and Issues:

(i) Establishing a Business Requirement and Likely Cost:

Consultation and Stakeholder Engagement: Engage with relevant stakeholders,


including disabled individuals, carers, advocacy groups, and experts to understand
their needs and expectations. Conduct a feasibility study to determine the practicality
and financial viability of the proposed pension supplement. Work with financial
experts to estimate the cost of implementing the pension supplement, considering
both initial development costs and ongoing operational expenses.
(ii) Determining Changes Needed to Platform Applications or Other Systems:
System Analysis: Conduct a thorough analysis of existing platform applications and
systems to identify areas that need modification or integration to accommodate the
new pension supplement.
Compatibility Assessment: Evaluate the compatibility of current systems with the
proposed changes and identify potential conflicts or dependencies.
Integration Planning: Develop a plan for seamless integration, ensuring minimal
disruption to existing services.
(iii) Deciding Whether Changes should be Prototyped:
Risk Assessment: Assess the potential risks associated with implementing changes
directly versus prototyping. Consider the complexity of the changes and their
potential impact on the overall system.
Prototyping Benefits: Prototyping can help identify unforeseen consequences, gather
user feedback, and refine the solution before full-scale implementation.
Resource Allocation: Consider the availability of resources and time constraints
when deciding whether to prototype.
(iv) Assessing How to Maintain Important Emergent Properties:
Security Analysis: Evaluate the impact of proposed changes on system security and
develop measures to maintain or enhance security features.
Safety Measures: Implement safeguards to ensure the safety of users and data
during and after the implementation of changes.
Fairness Considerations: Assess the potential impact on fairness and equity, making
adjustments as necessary to maintain or improve these qualities.
(b) Lessons from Failures of Other Public-Sector Systems:
Incremental Implementation: Avoid large-scale, high-risk projects and instead adopt
an incremental approach to implementation. Break down the changes into
manageable phases.
User-Centered Design: Prioritize user needs and involve them in the design and
testing phases to ensure the new system aligns with their requirements.
Effective Communication: Learn from past failures in communication and ensure
clear and transparent communication with the public, stakeholders, and government
agencies.
Robust Testing and Piloting: Implement rigorous testing procedures and consider
piloting changes in specific regions or groups before a nationwide rollout to identify
and address issues early on.
Agile Development: Embrace agile development methodologies to respond quickly to
changing requirements and feedback.
Data Security and Privacy: Learn from data breaches and privacy concerns in other
systems to strengthen security measures and ensure compliance with data
protection regulations.
Continuous Evaluation: Establish mechanisms for continuous evaluation and
improvement, learning from both successes and failures to refine the system over
time.

Ans (5)-- Creating a safety case for autonomous vehicles is a critical step to ensure
their safe deployment on public roads. The government should work closely with
vendors and service providers to establish comprehensive safety standards. Here
are key elements that the safety case should cover:

System Reliability and Redundancy:


Demonstrate the reliability of the autonomous system and the redundancy measures
in place. Outline how the system responds to sensor failures, software glitches, or
other malfunctions without compromising safety.
Sensor Suitability and Calibration:
Provide details on the types of sensors used and their suitability for different driving
conditions describes the calibration process and regular maintenance to ensure
sensor accuracy.
Data Security and Privacy:
Address concerns related to data security and privacy, ensuring that collected data is
protected from unauthorized access. Establish protocols for data retention, sharing,
and anonymization to protect individuals' privacy.
Training and Testing Protocols:
Present a comprehensive plan for training the autonomous system, including
scenarios that simulate diverse and challenging driving conditions. Highlight the
testing protocols followed, both in controlled environments and real-world scenarios.
Real-world Performance Metrics:
Share performance metrics derived from extensive real-world testing, showcasing
the system's ability to handle various road situations. Provide data on the number of
miles covered, incidents encountered, and the system's response to those incidents.
Emergency Response and Human Intervention:
Outline protocols for emergency situations, including how the autonomous vehicle
responds to unforeseen events and the capability for human intervention. Clarify the
transition of control between the autonomous system and human drivers.
Compliance with Regulations:
Ensure that the autonomous vehicle system complies with existing road safety
regulations and standards. Address any additional regulatory requirements specific
to autonomous vehicles.
Public Awareness and Education:
Develop plans for public awareness and education regarding the presence and
behaviour of autonomous vehicles on the roads. Highlight measures taken to inform
and educate both drivers and pedestrians about interacting with autonomous
vehicles.
Liability and Insurance:
Establish guidelines for liability in the case of accidents involving autonomous
vehicles. Work with insurance providers to develop suitable insurance policies that
consider the unique risks associated with autonomous driving.
Continuous Monitoring and Reporting:
Implement a system for continuous monitoring of the autonomous fleet's
performance. Establish reporting mechanisms to promptly share incident data,
software updates, and improvements with relevant authorities.Collaboration between
the government, industry stakeholders, and the public is essential to create a
comprehensive safety case that addresses the unique challenges and opportunities
presented by autonomous vehicles on the roads. Regular updates and reviews of the
safety case will be necessary as technology evolves and more data becomes
available.

You might also like