Download as pdf or txt
Download as pdf or txt
You are on page 1of 20

Chapter 01

Overview of Software Engineering and Software Development Process.


Marks: 24

Question 1. Define software? What are its characteristics?


It is a set of programs that when executed provide desire features, functions & performance.

OR

Software is data structures that enable the programs to adequately manipulate the information.

OR

Software is a document that describes the operation and use of the program.

Characteristics of software:

1. Software is developed or they are engineered. They are not manufactured in the classical sense.

a. Both hardware manufacturing as well as software development produces “product” but in


hardware manufacturing cost and time are fixed and it follows permanent process for manufacturing.

b. Developing software is a different activity as this is logical process and it get continuously
change as per situation and requirements.

2. Software does not wear out.

Refer diagram from notebook.

a. If we observed the diagram, initially there is a failure in the hardware because of design or
manufacturing defects. Defects can be corrected and steady state level can be achieved for some time.

b. After some time again hardware suffers because of environmental problem like dust,
vibration or temperature.

c. In this way hardware begins to wear out.

d. In case of software, the main reason of failure is "Change".

e. The software does not wear out like hardware & even do not get affected because of
environmental problems.

3. Industry is moving towards component based construction. Most software continuous to be


custom build.
| Chapter No: By Mr.G.K.Gaikwad 1
a. If we try to understand the engineering process which build component based construction,
we find that group or collections of standard components are formed.

b. It makes the construction job easy.

c. This components can be used in another product development also. So it focuses on


reusability.

Eg: GUI of any application.

Question 2. Explain evolving role and changing nature of software.


OR
What are categories of software? Explain

Answer:
1. Software is basically set of programs, when it is executed perform particular task.
2. Software is a medium that communicate with computer hardware and human being.
3. As per today’s information society, there is continuously exchange or sharing of information.
4. Media are used for the communication could be e-mails, video conferencing, cell phones.
5. To work the media properly, there is need of some physical devices like computer, cell phone,
head phones, mike or camera.
6. To make the physical devices work and human being to understand this operation there is need
of software.
7. To build the software there is need of software engineering.
8. “Software engineering is defined as design, development and documentation of software by
applying technologies and practices (principles) from computer science, project, management,
application domain, interface design and other field.”
9. Evolving role of software is a product itself which delivers, translates, transfers, modifies and
manipulates the information in required formats.
10. Evaluation of software always changes rapidly from normal editing software to AI (Artificial
Intelligence) software.

11. Software evaluation or categories are as follows:-


a. System Software:
i. It is bridge between hardware and user.
ii. E.g. OS, compilers, interpreters, etc.
b. Application Software:

| Chapter No: By Mr.G.K.Gaikwad 2


i. It is developed to do the particular business activities.
ii. These are standard programs.
iii. E.g. MS-office, multimedia software etc.
c. Engineering/ Scientific Software:
i. These are used into space shuttle orbital dynamics and molecular biology.
d. Embedded Software:
i. It resides with the product or system.
ii. E.g. washing machine, keyboard of microwave.
e. Product-Line Software:
i. Developed considering market requirements.
ii. E.g. DBMS.
f. Web applications:
i. These are files linked with hypertext.
ii. E.g. internet based applications.
g. Artificial Intelligence Software:
i. Based on non-numeric algorithms used for complex and highly analytical
problems.
ii. E.g. Robotics, image and voice recognition.

Question 3. Define software Engineering & explain need of software


engineering.
Ans:

"It is defined as design, development & documentation of software by applying technologies


and practices from computer science, project management, application domain, interface design and
other field".

OR

"According to IEEE software engineering is a systematic & scientific method to engineer the quality
software product that is reliable".

Need of Software Engineering:

1. Software projects are complicated. They need scientific & engineering approaches to develop.

2. The project has to be divided into processes, frame work activities, activities, task, etc.
| Chapter No: By Mr.G.K.Gaikwad 3
3. Scheduling & controlling are the main activities of the software product guided by software
engineering tools.

