Software Engineering & Testing - Part 1 - AD ICT/AP/AME
1. What
is software engineering? Write key aspects of software engineering.
Solution:
Software engineering is a discipline within the field of computer science that
focuses on systematic software design, development, deployment, testing and
maintenance of the software system. It follows engineering principles like
abstraction, modularity and maintenance as per the user’s requirement.
The
key aspects of software engineering are written below,
a. Systematic
Approach: Software development involves a systematic approach to entire
software development life cycle. This includes requirement analysis, design,
coding, testing, deployment and maintenance.
b. Engineering
principles: Software engineering follows engineering principles like
abstraction, modularity and scalability for building a functional and scalable
software solution.
c. Requirement
analysis: Understanding and documenting the requirements of a software is a
crucial part in software engineering.
d. Design:
Software designing includes architectural plan, high-level design and detailed
design outlining the behavior of the software.
e. Coding:
Coding involves the programming part which is translated by skilled software
engineers from design phase.
f. Testing:
Testing ensures the codes written by the programmers are working and behaving
as expected.
g. Deployment:
In this phase the end product is deployed or installed in the targeted device
and make it available for the end users.
h. Maintenance:
This involves making updates, fixing bugs etc.
2. What
is software development life cycle?
Solution:
Software development life cycle is systematic approach for planning, developing
and testing high quality software. This provides a framework for developers and
project managers to follow for creating organized, predictable and high quality
product. There are several phases common for all software development life
cycle.
a. Requirement
gathering and analysis
b. System
Design
c. Development(Coding)
d. Testing
e. Deployment
f. Support
and maintenance
3. Explain
Waterfall Model.
Solution: Waterfall model is
explained below,
a. Each
phase is complete before the beginning of next phase.
b. This
model is used for small projects
c. Feedback
is taken after each phase to ensure that the project is on the right path.
4. Explain
Incremental Model
Solution: Incremental model is
explained below,
a. Incremental
model combines all elements of waterfall model and they are applied in an
iterative model.
b. Each
increment builds the product and submits it to the customer for any suggested
modification.
c. The
next increment implements on the customer’s suggestions and ass additional
requirements in the previous increment.
d. The
process is repeated until the product is finished.
5. Explain
Rapid application development(RAD)
Solution: Rapid application
development is explained below,
a. Using
the RAD the software is developed in a short period of time.
b. The
initial activity starts with the communication between customer and developer.
c. Planning
depends upon the initial requirements and then the requirements are divided
into groups.
d. Planning
is important to work together on different models.
6. Explain
prototyping model
Solution: Prototyping model is
explained below,
a. It
is a set of general objectives for software
b. It
does not identify the requirements like detailed input/output
c. It
is software working model for limited functionality.
d. In
this model, working programs are quickly produced.
7. Explain
Spiral model
Solution: Spiral model is explained
below,
a. It
is a risk driven process model
b. It
is used for generating software projects
c. An
alternative solution is provided if the risk is found in the risk analysis
d. In
one iteration all activates are done.
8. Explain
Agile principles
Solution: Agile principles are
written below,
a. The
highest priority of this process is to satisfy the customer.
b. Acceptance
of changing requirements even late in development.
c. Frequently
deliver working software in small time span.
d. Throughout
the project business people and developers work together on daily basis.
e. Projects
are created around motivated people if they are given the proper environment
and support.
9. What
is extreme programming?
Solution:
Extreme Programming (XP) is an agile software development methodology that
prioritizes customer satisfaction, frequent small releases, and collaborative
practices. Key features include customer involvement, incremental and iterative
development, embracing change, continuous integration, test-driven development
(TDD), pair programming, collective code ownership, continuous refactoring, and
small releases. XP is known for its flexibility in adapting to changing
requirements and its emphasis on delivering high-quality software through
practices such as TDD, pair programming, and continuous integration.
10. What
is scram?
Solution: Scrum is a software development
method. Scrum principles are consistent with the agile platform that are used
to guide development activities within a process. It includes the framework
activities like requirement analysis, design, evaluation and delivery. Work
tasks occur within a process pattern in each framework activity called as
‘Sprint’. Scrum highlights the use of a set of software process pattern that
are effective for the projects with tight timelines, changing requirements and
business criticality. Scrum consists if the use of software process patterns.
11. Explain
development actions in scrum
Answer:
Development actions in scrum is written below,
a. Backlog
A prioritized list of project requirements
or features that provides business value for the customer. Items can be added
to the backlog at any time. The product manager accesses the backlog and up
dates priorities as required.
b. Sprints
It consists of work units that are
required to achieve a requirement defined in the backlog. Changes are not
introduced during the sprints.
c. Scrum
meeting
The short meeting is held daily by the
scrum team. The key questions are asked and answered by all team members. Daily
meeting guide to knowledge socialization and encourages a self-organizing team
structure.
d. Demos
Deliver the software increment to the
customer. Using which the customer evaluates and demonstrates the
functionality.
12. What
is object oriented architecture?
Answer: Object oriented architecture is an
important concept for developing the software. It is a design paradigm on the
division of responsibilities for an application or system into individual
reusable and self-sufficient objects. The popular approach of object-oriented
design is to view a software system as a collection of entities known as
objects. Object oriented is based on modeling real world objects.
13. Explain
Object Oriented Architecture.
Answer: In object oriented analysis phase,
determined the system requirements, recognize the application domain and
specific requirements of the system. The outcome of object oriented analysis is
requirement identification, primary analysis of the logical structure and the
use of a system. Following are the three object oriented analysis,
a. Object
modeling:
(1)
Object modeling develops the static
structure of the system regarding to the objects.
(2)
It recognizes the objects, relationship
between the objects and the classes in which the object are grouped.
b. Dynamic
modeling:
(1)
Dynamic modeling is a way of explaining
how single object responds to events.
(2)
The aim of dynamic binding is to examine
the behavior of the object regarding time and external changes.
c. Functional
modeling:
(1)
Functional modeling is the last component
of the object oriented approach.
(2)
The functional model shows the process
executed in an object and how the data change when it moves between the
methods.
14. What
is object oriented design?
Answer:
In object oriented design is a next step after the object oriented analysis. In
this conceptual model is developed further into an object oriented model using
object oriented design. The main motivation of object oriented design is to
establish the structural architecture of the system. There are two stages of
object oriented design. They are,
a. Conceptual
design: It recognizes all the classes required to build the system. In
conceptual design, individual responsibilities are allocated to each class. In
high-level design, class diagram is used to analyze the relationships between
classes and interactions diagram is used for showing the showing the flow of
events.
b. Detailed design: In detailed design, the attributes and operations are allocated to each class based on their integration diagram. The state machine diagram is developed to explain the next details of design is called as low level design.



মন্তব্যসমূহ
একটি মন্তব্য পোস্ট করুন