0% found this document useful (0 votes)
71 views25 pages

CH 1 (Software Engineering)

Uploaded by

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

CH 1 (Software Engineering)

Uploaded by

eyasu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd

Introduction To Software and

Software Engineering

CHAPTER ONE

1
What is software?
Software is
 set of instruction or programs that direct the computer hardware
or that help user to perform users task.
 collection of computer programs, procedures, rules, and
associated documentations and data (IEEE).
Software have variety of application or touch all aspect
of human life.
Some of them are:
business domain
 engineering domain(software used for drawing, drafting,
modelling, etc)
Education domain (e-learning, ...)
2
etc
Types of Software
Custom Real time software
• For a specific customer • E.g. control and monitoring
Generic systems
• Sold on open market • Must react immediately
• Often called • Safety often a concern
—COTS (Commercial Off Data processing software
The Shelf) • Used to run businesses
—Example: word processors, • Accuracy and security of
spread sheets, compilers, data are key
etc
Embedded
• Built into hardware
3
• Hard to change
3
What is Software Engineering?
 The term software engineering is composed of two words, software and
engineering.

 Software is more than just a program code. A program is an executable code,


which serves some computational purpose. Software, when made for a specific
requirement is called software product.
 Engineering on the other hand, is all about developing products, using well-
defined, scientific principles and methods.

 So, we can define software engineering as an engineering branch associated


with the development of software product using well-defined scientific
principles, methods and procedures.

4
What are the attributes of good software?
 The software should deliver the required functionality and
performance to the user and should be maintainable, dependable
and acceptable.
Maintainability
Software must evolve to meet changing needs;
Usability
• Users can learn it and fast and get their job done easily
Efficiency
It doesn’t waste resources
Reusability
Its parts can be used in other projects, so reprogramming is
not needed
Reliability
5 It does what it is required to do without failing
TWO ORTHOGONAL VIEWS OF
SOFTWARE

-Traditional technique/Structural Oriented


Approach
- focuses on data and functions.
-Object Oriented Approach
- focuses on objects that combines data and functionality
6
Cont…

TRADITIONAL APPROACH OBJECT ORIENTED


SYSTEM DEVELOPMENT
Collection of Combination of data and
procedures(functions) functionality
Focuses on function and Focuses on object, classes,
procedures, different styles and modules that can be easily
methodologies for each step of replaced, modified and reused.
process
Moving from one phase to Moving from one phase to
another phase is complex. another phase is easier.
Increases duration of project Decreases duration of project
Increases complexity Reduces complexity and
7
redundancy
Software Development Life Cycle
It is a systematic approach which explicitly breaks down the work into phases
that are required to implement either new or modified Information System.

8
SDLC PHASE MAIN ACTIVITIES
1. Planning •Define the system to be developed
•Set the project scope
•Develop the project plan
•Assignment of team members & other resources
2. Analysis •Gather business requirements
•Description of current system & where problems or
opportunities are
•Explanation of alternative systems & justification
3. Design •Design the technical architecture
•Design system models
•Build technical architecture
•Build databases and programs
4. Implementation •Write test conditions
•Perform testing
•Write user documentation
•Provide training
5. Maintenance •Build a help desk
•Support system changes
9 •New version
The software process
 A software process (also knows as software methodology) is a set
of related activities that leads to the production of the software.
These activities may involve the development of the software from
the scratch, or, modifying an existing system.
 A software process model is a simplified representation of a
software process. Each model represents a process from a specific
perspective.

10
Some common Software Process Models
Waterfall

Prototyping

V-model

Incremental

Iterative

Spiral

Agile

development
11
Waterfall model
 One of the first process models proposed

 Works for well understood problems with minimal or no change

in the requirements
 Each major phase is marked by milestones and deliverables

Disadvantage
 All requirements must be known upfront
 No guidance how to handle changes
 Long wait before a final product

12
When to use waterfall
 Requirements are very well known

 There are no ambiguous requirements

 The necessary tools and techniques used are stable,

and not dynamic

13
Prototype process model
 Identify basic requirements
 Including input and output info
 Details (e.g., security) generally ignored
 Developers build a prototype during the requirements phase
 Prototype is evaluated by end users
 Users give corrective feedback
 Developers further refine the prototype
 When the user is satisfied, the prototype code is brought up to the
standards needed for a final product.

14
When to use prototype model

 desired system needs a lot of interaction with the


end users
 if requirements are changing quickly
E.g online system

15
Incremental model
 It is necessarily a series of waterfall cycles. The requirements are

divided into groups at the start of the project.


 For each group, the SDLC model is followed to develop

software.
 The SDLC process is repeated, with each release adding more

functionality until all requirements are met.


 In this method, each cycle act as the maintenance phase for the

previous software release.

16
When we use the Incremental Model?
 When the requirements are superior.

 A project has a lengthy development schedule.

 When Software team are not very well skilled or trained.

 When the customer demands a quick release of the product.

 You can develop prioritized requirements first.

17
Spiral model
 Similar to incremental model

 More focus on risk analysis

 Has four phases

Planning

Engineering (determine goals, alternatives and constraints)

Risk analysis

Evaluation (develop and test)

18
Advantages
 Avoidance of risk

 Good for mission critical projects

Disadvantages

 Costly model

 Risk analysis requires highly specific expertise

 Project success is highly dependent on the risk analysis phase

19
When to use spiral model
 When costs and risk evaluation is important

 For medium to high-risk projects

 Users are unsure of their needs

 Requirements are complex

20
What are Software Metrics?
standards for estimating the quality, progress, and health of software

development activity.

Types of Software Metrics


Internal metrics: used to measure properties that are deemed more

important to a software developer than the users. E.g. LOC


External metrics: used to measure features that are deemed more

important to the user than the software developers, such


as portability, reliability, functionality, usability, …
Hybrid Metrics: mix product, process, and resource metrics. E.g.

Cost per FP

21
Object oriented system development methodology

Why an object orientation? Object oriented systems are


 Easier to adapt to changes
 More robust
 Easier to maintain
 Promote greater design and code reuse
 Creates modules of functionality

22
Principles of Object-Oriented Systems

Elements of Object-Oriented System


Objects − An object is something that is exists within problem domain and can be
identified by data (attribute) or behavior.
Attributes − They describe information about the object.
Behavior − It specifies what the object can do.
Class − A class encapsulates the data and its behavior. Objects with similar
meaning and purpose grouped together as class.
Methods − Methods determine the behavior of a class. They are nothing more
than an action that an object can perform.
Message − A message is a function or procedure call from one object to another.
They are information sent to objects to trigger methods. Essentially, a message is a
function or procedure call from one object to another.

23
Reading assignment (5%)
1. The deference b/n-
Object-Oriented Software Engineering (OOSE), Object-Oriented System
Analysis and Design(OOSAD) and Information Engineering (IE)
2. Software Process models
a. V-model
what?
Advantage and disadvantage

b. Agile development
what?
Advantage and disadvantage
3. Explain what is software Engineering professions and Professional Ethics.
General direction:
 copy from others is made your mark illegible.
 Your answer should be readable, precise and clear.
 Not exceeds more than 5 pages

24
End of Chapter 1

?
25

You might also like