You are on page 1of 8

21CS2111RA - Software Engineering

Answer Key - Sem –in-1


CO-1
1.Explain the failure curves for both software and hardware

A failure that occurs when the user perceives that the software has ceased to
deliver the expected result with respect to the specification input values. The user may
need to identify the severity of the levels of failures such as catastrophic, critical, major or
minor, depending on their impact on the systems.
The bathtub curve is widely used in reliability engineering and deterioration
modeling. It describes a particular form of the hazard function which comprises three parts:
The first part is a decreasing failure rate, known as early failures. The second part is a
constant failure rate, known as random failures.

2.Explain the characteristics of Software?

Software is defined as a collection of computer programs, procedures, rules, and data.


Software Characteristics are classified into six major components:

Software engineering is the process of designing, developing, testing, and maintaining


software. The characteristics of software include:

1. It is intangible, meaning it cannot be seen or touched.


2. It is non-perishable, meaning it does not degrade over time.
3. It is easy to replicate, meaning it can be copied and distributed easily.
4. It can be complex, meaning it can have many interrelated parts and features.

3.Explain how umbrella activities are helpful while developing the software

Software engineering is a collection of interconnected phases. These steps are expressed or


available in different ways in different software process models. Umbrella activities are a
series of steps or procedures followed by a software development team to maintain the
progress, quality, changes, and risks of complete development tasks. These steps of umbrella
activities will evolve through the phases of the generic view of software development.

The activities in the software development process are supplemented by many general
activities. Generally, common activities apply to the entire software project and help the
software development team manage and track progress, quality, changes, and risks.

Umbrella activities consist of different tasks:

 Software Project Tracking and Control


 Formal Technical Reviews
 Software Quality Assurance
 SCM or Software configuration management
 Document Preparation and Production
 Re-usability Management
 Measurement and Metrics
 Risk Management

4.Explain all the generic view phases in software engineering.


Engineering is the analysis, design, construction, verification, and management of technical
(or social) entities. Regardless of the entity to be engineered, the following questions must be
asked and answered:

What is the problem to be solved?

What characteristics of the entity are used to solve the problem?

How will the entity (and the solution) be realized?

How will the entity be constructed?

What approach will be used to uncover errors that were made in the design
and construction of the entity?

How will the entity be supported over the long term, when corrections, adaptations,
and enhancements are requested by users of the entity.
The work associated with software engineering can be categorized into three generic phases,
regardless of application area, project size, or complexity. Each phase addresses one or more
of the questions noted previously.
The definition phase focuses on what. That is, during definition, the software engineer
attempts to identify what information is to be processed, what function and performance are
desired, what system behavior can be expected, what interfaces are to be established, what
design constraints exist, and what validation criteria are required to define a successful
system. The key requirements of the system and the software are identified. Although the
methods applied during the definition phase will vary depending on the software engineering
paradigm (or combination of paradigms) that is applied, three major tasks will occur in some
form: system or information engineering, software project planning, and requirements
analysis .

The development phase focuses on how. That is, during development a software engineer
attempts to define how data are to be structured, how function is to be implemented within a
software architecture, how procedural details are to be implemented, how interfaces are to be
characterized, how the design will be translated into a programming language (or
nonprocedural language), and how testing will be performed. The methods applied during the
development phase will vary, but three specific technical tasks should always occur: software
design, code generation,and software testing.

5a.Summarize Management Software Myths and realities in software


engineering

Management Software Myths

The manager who is responsible for developing software is often under pressure regarding
many attributes of the software such as:

 The budget of the software.


 Delivering the software within the time limit.
 Enhance the quality of the software.
 Providing customer care services, etc.

Under such pressure, even the software manager develops belief in a software myth that
lessens. These software myths grasped by the software manager lessen his pressure up to a
certain level but this is temporary.

5b .Explain how process framework activities are helpful while developing the
Software

Software Process Framework is an abstraction of the software development process. It


details the steps and chronological order of a process. Since it serves as a foundation for
them, it is utilized in most applications. Task sets, umbrella activities, and process framework
activities all define the characteristics of the software development process.

Software process includes:

 Tasks – focus on a small, specific objective.


 Action – set of tasks that produce a major work product.
 Activities – group of related tasks and actions for a major objective.

Software Process Framework

Process Framework Activities:

The process framework is required for representing common process activities. Five
framework activities are described in a process framework for software engineering.
Communication, planning, modeling, construction, and deployment are all examples of
framework activities. Each engineering action defined by a framework activity comprises a
list of needed work outputs, project milestones, and software quality assurance (SQA) points.

 Communication: By communication, customer requirement gathering is done.


Communication with consumers and stakeholders to determine the system’s
objectives and the software’s requirements.
 Planning: Establish engineering work plan, describes technical risk, lists resources
requirements, work produced and defines work schedule.
 Modeling: Architectural models and design to better understand the problem and for