4. Different models are required for designing & analysis without which developing software is
impossible.

5. There is huge management of resources at every stage.

6. Project teams have to continuously deal with time & new technology challenges.

Question 4. Give relationship between system engineering & software


engineering.
 System engineering is the set of activities which take place before software engineering process
starts.

 It mainly focuses on the "System".

 In system engineering, it is necessary to understand the role of people, procedures, database,


hardware, software & other components.

 In system engg we also try to identify operational requirements. It includes analysis, modeling,
validating & management of operational requirements.

 These activities are the foundation of system engg.

 The term software engg is derived from system engg.

 It mainly focuses on the software product engg & the development process.

 So, we may say that software engg is part of system engg.

 Software engg describes the process & methods to develop the product.

 It allows the customization of software products as per user requirements.

 System engg is overall study of system where software is going to be placed & used.

 Software engg deals with software development & related issues whereas system engg deals
with other components like hardware, databases, peoples etc.

Question 5. Explain software engineering as a layered technology approach.

Answer:

1. Software engineering is layered technology which is based on quality.

| Chapter No: By Mr.G.K.Gaikwad 4


2. Quality means software quality which is committed to the client by the development company.
3. Layered technology approach contains following layers:
a. Quality focus.
b. Process.
c. Methods.
d. Tools.
4. Diagram:
A. Quality Focus:
a. As software engineering process focus on quality, it automatically improves the process,
methods and tools.
b. Due to quality improvement approach developed software engineering process has
become more and more mature.
c. Hence quality focus is the base of software engineering.
B. Process:
a. There are specific process which takes place while developing a software.
b. It helps to produce separate and integrated product.
c. Process defines “Key Process Area” (KPA).
d. KPA is basic for management which is helpful to absorb time to time changes made in
the software engineering process.
C. Methods:
a. It is used to understand how to do technical process for building software.
b. Methods are collection of task that includes requirement analysis, design, program
construction, testing and support.

D. Tools:
a. It may be fully automated or computerized or semi-automated.
b. Tools basically support the methods and processes.
c. By using tools human efforts may be reduced.
d. Example: Testing tools (QTP, Load runner), CASE (Computer Aided Software
Engineering).

| Chapter No: By Mr.G.K.Gaikwad 5


Question 6. What do you mean by process framework? Explain with suitable
diagram.
Answer:

1. Process framework is a collection of software activities which forms complete foundation for
software engineering process.
2. It contains umbrella activities, framework activities, actions, task set and work task.
3. It is the basic structure of software development process.
Diagram:
4. Umbrella activities are :
a. Risk Management: Checks the risk throughout the project which may affect the quality
of product.
b. Software quality assurance: For achieving quality, specific activity is carried out. Ex,
Testing.
c. Formal technical Review: It is the process to improve product quality by using team
effort. After completion of one task and before starting next task meeting is arranged
and it review entire process.
d. Measurement: It define process, activity and software product itself.
e. Software configuration management: It is the mechanism to absorb the changes
effectively.
f. Reusability management: Process of managing reusable part of product which are
developed once and can be used many times.
5. Framework Activities:
a. Communication.
b. Planning.
c. Modeling.
d. Construction.
e. Deployment.
A. Communication: - (Project initiation, requirement gathering).
a. It play very important role in the development process.

| Chapter No: By Mr.G.K.Gaikwad 6


b. In this phase, requirements are collected from customer through number of
meetings, surveys, magazines, learning from previous software and number of
ways.
c. Communication takes place between all team members.
d. It helps to integrate and separate the process.
e. Major task done is requirement gathering.

B. Planning: - (Schedule, Estimation, Risk Analysis).


a. In this phase, an efficient plan is develop which describe all activity in the project
(Schedule).
b. Estimation includes cost estimation and time estimation of the project.
c. It analyzes the passable risk that may occur in the project (Risk Analysis).
d. It describes how technical task are going to take place.
e. It also describes what types of resources are required and how to utilize those
resources.

