0% found this document useful (0 votes)
7 views14 pages

L2 Software Engineering Concepts

The document provides an overview of software engineering concepts, including characteristics, components, types of applications, principles, metrics, and project control. It discusses various software development life cycle models, particularly the Waterfall model, highlighting their pros and cons. Key software metrics and the importance of monitoring and control in projects are also emphasized.

Uploaded by

lukinggood2006
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views14 pages

L2 Software Engineering Concepts

The document provides an overview of software engineering concepts, including characteristics, components, types of applications, principles, metrics, and project control. It discusses various software development life cycle models, particularly the Waterfall model, highlighting their pros and cons. Key software metrics and the importance of monitoring and control in projects are also emphasized.

Uploaded by

lukinggood2006
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

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.

You might also like