0% found this document useful (0 votes)
40 views

1-Intro To SE

Uploaded by

Random Guy
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)
40 views

1-Intro To SE

Uploaded by

Random Guy
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/ 33

Introduction to Software

Engineering
Instructor: Mehroze Khan
•Software is:
(1) instructions (computer programs) that when executed provide desired
What is
features, function, and performance

Software?
(2) data structures that enable the programs to adequately manipulate
information
(3) documentation that describes the operation and use of the programs.

2
Failure Curve for Hardware

3
Software doesn't "wear out“.
Failure Curve for Software But it does deteriorate!

4
Why is SE Needed?

•Computers everywhere
•Toaster, Microwave, Temperature control of
A/C, Router, Surgical Equipment…
•Computers need to be managed
•Software runs on all computers
•Make lives comfortable, efficient, effective…
•SE practices ensure development of good
software to improve our living standard
Why Do We Need to Study SE?
•What could be the benefits?
Solving Problems
• Analysis
Solving Problems (continued)

• Synthesis
Legacy Software

Why must it change?

1 2 3 4
software must be software must be software must be software must be
adapted to meet the enhanced to extended to make it re-architected to
needs of new implement new interoperable with make it viable within
computing business other more modern a network
environments or requirements. systems or environment .
technology. databases.

9
Software?

• Computer programs along with associated configuration data and


documentation s.t. the programs are correctly operated
• Configuration data helps set up the programs
• System documentation helps understand structure of the system
• User documentation explains how to use the system
Engineering?

• Engineers’ Job?
• Make things work
• Apply theories, methodologies, tools appropriately
• Provide solutions in absence of applicable theories and methods
• Realize financial and organizational constraints
Aspects of Software Production?

• Technical process of developing software


• Activities such as management of project and teams
• Development of tools, theories, methods to support production of
software
Who Does Software Engineering?

• Participants (stakeholders) in a software development project


Development Team
•Requirement analysts: work with the customers to identify and
document the requirements
•Designers: generate a system-level description of what the
system is supposed to do
•Programmers: write lines of code to implement the design
•Testers: catch faults
•Trainers: show users how to use the system
•Maintenance team: fix faults that show up later
•Librarians: prepare and store documents such as software
requirements
•Configuration management team: maintain correspondence
among various artefacts
Development Team (Roles)
• Who Does What?
Development Team (Roles)
Paradigm Resources

Process Software Skillset


Engineering

Lifecycle
Requirements Design Coding Testing Deployment Maintenance
Analysis

Typical phases in lifecycle of software


Software Lifecycle

• Phases
• Requirements analysis and definition
• System (architecture) design
• Program (detailed/procedural) design
• Writing programs (coding/implementation)
• Testing: unit, integration, system
• System delivery (deployment)

• Maintenance
Software Engineers?

• Adopt a systematic and organized approach, effectively, to produce


high quality software
What is a Good Software Product?

• Good software engineering must always include a strategy for


producing quality software
• Product Quality?
• Multiple facets…
What is a Good Software Product?

• Users judge external characteristics (e.g., correct functionality,


number of failures, type of failures)
• Designers and maintainers judge internal characteristics (e.g., ease of
modification)
• Thus, different stakeholders may have different criteria
• Need quality models
McCall’s Quality Model
Lehman’s Laws

• (1974) "Continuing Change" — A system must be continually adapted


or it becomes progressively less satisfactory. It happens so until it
becomes economical to replace it by a new or a restructured version
• (1974) "Increasing Complexity/Entropy" —Complexity/entropy of a
system increases with time, unless work is done to maintain or
reduce it
• (1991) "Continuing Growth" — the functional content of a system
must be continually increased to maintain user satisfaction over its
lifetime
• (1996) "Declining Quality" — the quality of a system will appear to be
declining unless it is rigorously maintained and adapted to
operational environment changes
Software Engineering Challenges

• Acceptable Quality
• Usability
• Security
• Reliability
• Performance
Conflicts?
• Cost Effectiveness
• Engineering and operational feasibility
• Limited development budget
• Timely Completion
• Limited time
Manage
Conflicts…
Software Engineering

• Disciplined, consistent, and systematic effort to construct (design +


build) and maintain good quality software in timely and cost-effective
manner
Terminology for Describing Bugs

• A fault: occurs when a human makes a mistake, called an error, in


performing some software activities
• A failure: is a departure from the system’s required behaviour
Elements of a System

•Activity: An activity is something that happens in a system.


Usually described as an event initiated by a trigger, the activity
transforms one thing to another by changing a characteristic.
•Objects: The elements involved in the activities are called
objects or entities.
•Relationships: Once entities and activities are defined, we
match the entities with their activities. The relationships
among entities and activities are clearly and carefully defined.
•System Boundary:
• Who generates input and who receives output
• Which objects/activities are part of the system and which are not
• Nested systems, related systems, interrelated systems
A Systems Approach (Contd.)
• Example of systems: a human respiratory system

??
A Systems Approach (Contd.)
• A computer system must also be clearly described: System definition
of a paycheck production
An Engineering Approach
• Idea to build a house
• Asking someone to build the house
• Explaining requirements
• Getting designs
• Modifying + Approving designs
• Inspecting the construction Building a
• Adding new features House
• Testing household components
• Moving in
• Getting issues fixed after moving in
An Engineering Approach
• Determine and Analyze Requirements
• Produce and Document Overall Design
• Produce Detailed Specifications
• Identify and Design Components
• Build Components
• Test Components Building a
• Integrate Components
• Make final modifications after residents move in
House
• Continue Maintenance by the Residents
An Engineering Approach
• Requirement analysis and definition
• System design
• Program design
• Writing the programs
• Unit testing
• Integration testing Building a
• System testing System
• System delivery
• Maintenance
References

1. Shari Lawrence PFleeger and Joanne M. Atlee, Software Engineering


Theory and Practice, Fourth Edition
2. Roger Pressman, Software Engineering: A Practitioner’s Approach
3. Ghezzi et al., Fundamentals of Software Engineering
4. Book slides from UCF

Acknowledgement
⚫ A few slides have been reused from UCF slides for the SE course

You might also like