0% found this document useful (0 votes)
71 views

Sen Answer Class Test 1

The document is a test paper for the Software Engineering course for the fourth semester AN Engineering program. It contains 3 questions - the first asks students to attempt 4 out of 6 short questions, the second asks students to attempt 3 out of 4 longer questions. The questions test students' understanding of software engineering concepts and processes like software requirements specifications, types of software, software failure curves, layered technology approaches, and agile methodologies.

Uploaded by

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

Sen Answer Class Test 1

The document is a test paper for the Software Engineering course for the fourth semester AN Engineering program. It contains 3 questions - the first asks students to attempt 4 out of 6 short questions, the second asks students to attempt 3 out of 4 longer questions. The questions test students' understanding of software engineering concepts and processes like software requirements specifications, types of software, software failure curves, layered technology approaches, and agile methodologies.

Uploaded by

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

Shreeyash Pratishthan’s

SHREEYASH COLLEGE OF ENGINEERING & TECHNOLOGY


(POLYTECHNIC),

CHH. SAMBHAJINAGAR

Academic Year:- 2023-24

MSBTE Class Test-I

Program Name : AN Engineering Program Group Program Code : AN

Semester : FOURTH Course Title : Software Engineering Course Code:- 22413


Max Marks :- 20 Time:- 1Hour

Instructions:-

1) Square bracket indicates course outcomes


2) All Questions are Compulsory
3) Assume suitable data, if necessary.

Que.1 Attempt any FOUR. (08 Marks)

a. define software. Draw the failure curve for software? [22413.1]


b. Define software requirement specification(SRS)? [22413.1]
c. List any four types of software? [22413.1]
d. Describe the layered technology approach of software engineering? [22413.1]
e. Describe core principles of software engineering? [22413.2]
f. What is Agile process? Write features of agile software development approach? [22414.1]

Que.1 Attempt any THREE. (12 Marks)

a. .explain concept of extreme programming (XP)? [22414.1]


b. What is process framework? Explain with suitable diagram? [22414.1]
c. Differentiate between prescriptive process model and agile process model? [22414.1]
d. Explain waterfall process model. State its advantages and disadvantages.? [22414.1]
a.define software. Draw the failure curve for software?

Ans:- Software is responsible for directing all computer-related devices and instructing them regarding
what and how the task is to be performed. However, the software is made up of binary language
(composed of ones and zeros), and for a programmer writing the binary code would be a slow and
tedious task. Therefore, software programmers write the software program in various human-readable
languages such as Java, Python, C#, etc. and later use the source code.

Software Engineering, the concept of a software failure curve is part of the hardware bathtub curve.
According to the diagram, the failure rate is a function of time for Hardware. This curve shows that
hardware exhibits a relatively high failure rate early in its life (these failures are often design or
manufacturing defects); defects are corrected, and the failure rate drops to a steady-state level for some
time.

After some time according to time passes, the failure rate rises again as hardware components suffer
from multiple effects and many other environmental maladies. Stated simply, the hardware begins to
wear out.

When we look at (Figure-B) the failure rate vs. time graph of the software initially, the failure rate is high
due to defects and we correct these defects then the failure rate is reduced and fixed, but this is an
idealized curve and it never happens in real life scenario. The actual curve is drawn above the idealized
curve in the actual software curve initially the failure rate is high because of undetected defects and
when we correct these defects then steady leave is started as we know changes are very common in the
software when we added these changes this failure rate will increase due to update in the code and
addition of new defects when this failure is increased we corrected all the defects and failure rate comes
down this process continuously goes on and no wear out situation occur in the graph.

b. Define software requirement specification(SRS)?

Ans:- Software Requirement Specification A software requirements specification (SRS) is a detailed


description of a software system to be developed with its functional and non-functional requirements.
The SRS is developed based the agreement between customer and contractors. It may include the use
cases of how user is going to interact with software system. The software requirement specification
document consistent of all necessary requirements required for project development. To develop the
software system we should have clear understanding of Software system. To achieve this we need to
continuous communication with customers to gather all requirements. A good SRS defines the how
Software System will interact with all internal modules, hardware, communication with other programs
and human user interactions with wide range of real life scenarios. Using the Software requirements
specification (SRS) document on QA lead, managers creates test plan. It is very important that testers
must be cleared with every detail specified in this document in order to avoid faults in test cases and its
expected results.

Following are the features of a good SRS document:

1. Correctness: User review is used to provide the accuracy of requirements stated in the SRS. SRS is
said to be perfect if it covers all the needs that are truly expected from the system.

