Software Engineering 1stunit
Software Engineering 1stunit
SOFTWARE ENGINEERING
Syllabus
UNIT-1
Introduction to Software Engineering:
The term software engineering is the product of two words, software, and engineering.
The software is a collection of integrated programs.
Software subsists of carefully-organized instructions and code written by developers on any
of various particular computer languages.
Computer programs and related documentation such as requirements, design models and user
manuals.
Engineering is the application of scientific and practical knowledge to invent, design,
build, maintain, and improve frameworks, processes, etc.
to its retirement.
The cyclical nature of the model expresses the fact that the phases can be carried out
repeatedly in the development of a software product.
Requirements analysis and planning phase
Goal:
System test
Goal:
➢ Testing the mutual effects of system components under conditions close
to reality,
➢ Detecting as many errors as possible in the software system, and
➢ Assuring that the system implementation fulfills the system specification.
c. Spiral Model
d .Object-oriented life-cycle mode
Waterfall Model:
The Waterfall Model was the first Process Model to be introduced. It is also referred to as a
linear- sequential life cycle model or classic model. It is very simple to understand and use.
In a waterfall model, each phase must be completed before the next phase can begin and there
is no overlapping in the phases.
The Waterfall model is the earliest SDLC approach that was used for software development.
The waterfall Model illustrates the software development process in a linear sequential flow.
This means that any phase in the development process begins only if the previous phase is
complete. In this waterfall model, the phases do not overlap.
Waterfall approach was first SDLC Model to be used widely in Software Engineering to ensure
success of the project. In "The Waterfall" approach, the whole process of software
development is divided into separate phases. In this Waterfall model, typically, the outcome
of one phase acts as the input for the next phase sequentially.
The following illustration is a representation of the different phases of the Waterfall Model.
Spiral Model:
The spiral model, initially proposed by Boehm, it is the combination of waterfall and iterative
model,Using the spiral model, the software is developed in a series of incremental releases.
Each phase in spiral model begins with planning phase and ends with evaluation phase.
The spiral model has four phases. A software project repeatedly passes through these
phases initerations called Spirals.
Planning phase:
This phase starts with gathering the business requirements in the baseline spiral. In the
subsequent spirals as the product matures, identification of system requirements, subsystem
requirements and unit requirements are all done in this phase.
This phase also includes understanding the system requirements by continuous
communication between the customer and the system analyst. At the end of the spiral, the
product is deployed in theidentified market.
Risk Analysis:
Risk Analysis includes identifying, estimating and monitoring the technical feasibility and
management risks, such as schedule slippage and cost overrun. After testing the build, at the
end of first iteration, the customer evaluates the software and provides feedback.
Advantages:
• Flexible model
• Project monitoring is very easy and effective
• Risk management
• Easy and frequent feedback from users.
Dis advantages:
To overcome the disadvantages of waterfall model, this model is implemented with a special
factorcalled prototype. It is also known as revaluation model.
A prototyping model starts with requirement analysis. In this phase, the requirements of the
systemare defined in detail. During the process, the users of the system are interviewed to
know what is their expectation from the system.
The second phase is a preliminary design or a quick design. In this stage, a simple design of
the system is created. However, it is not a complete design. It gives a brief idea of the system
to the user.The quick design helps in developing the prototype.
In this stage, the proposed system is presented to the client for an initial evaluation. It helps
to findout the strength and weakness of the working model. Comment and suggestion are
collected fromthe customer and provided to the developer.
If the user is not happy with the current prototype, you need to refine the prototype according
to theuser's feedback and suggestions.
This phase will not over until all the requirements specified by the user are met. Once the user
issatisfied with the developed prototype, a final system is developed based on the approved
final prototype.
Once the final system is developed based on the final prototype, it is thoroughly tested and
deployedto production. The system undergoes routine maintenance for minimizing
downtime and prevent large-scale failures.
Advantages:
• Users are actively involved in development. Therefore, errors can be detected in the
initial stage of the software development process.
• Missing functionality can be identified, which helps to reduce the risk of failure as
Prototyping is also considered as a risk reduction activity.
• Helps team member to communicate effectively
• Customer satisfaction exists because the customer can feel the product at a very early
stage.
Disadvantages:
• The usual division of a software project into phases remains intact with the use
of object-oriented techniques.
• The requirements analysis stage strives to achieve an understanding of the
client’s application domain.
• The tasks that a software solution must address emerge in the course of requirements
analysis.
• The requirements analysis phase remains completely independent of an
implementation technique that might be applied later.
• In the system specification phase the requirements definition describes what the
software product must do, but not how this goal is to be achieved.
• One point of divergence from conventional phase models arises because
implementation with object-oriented programming is marked by the assembly of
already existing components.
The actual software life cycle recurs when new requirements arise in the
company that initiates a new requirements analysis stage.
The object and prototyping-oriented life-cycle model
The specification phase steadily creates new prototypes. Each time
we are confronted with the problem of having to modify or enhance
existing prototypes. If the prototypes were already implemented with
object-oriented technology, then modifications and extensions are
particularly easy to carry out. This allows an abbreviation of the
specification phase, which is particularly important when proposed
solutions are repeatedly discussed with the client. With such an
approach it is not important whether the prototype serves solely for
specification purposes or whether it is to be incrementally developed to
the final product. If no prototyping tools are available, object-oriented
programming can serve as a substitute tool for modeling user
interfaces. This particularly applies if an extensive class library is
available for user interface elements.
decoupled, two cycles result that shares a common core. The integration of
the functional classes and the user interface classes creates a prototype that
can be tested and validated. This places new requirements on the user
interface and/or the functionality, so that the cycle begins.
Types of project planning:
Types of project planning:
Quality Describes the quality procedures and standards
plan that will be used in a project.
28
Gate Degree & PG College
➢ Important characteristics:
• The lack of a project manager who is not personally involved in
system development
• The use of very good specialists
• The restriction of team size
➢ The chief programmer team consists of:
• The chief programmer
• The project assistant
• The project secretary
• Specialists (language specialists, programmers, test specialists).
➢ The chief programmer is actively involved in the planning,
specification and design process and, ideally, in the implementation
process as well.
➢ The chief programmer controls project progress, decides all
important questions, and assumes overall responsibility.
➢ The qualifications of the chief programmer need to be accordingly high.
➢ The project assistant is the closest technical coworker of the chief
programmer.
➢ The project assistant supports the chief programmer in all important
activities and serves as the chief programmer's representative in the latter's
absence. This team member's qualifications need to be as high as those
of the chief programmer.
➢ The project secretary relieves the chief programmer and all other
29
Gate Degree & PG College
30
Gate Degree & PG College
31