MODULE 1
MODULE 1
INTRODUCTION TO
SOFTWARE ENGINEERING
1
SOFTWARE ENGINEERING
• Software is a program or set of programs containing instructions that provide desired functionality.
• Engineering is the process of designing and building something that serves a particular purpose and finds a
cost-effective solution to problems.
• Software Engineering is the process of designing, developing, testing, and maintaining software. It is a
systematic and disciplined approach to software development that aims to create high-quality, reliable, and
maintainable software.
2
SOFTWARE PROCESSES
• A software process is the set of activities and associated outcome that produce a software product. Software engineers
mostly carry out these activities. These are five key process activities, which are common to all software processes.
These activities are
• 1. Communication: communicate and collaborate with customer for the project and gather requirements that help define
software features and functions.
• 2. Planning : planning activity creates a “map” that helps guide the team as it makes the journey. The map is called
software project plan
• 3. Modeling(coding) : A software engineer creating models to better understand software requirements and the design
that will achieve those requirements.
• 4. Construction(testing): This activity combines code generation (either manual or automated) and the testing that is
required to uncover errors in the code.
• 5. Deployment: the software is delivered to the customer who evaluates the delivered product and provides feedback
based on the evaluation.
3
CMM
4
CMM Model
5
GENERIC PROCESS MODEL
• The software process is represented schematically in following figure. Each framework activity is populated
by a set of software engineering actions. Each software engineering action is defined by a task set that
identifies the work tasks that are to be completed, the work products that will be produced, the quality
assurance points that will be required, and the milestones that will be used to indicate progress.
6
GENERIC PROCESS MODEL
7
WATERFALL MODEL
• The waterfall model, sometimes called the classic life cycle, suggests a
systematic, sequential approach to software development that begins with
customer specification of requirements and progresses through planning,
modeling, construction, and deployment, culminating in ongoing support of the
completed software.
8
WATERFALL MODEL
9
V MODEL
10
11
THERE ARE THE VARIOUS PHASES OF VERIFICATION PHASE OF
V-MODEL:
• Business requirement analysis: This is the first step where product requirements understood from the customer's
side. This phase contains detailed communication to understand customer's expectations and exact requirements.
• System Design: In this stage system engineers analyze and interpret the business of the proposed system by studying
the user requirements document.
• Architecture Design: The baseline in selecting the architecture is that it should understand all which typically
consists of the list of modules, brief functionality of each module, their interface relationships, dependencies,
database tables, architecture diagrams, technology detail, etc. The integration testing model is carried out in a
particular phase.
• Module Design: In the module design phase, the system breaks down into small modules. The detailed design of the
modules is specified, which is known as Low-Level Design
• Coding Phase: After designing, the coding phase is started. Based on the requirements, a suitable programming
language is decided. There are some guidelines and standards for coding. Before checking in the repository, the final
build is optimized for better performance, and the code goes through many code reviews to check the
performance.
12
• Advantages:
• Time Saving
∙ This is a highly disciplined model and Phases are completed one at a time.
∙ V-Model is used for small projects where project requirements are clear.
∙ This model focuses on verification and validation activities early in the life cycle thereby enhancing the probability of building an error-free and good quality
product.
• Disadvantages:
∙ It is not suitable for projects where requirements are not clear and contains high risk of changing.
• Incremental Model is a process of software development where requirements divided into multiple
standalone modules of the software development cycle.
• In this model, each module goes through the requirements, design, implementation and testing
phases. Every subsequent release of the module adds function to the previous release. The process
continues until the complete system achieved
14
INCREMENTAL MODEL
15
VARIOUS PHASES OF INCREMENTAL
MODEL
• 1. Requirement analysis: In the first phase of the incremental model, the product analysis expertise identifies the
requirements. And the system functional requirements are understood by the requirement analysis team. To develop
the software under the incremental model, this phase performs a crucial role.
• 2. Design & Development: In this phase of the Incremental model of SDLC, the design of the system functionality and
the development method are finished with success. When software develops new practicality, the incremental model
uses style and development phase.
• 3. Testing: In the incremental model, the testing phase checks the performance of each existing function as well as
additional functionality. In the testing phase, the various methods are used to test the behavior of each task.
• 4. Implementation: Implementation phase enables the coding phase of the development system. It involves the final
coding that design in the designing and development phase and tests the functionality in the testing phase. After
completion of this phase, the number of the product working is enhanced and upgraded up to the final system
product
16
WHEN WE USE THE INCREMENTAL
MODEL?
17
ADVANTAGE OF INCREMENTAL MODEL
18
DISADVANTAGE OF INCREMENTAL
MODEL
19
EVOLUTIONARY PROCESS MODELS
• The evolutionary model is a combination of the Iterative and Incremental models of the
software development life cycle.
• Evolutionary model is also referred to as the successive version model.
20
DIAGRAM
21
Application of Evolutionary Model
1. It is used in large projects where you can easily find modules for incremental
implementation.
2. Evolutionary model is commonly used when the customer wants to start using
the core features instead of waiting for the full software.
2. Evolutionary model is also used in object oriented software development
because the system can be easily portioned into units in terms of objects.
3. Customer requirements are not fixed, but clear concept.
22
NECESSARY CONDITIONS FOR IMPLEMENTING
THIS MODEL
• Customer needs are clear and been explained in deep to the developer team.
• There might be small changes required in separate parts but not a major
change.
• As it requires time, so there must be some time left for the market
constraints.
• Risk is high and continuous targets to achieve and report to customer
repeatedly.
• It is used when working on a technology is new and requires time to learn
23
ADVANTAGES EVOLUTIONARY MODEL
24
Disadvantages Evolutionary Model
25
CONCURRENT MODELS
Inactive: No activity
Under Development: any activity performed
Awaiting changes: If customer want any changes
Under Review: Testing activity start
Under revision: Do all Require changes
Baseline: as per the SRS document
Done: project completed and Deployed.
26
CONTINUE..
27
Advantages of the concurrent development model
• This model is applicable to all types of software development processes.
• It is easy for understanding and use.
• It gives immediate feedback from testing.
• It provides an accurate picture of the current state of a project.
28
AGILE PROCESS
• The meaning of Agile is swift or versatile. "Agile process model" refers to a software development approach
based on iterative development. 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.
29
AGILE PROCESS
30
PHASES OF AGILE MODEL:
31
AGILITY PRINCIPLES
• 1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable
software.
• 2. Welcome changing requirements, even late in development. Agile processes harness change for the
customer's competitive advantage.
• 3. Deliver working software frequently, from a couple of weeks to a couple of months, with a
preference for a shorter timescale.
• 4. Business people and developers must work together daily throughout the project.
• 5. Build projects around motivated individuals. Give them the environment and support they need, and
trust them to get the job done.
• 6. The most efficient and effective method of conveying information to and within a development
team is face-to-face conversation.
• 7. Working software is the primary measure of progress.
• 8. Agile processes promote sustainable development. The sponsors, developers, and users should be
able to maintain a constant pace indefinitely.
• 9. Continuous attention to technical excellence and good design enhances agility.
• 10. Simplicity — the art of maximizing the amount of work not done — is essential.
• 11. The best architectures, requirements, and designs emerge from self-organizing teams.
• 12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its
behavior accordingly.
32
EXTREME PROGRAMMING (XP)
33
WORKING OF XP
CRC card
34
• Advantages-
• 1. fewer documentation required
• 2. collaboration with customer
• 3. Flexibility to developers.
• 4. Easy to manage
• Disadvantages
• 1. Depends heavily on customer interaction
• 2. Transfer of technology to new team members may be quite challenging due to lack of
documentation.
35
SCRUM MODEL
• Scrum is the type of Agile framework. It is a framework within which people can address
complex adaptive problem while productivity and creativity of delivering product is at
highest possible values. Scrum uses Iterative process. Silent features of Scrum are:
• Scrum is light-weighted framework
• Scrum emphasizes self-organization
• Scrum is simple to understand
• Scrum framework help the team to work together
36
SCRUM MODEL
37
• Advantages
• 1. Large projects are broken down into small sprints.
• Customers are involved so based results are ensured
• Disadvantages:
• Once decide the sprint backlog items cannot be changed.
38
KANBAN MODEL
• Kanban is a popular framework which is used to implement agile software development. It takes real time
communication of capacity and complete transparency of work. The work items are represented in a kanban board
visually, allowing team members to see the state of every piece of work at any time.
• Boards:
The kanban board is the agile project management tool that designed the necessary visualized work, limited
work-in-progress, and maximizes flow (or efficiency). It uses cards, columns, and provides continuous improvement to
help technology and service teams who commit the right amount of work and get it done.
39
40
CONTINUE..
41
• Visual Signals: The kanban board is a visual card (stickies, tickets, or otherwise). Kanban team
write their projects and work items onto cards, usually per person each card. For agile teams,
each card could encapsulate into one user story. Once the board completed, this visual team
helps team members and stock members quickly to understand what the team is working.
• Columns: The column represents the specific activities that compose a "workflow" together.
The card flows through a workflow until its completion. The workflow may be a simple as "To
Do," "In Progress," "Complete," or much more complicated.
• Work in progress (WIP) Limits: The work in progress limits are the maximum number of cards
which can be in one column. This is at any given time. It gives the alert signal that you committed
too much work.
• Commitment point: Kanban teams also maintain a backlog for their board. This is where the
customers and team member put ideas for projects that the team can pick up. The team
members pick up plans when they are ready. The committed point is a movement where the
design is picked up by the team, and work starts on the project.
• Delivery point: It is the end point of a kanban team's workflow. Mostly the delivery point for
every team is when the product and services are handed to the customer.
42
WHEN WOULD THE KANBAN APPROACH BE
NEEDED?
43
Kanban Scrum
Kanban is an ongoing process. Scrum sprints have a start and stop dates
Kanban has no formal roles. Role is clearly defined of each team in the scrum (product owner,
development team, and scrum master). Both teams are
self-organized.
A kanban board is used throughout the lifecycle of a project Scrum board is cleared and recycled after each sprint.
This board is more flexible with regards to tasks and timing. Its This board has the number of tasks and a strict deadline to
task can be reprioritized, reassigned, or updated as needed. complete them.
44