2. Completeness: The SRS is complete if, and only if, it includes the following elements:

3. Consistency: The SRS is consistent if, and only if, no subset of individual requirements described in its
conflict.

4.Modifiability: SRS should be made as modifiable as likely and should be capable of quickly obtain
changes to the system to some extent. Modifications should be perfectly indexed and cross-referenced.
5. Verifiability: SRS is correct when the specified requirements can be verified with a costeffective
system to check whether the final software meets those requirements. The requirements are verified
with the help of reviews.

6.Traceability: The SRS is traceable if the origin of each of the requirements is clear and if it facilitates
the referencing of each condition in future development or enhancement documentation.

c. List any four types of software?

Above is the diagram of types of software. Now we will briefly describe each type and its subtypes:

1. System Software:- System software is a computer program that helps the user to run computer
hardware or software and manages the interaction between them. Essentially, it is software
that constantly runs in the computer background, maintaining the computer hardware and computer's
basic functionalities, including the operating system, utility software, and interface.

2. Operating System:- The operating system is the most prominent example of system software that acts
as an interface between the user and system hardware. It is a group of software that handles the
execution of programs and offers general services for the application that runs over the
computer. There are various types of operating systems available in the market, such as embedded
operating systems, real-time OS, distributed OS, single or multi-user operating system, mobile, Internet,
and various others.

3.Device Driver:- In computing, the device driver is a type of software that operates or controls some
specific hardware devices linked to your system. They provide a software interface to hardware devices
allowing computer operating systems and other applications to fetch hardware functions without
knowing the exact specifications of the hardware. Some common examples of such device drivers that
connect hardware devices (printers, sound cards, network cards, hard disks, floppy disk, keyboard,
mouse, etc.) to a system easily are as follows:

BIOS (Basic Input/Output System) Device Driver

USB (Universal Serial Bus) Drivers


Motherboard Drivers

Display Drivers

Printer Drivers

4.Application Software:- Application programs or software applications are end-user computer


programs developed primarily to provide specific functionality to the user. The applications programs
assist the user in accomplishing numerous tasks such as doing online research, completing notes,
designing graphics, managing the finances, watching a movie, writing documents, playing games, and
many more. Therefore, many software applications are designed and developed every year by
companies as per the demand and requirements of the potential users. The application software can
either be designed for a general-purpose or specially coded as per the requirements of business
cooperation.

5. Utility Software:- Utility software is developed to provide support in analyzing, optimizing, along
configuring and maintaining a computer. The job of the utility program is to offer support to the system
infrastructure. Though the system will work even if it doesn't have any utility software, the right kind of
utility software enhances its performance and makes it more reliable.

Some of the common examples of utility software are as follows:

Norton and McAfee Antivirus

WinRAR

Directory Opus

Disk defragmenter

WinZip

6 .Programming Software

d. Describe the layered technology approach of software engineering? [22413.1]

Ans : is a fully layered technology, to develop software we need to go from one layer to another. All the
layers are connected and each layer demands the fulfillment of the previous layer.

Fig: The diagram shows the layers of software development

Layered technology is divided into four parts:


1. A quality focus: It defines the continuous process improvement principles of software. It provides
integrity that means providing security to the software so that data can be accessed by only an
authorized person, no outsider can access the data. It also focuses on maintainability and usability.

2. Process: It is the foundation or base layer of software engineering. It is key that binds all the layers
together which enables the development of software before the deadline or on time. Process defines a
framework that must be established for the effective delivery of software engineering technology. The
software process covers all the activities, actions, and tasks required to be carried out for software
development.

3. Method: During the process of software development the answers to all “how-to-do” questions are
given by method. It has the information of all the tasks which includes communication, requirement
analysis, design modeling, program construction, testing, and support.

4. Tools: Software engineering tools provide a self-operating system for processes and methods. Tools
are integrated which means information created by one tool can be used by another.

e. Describe core principles of software engineering?

Ans:- is the systems engineering approach for software product/application development. It is an


engineering branch associated with analyzing user requirements, design, development, testing, and
maintenance of software products.

Some basic principles of good software engineering are –

1.One of the basic software Engineering principles is Better Requirement analysis which gives a clear
vision of the project. At last, a good understanding of user requirements provides value to its users by
delivering a good software product that meets users’ requirements.

2.All designs and implementations should be as simple as possible mean the KISS (Keep it Simple, Stupid)
principle should be followed. It makes code so simple as a result debugging and further maintenance
become simple.

3.Maintaining the vision of the project is the most important thing throughout complete development
process for the success of a software project. A clear vision of the project leads to the development of
the project in the right way.