C. Modeling: - (Analysis, Design).


a. Models are created for better understanding of the system to be built.
b. It contains two part :
i. Analysis.
ii. Design.
c. Analysis represents the customer requirement.
d. Analysis step include algorithmic specification of the program.
e. Design step includes the design of flow chart for pictorial representation of the
requirement.
D. Construction: - (Code, Test).
a. Coding includes whatever design develop in modeling phase is converted into the
code by using specific programming language.
b. Testing carried out to check error in the software by using manual or automated
testing methods.
E. Deployment: - (Delivery, Support, Feedback).
a. Deliver the product to the customer.

| Chapter No: By Mr.G.K.Gaikwad 7


b. Give necessary support.
c. Take a feedback from it.

6. Actions nothing but activity that we are going to perform.


7. Activity is a set of task.
8. Task set is the collection of work task.
9. Example:
a. “Requirement Gathering” is the activity.
b. It falls under communication framework activity.
c. Goal of requirement gathering is to understand requirements of project from customer.
d. For this activity, following work task collection is the task set:-
 Create and maintain list of stake holders for a project.
 Arrange meeting of all members.
 Allow the members to make the list of features and functions of a requirement
individually.
 Collectively discuss all the requirements.
 Give the priority of the requirements.
 Find out the areas of risk.
10. In this way process frame work works.

Question 7. Explain waterfall model in detail.


OR
Explain software development life cycle.
Answer:

1. The waterfall model is the classic model of software engineering.


2. It is the oldest model of software engineering.
3. It is also called as classical software development life cycle (SDLC).
4. It suggests systematic sequential approach to develop the software.
5. It passes through following phases:-
a. Communication.

| Chapter No: By Mr.G.K.Gaikwad 8


b. Planning.
c. Modeling.
d. Construction.
e. Deployment.
Diagram:-

A. Communication: - (Project initiation, requirement gathering).


a. It play very important role in the development process.
b. In this phase, requirements are collected from customer through number of meetings,
surveys, magazines, learning from previous software and number of ways.
c. Communication takes place between all team members.
d. It helps to integrate and separate the process.
e. Major task done is requirement gathering.

B. Planning: - (Schedule, Estimation, Risk Analysis).


a. In this phase, an efficient plan is develop which describe all activity in the project
(Schedule).
b. Estimation includes cost estimation and time estimation of the project.
c. It analyzes the possible risk that may occur in the project (Risk Analysis).
d. It describes how technical task are going to take place.
e. It also describes what types of resources are required and how to utilize those resources.

C. Modeling: - (Analysis, Design).


| Chapter No: By Mr.G.K.Gaikwad 9
a. Models are created for better understanding of the system to be built.
b. It contains two part :
1. Analysis.
2. Design.
c. Analysis represents the customer requirement.
d. Analysis step include algorithmic specification of the program.
e. Design step includes the design of flow chart for pictorial representation of the
requirement.

D. Construction: - (Code, Test).


a. Coding includes whatever design develop in modeling phase is converted into the code
by using specific programming language.
b. Testing carried out to check error in the software by using manual or automated testing
methods.

E. Deployment: - (Delivery, Support, Feedback).


a. Deliver the product to the customer.
b. Give necessary support.
c. Take a feedback from it.
 Advantages:-
1. Simple and easy to use.
2. Easy to manage.
3. Phases are processed and completed one at a time.
4. Suitable for small project.
5. Very straight forward.
 Disadvantages:-
1. It is difficult for customer to state all requirements at one time.
2. No working software produces till completion.
3. Poor model for complex and object oriented projects.
4. Changes can cause uncertainty or confusion as the project team proceeds in
their work.
5. Customer should have patience to get the product.

| Chapter No: By Mr.G.K.Gaikwad 10


