You are on page 1of 15

Module Code & Module Title

CS5002NI SOFTWARE ENGINEERING


Examination Weightage & Type
45% Exam Wieght
Year and Semester
2020-21 Spring

Student Name: Mandip Kumar Mandal


London Met ID: 19033689
College ID: NP01CP4S200008
Examination Due Date: 2021-05-26
Examination Submission Date: 2021-05-27

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.

System Design: A back-end software engineer is in charge of building the technical


foundation that enables a designer's vision to become a reality, while a front-end software
engineer is in charge of the program's user interface. When looking at a software
engineer's roles and duties, you'll see things like building back-end infrastructure and
developing algorithms. When designing technological solutions, a software engineer is
still showing creativity; after all, this is what makes so many power technologies
proprietary in the first place.

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.

b) Software product growth is hampered by a lack of strong software engineering


practices. Giving such an individual the task of creating software carries a high risk. A
business could lose a lot of money if the program has bugs. It is possible that such
carelessness in software development will result in the death of a person. Here's an
example of an aircraft attacking the wrong target due to bugs in the system:

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:

Rapid technology advancement: Any technical breakthrough is a blessing to the IT


industry. Simultaneously, technology's rapid advancement increases the pressure on
software development professionals to capitalize on new technology advances in
software product development to gain a competitive edge and stand out in the market.

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.

Time limitations: A shortage of funding or IT infrastructure to successfully conduct projects


is another issue that the majority of software development companies face. This may be
due to a lack of high-performance software development resources, strong computing
platforms, inadequate data storage architectures, or ineffective networking and
communication. Such hindrances bring down the productivity and performance of
software development teams and impact the overall result.

Limited infrastructure/resources: Another challenge that the majority of software


development companies face is a lack of capital or IT infrastructure to successfully
complete projects. This may be due to a lack of high-performance software development
tools, robust computing systems, insufficient data storage architectures, or poor
networking and communication. These roadblocks reduce software development teams'
efficiency and results, affecting the overall outcome.

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.

d) The main processes of requirements elicitation are as follows:

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.

Exciting specifications – It contains features that are beyond customer’s


expectations\sand prove to be very rewarding when present. The following are the main
steps in this procedure:

Determine who all of the stakeholders are.

Make a list of all the customer's specifications.

Each requirement is given a numerical value indicating its significance.

Finally, the list of criteria is categorized as follows: It is possible to accomplish.

It should be postponed, as well as the explanation for it.

It is difficult to do and should be discarded.

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.

An actor is represented by a stick figure.

A use case is represented by an oval.

A relationship between an actor and a use case is represented by a line.

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.

A software project manager's main roles in a leading team are as follows:

Planning of activities and resources

Organizing and empowering a project team is a difficult task.

Time management under control

Estimating costs and creating a budget

Ensure client satisfaction

Identifying and addressing project risks

Progress is being tracked.

Organizing reports and other necessary documents.

b) The limitations of LOC based cost estimation approach are as follows:

• 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=?

Number of personal required=?

LOC (Lines of Code) = 280 KLOC (This is a semi-detached project)

So,

Effort = a * (KLOC)b

= 3.0 * (280)1.12

= 3.0 * 550.58

= 1651.7 person/month

Development time = c* (Effort)d

= 2.5 * (1651.7)0.35

= 2.5 * 13.37

= 33.43 months

Number of personnel = (Effort/Duration)

= (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

Use Case ID: MM_001


Use case Name: register
Created By: Mandip Mandal
Date Created: 2021-05-25
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.
Primary Actor: Walk-in Customer
Secondary Actor Travel Company
Precondition: Customers need to deposit for package.
Post Condition: Travel Company register the customer.

Main Flow/Typical Course of Events


Actor Action System Response
1.The customers fill personal detail and
choice of package.
2. The customers submits personal detail
and choice of package.
3.Travel company verifies the personal
detail and package.
4.Customers deposit for choice of
package.
5.Travel Company check the deposit.
5.The use case ends.

Alternative Course of Action


Actor Action System Response
1.Missing or wrong personal detail and
package.
1.Travel Company ask for personal detail
and package.
2.The use case resumes at main flow
step 1
2.Fail to deposit for choice of package.
1.Travel company ask to fill the right
detail.
2.Use case resumes at main flow step 1.

c)i)High level description for login use case


Name: login
Actor: Internet 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

Use Case ID: MM_003


Use case Name: login
Created By: Mandip Mandal
Date Created: 2021-05-25
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.
Primary Actor: Internet Customer
Secondary Actor Travel Company
Precondition: Customers need to have a valid account.
Post Condition: The system displays the relevant homepage.
Main Flow/Typical Course of Events
Actor Action System Response
1.The customers enters email and
password.
2.The customers submits the email and
password.
3.The system verifies the email and
password.
4.The system takes customers to the
relevant page.
5.The use case ends.

Alternative Course of Action


Actor Action System Response
1.Missing email and/or password.
1.The system prompts for email and
password.
2.The use case resumes at main flow
step 1
2.Inavlid email and/or password
1.The system display “Invalid email
and/or password” message.
2.The system prompts for email and
password.
3.Use case resumes at main flow step 1.
iii)Activity Diagram

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:

Faster development: You'd be able to communicate with stakeholders more effectively,


helping you to build specifications more quickly. Domain analysis will help you
concentrate on the most important topics.

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

You might also like