4.Software projects include a number of functionalities, all functionalities should be developed in a


modular approach so that development will be faster and easier. This modularity makes functions or
system components independent.

5.Another specialization of the principle of separation of concerns is Abstraction for suppressing


complex things and delivering simplicity to the customer/user means it gives what the actual user needs
and hides unnecessary things.
6.Think then Act is a must-required principle for software engineering means before starting developing
functionality first it requires to think about application architecture, as good planning on the flow of
project development produces better results.
Sometimes developer adds up all functionalities together but later find no use of that. So following the
Never add extra principle is important as it implements what actually needed and later implements
what are required which saves effort and time.
When other developers work with another’s code they should not be surprised and should not waste
their time in getting code. So providing better Documentation at required steps is a good way of
developing software projects.

f. What is Agile process? Write features of agile software development approach?

Ans:-Agile Software Development is a software development methodology that values flexibility,


collaboration, and customer satisfaction. It is based on the Agile Manifesto, a set of principles for
software development that prioritize individuals and interactions, working software, customer
collaboration, and responding to change.

Agile Software Development is an iterative and incremental approach to software development that
emphasizes the importance of delivering a working product quickly and frequently. It involves close
collaboration between the development team and the customer to ensure that the product meets their
needs and expectations.

Principles of Agile:

1.The highest priority is to satisfy the customer through early and continuous delivery of valuable
software.

2.It welcomes changing requirements, even late in development.

3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference
for the shortest timescale.

4.Build projects around motivated individuals. Give them the environment and the support they need
and trust them to get the job done.

5.Working software is the primary measure of progress.

6.Simplicity the art of maximizing the amount of work not done is essential.

7.The most efficient and effective method of conveying information to and within a development team
is face-to-face conversation.

8.By the amount of work that has been finished, gauge your progress.

9.Never give up on excellence.

10.Take advantage of change to gain a competitive edge.

The Agile Software Development Process:


Agile Software Development

Requirements Gathering: The customer’s requirements for the software are gathered and prioritized.

Planning: The development team creates a plan for delivering the software, including the features that
will be delivered in each iteration.

Development: The development team works to build the software, using frequent and rapid iterations.

Testing: The software is thoroughly tested to ensure that it meets the customer’s requirements and is of
high quality.

Deployment: The software is deployed and put into use.

Maintenance: The software is maintained to ensure that it continues to meet the customer’s needs and
expectations.

Que.2 Attempt any THREE. (12 Marks)

A.explain concept of extreme programming (XP)?

Ans:-Extreme programming (XP) is one of the most important software development frameworks of
Agile models. It is used to improve software quality and responsiveness to customer requirements. The
extreme programming model recommends taking the best practices that have worked well in the past in
program development projects to extreme levels.

Good practices need to be practiced in extreme programming: Some of the good practices that have
been recognized in the extreme programming model and suggested to maximize their use are given
below:

Code Review: Code review detects and corrects errors efficiently. It suggests pair programming as
coding and reviewing of written code carried out by a pair of programmers who switch their work
between them every hour.

Testing: Testing code helps to remove errors and improves its reliability. XP suggests test-driven
development (TDD) to continually write and execute test cases. In the TDD approach, test cases are
written even before any code is written.

Incremental development: Incremental development is very good because customer feedback is gained
and based on this development team comes up with new increments every few days after each
iteration.

Simplicity: Simplicity makes it easier to develop good-quality code as well as to test and debug it.

Design: Good quality design is important to develop good quality software. So, everybody should design
daily.

Integration testing: It helps to identify bugs at the interfaces of different functionalities. Extreme
programming suggests that the developers should achieve continuous integration by building and
performing integration testing several times a day.
 Basic principles of Extreme programming: XP is based on the frequent iteration through which
the developers implement User Stories. User stories are simple and informal statements of the
customer about the functionalities needed. A User Story is a conventional description by the
user of a feature of the required system. It does not mention finer details such as the different
scenarios that can occur. Based on User stories, the project team proposes Metaphors.
Metaphors are a common vision of how the system would work. The development team may
decide to build a Spike for some features. A Spike is a very simple program that is constructed to
explore the suitability of a solution being proposed. It can be considered similar to a prototype.
Some of the basic activities that are followed during software development by using the XP
model are given below:

Coding: The concept of coding which is used in the XP model is slightly different from traditional coding.
Here, the coding activity includes drawing diagrams (modeling) that will be transformed into code,
scripting a web-based system, and choosing among several alternative solutions.

Testing: The XP model gives high importance to testing and considers it to be the primary factor in
developing fault-free software.

