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.

মন্তব্যসমূহ