Professional Documents
Culture Documents
Program :- MCA
Semester:- 3RD
SET- 1
principles of software engineering :- Alan Davis (1994) is one of the earlier authorities to
bring forward a set of principles of software engineering.
• Determine the problem before writing the requirements: In thisprinciple, before the software
engineering rush to offer the solution, ensure that the problem is well understood.
Then explore the potential solution and various alternatives. This principle emphasizes the
need to understand the problem well before documenting requirements
• Evaluate design alternatives: After the requirements are understood and agreed upon,
explore a variety of design architecture and related algorithms. Ensure that the selected
design and algorithms are the best choice to satisfy the goals of the requirement.
(B) Software Development Life Cycle (SDLC) is a framework that defines activities that
are performed during the software development process. There are 6 phases in SDLC model
as given below.
1. Requirement: In this phase, all the requirements are collected from the customer/client.
They are provided in a document called Businessmen requirement specification (BRS) and
System requirement specification (SRS). All the details are discussed with the
customer/client in detail.
2. Design: It has two steps:
High-level design (HLD): It gives the architecture of software products.
Low-level design (LLD): It describes how each and every feature in the product should
work and every component.
3. Implementation:
This is the longest phase.
This phase consists of Front end + Middleware + Back-end.
In front-end: Development of coding is done even SEO settings are done.
In Middleware: They connect both the front end and back end.
In the back-end: A database is created.
4. Testing: Testing is carried out to verify the entire system. The aim of the tester is to find
out the gaps and defects within the system and also to check whether the system is running
according to the requirement of the customer/client.
5. Deployment: After successful testing, the product is delivered/deployed to the client,
and even clients are trained on how to use the product.
6. Maintenance: Once the product has been delivered to the client a task of maintenance
starts as when the client will come up with an error the issue should be fixed from time to
time.
ANS.2 (A) software process, project, and product :- Software engineering comprises
interrelated and recurring entities, which are essential for software development. A software
is developed efficiently and effectively with the help of well-defined activities or processes.
A process is a sequence of steps involving activities and resources, which produces the
desired output.
The following points are noted about software processes:
• Processes use resources subject to given constraints and produce intermediate and final
products.
• Processes are composed of sub-processes that are organized in such amanner that each sub-
process has its own process model.
• Each process is carried out with an entry and exit criteria that help in monitoring the
beginning and completion of the activity.
• Every process includes guidelines, which explains the objectives of each activity.
• A process is more than just a procedure. It includes tools and techniques, which are
collectively used in a structured manner to produce a product.
• Issues in Software processes may be technical and /or and managerial in nature.
(B). The Capability Maturity Model (CMM) uses five software process levels of maturity
to assess, further develop, and improve the software development processes of an entity.
CMM involves key processes related to planning, engineering, and managing an
organization’s software development and maintenance. Organizations can use the CMM
framework to achieve their goals for cost, functionality, product quality, and schedule.
• Maturity levels – It is the level of process capability an organization possesses. CMM has
five maturity levels. The top level is systematically managed by an organization of process
optimization, while the initial level is characterized by ad-hoc processes.
• Process areas – It is a group of associated activities to attain a set of goals. It also sets up a
process capability at the maturity level, example, software project delivery planning.
• Goals – The goal points to the importance and the purpose of each process area.
• It reviews the essential practices of a process area and indicates the gap to address in
implementing the process area.
• Common features – These features are the characteristics that determine whether the
implementation of the key process area is successful and permanent.
ANS.3:-
1. Waterfall Model: The Waterfall model is one of the oldest most traditional
and the most widely known software development methodologies. It is a linear
sequential flow, in which progress is seen as flowing steadily downwards (like
a waterfall) through the phases of software implementation. Here, developers
can only move to the next phase, if only the previous phase is complete.
Phases of the Waterfall Model include:
Planning
Requirements
Software system design
Implementation
Testing
Product Release
Maintenance/Updates
2. Agile Model:
Agile is designed to handle complexity and variability involved in software development
projects. When adopting the agile method – teams develop in short sprints or iterations, each
of which includes a defined duration and list of deliverables, but in no particular order. There
are many different forms of the agile model, including scrum, crystal, extreme programming
(XP), and feature-driven development (FDD) each of which the development teams develops
the software in iterations that contain mini-increments of new functionality.
3. Prototyping Model:
This model of SDLC builds specimens of the software that exhibit the technical functions
which is also known as software prototypes. This is centered on increasing the development
team’s understanding of the customer’s wants/needs by creating prototypes.
4. Iterative Model:
Iterative Model follows the iteration in the software development life cycle, however, the
convenience of this model is that the work is completed in small clusters as per the
requirement. Iterative process means designing the software in sets until the project is
completed.
5. V-shaped Model:
This model is an extension of the Waterfall model although does not follow the linear
method. The main distinction between the V-shaped model and the waterfall model is the V-
shaped model’s early test planning.
6. Spiral Model:
This model is a stage-based SDLC approach that blends architecture and prototyping and
focuses on risk assessment. It has four phases dividing the model into quadrants: planning,
risk analysis, engineering, and evaluation. Spiral model combines features of the Waterfall
and Prototyping models by stressing design, including prototyping (in the engineering phase),
and by following phases similar to those in the Waterfall model.
SET-2
The first phase deals with the designing of classes and applying the design axioms to it. Here
we have to create the UML diagrams, define class associations and hierarchy.
In the second phase, we have to create the mirror classes for access layer corresponding to
every class created in the first phase. We have to eliminate the redundant classes and use
method classes to refine the class structure.
Third phase deals with designing view layer classes. Here we have to use the view level
interface and create macro classes according to the axioms and corollaries. Here, we test the
usability and user satisfaction also.
Finally, repeat the process until an effective design is formed. We can iterate each phase
individually, different number of times to refine it.
(B) Code Reading :- Code reading is a technique that concentrates on how to read and
understand a computer program. It is essential for a software developer to know code reading.
The process of reading a software program in order to understand it is known as code reading
or program reading. In this process, attempts are made to understand the documents, software
specifications, or software designs. The purpose of reading programs is to determine the
correctness and consistency of the code. In addition, code reading is performed to enhance
the software code without entirely changing the program or with minimal disruption in the
current functionality of' the program. Code reading also aims at inspecting the code and
removing (fixing) errors from it.
Static Analysis :-Static analysis comprises a set of methods used to analyze the source code
or object code of the software to understand how the software functions and to set up criteria
to check its correctness. Static analysis studies the source code without executing it and gives
information about the structure of model used, data and control flows, syntactical accuracy,
and much more.
Code Inspection and Reviews :- The inspection process is carried out to check whether the
implementation of the software code is done according to the user requirements. This
technique is a formal and systematic examination of the source code to detect errors. During
this process, the software is presented to the proj1ct managers and the users for a comment of
approval. Before providing any comment, the inspection team checks the source code for
errors
ANS 2. (A) Software Re-Engineering is the examination and alteration of a system to
reconstitute it in a new form. The principles of Re-Engineering when applied to the
software development process is called software re-engineering. It affects positively at
software cost, quality, service to the customer and speed of delivery. In Software Re-
engineering, we are improving the software to make it more efficient and effective.
Inventory can be nothing more than a spreadsheet model containing information that
provides a detailed description of every active application.
By sorting this information according to business criticality, longevity, current
maintainability and other local important criteria, candidates for re-engineering appear.
The resource can then be allocated to a candidate application for re-engineering work.
2. Document reconstructing:
Documentation of a system either explains how it operates or how to use it.
(B) Software quality assurance :- is defined as a planned and systematic approach to the
evaluation of the quality and adherence to software product standards, processes and
procedures. SQA includes the process of assuring that standards and procedures are
established and are followed throughout the software acquisition life cycle. Compliance with
agreed upon standards and procedures is evaluated through process monitoring, product
evaluation and audits. Software development and control processes should include quality
assurance approval points, where an SQA evaluation of the product may be done in relation
to the applicable standards.
The software quality assurance group works with the software project during its early stages
to establish plans, standards and procedures that will add value to the software project and
satisfy the constraints of the project and the organization’s policies. By participating in
establishing the plans, standards and procedures, the software quality assurance group helps
ensure they fit the project’s needs. The software quality assurance group performs reviews
and audits software work products throughout the life cycle and provides visibility to the
management as to whether the software project is adhering to its established plans,
Software Quality Assurance (SQA) is a continuous activity carried throughout the project
lifecycle. It comprises of
1. An approach that determines the technique need to be adopted for managing the
processes.
documents.
1. Unit Testing
It focuses on the smallest unit of software design. In this, we test an individual unit or
group of interrelated units. It is often done by the programmer by using sample input and
observing its corresponding outputs.
Example:
a) In a program we are checking if the loop, method, or
function is working fine
b) Misunderstood or incorrect, arithmetic precedence.
c) Incorrect initialization
2. Integration Testing
The objective is to take unit-tested components and build a program structure that has been
dictated by design. Integration testing is testing in which a group of components is
combined to produce output.
Integration testing is of four types: (i) Top-down (ii) Bottom-up (iii) Sandwich (iv) Big-
Bang
Example:
(a) Black Box testing:- It is used for validation.
In this, we ignore internal working mechanisms and
focus on what is the output?.