Listening: The developers need to carefully listen to the customers if they have to develop good quality
software. Sometimes programmers may not have the depth knowledge of the system to be developed.
So, the programmers should understand properly the functionality of the system and they have to listen
to the customers.

Designing: Without a proper design, a system implementation becomes too complex, and very difficult
to understand the solution, thus making maintenance expensive. A good design results elimination of
complex dependencies within a system. So, effective use of suitable design is emphasized.

Feedback: One of the most important aspects of the XP model is to gain feedback to understand the
exact customer needs. Frequent contact with the customer makes the development effective.

Simplicity: The main principle of the XP model is to develop a simple system that will work efficiently in
the present time, rather than trying to build something that would take time and may never be used. It
focuses on some specific features that are immediately needed, rather than engaging time and effort on
speculations of future requirements.

Pair Programming: XP encourages pair programming where two developers work together at the same
workstation. This approach helps in knowledge sharing, reduces errors, and improves code quality.

Continuous Integration: In XP, developers integrate their code into a shared repository several times a
day. This helps to detect and resolve integration issues early on in the development process.

Refactoring: XP encourages refactoring, which is the process of restructuring existing code to make it
more efficient and maintainable. Refactoring helps to keep the codebase clean, organized, and easy to
understand.

Collective Code Ownership: In XP, there is no individual ownership of code. Instead, the entire team is
responsible for the codebase. This approach ensures that all team members have a sense of ownership
and responsibility towards the code.

Planning Game: XP follows a planning game, where the customer and the development team
collaborate to prioritize and plan development tasks. This approach helps to ensure that the team is
working on the most important features and delivers value to the customer.
On-site Customer: XP requires an on-site customer who works closely with the development team
throughout the project. This approach helps to ensure that the customer’s needs are understood and
met, and also facilitates communication and feedback.

b.What is process framework? Explain with suitable diagram?

Ans : Software Process Framework 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: They focus on a small, specific objective.

Action: It is a set of tasks that produce a major work product.

Activities: Activities are groups 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.

1. Communication

By communication, customer requirement gathering is done. Communication with consumers and


stakeholders to determine the system’s objectives and the software’s requirements.

2. Planning

Establish engineering work plan, describes technical risk, lists resources requirements, work produced
and defines work schedule.

3. Modeling

Architectural models and design to better understand the problem and to work towards the best
solution. The software model is prepared by:

Analysis of requirements

Design

4. Construction

Creating code, testing the system, fixing bugs, and confirming that all criteria are met. The software
design is mapped into a code by:

Code generation

Testing

5. 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.

Umbrella Activities

Umbrella Activities are that take place during a software development process for improved project
management and tracking.

Software project tracking and control: This is an activity in which the team can assess progress and take
corrective action to maintain the schedule. Take action to keep the project on time by comparing the
project’s progress against the plan.

Risk management: The risks that may affect project outcomes or quality can be analyzed. Analyze
potential risks that may have an impact on the software product’s quality and outcome.

Software quality assurance: These are activities required to maintain software quality. Perform actions
to ensure the product’s quality.
Formal technical reviews: It is required to assess engineering work products to uncover and remove
errors before they propagate to the next activity. At each level of the process, errors are evaluated and
fixed.

Software configuration management: Managing of configuration process when any change in the
software occurs.

Work product preparation and production: The activities to create models, documents, logs, forms, and
lists are carried out.

Reusability management: It defines criteria for work product reuse. Reusable work items should be
backed up, and reusable software components should be achieved.

Measurement: In this activity, the process can be defined and collected. Also, project and product
measures are used to assist the software team in delivering the required software.

c.Differentiate between prescriptive process model and agile process model?

Agile model Vs Waterfall model:

Agile model prescriptive process model (Waterfall model)

The waterfall model is highly structured and


The agile model is an incremental delivery
systematically steps through requirements gathering,
process where each incremental delivered
analysis, SRS document preparation, design, coding, and
part is developed through an iteration after
testing in a planned manner. These phases of the
each timebox.
Waterfall model follow a sequential order.

In the Waterfall model, progress is generally measured


While using an agile model, progress is in terms of the number of completed and reviewed
measured in terms of the developed and artifacts such as requirement specifications, design
delivered functionalities. documents, test plans, code reviews, etc. for which
review is complete.

With the agile model, even if a project is


If a project is developed using the waterfall model is
canceled midway, it still leaves the
canceled mid-way during development, then there is
customer with some worthwhile code, that
nothing to show from the abandoned project beyond
might possibly have already been put into
several documents.
live operation.