6. This model is time consuming because “Blocking steps are arises”.
7. Suitable only when requirements are clearly understood and for simple
project.
Question 8. Explain incremental process model in detail.
Answer:-
1. When there is forceful need to provide limited set of software functionality to the user very
urgently, under such situation model is used called as “Incremental Model”.
2. Incremental model is the combination of elements of waterfall model which are applied in
repetitive manner.
3. Diagram:-

4. Suppose we have to develop the software for Microsoft word using incremental model, the
working is as follows :-
a. First increment includes basic file operations, editing and formatting.
b. To develop first increment all waterfall model activities are get performed.
i. Communication (Project Initiation, requirement gathering).
ii. Planning (estimation, scheduling and risk analysis).
iii. Modeling (analysis, design).
iv. Construction (code, test).

| Chapter No: By Mr.G.K.Gaikwad 11


c. After developing first increment, deploy it to customer by providing necessary support
and take a necessary feedback.
d. Second increment includes more efficient editing and formatting and view operations.
e. Again repeat all waterfall model activities, develop that module, deploy to customer and
take a necessary feedback.
f. Next increment produce synonyms and grammar related checking.
5. In this way the complete software will be develop by repeating waterfall model activities as
increment by increment.
6. First increment is always core product.

7. Advantages :-
a. Customer gets versions of product quickly.
b. Early increments can be done with less people.
c. Big system might need new hardware at the later increments so it avoids use of that
hardware in early increments.
d. With the increment by increment delivery it makes the product perfect by using
feedback.

8. Disadvantages :-
a. It is lengthy process.
b. Sometime project calendar time is beyond the actual time.
c. Requirement needs to be completely understood.
d. Modeling should be proper.

Question 9. Explain RAD model in detail.


Answer:
1. Rapid Application Development (RAD) model is an incremental software process model that
focuses on short development cycle time.
2. This model is a “High Speed” model which adopts many steps from waterfall model.
3. If project requirements are well understood and project scope is well known than this model is
used.
4. Rad model start his working with communication activity.
5. Using communication activity, it collects the requirements from the customer.
| Chapter No: By Mr.G.K.Gaikwad 12
6. Planning activity focuses on estimation, scheduling and risk analysis.
7. Diagram:-

8. After planning, modeling and construction activity get divided into RAD teams.
9. Each RAD team goes for their modules individually to perform modeling and construction
activity.
10. Modeling analyzes the requirement and converts it into design format.
11. Constructions include coding and testing.
12. After all teams job complete, combine all module to form complete software.
13. It is delivered by providing necessary support and collects the feedback from customer.
14. Time restriction is compulsory for each RAD team in RAD model.

15. Advantage:-
a. Project get develop rapidly.
b. No delay in development.
c. Blocking steps are not arrived.

16. Disadvantage:
a. Required sufficient human resources to create RAD teams.

| Chapter No: By Mr.G.K.Gaikwad 13


b. If developer and customer are not committed to rapid development the model gets fail
c. RAD system should be properly modularize otherwise it create problems.
d. If high performance is measure issue it is not applicable.
e. When technical risk is high it is not suitable.

Question 11. Explain prototype model in details.


Answer:
1. Customer defines a set of goals for a software but unable to recognize details about input,
process and output.
2. When developer may not be sure about efficiency of an algorithm or he not understand form
and machine interaction under such situation prototype model is used.
3. It is standalone process model or it may be combining with other model.
4. When customer and developer are unclear about requirements than prototype model is used.
5. It starts with communication activity. In communication software engineer and customer come
together and discuss the objective of software.
6. Quick plan is develop as per its requirements.
7. Quick design is establish about known requirements which familiar with customer.
8. Customer involve is all phases except coding.
9. In a construction code generated for known requirements and that get tested with manual or
automated tools.
10. Than deploy the product to the customer and take a refine requirement for a software.
11. Prototype is turned and repeated till it fully satisfies the customer.
12. So it basically acts as a mechanism for identifying software requirements and then
converts it into concrete product.

