0% found this document useful (0 votes)
80 views14 pages

Lalima Sepm Assignment

Uploaded by

Deeksha Dewangan
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)
80 views14 pages

Lalima Sepm Assignment

Uploaded by

Deeksha Dewangan
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

SUBMITTED TO-

PROF. – HIMANSHU MOKASHE

SUBMITTED BY-
LALIMA
300703321016
5TH SEM
UNIT 1

Q.1 Defined software engineering in few words?

Ans.-
The term software engineering is the product of two words, software,
and engineering.

The software is a collection of integrated programs.

Software subsists of carefully-organized instructions and code written by developers


on any of various particular computer languages.

Computer programs and related documentation such as requirements, design models


and user manuals.

Engineering is the application of scientific and practical knowledge to invent,


design, build, maintain, and improve frameworks, processes, etc

Software Engineering is an engineering branch related to the evolution of software product


using well-defined scientific principles, techniques, and procedures. The result of software
engineering is an effective and reliable software product.

The importance of Software engineering is as follows:

1. Reduces complexity: Big software is always complicated and challenging to


progress. Software engineering has a great solution to reduce the complication
of any project. Software engineering divides big problems into various small
issues. And then start solving each small issue one by one. All these small
problems are solved independently to each other.
2. To minimize software cost: Software needs a lot of hardwork and software
engineers are highly paid experts. A lot of manpower is required to develop
software with a large number of codes. But in software engineering,
programmers project everything and decrease all those things that are not
needed. In turn, the cost for software productions becomes less as compared
to any software that does not use software engineering method.
3. To decrease time: Anything that is not made according to the project always
wastes time. And if you are making great software, then you may need to run
many codes to get the definitive running code. This is a very time-consuming
procedure, and if it is not well handled, then this can take a lot of time. So if you
are making your software according to the software engineering method, then
it will decrease a lot of time.
4. Handling big projects: Big projects are not done in a couple of days, and they
need lots of patience, planning, and management. And to invest six and seven
months of any company, it requires heaps of planning, direction, testing, and
maintenance. No one can say that he has given four months of a company to
the task, and the project is still in its first stage. Because the company has
provided many resources to the plan and it should be completed. So to handle
a big project without any problem, the company has to go for a software
engineering method.
5. Reliable software: Software should be secure, means if you have delivered the
software, then it should work for at least its given time or subscription. And if
any bugs come in the software, the company is responsible for solving all these
bugs. Because in software engineering, testing and maintenance are given, so
there is no worry of its reliability.
6. Effectiveness: Effectiveness comes if anything has made according to the
standards. Software standards are the big target of companies to make it more
effective. So Software becomes more effective in the act with the help of
software engineering.

Need of Software Engineering


The necessity of software engineering appears because of a higher rate of progress in
user requirements and the environment on which the program is working.

o Huge Programming: It is simpler to manufacture a wall than to a house or


building, similarly, as the measure of programming become extensive
engineering has to step to give it a scientific process.
o Adaptability: If the software procedure were not based on scientific and
engineering ideas, it would be simpler to re-create new software than to scale
an existing one.
o Cost: As the hardware industry has demonstrated its skills and huge
manufacturing has let down the cost of computer and electronic hardware. But
the cost of programming remains high if the proper process is not adapted.
o Dynamic Nature: The continually growing and adapting nature of
programming hugely depends upon the environment in which the client works.
If the quality of the software is continually changing, new upgrades need to be
done in the existing one.
o Quality Management: Better procedure
o

o of software development provides a better and quality software product.

Q.2 Explain waterfall model and generic process model in brief?

Ans- Waterfall Model-

The classical waterfall model is the basic software development life cycle model. It is
very simple but idealistic. Earlier this model was very popular but nowadays it is not
used. But it is very important because all the other software development life cycle
models are based on the classical waterfall model.

1. Feasibility Study

The main goal of this phase is to determine whether it would be financially and
technically feasible to develop the software.
The feasibility study involves understanding the problem and then determining the
various possible strategies to solve the problem. These different identified solutions
are analyzed based on their benefits and drawbacks, The best solution is chosen and
all the other phases are carried out as per this solution strategy.

2. Requirements Analysis and Specification

The aim of the requirement analysis and specification phase is to understand the exact
requirements of the customer and document them properly. This phase consists of
two different activities.

Requirement gathering and analysis: Firstly all the requirements regarding the
software are gathered from the customer and then the gathered requirements are
analyzed. The goal of the analysis part is to remove incompleteness (an incomplete
requirement is one in which some parts of the actual requirements have been omitted)
and inconsistencies (an inconsistent requirement is one in which some part of the
requirement contradicts some other part).

Requirement specification: These analyzed requirements are documented in a software


requirement specification (SRS) document. SRS document serves as a contract
between the development team and customers. Any future dispute between the
customers and the developers can be settled by examining the SRS document.

3. Design

The goal of this phase is to convert the requirements acquired in the SRS into a format
that can be coded in a programming language. It includes high-level and detailed
design as well as the overall software architecture. A Software Design Document is
used to document all of this effort (SDD).

