Software Engineering: Unit-2
Software Engineering: Unit-2
Unit-2
• What is Software Engineering?
• Definition:1
• Software Engineering is a systematic, disciplined, quantifiable study and
approach to the design, development, operation, and maintenance of a software
system
• Definition:2
Software engineering is the establishment and use of sound engineering
principles in order to obtain economically software that is reliable and work
efficiently on real machines.
• Why is Software Engineering required?
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.
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.
SDLC(software development life cycle)
• Software Development Life Cycle (SDLC) is a process used by the software
industry to design, develop and test high quality software’s.
• The SDLC aims to produce a high-quality software that meets or exceeds customer
expectations.
• It is performed by the senior members of the team with inputs from the customer
• Based on the requirements specified in SRS, usually more than one design
approach for the product architecture is proposed and documented in a DDS -
Design Document Specification.
• Stage 4: Building or Developing the Product
• In this stage of SDLC the actual development starts and the product is built.
• This stage is usually a subset of all the stages as in the modern SDLC models, the testing
activities are mostly involved in all the stages of SDLC.
• However, this stage refers to the testing only stage of the product where product defects are
reported, tracked, fixed and retested, until the product reaches the quality standards defined
in the SRS.
• Testing:
• Unit testing
• Integration testing
• Acceptance Testing
• Unit Testing
• During this first round of testing, the program is submitted to assessments that
focus on specific units or components of the software
• System Testing is very important because it verifies that the application meets
the technical, functional, and business requirements that were set by the
customer.
• Acceptance Testing
• The final level, Acceptance testing (or User Acceptance Testing), is conducted
to determine whether the system is ready for release
• During this final phase, the user will test the system to find out whether the
application meets their business’ needs.
• Once this process has been completed and the software has passed, the
program will then be delivered to production.
• Stage 6: Deployment in the Market and Maintenance
• Once the product is tested and ready to be deployed it is released formally in the
appropriate market.
• After the product is released in the market, its maintenance is done for the existing
customer base.
Software Development Models
Waterfall model
RAD Model
Spiral Model
Incremental Model
Iterative Model
Agile Model
• Waterfall model:
• The next step cannot start before the previous one is completed.
• The incremental model combines the elements of waterfall model and they are applied
in an iterative fashion.
• Each increment builds the product and submits it to the customer for any suggested
modifications.
• The next increment implements on the customer's suggestions and add additional
requirements in the previous increment.
• The cost of the final product may cross the cost estimated
initially.
• Agile methods break tasks into smaller iterations, or parts do not directly involve long term
planning
• The project scope and requirements are laid down at the beginning of the development process.
• Plans regarding the number of iterations, the duration and the scope of each iteration are
clearly defined in advance.
• Each iteration is considered as a short time "frame" in the Agile process model,
• .
• which typically lasts from one to four weeks.
• The division of the entire project into smaller parts helps to minimize the
project risk and to reduce the overall project delivery time requirements
1.Frequent Delivery
2.Due to the lack of proper documentation, once the project completes and the
developers allotted to another project, maintenance of the finished project can
become a difficulty.
SCRUM
• WHAT IS SCRUM?
• A Better Way Of Building Products
• Scrum is a framework
• Scrum is a lightweight framework that helps people, teams and
organizations generate value through adaptive solutions for complex
problems.
• The Scrum Team
• The fundamental unit of Scrum is a small team of people, a Scrum Team.
The Scrum Team consists of one Scrum Master, one Product Owner, and
Developers. Within a Scrum Team,