Uploaded by legec49076

Lecture 2 SEintro

advertisement
ECM1005
Principles of Software Engineering
Module – 1
Software Engineering Introduction
Acknowledgement
• The contents of this video lectures are prepared based on the
following resources:
• Roger Pressman, Software Engineering: A Practitioner's Approach, 8th Edition,
McGraw-Hill, 2014.
• Ian Sommerville, Software Engineering, 10th Edition, Pearson, 2015.
Outlines
•
•
•
•
•
•
•
•
•
•
Engineering
Software
Software cost
Software failure
Professional software development
Software product and specification
Attributes of good software
Software Engineering
Issues
Application types
Engineering
• Engineering is the application of scientific and practical knowledge in
order to invent, design, build, maintain and improve systems, process,
etc.
What is software?
• Computer programs and associated documentation. Software
products may be developed for a particular customer or may be
developed for a general market.
• Collection of programs
• Computer software, or simply software, is a collection
of data or computer instructions that tell the computer how to work.
Software cost
• Software costs regularly govern computer system costs. The software
costs is usually greater than the hardware cost in PC.
• Software maintenance cost is more compared to development costs.
For systems with a long existence, maintenance costs may be several
times development costs.
• Software engineering is concerned with cost-effective software
development.
Software project failure
• Growing system complexity
• When the demand changes, new software engineering techniques help us to
build larger, more complex systems.
• Systems have to be construct and delivered more quickly; larger, even more
complex systems are required
• New capabilities should be added to system that were previously thought to
be impossible.
• Software project failure(without using software engineering)
• Software written without using software engineering methods and
techniques is fairly easy.
• Many companies developed their products without using software
engineering methods and their software is quiet expensive and less reliable
Professional software development
• Commonly asked questions about software engineering
•
•
•
•
•
•
•
•
•
•
What is software?
What are the characteristics of good software?
What is software engineering?
What are the essential software engineering activities?
What is the difference between software engineering and computer
science?
What is the difference between software engineering and system
engineering?
What are the key challenges facing software engineering?
What are the costs of software engineering?
What are the best software engineering techniques and methods?
etc
Software Product
• Generic products
• Stand-alone systems that are promoted and sold to any customer who wishes
to buy them.
• Examples – PC software such as graphics programs, project management
tools; CAD software; software for specific markets such as appointments
systems for dentists.
• Customized products
• Software that is custom-built for a specific customer to meet their own
requirements.
• Examples – embedded control systems, air traffic control software, traffic
monitoring systems.
Essential attributes of good software
• Maintainability
• Dependability and security
• Efficiency
• Acceptability
Software engineering
• Software engineering is an engineering discipline that is concerned
with all aspects of software production from the early stages of
system specification through to maintaining the system after it has
gone into use.
• Engineering
• Using appropriate theories and methods to solve problems bearing in mind
organizational and financial constraints.
• Aspect of software production
• It covers project management, development tools, methods etc. to support
software production.
*Definition are referred from Ian Sommerville, Software Engineering, 10th Edition, Pearson, 2015.
Significance of software engineering
• Individuals and society rely more on advanced software systems.
• Need to produce reliable and trustworthy systems economically and
quickly.
• Should be low cost
• Long life
• Using software engineering methods and techniques for software
systems rather than just write the programs as if it was a personal
programming project reduce the cost and complexity
Software process activities
• Software specification, where customers and engineers define the
software that is to be produced and the constraints on its operation.
• Software development, where the software is designed and
programmed.
• Software validation, where the software is checked to ensure that it is
what the customer requires.
• Software evolution, where the software is modified to reflect
changing customer and market requirements.
Common issues that affect software
• Heterogeneity
• Systems are distributed across network and need to operate in different types
of computer and mobile devices.
• Business and social change
• Able to adapt the new technologies and emerging economies for developing
the new software quickly and made available to society.
• Able to change their existing software and to rapidly develop new software.
Common issues that affect software
• Security and trust
• It is important that , is we can trust the software or not. Since its intertwined
with all aspects of our lives
• Scale
• Software has to be developed for global community and wide range of scales,
from very small embedded systems in portable or wearable devices through
to Internet-scale and cloud-based systems.
Application types
• Stand-alone applications
• Individual applications that run on local computer ,such as PC and doesn’t
require internet to access necessary functionalities.
• Interactive transaction-based applications
• Applications that carry out on a remote computer and are accessed by users
from their own PCs or terminals.
• Example: web applications such as e-commerce applications.
• Embedded control systems
• These are software control systems that control and manage hardware
devices. Numerically, there are probably more embedded systems than any
other type of system.
Application types
• Batch processing systems
• Designed to process larger data in batches for business systems
• Entertainment systems
• Systems used for personally to entertain the user
• Systems for modeling and simulation
• These are systems that are developed by scientists and engineers to model
physical processes or situations, which include many, separate, interacting
objects.
Application types
• Data collection systems
• Systems used to collect the environmental data using sensor network and
send data to other system for processing.
• Systems of systems
• These are systems that are composed of a number of other software systems.
Summary
• Software Engineering
• Attributes of good software
• Software Cost/Failure
• Issues in developing software
• Application types
Download