work towards the best solution. The software model is prepared by:
o Analysis of requirements
o Design
 Construction: Creating code, testing the system, fixing bugs, and confirming that all
criteria are met. The software design is mapped into a code by:
o Code generation
o Testing
 Deployment: In this activity, a complete or non-complete product or software is
represented to the customers to evaluate and give feedback. On the basis of their
feedback, we modify the product for the supply of better products.

6. Design a Use case and class diagram for library management system and
detail its Procedure

7..Define Reverse Engineering and Forward Engineering

Forward Engineering:

Forward Engineering is a method of creating or making an application with the help of the
given requirements. Forward engineering is also known as Renovation and Reclamation.
Forward engineering requires high proficiency skills. It takes more time to construct or
develop an application. Forward engineering is a technique of creating high-level models or
designs to make in complexities and low-level information. Therefore this kind of
engineering has completely different principles in numerous package and information
processes. Forward Engineering applies of all the software engineering process which
contains SDLC to recreate associate existing application. It is near to full fill new needs of
the users into re-engineering.
Reverse Engineering:

Reverse Engineering is also known as backward engineering, is the process of forward


engineering in reverse. In this, the information is collected from the given or existing
application. It takes less time than forward engineering to develop an application. In reverse
engineering, the application is broken to extract knowledge or its architecture.

8.Define Requirements Engineering and list out the seven distinct task of
Requirement Engineering

Requirements engineering is a broad domain that focuses on being the connector between
modeling, analysis, design, and construction. It is the process that defines, identifies,
manages, and develops requirements in a software engineering design process. This process
uses tools, methods, and principles to describe the system’s behavior and the constraints that
come along with it.

Requirements engineering is the most important part every business must follow, in order to
build and release a project successfully, as it is the foundation to key planning and
implementation.

Requirements Engineering Process

Requirements Engineering Tasks: The software requirements engineering process includes


the following steps of activities:

1. Inception
2. Elicitation
3. Elaboration
4. Negotiation
5. Specification
6. Validation
7. Requirements Management
9.Explain how is Refactoring useful in the agile development process

Agile is a type of software development methodology that anticipates the need for flexibility
and applies a level of pragmatism to the delivery of the finished product. Agile software
development requires a cultural shift in many companies because it focuses on the clean
delivery of individual pieces or parts of the software and not on the entire application.

Benefits of Agile include its ability to help teams in an evolving landscape while maintaining
a focus on the efficient delivery of business value. The collaborative culture facilitated by
Agile also improves efficiency throughout the organization as teams work together and
understand their specific roles in the process. Finally, companies using Agile software
development can feel confident that they are releasing a high-quality product because testing
is performed throughout development. This provides the opportunity to make changes as
needed and alert teams to any potential issues.

Agile has largely replaced waterfall as the most popular development methodology in most
companies, but is itself at risk of being eclipsed or consumed by the growing popularity
of DevOps.

10. Outline the principles of Agile Model in the process of software


development

 Model With a Purpose. ...


 Adopt Simplicity. ...
 Embrace Change. ...
 Your Secondary Goal is Enabling the Next Effort. ...
 Incremental Change. ...
 Maximize Stakeholder Investment. ...
 Remember the Existence of Multiple Models. ...
 Produce Quality Work.

11. a) Set out a Plan for establishing the ground work in requirement engineering

11. b) Explain Contrast “Functional and Non- Functional Requirements

Functional Requirements

Functional requirements define a function that a system or system element must be qualified
to perform and must be documented in different forms. The functional requirements describe
the behavior of the system as it correlates to the system's functionality.
Functional requirements should be written in a simple language, so that it is easily
understandable. The examples of functional requirements are authentication, business rules,
audit tracking, certification requirements, transaction corrections, etc.

These requirements allow us to verify whether the application provides all functionalities
mentioned in the application's functional requirements. They support tasks, activities, user
goals for easier project management.

There are a number of ways to prepare functional requirements. The most common way is
that they are documented in the text form. Other formats of preparing the functional
requirements are use cases, models, prototypes, user stories, and diagrams.

Non-functional requirements

Non-functional requirements are not related to the software's functional aspect. They can be
the necessities that specify the criteria that can be used to decide the operation instead of
specific behaviors of the system. Basic non-functional requirements are - usability, reliability,
security, storage, cost, flexibility, configuration, performance, legal or regulatory
requirements, etc.

They are divided into two main categories:

Execution qualities like security and usability, which are observable at run time.

Evolution qualities like testability, maintainability, extensibility, and scalabilit

12. a) Identify the Role of the use cases diagrams in creation of behavioural
model for withdrawing the money from bank ATM

12. b) Discuss various steps in negotiation requirements


Requirements negotiation is performed to address conflicts over business requirements to achieve
a shared vision of software to be developed.

You might also like