13. Diagram:

| Chapter No: By Mr.G.K.Gaikwad 14


Advantages:
i. It allows working program to be created very fast.
ii. Requirements are unclear, it is good model.
iii. User can actually view the future system.
iv. Widely used in industry.
Disadvantages:
i. Due to rush it affects the software quality.
ii. When customer continuously disagrees with requirements, development team gives up.
iii. Due to repetitive task, developer becomes comfortable with the choices.
iv. It is lengthy process if task not set properly.

Question 11. Explain spiral model in details.


Answer:
1. Barry Boehm as proposed the spiral model.
2. It is the combination of prototype model and waterfall model.
3. Mainly focused on continues reassessment of plans and risk analysis in each phase.
4. It is also called as Meta model.
5. It able to produce rapid development in more complicated versions of software’s.
6. It uses all 5 elements of waterfall model in iterative model.

7. Diagram.

| Chapter No: By Mr.G.K.Gaikwad 15


8. Suppose we have to develop MS – OFFICE software , spiral model is works like :
a. First is goes for MS-WORD , for that it uses all five elements of waterfall model :
i. Communication (Project Initiation, requirement gathering).
ii. Planning (scheduled estimation & risk analysis)
iii. Modeling (analysis and designing)
iv. Construction (code and test)
v. Deploy(delivery ,support ,feedback)
b. Secondly it goes for MS_ACCESS and all above activities are repeated and some
problems in previous version are recovers in this phase.
c. This process repeats until entire product gets completed with heavily concentration in
risk analysis.
Advantages:
 Focus on risk analysis.
 Suitable for complex and large project.
 Software produces early in life cycle.
 Not all project resources are required at beginning.
Disadvantages:
 Expert people are required.
 Costly model.
 Not suitable for small project.
 Require good knowledge of problem domain.
 If risk not covered in early stages it may affect later badly.
 Project success depends on risk analysis phase.

Question 12. What is Capability Maturity Model Integration Technique?


Explain different levels.
Answer:

1. It is an Industry standard for defining and measuring the maturity and capability of
software companies’ development process.
2. It provides direction on what they can do to improve their software quality.
3. It was developed by Software Development Community along with Software Engineering
Institute under the direction of US Department of Defense.
4. It is special and generic model because it applies equally well to any size of software
| Chapter No: By Mr.G.K.Gaikwad 16
companies to single person consultancy.
5. It contain five levels:-
a. Level1- Initial.
b. Level 2- Repeatable.
c. Level 3- Define.
d. Level 4- Managed.
e. Level 5- Optimizing.
6. From entire universe of software companies, most of are at level 1, many are at level 2,
few are at level 3, very few at level 4 and least few at level 5.
7. Diagram:
1. Level 1: Initial
a. Development processes at this level are adhoc and temporary.
b. Project success depends upon Hero’s and luck.
c. There are no planning, communication and design phases.
d. All team members concentrate only on coding.
e. It is impossible to predict the time, cost and quality of the product.
f. There is the no testing of project.
2. Level 2: Repeatable
a. It comes as project level thinking.
b. There is an actual development approach use such as communication, planning,
modeling, construction and deployment.
c. Lessons are learned from previous similar project.
d. Discipline is always maintained.
3. Level 3: Define
a. Organizational level thinking comes into play.
b. Management and engineering activities are acts as standard and documented.
c. These standards must be followed in a project even things get stressful.
d. Test document and plans must be review and approved before testing begins.
e. Test group is an independent from the developers.
4. Level 4: Managed
a. This level is under statistical control.
b. Product quality is specified quantitatively.

| Chapter No: By Mr.G.K.Gaikwad 17


c. It means you should not release the product until it contains 0.5 errors per 1000 lines of
code.
d. Details of development process and quality are collected from development team and
adjustment made accordingly.
5. Level 5: Optimizing
a. It is called optimizing because it continuously improving from level 4.
b. New technology and process are applied.
c. Create the list of standard and as per the standards development goes.
d. When everyone thinks best have been obtained, the crank is turned one more time to
achieve next level of quality.

