Introduction to Software
Engineering Concepts
Software Characteristics,
Components, Applications,
Principles, Metrics, and Control
Software Characteristics
• Correctness: Meets requirements
• Reliability: Performs consistently (without
failure)
• Efficiency: Uses resources well
• Usability: Easy to use
• Maintainability: Easy to update
• Portability: Runs on different platforms
Software Components
• User Interface (UI)
• Business Logic
• Data Layer
• Integration Components (APIs)
• System Services (Security, Logging)
Types of Software Applications
• System Software (OS, compilers)
• Application Software (MS Office)
• Web Applications (e-commerce)
• Embedded Software (IoT)
• AI/ML Applications (Chatbots)
Software Engineering Principles
• Modularity
– Break system into manageable parts
• Abstraction
– Hide complexity
• Encapsulation
– Protect data
• Separation of Concerns
– Divide responsibilities
• Reusability
– Use components across projects
• Incremental Development
– Build in small steps
Software Metrics and Measurement
• Size Metrics: LOC, Function Points
• Complexity Metrics: Cyclomatic Complexity
• Quality Metrics: Reliability
• Productivity
• Effort
• Time
Monitoring and Control in Software
Projects
• -Monitoring:
– Track progress, tools like Gantt charts
• Control:
– Corrective actions like re-planning
• Emphasis on continuous evaluation
SDLC
• The software remains useful
between analysis and
maintenance phases and ends
with the retirement phase.
• The period from which a
software starts till the
retirement is known as life
cycle of a software
Why Life
Cycle
Matters
Build and Fix Model
• Suitable for?
• Small programming
exercises
• Code soon becomes
unfixable &
unenhanceable
• No structured design
• Maintenance not possible
Waterfall Model
• Sequential
• Rarely works in real life
• Suitable for the projects
where requirements are
completely known in the
beginning of the project
Documentation
Pros and Cons
Pros Cons
• Simplicity, Easy to understand • Complete requirements must be
known, freezes requirement at the
and manage end of requirement analysis phase
• Structure to inexperienced staff • Complete one phase before moving
to other
• Quality over cost and time
• Difficult to respond to changing needs
• Helps to coordinate the work
• Large number of documents produced
Some more Drawbacks
• Customer does not get the opportunity to see the
working product until late after implementation
and testing is completed.
• The customer may find the software different
than what they actually wanted .
• It may take years to complete the project and at
that point technology may become old and
obsolete or customer’s expectations may change.
• Testing the system as a whole becomes difficult.
• This approach is particularly not useful in the case
of interactive user applications.