Professional Documents
Culture Documents
Mandip Kumar Mandal
Mandip Kumar Mandal
I confirm that I understand my coursework needs to be submitted online via Google Classroom under the
relevant module page before the deadline in order for my assignment to be accepted and marked. I am
fully aware that late submissions will be treated as non-submission and a marks of zero will be awarded.
A.1)
a) Research & analysis: Many software developers are forced to build solutions without a
plan, despite their programming skills. Back-end developers may be required to provide
an API in their software stack. This may imply designing user interfaces that are intuitive.
For front-end developers, it's essential to be able to work across multiple browsers. No
matter what the issue is, Software engineers devote a significant amount of time to study,
both programmatically and theoretically. For assistance, solutions and technical
documentation are available.
Implementation: A software engineer's main goal is to incorporate useful code into the
overall product infrastructure. Because most software developers work in teams, they
may be able to focus exclusively on designing specific front-end or back-end components
for a particular product. As a result, it is important for a software engineer to show an
understanding of the implementation protocol as part of their job duties.
Support: Products that have been released to the market are never finished; they need
to be iterated on, supported, and patched on a regular basis. The products that software
engineers build receive ongoing support. This means that if problems arise, such as bugs
or user interface errors, you will know what to do. A software engineer is responsible for
the design, implementation, and evaluation of a solution. This is known as help, and a
software developer collaborates with their QA team to ensure that their project is
consistently supported during the software development lifecycle.
A software vulnerability in Fighter jet was found a few years ago. The bug caused planes
to detect and lock on to the wrong targets when flying in formation.
Each plane in the formation must detect a target from different angles, according to the
company. However, the program was unable to distinguish between single and multiple
targets. Fighter Jet was, in effect, seeing double.
c) The key challenges that are faced in the field of software engineering
today are:
Increasing customer demands: The majority of software projects are conceptual, with the
aim of designing and developing software products that meet a broad variety of customer
needs. Even the most basic application or product necessitates developers'
understanding of the fundamentals. Market definition, as well as the features needed to
meet rising customer demands.
Conflicts with software testing teams: Interpersonal conflicts between the software
development and testing teams are inevitable in a conventional software development
project. Conflicts arise as a result of working under high-performance pressure, varied
mindsets, various job roles, and the diametrically opposite nature of development and
testing. These conflicts, if not adequately handled and managed, could jeopardize the
project's overall success.
Interviews: The aim of conducting an interview is to learn about the software needs of the
customer. Since interviewing any stakeholder is challenging, participants from different
organizations are selected based on their expertise and credibility. Unstructured or
organized interviews are both possible. In open-ended interviews, there is no pre-
determined agenda. To get a better understanding of the issue, you can ask context-free
questions. An agenda of equally open questions is prepared for a formal interview. For
some interviews, a proper questionnaire is developed.
Brainstorming Sessions: Its aim is to generate a lot of new ideas by giving people a place
to express themselves. A highly skilled facilitator is required to handle group bias and
disputes. Finally, a document with a list of requirements and, if appropriate, their priority
is established.
Facilitated Application Specification Technique: Its goal is to close the gap between what
developers believe they can create and what customers believe they will get. Each team
member creates a list, which is then combined, redundant entries are deleted, the team
is divided into smaller sub-teams to create mini-specs, and finally, a draft of requirements
is written based on all of the meeting's inputs.
Quality Function Deployment: Consumer satisfaction is emphasized in this technique,
because it highlights the conditions that are important to the customer. There are three
types of requirements listed –
Normal requirements – This is where the customer and the proposed software's objective
and goals are discussed.
Expected specifications – These are so clear that the customer does not need to state
them directly.
Use case approach: This method uses text and photographs to help people better
understand the requirements. The usage cases clarify the 'what' of a method rather than
the 'how.' As a result, they just have a working understanding of the process. The three
key components of the use case design are the actor, use cases, and use case diagram.
Actor – An external agent is someone that exists outside of the system but communicates
with it in some way. An actor may be a human, a computer, or something else entirely.
Actors may be either primary or secondary.
Use case: They explain the order in which actors and the system interact. They document
who (actors) interacts with the system. All possible ways to use the framework are defined
in a full collection of use cases.
Use case diagram: When actor communicates with a device, a use case diagram
graphically depicts what happens. It encapsulates the system's functionality.
4.a) The four Ps (People, Process, Product and Project) of effective Software Project
Management.
People: From the project manager to the creator, and from the client to the final customer,
the people involved in a project are diverse. People who work on a project, on the other
hand, are more likely to concentrate on the programmers. As a result, having highly
qualified and well-intentioned developers working on the app package is critical. The
following people are involved in the software development process.
Senior Managers
Project Managers
Practitioners
Customers
End-User
Process: A package approach lays the groundwork for putting together a comprehensive
package development plan. Thanks to many different task sets—tasks, milestones, job
products, and quality assurance points—the framework activities can be adapted to the
characteristics of the package project and, as a result, the needs of the project team.
Finally, umbrella practices gain traction as a process model.
Product: A product is a term used to describe any package that needs to be made. In
order to develop successfully, product objectives and scope must be established, various
solutions must be considered, and technical and management constraints must be
understood. Without this information, it is impossible to develop cost-effective and
accurate price estimates, a sound risk evaluation, a logical breakdown of project activities,
or a manageable project schedule that provides a clear indicator of progress.
Project: The manager is required to perform certain tasks in this situation. A project is a
set of steps in which we must make correct decisions in order to complete the project
successfully.
• Only source lines that come with the product are included; test drivers and other
support software are not included.
• The project team creates the source lines. Application generator code isn't allowed
to be used.
• One is a single line of code or a single picture on a card.
• Only instructions can be counted as declarations.
• Comments do not qualify as directions.
c)
Effort(pm)=?
Development Time=?
So,
Effort = a * (KLOC)b
= 3.0 * (280)1.12
= 3.0 * 550.58
= 1651.7 person/month
= 2.5 * (1651.7)0.35
= 2.5 * 13.37
= 33.43 months
= (1651.7/33.43)
= 49.41 person
Therefore, 49.41 people are required to finish the project in 33.43 months.
B.1)
a) Produce a Use Case diagram for the Dream Tour system.
b)i)High level description for register use case
Name: register
Actor: Walk-in Customer
Description: Customer visits Dream tours. Customer fill the personal detail. Select their
choice of package and register their destination and make a deposit for it.
ii) Expaned Use Case
B.2)
a) Domain analysis is the process by which a software engineer explores context
awareness. He or she must gain enough expertise to understand the problem and make
good decisions during the requirements analysis and other stages of the software
engineering process. The word "domain" refers to the general field of interest in this case.
Consumers expect to use applications in industry or technology. Several domains, "Airline
reservations," "medical diagnosis," and "financial review" are only a few examples. a big
Others, including "paint manufacturing" or "meeting scheduling," are more descriptive.
People who work in an area and have a thorough understanding of it (or a portion of it)
are domain experts. Domain experts are people who specialize in a particular field. Many
of these people have the ability to be users or customers. Domain research entails
collecting information from a variety of sources, including domain experts, books on the
subject, current software and documentation, and any other documents he or she might
come across. The approaches to questioning, brainstorming, and use case analysis
discussed later in this chapter will help with domain study. Object-oriented modeling,
which is discussed in the following chapter, may also be useful. As a software engineer,
you are not expected to become an expert in the subject, but domain research can be
time-consuming. This thesis would be worthwhile because of the following advantages:
Better system: Realizing the complexities of the domain will aid you in ensuring that the
solutions you use will successfully solve the customer's dilemma. You'll make less
mistakes and understand which procedures and instructions to follow. The study will give
you a complete picture of the application domain, helping you to make better abstractions
and, as a result, better designs.
Anticipation of extensions: If you have domain experience, you will gain insights into
emerging trends and future growth opportunities. This will allow you to build a system that
is more adaptable.
b) A Communication (Collaboration) Diagram for the Manage Premium User Use Case