SE Unit I
SE Unit I
Unit – I
Introduction
Dr. S. Manikandan
HOD-IT
1
What is Software?
2
Software Licensing
3
Software Patents
4
Software Pattern
• Functionality.
• Usability (User-friendly) ...
• Efficiency. ...
• Reliability. ...
• Maintainability. ...
• Portability. ...
6
Categories of Software
7
Changing nature of Software
8
What is Software Engineering?
10
Software Engineering Layers
11
Software Engineering Layers
12
Software Process
13
Process framework encompasses five activities
• Communication:
In this activity, heavy communication with customers
and other stakeholders, as well as requirement
gathering is done.
• Planning:
In this activity, we discuss the technical related tasks,
work schedule, risks, required resources, etc.
• Modeling:
Modeling is about building representations of things in
the ‘real world’. In modeling activity, a product’s model
is created in order to better understand the
requirements.
14
• Construction:
In software engineering, construction is the application
of set of procedures that are needed to assemble the
product. In this activity, we generate the code and test
the product in order to make better product.
• Deployment:
In this activity, a complete or non-complete product or
software is represented to the customers to evaluate
and give feedback. On the basis of their feedback, we
modify the product for supply of better product.
15
Umbrella activities
16
Software Engineering Practice
17
General Principles that focus on Software Engineering
18
Software Development Myths
Software Myths:
• Most, experienced experts have seen myths or
superstitions (false beliefs or interpretations) or
misleading attitudes (naked users) which creates major
problems for management and technical people. The
types of software-related myths are listed below.
19
Management Myths
23
Practitioners Myth
Myths 1: They believe that their work has been completed
with the writing of the plan.
• Fact:
• It is true that every 60-80% effort goes into the maintenance
phase (as of the latter software release). Efforts are
required, where the product is available first delivered to
customers.
Myths 2: There is no other way to achieve system quality, until
it is “running”.
• Fact:
• Systematic review of project technology is the quality of
effective software verification method. These updates are
quality filters and more accessible than test.
24
Process Models
25
26
Prescriptive Process Model
• The name 'prescriptive' is given because the model
prescribes a set of activities, actions, tasks, quality
assurance and change the mechanism for every project.
Prescriptive process models are sometimes referred to
as “Traditional Process Models”.
28
• The waterfall model is also called as 'Linear
sequential model' or 'Classic life cycle model'.
• In this model, each phase is fully completed before the
beginning of the next phase.
• This model is used for the small projects.
• In this model, feedback is taken after each phase to
ensure that the project is on the right path.
• Testing part starts only after the development is
complete.
29
Advantages of waterfall model
• The waterfall model is simple and easy to understand,
implement, and use.
• All the requirements are known at the beginning of the
project, hence it is easy to manage.
• It avoids overlapping of phases because each phase is
completed at once.
• This model works for small projects because the
requirements are understood very well.
• This model is preferred for those projects where the
quality is more important as compared to the cost of
the project.
30
Disadvantages of the waterfall model
• Limited Flexibility: Difficult to accommodate
changes once development begins.
• Late Feedback: Stakeholder and user feedback
typically occur late in the process during testing,
leading to potential mismatches with expectations.
• High Risk: Higher risk of project failure if initial
requirements are misunderstood or change
significantly.
31
Incremental Process Model
32
33
Advantages of incremental model
• This model is flexible because the cost of development is
low and initial product delivery is faster.
• It is easier to test and debug during the smaller iteration.
• The customers can respond to its functionalities after every
increment.
Disadvantages of the incremental model
• The cost of the final product may cross the cost estimated
initially.
• The planning of design is required before the whole system
is broken into small increments.
• The demands of customer for the additional functionalities
after every increment causes problem during the system
architecture.
34
Evolutionary Models – Prototyping Model
35
36
Advantages of Prototyping Model
• Prototype model need not know the detailed input,
output, processes, adaptability of operating system
and full machine interaction.
• In the development process of this model users are
actively involved.
• The development process is the best platform to
understand the system by the user.
• Errors are detected much earlier.
• Gives quick user feedback for better solutions.
• It identifies the missing functionality easily. It also
identifies the confusing or difficult functions.
37
Disadvantages of Prototyping Model:
• The client involvement is more and it is not always
considered by the developer.
• It is a slow process because it takes more time for
development.
• Many changes can disturb the rhythm of the
development team.
• It is a thrown away prototype when the users are
confused with it.
38
Evolutionary Models – Spiral Model
39
40
Advantages of Spiral Model
• It reduces high amount of risk.
• It is good for large and critical projects.
• It gives strong approval and documentation control.
• In spiral model, the software is produced early in the life
cycle process.
Disadvantages of Spiral Model
• It can be costly to develop a software model.
• It is not used for small projects.
41
Concurrent Model
44
Comparison between all Prescriptive Models
Model Description Advantages Disadvantages
Sequential, linear approach to
software development.
Lack of flexibility, difficult to
Divided into distinct phases: Simple and easy to
Waterfall accommodate changes late in
Requirements, Design, understand.
the process.
Implementation, Testing,
Deployment, Maintenance.
Iterative model where a
preliminary version of the Incomplete or inadequate
Early feedback and validation
Prototype system is built, tested, and prototypes can mislead
of requirements.
refined repeatedly until it stakeholders.
meets the requirements.
Divides software development
into smaller, manageable Initial increments may not
chunks (increments) that are Allows partial implementation represent the final system
Incremental
developed and delivered and delivery of the system. architecture, potential
incrementally. Each increment integration issues.
builds upon the previous one.
Iterative model combining
elements of waterfall and
Complex management and
prototype models. Includes Good for projects with high-
Spiral evaluation process, may be
cycles of planning, risk risk factors.
costly and time-consuming.
assessment, engineering, and
evaluation of each iteration.
Also known as concurrent
development or parallel
Requires effective
development, involves
Accelerates development time coordination and
Concurrent overlapping phases where
by parallelizing tasks. communication between
multiple parts of the system
teams.
are developed simultaneously
by separate teams. 45
Specialized Process Models
49
3. Aspect Oriented Software Development
50
Unified Process Model
51
Phases of Unified Process Model
52
Phase1: Inception
• Communication and planning are the main ones.
• Identifies the scope of the project using a use-case
model allowing managers to estimate costs and time
required.
• Customers’ requirements are identified and then it
becomes easy to make a plan for the project.
Phase2: Elaboration
• Planning and modeling are the main ones.
• A detailed evaluation and development plan is carried
out and diminishes the risks.
53
Phase3: Construction
• The project is developed and completed.
• System or source code is created and then testing is
done.
Phase4: Transition
• The final project is released to the public.
• Transit the project from development into production.
• Update project documentation.
Phase5: Production
• The final phase of the model.
• The project is maintained and updated
accordingly.
54
Advantages:
• It provides good documentation, it completes the
process in itself.
• It provides risk-management support.
• It reuses the components, and hence total time
duration is less.
• Good online support is available in the form of tutorials
and training.
Disadvantages:
• Team of expert professional is required, as the process
is complex.
• Complex and not properly organized process.
55
Personal and Team Process Model
56
Framework Activities of PSP
• Planning. This activity isolates requirements and
develops both size and resource estimates. In addition,
defects estimate (the number of defects projected for the
work) is made. All metrics are recorded on worksheets or
templates. Finally, development tasks are identified and
a project schedule is created.
• High level design. External specifications for each
component to be constructed are developed and a
component design is created. Prototypes are built when
uncertainty exists. All issues are recorded and tracked.
• High level design review. Formal verification methods
are applied to uncover errors in the design. Metrics are
maintained for all important tasks and work results.
57
• Development. The component level design is refined
and reviewed. Code is generated, reviewed, compiled,
and tested. Metrics are maintained for all important
tasks and work results.
• Postmortem. Using the measures and metrics
collected, the effectiveness of the process is
determined. Measures and metrics should provide
guidance for modifying the process to improve its
effectiveness.
58
Team Software Process (TSP)
• Key Characteristics:
– Iterative and incremental
– Emphasizes flexibility and adaptability
– Customer-centric
– Values individuals and interactions over processes
and tools
– Responds to change over following a plan
60
Agile Development
61
Phases of Agile Model:
• Requirements gathering
• Design the requirements
• Construction/ iteration
• Testing/ Quality assurance
• Deployment
• Feedback
62
Four Agile Values
63
Agility Principles
1. Satisfy the client through early and continuous delivery of
valuable computer software.
2. Changes in the requirements must be accommodated.
3. Deliver operating computer software often, within the
shorter time span deliver the working unit.
4. Business individuals and developers should work along
daily throughout the project.
5. Motivate the people who are building the projects.
6. Working software is the primary measure of the progress
of the software development
7. The agile approach promote the constant project
development
64
Agility Principles
65
Agile Methodologies
67
Extreme Programming Process
68
Scrum
• SCRUM is an agile development process focused
primarily on ways to manage tasks in team-based
development conditions.
• There are three roles in it, and their responsibilities
are:
• Scrum Master: The scrum can set up the master
team, arrange the meeting and remove obstacles for
the process
• Product owner: The product owner makes the
product backlog, prioritizes the delay and is
responsible for the distribution of functionality on each
repetition.
• Scrum Team: The team manages its work and
organizes the work to complete the sprint or cycle.
69
• A sprint is a short, time-boxed period when a scrum
team works to complete a set amount of work.
70
Principles of Framework Activity
Communication Principles
1)Listen carefully
2) Prepare before you communicate
3) Someone should facilitate the activity
4) Face-to-face communication is best
5) Take notes and document decision
6) Strive for collaboration
7) Stay focused, modularize your discussion
8) Draw a picture to clear your idea
9) Keep the discussion to “ move on ” :-
a) once there is an agreement to do something .
b) If you cannot agree to something.
c) If a feature of function is not clear
10) Negotiation is successful when both parties win 71
Planning Principles
72
Modeling Principles
73
6: Adapt the models you develop to the system at hand.
7: Try to build useful models, but forget about building
perfect models.
8: Don’t become dogmatic about the syntax of the model.
If it communicates content successfully, representation
is secondary.
9: If your instincts tell you a model isn’t right even though
it seems OK on paper, your probably have reason to be
concerned.
10: Get feedback as soon as you can
74
Construction Principles
75
Coding Principles: Programming
1: Constrain you algorithms by following structured
programming practice
2: Consider the use of pair programming
3: Select data structures that will meet the needs of the
design
4: Understand the software architecture and create interfaces
consistent with it
5: Keep conditional logic as simple as possible
6: Create nested loops in a way that makes them easily
testable
7: Follow coding standards
8: Write code that is self-documenting
9: Create a visual layout that aids understanding.
76
Coding Principles: Validation
Principle 1: Conduct a code walkthrough when
appropriate
Principle 2: Perform unit tests and correct errors you’ve
discovered
Principle 3: Refactor the code
77
Testing Principles
78
Deployment Principles
79
Part – A Questions
• Define software.
• List out the characteristics of software.
• Define a software pattern.
• Distinguish between personal software process and
team software process model.
• What are the advantages of Prototype model?
• Define Software Engineering
• List out the types of software?
• What are the disadvantages of water fall model?
• What is software development myth?
• What is software process? Give its importance
80
Part – B Questions
• Construct a short note on spiral life cycle model with a
diagram
• Summarize about agile principles with suitable
example.
• Explain in detail about waterfall model with necessary
diagram
• Outline about Prototyping model along with example.
• Summarize about any two prescriptive process models
with advantages and disadvantages
• Explain in detail about Unified process model with
necessary diagram
• Discuss about the various principles of framework
activity.
81