0 ratings 0% found this document useful (0 votes) 11 views 33 pages Week 11 PP
The document outlines the objectives and key concepts of a Software Engineering course, emphasizing the importance of software development methods, object-oriented design, and testing approaches. It describes software characteristics, classifications, and the attributes of good software, while also differentiating between software engineering and computer science. Additionally, it covers software development life cycle models, particularly the Waterfall model, including its strengths and drawbacks.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content,
claim it here .
Available Formats
Download as PDF or read online on Scribd
Carousel Previous Carousel Next
Save Week 11 PP For Later Introduction to
Software
EngineeringCourse Objectives:
e The main objectives of this course are to:
1. To enhance the basics of Software
engineering methods and practices
2. To earn the techniques for developing
software systems
3. To understand the object orient
4. To understand software testing approaches
Prepared by Dr.T.Thendral
06.07.2023On the successful completion of
the course,student will be able to:
Understand
engineering
e Apply the software engineering models in developing
software application
e Implement the object oriented design in various
projects
e Knowledge on how to do a software project within-
depth analysis
e To inculcate knowledge on Software engineering
concepts in turn gives a road map to design a new
software project ee ee ea
the basic concepts of softwareWhat is Software?
e Software is a set of instructions to acquire inputs and to
manipulate them to produce the desired output in terms of
functions and performance as determined by the user of
the software
e Also include a set of documents, such as the software
manual, meant for users to understand the software systemDescription of the Software
@ A software is described by its capabilities. The capabilities relate to
the functions it executes, the features it provides and the facilities it
offers.
EXAMPLE
Software written for Sales-order processing would have
different functions to process different types of sales order from
different market segments .
v The features for example, would be to handle multi-currency
computing, updating product, sales and Tax status.
v The facilities could be printing of sales orders, email to customers
and reports to the store department to dispatch the goods.Classes of Software
Software is classified into two classes:
©@ Generic Software:
is designed for broad customer market whose requirements are very
common, fairly stable and well understood by the software engineer
@ Customized Software:
is developed for a customer where domain, environment and
requirements are being unique to that customer and cannot be satisfied
by generic productsWhat is Good Software?
Software has number of attributes which decide whether it is a good
or bad .
e The definition of a good software changes with the person who
evaluates it.
e The software is required by the customer, used by the end users of an
organization and developed by software engineer
e Each one will evaluate the different attributes differently in order to
decide whether the software is goodWhat are the attributes of good
software?
The software should deliver the required functionality and performance to
the user and should be maintainable, dependable and usable.
Maintainability
- Software must evolve to meet changing needs
Dependability
- Software must be trustworthy
Efficiency
- Software should not make wasteful use of system resources
Usability
- Software must be usable by the users for which it was designedSoftware - Characteristics
Software has a dual role. It is a product, but also a vehicle for delivering a
product.
© Software is a logical rather than a physical system element.
e Software has characteristics that differ considerably from those of hardware.
v Software is developed or engineered, it is not manufactured in the
classical sense
v Software doesn’t “wear out”
v Most software is custom-built, rather than being assembled from
existing components.Changing nature of
software(Types)
e@ System Software- A collection of programs written to service other
programs at system level.
For example, compiler, operating systems.
e Real-time Software- Programs that monitor/analyze/control real
world events as they occur.
e Business Software- Programs that access, analyze and process
business information.
e Engineering and Scientific Software - Software using “number
crunching” algorithms for different science and applications. System
simulation, computer-aided design.Changing nature of
software(Types)
e Embedded Software-:
Embedded software resides in read-only memory and is used to
control products and systems for the consumer and industrial markets.
It has very limited and esoteric functions and control capability.
e Artificial Intelligence (AI) Software:
Programs make use of AI techniques and methods to solve complex
problems. Active areas are expert systems, pattern recognition, games
e Internet Software :
Programs that support internet accesses and applications. For example,
search engine, browser, e-commerce software, authoring tools.Software Engineering
“A systematic approach to the analysis, design, implementation and
maintenance of software.”
(The Free On-Line Dictionary of Computing)
e “The systematic application of tools and techniques in the
development of computer-based applications.”
(Sue Conger in The New Software Engineering)
e “Software Engineering is about designing and developing high-quality
software.”
(Shari Lawrence Pfleeger in Software Engineering -- The Production
of Quality Sofiware)What is Software Engineering?
Engineering: The Application of Science to the Solution of Practical
Problems
© Software Engineering: The Application of CS to Building Practical Software
Systems
© Programming
— Individual Writes Complete Program
— One Person, One Computer
— Well-Defined Problem
— Programming-in-the-Small
© Software Engineering
- Individuals Write Program Components
~ Team Assembles Complete ProgramWhat is the difference between software engineering and
computer science?
ering
is concerned with t
theory > the practicalities of developing
fundamentals » — delivering useful software
‘Computer science theories are currently insufficient to act as a complete
underpinning for software engineering, but it is a foundation for practical aspects
of software engineeringSoftware engineering is a layered
technology - Pressman’s view:
Software Engineering Layers
Se,What is Software Engineering?
e Software methods:
e Software engineering methods provide the technical “how to’s” for
building software.
e@ Methods --> how to encompass a broad array of tasks:
- requirements analysis, design, coding, testing, and maintenance
e Software engineering methods rely on a set of basic principles.Software methods
Seed
Nt r
Bre
ROPeP MOO suc:
ea
ere rere
aeWhat is Software Engineering?
e Software Process:
Software engineering process is the glue that holds:
- technology together
- enables rational and timely development of computer software
Software engineering process is a framework of a set of key process
areas
It forms a basis for:
- project management, budget and schedule control
- applications of technical methods
- product quality controlWhat is Software Engineering?
e Software Tools:
- programs provide automated or semi-automated support for the
process and methods
- programs support engineers to perform their tasks in a systematic
and/or automatic mannerWhy Software Engineering?
© Objectives:
- Identify new problems and solutions in
software production
- Study new systematic methods, principles,
approaches for system analysis, design,
implementation, testing and maintenance.
- Provide new ways to control, manage, and
monitor software process
- Build new software tools and environment to
support software engineeringWhy Software Engineering?
Major Goals:
- To increase software productivity and quality
- To effectively control software schedule and planning
- To reduce the cost of software development
- To meet the customers’ needs and requirements
- To enhance the conduction of software engineering
process
- To improve the current software engineering practice
- To support the engineers’ activities in a systematic and f
efficient mannerProcess Framework Activities
e Communication
e Planning
e@ Modeling
e Construction
e Deployment
People Process Technology Model of Process ImprovementUmbrella Activities
e Software Project Tracking & Control
e Risk Management
e Formal Technical Reviews
e Software Configuration Management
e Reusability ManagementSDLC Process Model
SDLC — Software Development Life Cycle
Process model is a framework that describes
the activities,actions,tasks,milestones,and
work products performed at each stage of a
software development project that leads to a
high quality softwareLife cycle models
e Waterfall model
e Incremental process models
— Incremental model
— RAD model
e Evolutionary Process Models
— Prototyping model
- Spiral model
e Object oriented process modelATERFALL MODEL
k.as Linear life cycle model or classic life cycle model
(implementation
a,
P|
|
| ies,WATERFALL MODELWATERFALL MODEL
e Project initiation & requirement gathering
— What is the Problem to Solve?
~ What Does Customer Need/Want?
— Interactions Between SE and Customer
— Identify and Document System Requirements
— Generate User Manuals and Test Plans
+ Planning
— Prioritize the requirements
— Plan the processWATERFALL MODEL
e Analysis and design
How is the Problem to be Solved?
High-Level Design
Determine Components/Modules
Transition to Detailed Design
Detail Functionality of Components/Modules
e Coding and Testing
Writing Code to Meet Component/Module Design Specifications
Individual Test Modules in Isolation
Integration of Components/Modules into Subsystems
Integration of Subsystems into Final Programing red by Dr.T:ThendralWATERFALL MODEL
Deployment
— System Delivered to Customer/Market
— Bug Fixes and Version Releases Over Time
Strengths
Easy to understand, easy to use
Provides structure to inexperienced staff
Milestones are well understood
Sets requirements stability
Good for management control (plan, staff, track)
Works well when quality is more important than cost or scheduleWaterfall Drawbacks
e All projects cannot follow linear process
e All requirements must be known upfront
e Few business systems have stable requirements
e The customer must have patience
e A working version of the program will not be
available until late in the project time-span
e Leads to ‘blocking states’
e Inappropriate to changesWhen to use the Waterfall Model
e Requirements are very well known
e Product definition is stable
e Technology is understood
e New version of an existing product
e Porting an existing product to a new platform