4. Coding and Unit Testing


In the coding phase software design is translated into source code using any suitable
programming language. Thus each designed module is coded. The aim of the unit
testing phase is to check whether each module is working properly or not.

5. Integration and System testing

Integration of different modules is undertaken soon after they have been coded and
unit tested. Integration of various modules is carried out incrementally over a number
of steps. During each integration step, previously planned modules are added to the
partially integrated system and the resultant system is tested. Finally, after all the
modules have been successfully integrated and tested, the full working system is
obtained and system testing is carried out on this.

System testing consists of three different kinds of testing activities as described below.

Alpha testing: Alpha testing is the system testing performed by the development team.

Beta testing: Beta testing is the system testing performed by a friendly set of
customers.

Acceptance testing: After the software has been delivered, the customer performed
acceptance testing to determine whether to accept the delivered software or reject it.

6. Maintenance

Maintenance is the most important phase of a software life cycle. The effort spent on
maintenance is 60% of the total effort spent to develop a full software. There are
basically three types of maintenance.

Corrective Maintenance: This type of maintenance is carried out to correct errors that
were not discovered during the product development phase.

Perfective Maintenance: This type of maintenance is carried out to enhance the


functionalities of the system based on the customer’s request.
Adaptive Maintenance: Adaptive maintenance is usually required for porting the
software to work in a new environment such as working on a new computer platform
or with a new operating system.

Generic process model-

Generic Process Model is a definitive description of processes. Generic


Processes are designed to run outside a normal component or on an
application processor. These processes are not specific to any particular
component, can be used in any number of applications. Generic Process
Model consists of 5 activities which will be discussed in this article. The
software process is a collection of various activities. These activities
include communication, planning, modeling, construction, and
deployment. Each of these activities includes a set of engineering
actions and each action defines a set of tasks that incorporate work
products, project milestones, and SQA, Software Quality Assurance
points. Let us dig deeper into this Generic Process Model and will go
through the working process, its advantages, and disadvantages.

Generic Process model includes the below five framework activities,

• Communication: This is the first step in the software

development process which starts with the communication

between the customer and the developer.

• Planning: This step consists of a complete estimation of the

project, scheduling for development of the project, and tracking.

• Modeling: This step consists of complete requirement analysis

and project design like algorithm, flowchart, etc


The algorithm is a step-by-step process of the problem and the

flowchart will show the flow of the program.

• Construction: This step consists of code generation and its

testing. Coding will implement the design details using

appropriate programming languages.

Testing checks if the program or the code provides expected output,

and also checks whether the flow of the code is correct or not.

• Deployment: This step consists of delivering the final product

to the customer and take feedback. If there are any suggestions

or addition of other capabilities, then this change is required for

improvement in software quality.

Q. 3 What is RAD model define agile tool with diagram?

RAD (Rapid Application Development)


Ans.-

Model
RAD is a linear sequential software development process model that emphasizes a
concise development cycle using an element based construction approach. If the
requirements are well understood and described, and the project scope is a constraint,
the RAD process enables a development team to create a fully functional system within
a concise time period.
RAD (Rapid Application Development) is a concept that products can be developed
faster and of higher quality through:

o Gathering requirements using workshops or focus groups


o Prototyping and early, reiterative user testing of designs
o The re-use of software components
o A rigidly paced schedule that refers design improvements to the next product version
o Less formality in reviews and other team communication

o The various phases of RAD are as follows:

o
o 1.Business Modelling: The information flow among business functions is
defined by answering questions like what data drives the business process, what
data is generated, who generates it, where does the information go, who
process it and so on.
o 2. Data Modelling: The data collected from business modeling is refined into
a set of data objects (entities) that are needed to support the business. The
attributes (character of each entity) are identified, and the relation between
these data objects (entities) is defined.
o ADVERTISEMENT
o 3. Process Modelling: The information object defined in the data modeling
phase are transformed to achieve the data flow necessary to implement a
business function. Processing descriptions are created for adding, modifying,
deleting, or retrieving a data object.
o 4. Application Generation: Automated tools are used to facilitate construction
of the software; even they use the 4th GL techniques.
o 5. Testing & Turnover: Many of the programming components have already
been tested since RAD emphasis reuse. This reduces the overall testing time.
But the new part must be tested, and all interfaces must be fully exercised.

AgIle tools-

In agile development, leading as project management is not the easiest job. Jumping between
your daily scrums to your next sprint, it causes hard to focus on the work. The agile
development tools fulfill your needs, and does it for you.

Agile Software Features:


o Create epics
o Use story points
o Analyze sprint performance
o Time estimates
o Start and due dates
o Time tracking

UNIT 2

Q1. Define software engineering

Ans.- The term software engineering is the product of two words, software,
and engineering.

The software is a collection of integrated programs.

Software subsists of carefully-organized instructions and code written by developers


on any of various particular computer languages.
Computer programs and related documentation such as requirements, design models
and user manuals.

Engineering is the application of scientific and practical knowledge to invent,


design, build, maintain, and improve frameworks, processes, etc

