Sen Answer Class Test 1
Sen Answer Class Test 1
CHH. SAMBHAJINAGAR
Instructions:-
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.
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.
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:
Display Drivers
Printer Drivers
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.
WinRAR
Directory Opus
Disk defragmenter
WinZip
6 .Programming Software
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.
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.
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.
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.
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.
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.
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.
Maintenance: The software is maintained to ensure that it continues to meet the customer’s needs and
expectations.
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.
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:
Activities: Activities are groups of related tasks and actions for a major objective.
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
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
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.
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.
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.
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.
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
-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.
-In this model, the risk factor is higher, so this model is not suitable for more significant and complex
projects.
-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.