Question Paper1
Question Paper1
1. If a software production gets behind schedule, one can add more programmers and catch up.
false
2. The only deliverable work product for a successful project is the working program. false
3. A general statement of objectives is the major cause of failed software efforts true
4. Component-based Software Engineering allows faster delivery. true
5. A Use-case actor is always a person having a role that different people may play. false
2. What is Software?
Software is nothing but a collection of computer programs that are related documents that
are indented to provide desired features, functionalities and better performance.
3. Define software process ?
Software process is defined as the structured set of activities that are required to develop the
software system.
4. Define software testing?
Software testing is a critical element of software quality assurance and represents the
ultimate review of specification, design, and coding.
5. What is Requirement gathering in SE?
This process is related to identifying business needs and opportunities.
It defines a detail information about the system design and user requirements, but the
requirements should be testable, measurable and documented.
Requirement process may result in success or failure of a software product.
This process can be too long.
1.What is the prime objective of software engineering & Define software engineering paradigm?
Software engineering is an engineering discipline that is concerned with all aspects of software
production from the early stages of system specification through to maintaining the system after
it has gone into use. In this definition, there are two key phrases:
Engineering discipline Engineers make things work. They apply theories, methods, and tools
where these are appropriate. However, they use them selectively
Maintainability:
Software should be written in such a way so that it can evolve to meet the changing needs of
customers. This is a critical attribute because software change is an inevitable requirement of a
changing business environment.
Dependability and security:
Software dependability includes a range of characteristics including reliability, security, and
safety. Dependable software should not cause physical or economic damage in the event of
system failure. Malicious users should not be able to access or damage the system.
Efficiency:
Software should not make wasteful use of system resources such as memory and processor
cycles. Efficiency therefore includes responsiveness, processing time, memory utilization, etc.
Acceptability:
Software must be acceptable to the type of users for which it is designed. This means that it must
be understandable, usable, and compatible with other systems that they use and always try to
discover solutions to problems even when there are no applicable theories and methods.
Engineers also recognize that they must work to organizational and financial constraints so they
look for solutions within these constraints.
The software development paradigm helps developer to select a strategy to develop the software.
A software development paradigm has its own set of tools, methods and procedures, which are
expressed clearly and defines software development life cycle. A few of software development
paradigms or process models are defined as follows
Methodology:
A software development methodology or system development methodology in software
engineering is a framework that is used to structure, plan, and control the process of developing
an information system.
2.What do you mean by spiral model?
Spiral model is a combination of both, iterative model and one of the SDLC model. It can be seen as if
you choose one SDLC model and combine it with cyclic process (iterative model).
This model considers risk, which often goes un-noticed by most other models. The model starts with
determining objectives and constraints of the software at the start of one iteration. Next phase is of
prototyping the software. This includes risk analysis. Then one standard SDLC model is used to build
the software. In the fourth phase of the plan of next iteration is prepared.
Waterfall model is the simplest model of software development paradigm. It says the all the
phases of SDLC will function one after another in linear manner. That is, when the first phase is
finished then only the second phase will start and so on.
This model assumes that everything is carried out and taken place perfectly as planned in the
previous stage and there is no need to think about the past issues that may arise in the next
phase. This model does not work smoothly if there are some issues left at the previous step. The
sequential nature of model does not allow us go back and undo or redo our actions.This model is
best suited when developers already have designed and developed similar software in the past
and are aware of all its domains.
Reduces complexity
Big software’s are always complex and difficult to develop. Software engineering has a great
solution to decrease the complexity of any project. Software engineering divides big problems
into several small problems. And then start solving each small problem one by one. All these
small problems are solved independently to each other. At the end, all these solved problems are
combined with each other to get the final solution. Also it always focuses on solving the most
relevant problems by omitting the irrelevant problems. By this manner, the big problem of
software complexity can be solved easily with the help of software engineering.
To minimize software cost
Software requires a lot of hard work and software engineers are highly paid professionals. A lots
of man force is requires to develop software with millions of codes. But in software engineering,
programmers plan everything and reduce all those things that are not required. In turn, cost for
software productions becomes less as compared to any software that does not use software
engineering approach.
To decrease time
Anything that is not made according to the plan always wastes time. And if you are making big
software then you may need to run many code to get the ultimate running code. This is a very
time consuming process and if it is not well managed then this can take a lot of time. So if you are
making your software according to software engineering approach then it will reduce a lot of
time.
Handling big projects
Big projects are not made in few days and they require lots of patience, planning and
management. And to invest six and seven months of any company, it requires lots of planning,
direction, testing and maintenance. No one can say that he has given four months of company to
the project and the program is still in its first stage. Because company has given many resources
to the projects and it should be completed. So to handle big projects without any problem,
company has to go for software engineering approach.
Reliable software
Software should be reliable, means if you have delivered the software then it should work for at
least it’s given time span or subscription. And if any bugs come in the software then company is
responsible for solving all these bugs. Because in software engineering, testing and maintenance
is provided so there is no worry of its reliability.
Effeteness
Effectiveness comes if anything has made according to the standards. Software standards are the
big focus of companies to make it more effective. So Software becomes more effective in
performance with the help of software engineering.
Productivity
With the help of software engineering, any company can increase its productivity. Any project
that decrease cost and requires less time always helps to increase company productivity. In
software engineering, proper care of software productivity is taken because it has testing system
at every level. If programs fails to meet its standard at any stage, then programmers always
improves the code of software to make it sure that software maintains its standards.
At every stage, test plans and test cases are created to verify and validate the product according
to the requirement of that stage. For example, in requirement gathering stage the test team
prepares all the test cases in correspondence to the requirements. Later, when the product is
developed and is ready for testing, test cases of this stage verify the software against its validity
towards requirements at this stage.
This makes both verification and validation go in parallel. This model is also known as
verification and validation model.
Communication
This is the first step where the user initiates the request for a desired software product. He contacts the
service provider and tries to negotiate the terms. He submits his request to the service providing organization
in writing.
Requirement Gathering
This step onwards the software development team works to carry on the project. The team holds discussions
with various stakeholders from problem domain and tries to bring out as much information as possible on
their requirements. The requirements are contemplated and segregated into user requirements, system
requirements and functional requirements. The requirements are collected using a number of practices as
given
Feasibility Study
After requirement gathering, the team comes up with a rough plan of software process. At this step the team
analyzes if software can be made to fulfil all requirements of the user and if there is any possibility of
software being no more useful. It is found out, if the project is financially, practically and technologically
feasible for the organization to take up. There are many algorithms available, which help the developers to
System Analysis
At this step the developers decide a roadmap of their plan and try to bring up the best software model
suitable for the project. System analysis includes Understanding of software product limitations, learning
system related problems or changes to be done in existing systems beforehand, identifying and addressing
the impact of project on organization and personnel etc. The project team analyzes the scope of the project
and plans the schedule and resources accordingly.
Software Design
Next step is to bring down whole knowledge of requirements and analysis on the desk and design the
software product. The inputs from users and information gathered in requirement gathering phase are the
inputs of this step. The output of this step comes in the form of two designs; logical design and physical
design. Engineers produce meta-data and data dictionaries, logical diagrams, data-flow diagrams and in some
cases pseudo codes.
Coding
This step is also known as programming phase. The implementation of software design starts in terms of
writing program code in the suitable programming language and developing error-free executable programs
efficiently.
Testing
An estimate says that 50% of whole software development process should be tested. Errors may ruin the
software from critical level to its own removal. Software testing is done while coding by the developers and
thorough testing is conducted by testing experts at various levels of code such as module testing, program
testing, product testing, in-house testing and testing the product at user’s end. Early discovery of errors and
their remedy is the key to reliable software.
Integration
Software may need to be integrated with the libraries, databases and other program(s). This stage of SDLC is
involved in the integration of software with outer world entities.
Implementation
This means installing the software on user machines. At times, software needs post-installation
configurations at user end. Software is tested for portability and adaptability and integration related issues
are solved during implementation.
Operation and Maintenance
This phase confirms the software operation in terms of more efficiency and less errors. If required, the users
are trained on, or aided with the documentation on how to operate the software and how to keep the
software operational. The software is maintained timely by updating the code according to the changes
taking place in user end environment or technology. This phase may face challenges from hidden bugs and
real-world unidentified problems.
This model assumes that everything is carried out and taken place perfectly as planned in the
previous stage and there is no need to think about the past issues that may arise in the next
phase. This model does not work smoothly if there are some issues left at the previous step. The
sequential nature of model does not allow us go back and undo or redo our actions.This model is
best suited when developers already have designed and developed similar software in the past
and are aware of all its domains.
Prove with any real time project which is followed the water fall model in any company.
Software testing is the process of evaluation a software item to detect differences between given
input and expected output. Also to assess the feature of A software item. Testing assesses the quality
of the product. Software testing is a process that should be done during the development process. In
other words software testing is a verification and validation process.
Verification
Verification is the process to make sure the product satisfies the conditions imposed at the start of
the development phase. In other words, to make sure the product behaves the way we want it to.
Validation
Validation is the process to make sure the product satisfies the specified requirements at the end of
the development phase. In other words, to make sure the product is built as per customer
requirements.
Basics of software testingThere are two basics of software testing: blackbox testing and whitebox
testing.
Blackbox TestingBlack box testing is a testing technique that ignores the internal mechanism of the
system and focuses on the output generated against any input and execution of the system. It is also
called functional testing.
Whitebox Testing White box testing is a testing technique that takes into account the internal
mechanism of a system. It is also called structural testing and glass box testing.
Black box testing is often used for validation and white box testing is often used for verification.
And explain any 4 examples