Software Engineering is an engineering branch related to the evolution of software product


using well-defined scientific principles, techniques, and procedures. The result of software
engineering is an effective and reliable software product.

The importance of Software engineering is as follows:

7. Reduces complexity: Big software is always complicated and challenging to


progress. Software engineering has a great solution to reduce the complication
of any project. Software engineering divides big problems into various small
issues. And then start solving each small issue one by one. All these small
problems are solved independently to each other.
8. To minimize software cost: Software needs a lot of hardwork and software
engineers are highly paid experts. A lot of manpower is required to develop
software with a large number of codes. But in software engineering,
programmers project everything and decrease all those things that are not
needed. In turn, the cost for software productions becomes less as compared
to any software that does not use software engineering method.
9. To decrease time: Anything that is not made according to the project always
wastes time. And if you are making great software, then you may need to run
many codes to get the definitive running code. This is a very time-consuming
procedure, and if it is not well handled, then this can take a lot of time. So if you
are making your software according to the software engineering method, then
it will decrease a lot of time.
10. Handling big projects: Big projects are not done in a couple of days, and they
need lots of patience, planning, and management. And to invest six and seven
months of any company, it requires heaps of planning, direction, testing, and
maintenance. No one can say that he has given four months of a company to
the task, and the project is still in its first stage. Because the company has
provided many resources to the plan and it should be completed. So to handle
a big project without any problem, the company has to go for a software
engineering method.
11. Reliable software: Software should be secure, means if you have delivered the
software, then it should work for at least its given time or subscription. And if
any bugs come in the software, the company is responsible for solving all these
bugs. Because in software engineering, testing and maintenance are given, so
there is no worry of its reliability.
12. Effectiveness: Effectiveness comes if anything has made according to the
standards. Software standards are the big target of companies to make it more
effective. So Software becomes more effective in the act with the help of
software engineering.

Need of Software Engineering


The necessity of software engineering appears because of a higher rate of progress in
user requirements and the environment on which the program is working.

o Huge Programming: It is simpler to manufacture a wall than to a house or


building, similarly, as the measure of programming become extensive
engineering has to step to give it a scientific process.
o Adaptability: If the software procedure were not based on scientific and
engineering ideas, it would be simpler to re-create new software than to scale
an existing one.
o Cost: As the hardware industry has demonstrated its skills and huge
manufacturing has let down the cost of computer and electronic hardware. But
the cost of programming remains high if the proper process is not adapted.
o works. If the quality of the software is continually changing, new upgrades need
to be done in the existing one.

Q.2 Explain top down and bottom approach inbrief?

Ans. Bottom–up and top–down are both strategies of information processing and
ordering knowledge, used in a variety of fields including software, humanistic and
scientific theories (see systemics), and management and organization. In practice
they can be seen as a style of thinking, teaching, or leadership.

A top–down approach (also known as stepwise design and stepwise refinement and
in some cases used as a synonym of decomposition) is essentially the breaking down
of a system to gain insight into its compositional subsystems in a reverse
engineering fashion. In a top–down approach an overview of the system is
formulated, specifying, but not detailing, any first-level subsystems. Each subsystem
is then refined in yet greater detail, sometimes in many additional subsystem levels,
until the entire specification is reduced to base elements. A top–down model is often
specified with the assistance of black boxes, which makes it easier to manipulate.
However black boxes may fail to clarify elementary mechanisms or be detailed
enough to realistically validate the model. A top–down approach starts with the big
picture, then breaks down into smaller segments.[1]

A bottom–up approach is the piecing together of systems to give rise to more


complex systems, thus making the original systems subsystems of the emergent
system. Bottom–up processing is a type of information processing based on
incoming data from the environment to form a perception. From a cognitive
psychology perspective, information enters the eyes in one direction (sensory input,
or the "bottom"), and is then turned into an image by the brain that can be
interpreted and recognized as a perception (output that is "built up" from processing
to final cognition). In a bottom–up approach the individual base elements of the
system are first specified in great detail. These elements are then linked together to
form larger subsystems, which then in turn are linked, sometimes in many levels, until
a complete top-level system is formed. This strategy often resembles a "seed" model,
by which the beginnings are small but eventually grow in complexity and
completeness. But "organic strategies" may result in a tangle of elements and
subsystems, developed in isolation and subject to local optimization as opposed to
meeting a global purpose.

Q. 3 Define stepwise refinement in brief?

Ans - Stepwise refinement is the idea that software is developed by moving through the
levels of abstraction, beginning at higher levels and, incrementally refining the software
through each level of abstraction, providing more detail at each increment. At higher levels,
the software is merely its design models; at lower levels there will be some code; at the
lowest level the software has been completely developed.

At the early steps of the refinement process the software engineer does not necessarily
know how the software will perform what it needs to do. This is determined at each
successive refinement step, as the design and the software is elaborated upon.

Refinement can be seen as the compliment of abstraction. Abstraction is concerned with


hiding lower levels of detail; it moves from lower to higher levels. Refinement is the
movement from higher levels of detail to lower levels. Both concepts are necessary in
developing software.

You might also like