SE Unit 1 Notes
SE Unit 1 Notes
Software Development
Software Engineering:
Software Engineering is a systematic, disciplined, quantifiable study and
approach to the design, development, operation, and maintenance of a
software system.
4. System assembly from reusable components: This method assumes the parts of
the system already exist. The system development process target on integrating
theseEngineering
Unit 1_Software parts rather
Process than developing them from scratch. 11
Software Crisis
1. Size: Software is becoming more expensive and more complex with the growing
complexity and expectation out of software. For example, the code in the
consumer product is doubling every couple of years.
2. Quality: Many software products have poor quality, i.e., the software products
defects after putting into use due to ineffective testing technique. For example,
Software testing typically finds 25 errors per 1000 lines of code.
3. Cost: Software development is costly i.e. in terms of time taken to develop and
the money involved. For example, Development of the Advanced Automation
System cost over $700 per lines of code.
4. Delayed Delivery: Serious schedule overruns are common. Very often the software
takes longer than the estimated time to develop, which in turn leads to cost
shooting up. For example, one in four large-scale development projects is never
completed.
Unit 1_Software Engineering Process 12
What are the attributes of good
software?
1. Maintainability
2. Dependability
3. Efficiency
4. Usability
Software Development Life Cycle (SDLC) is a framework that defines the steps
involved in the development of software at each phase.
It covers the detailed plan for building, deploying and maintaining the
software.
SDLC defines the complete cycle of development i.e. all the tasks involved in
planning, creating, testing, and deploying a Software Product.
Stage5: Testing
After the code is generated, it is tested against the requirements to make
sure that the products are solving the needs addressed and gathered during
the requirements stage.
During this stage, unit testing, integration testing, system testing, acceptance
testing are done.
Stage7: Maintenance
Once when the client starts using the developed systems, then the real
issues come up and requirements to be solved from time to time.
This procedure where the care is taken for the developed product is known
as maintenance.
This phase aims to transform the requirements gathered in the SRS into a
suitable form which permits further coding in a programming language.
It defines the overall software architecture together with high level and
detailed design. All this work is documented as a Software Design Document
(SDD).
• After that these modules are tested by writing some overhead code to check
the interaction between these modules and the flow of intermediate
output.
Objective setting: Each cycle in the spiral starts with the identification of
purpose for that cycle, the various alternatives that are possible for achieving
the targets, and the constraints that exists.
Risk Assessment and reduction: The next phase in the cycle is to calculate
these various alternatives based on the goals and constraints. The focus of
evaluation in this stage is located on the risk perception for the project.
Planning: Finally, the next step is planned. The project is reviewed, and a
choice made whether to continue with a further period of the spiral. If it is
determined to keep, plans are drawn up for the next step of the project.
4. Construction-Application Generation
5.Deployment-Testing & Turnover
In this Model, you can start with some of the software specifications and develop the
first version of the software.
After the first version if there is a need to change the software, then a new version of
the software is created with a new iteration.
Every release of the Iterative Model finishes in an exact and fixed period that is
called iteration.
Big Bang Model:
In this model, developers do not follow any specific process. Development begins
with the necessary funds and efforts in the form of inputs. And the result may or may
not be as per the customer's requirement, because in this model, even the customer
requirements are not defined.
Prototype Model:
The prototype model requires that before carrying out the development of actual
software, a working prototype of the system should be built.
A prototype is a toy implementation of the system.
A prototype usually turns out to be a very crude version of the actual system, possible
exhibiting limited functional capabilities, low reliability, and inefficient performance
as compared to actual software.
In many instances, the client only has a general view of what is expected from the43
1_Software Engineering Process
Unit
software product.
Software project management
CASE tool Product CASE tools, which support the project, do not
underperformance perform as anticipated.
Technology change Business The underlying technology on which the system
is built is superseded by new technology.
Product competition Business A competitive product is marketed before the
system is completed.
Unit 1_Software Engineering Process 64
The risk management process
Risk identification
Identify project, product and business risks;
Risk analysis
Assess the likelihood and consequences of these risks;
Risk planning
Draw up plans to avoid or minimise the effects of the risk;
Risk monitoring
Monitor the risks throughout the project;
• The Chief programmer : It is the person who is actively involved in the planning,
specification and design process and ideally in the implementation process as well.
• The project assistant : It is the closest technical co-worker of the chief
programmer.
• The project secretary : It relieves the chief programmer and all other
programmers of administration tools.
• Specialists : These people select the implementation language, implement
individual system components and employ software tools and carry out tasks.
•Centralized decision-making
•Reduced communication paths
•Small teams are more productive than large teams
Disadvantages of Chief-programmer team organization :
•Team organization is limited to only small team and small team cannot
Democratic Team Organization :
It is quite similar to the egoless team organization, but one member is the
team leader with some responsibilities :
• Coordination
• Final decisions, when consensus cannot be reached.
Advantages of Democratic Team Organization :
Documentation Describe what the product does Describes how the product works
Functional Testing like System, Integration, End to Non-Functional Testing like Performance,
Type of Testing
End, API testing, etc. Stress, Usability, Security testing, etc.
Test Execution Test Execution is done before non-functional testing. After the functional testing