Question 13 What is Agile Software Development? Write Features of the


agile software development:-
Ans:
1) It is not only a process but is referred as philosophy.
2) It focuses on the rapid development of the software product by considering the current market
requirement and time limit.
3) Today’s market is rapidly changing and unpredictable too. Root of agile software development is
in the reality of today’s market.
4) It solves the problem of long time and heavy documentation software development processes.
5) It focuses on face to face or interactive processes than documentation. it helps in quickly
transferring the ideas.
6) Agile software development saves manpower, cost, documentation and most important time.
Features of the agile software development:-
1) It uses inverted pyramid of management.
2) No boss and subordinate relationship in the context of work.
3) Team member are entitle to take their work related decision.
4) It takes much less time for development of product as compare to other models.
5) Continuous learning, knowledge sharing and knowledge creation is possible.
6) It produce more comfortable working environment.
7) The productivity is far better than productivity of team members of other model.
8) Working culture is co-operative.
9) Development process is highly dynamic but stable and under control.

| Chapter No: By Mr.G.K.Gaikwad 18


10) Allows quality products to be developed.
11) Absorbing changes is not much difficult for satisfaction of customer.
12) Works as per the current requirement of the market.

Question 14. Comparison between Prescriptive Process model and Agile


Process Model.

Perspective Process Model Agile Process Model

1) It is set of predefined steps that are also


1) They are evolved over the period time.
known as classical model.
2) Focuses on deliverable that fulfill user
2) Focuses on every activity equally.
requirement.
3) Takes much less time as compare to
3) Takes more time that may not be realistic.
prospective model.
4) Reverse engineering is easy.
4) Reverse engineering is difficult.
5) Software configuration Management is 5) Software configuration management is
difficult. manageable.
6) Quick result are produce.
6) Result are produced with delay.

Question15 . Explain the Concept of PSP and TSP


1. PSP:-
It stands for personal software process. In PSP software engineering will create a process that most
suitable for his requirements than meats requirements of team members and finally fulfill requirements
of organization .While developing computer software, according to changes in requirement process
also get change hence, process become temporary. Due to this reason PSP uses some finite structure of
framework activity.
1. Planning:-
 Isolate requirement of process.
 Estimate time, cost.
 Calculate no. of defect present for work.
 Maintain record of planning.
2. High level design:-
 Specification for each and every component should be constructed.
 Design will be develop.

| Chapter No: By Mr.G.K.Gaikwad 19


 All related issues are recorded and track properly.
3. High level design review:-
 Formal verification methods are applied to uncover the errors.
 Record is maintained for these activity.
4. Development:-
 Code generated, review, compile and tested.
 Record is maintain for each and every activity.
5. Postmortem:-
 It is an activity for significant analysis.
 Use all previous records for making product effective.
Disadvantages:
1.It is not mostly applicable in industry due to single person management.
2.It required very lengthy training and cost is very high.
2.TSP:-
It stands for team software process. Team will create process, fulfill first team requirement, then
satisfies individual requirement and finally satisfies the requirement of organization.
Watts Humphrey Proposed this model.
Objectives of PSP:
 Team should be self-directed team means they can plan and track their own work, establish
their own goals, team members are pure technical expert software engineers of group of 3 to
20 engineers.
 It guide managers how to train and motivate their teams for achieving high quality.
 It should speed up software process improvement guidelines for high maturity
organizations.
 It facilitates university teaching of industrial bread skills.
It also uses framework activity like planning, high level design, high level design review, development
and postmortem.
Advantages:
1. It is mostly applicable in industry due to team management process.
2. Proper training should be given to team members.
3. It provides distinct and quantifiable advantages in productivity and quality.

| Chapter No: By Mr.G.K.Gaikwad 20

You might also like