The agile model allows to change the


The waterfall model is rigid, it does not allow to change
requirements after the development
requirements after the development process starts.
process starts, so it is more flexible.

Customer interaction is very high. After Customer interaction is very less. The product is
Agile model prescriptive process model (Waterfall model)

each iteration, an incremental version is delivered to the customer after the overall
deployed to the customer. development is completed.

The lack of proper formal documentation In the Waterfall model, proper documentation is very
leaves ample scope for confusion and important, which gives a clear idea of what should be
important decisions taken during various done to complete the project and it also serves as an
phases can be misinterpreted in fewer later agreement between the customer and the development
phases. team.

The agile team consists less members (5 to


In the Waterfall model, teams may consist of more
9 people), but they coordinate and interact
members but the interaction between them is limited.
with others very frequently.

The agile model is not suitable for small


This model is simple to use and understand but not
projects as the expenses of developing
suitable for developing large projects using the
small projects using it is more compared to
Waterfall model.
other models.

The testing is done simultaneously with


After the Build Step, testing is done.
software development.

It is a systematic developing method, sometimes


It is known for its versatility.
rigorous.

Testing is generally carried out in


The test approach is rarely used in this method.
conjunction with the development phase.

d.Explain waterfall process model. State its advantages and disadvantages.? [22414.1]

Ans:- The waterfall model is a software development model used in the context of large, complex
projects, typically in the field of information technology. It is characterized by a structured, sequential
approach to project management and software development.

The waterfall model is useful in situations where the project requirements are well-defined and the
project goals are clear. It is often used for large-scale projects with long timelines, where there is little
room for error and the project stakeholders need to have a high level of confidence in the outcome.
Features of Waterfall Model

Sequential Approach: The waterfall model involves a sequential approach to software development,
where each phase of the project is completed before moving on to the next one.

Document-Driven: The waterfall model relies heavily on documentation to ensure that the project is
well-defined and the project team is working towards a clear set of goals.

Quality Control: The waterfall model places a high emphasis on quality control and testing at each
phase of the project, to ensure that the final product meets the requirements and expectations of the
stakeholders.

Rigorous Planning: The waterfall model involves a rigorous planning process, where the project scope,
timelines, and deliverables are carefully defined and monitored throughout the project lifecycle.

Phases of Waterfall Model

Waterfall Model is a classical software development methodology that was first introduced by Winston
W. Royce in 1970. It is a linear and sequential approach to software development that consists of several
phases that must be completed in a specific order.

The Waterfall Model has six phases:

1. Requirements Gathering and Analysis: The first phase involves gathering requirements from
stakeholders and analyzing them to understand the scope and objectives of the project.

2. Design Phase: Once the requirements are understood, the design phase begins. This involves creating
a detailed design document that outlines the software architecture, user interface, and system
components.

3. Implementation and Unit Testing: The implementation phase involves coding the software based on
the design specifications. This phase also includes unit testing to ensure that each component of the
software is working as expected.

4. Integration and System Testing: In the testing phase, the software is tested as a whole to ensure that
it meets the requirements and is free from defects.

5. Deployment: Once the software has been tested and approved, it is deployed to the production
environment.

6. Maintenance: The final phase of the Waterfall Model is maintenance, which involves fixing any issues
that arise after the software has been deployed and ensuring that it continues to meet the requirements
over time.

The classical waterfall model divides the life cycle into a set of phases. This model considers that one
phase can be started after the completion of the previous phase. That is the output of one phase will be
the input to the next phase. Thus the development process can be considered as a sequential flow in the
waterfall. Here the phases do not overlap with each other. The different sequential phases of the
classical waterfall model are shown in the below figure.
Phases of Classical Waterfall Model

Advantages of Waterfall model

-This model is simple to implement also the number of resources that are required for it is minimal.

-The requirements are simple and explicitly declared; they remain unchanged during the entire project
development.

-The start and end points for each phase is fixed, which makes it easy to cover progress.

-The release date for the complete product, as well as its final cost, can be determined before
development.

-It gives easy to control and clarity for the customer due to a strict reporting system.

Disadvantages of Waterfall model

-In this model, the risk factor is higher, so this model is not suitable for more significant and complex
projects.

-This model cannot accept the changes in requirements during development.

-It becomes tough to go back to the phase. For example, if the application has now shifted to the coding
phase, and there is a change in requirement, It becomes tough to go back and change it.

-Since the testing done at a later stage, it does not allow identifying the challenges and risks in the
earlier phase, so the risk reduction strategy is difficult to prepare.

You might also like