0% found this document useful (0 votes)
3 views53 pages

Software Engineering Course Overview

The document outlines the Software Engineering course at Walabu University, covering key concepts such as the definition of software, types of software products, and the importance of software in modern economies. It discusses various software development models including Traditional, Object-Oriented, Agile, and RAD, highlighting their advantages and disadvantages. Additionally, it details the Software Development Life Cycle (SDLC) phases from communication to maintenance.

Uploaded by

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

Software Engineering Course Overview

The document outlines the Software Engineering course at Walabu University, covering key concepts such as the definition of software, types of software products, and the importance of software in modern economies. It discusses various software development models including Traditional, Object-Oriented, Agile, and RAD, highlighting their advantages and disadvantages. Additionally, it details the Software Development Life Cycle (SDLC) phases from communication to maintenance.

Uploaded by

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

Course title: Software Engineering Course code:

CoSc3061
Credit Walabu
Madda hours: 3University
ECTS: 5
College of Computing
Department of Computer Science
Asrat S (M. Tech, Assist. Prof)
email. naolasrat2009@[Link]

12/25/2025 1
Chapter one
Introduction
What is Software?

• The product that software professionals build and then support over the long term.

• Software encompasses:

(1) instructions (computer programs) that when executed provide desired features, function, and
performance;

(2) data structures that enable the programs to adequately store and manipulate information and

(3) documentation that describes the operation and use of the programs.

12/25/2025 2
• The IEEE definition: Software Engineering is

(1) the application of a systematic, disciplined, quantifiable approach to the


development, operation, and maintenance of software; that is, the application of
engineering to software.

(2) the study of approaches as in (1).

12/25/2025 3
Software products

 Generic products
Stand-alone systems that are marketed and sold to any customer who wishes to buy them.
Examples – PC software such as editing, graphics programs, project management tools;
CAD software; software for specific markets such as appointments systems for dentists.
 Customized products
Software that is commissioned by a specific customer to meet their own needs.
Examples – embedded control systems, air traffic control software, traffic monitoring
systems.

12/25/2025 4
Why Software is Important?

• The economies of ALL developed nations are dependent on software.


• More and more systems are software controlled (transportation, medical,
telecommunications, military, industrial, entertainment,)

• Software engineering is concerned with theories, methods and tools for


professional software development.
• Expenditure on software represents a significant fraction of GNP in all
developed countries.
12/25/2025 5
Software costs

• Software costs often dominate computer system costs. The costs of


software on a PC are often greater than the hardware cost.
• Software costs more to maintain than it does to develop.
• For systems with a long life, maintenance costs may be several times
development costs.
• Software engineering is concerned with cost effective software
development.

12/25/2025 6
Two Orthogonal views of software.
• Two Approaches,

1) Traditional Approach

2) Objected-Oriented Approach

1) Traditional Approach

•Collection of programs or functions.

•A system that is designed for performing certain actions.

•Algorithms + Data Structures = Programs.

•Software Development Models (Waterfall, Spiral, Incremental, etc..)

12/25/2025 7
2) Object Oriented Approach
• OO development offers a different model from the traditional software that is based on
functions and procedures.

• software is a collection of discrete objects that encapsulate their data as well as the
functionality.

• Each object has attributes (properties) and method (procedures).

• software by building self-contained modules or objects that can be easily

•REPLACEABLE,

•MODIFIABLE AND

•REUSEABLE.

• Objects
12/25/2025 grouped in to classes and objects are responsible for itself. 8
BENEFITS OF OBJECT ORIENTATION
1) Faster development,
2) Reusability,
3) Increased quality
4) Modeling the real world and provides us with the stronger equivalence of the
real world‘s entities (objects).
5) Raising the level of abstraction to the point where application can be
implemented in the same terms as they are described.

12/25/2025 9
Difference between Traditional and Object-Oriented Approach

12/25/2025 10
Software development process models

• Software Process
• The software development paradigm helps developer to select a strategy
to develop the software.
• A software development paradigm has its own set of tools, methods and
procedures, which are expressed clearly and defines software
development life cycle.
• A few of software development paradigms or process models are
defined as follows

12/25/2025 11
1)Waterfall Model
• Waterfall model is the simplest model of software development paradigm.

• It says the all phases of SDLC will function one after another in linear manner.

• That is, when the first phase is finished then only the second phase will start and so on.

12/25/2025 12
Waterfall model
• This model assumes that everything is carried out and taken place perfectly as
planned in the previous stage and there is no need to think about the past issues
that may arise in the next phase.

• This model does not work smoothly if there are some issues left at the previous
step. The sequential nature of model does not allow us go back and undo or redo
our actions.

• This model is best suited when developers already have designed and developed
similar software in the past and are aware of all its domains.

12/25/2025 13
2)Iterative Model
• This model leads the software development process in iterations.

• It projects the process of development in cyclic manner repeating every


step after every cycle of SDLC process.

12/25/2025 14
Cont..
• The software is first developed on very small scale and all the steps are
followed which are taken into consideration.
• Then, on every next iteration, more features and modules are designed,
coded, tested and added to the software.
• Every cycle produces a software, which is complete in itself and has more
features and capabilities than that of the previous one.
• After each iteration, the management team can do work on risk management
and prepare for the next iteration.
• Because a cycle includes small portion of whole software process, it is easier
to manage the development process but it consumes more resources. 15
12/25/2025
3)Spiral Model
• Spiral model is a combination of both, iterative model and one of the
SDLC model. It can be seen as if you choose one SDLC model and
combine it with cyclic process (iterative model).

12/25/2025 16
Cont…
• This model considers risk, which often goes un-noticed by most other
models.
• The model starts with determining objectives and constraints of the
software at the start of one iteration.
• Next phase is of prototyping the software.

• This includes risk analysis.

• Then one standard SDLC model is used to build the software.

• In12/25/2025
the fourth phase of the plan of next iteration is prepared. 17
4)V – model
• The major drawback of waterfall model is we move to the next stage only
when the previous one is finished and there was no chance to go back if
something is found wrong in later stages. V-Model provides means of
testing of software at each stage in reverse manner.

12/25/2025 18
Cont.…
• At every stage, test plans and test cases are created to verify and validate the
product according to the requirement of that stage.
• For example, in requirement gathering stage the test team prepares all the
test cases in correspondence to the requirements.
• Later, when the product is developed and is ready for testing, test cases of this
stage verify the software against its validity towards requirements at this
stage.
• This makes both verification and validation go in parallel. This model is also
known as verification and validation model.
12/25/2025 19
5)Agile Model

1. The meaning of Agile is swift or versatile."Agile process model" refers to a


software development approach based on iterative development. Agile methods
break tasks into smaller iterations, or parts do not directly involve long term
planning. The project scope and requirements are laid down at the beginning of
the development process. Plans regarding the number of iterations, the duration
and the scope of each iteration are clearly defined in advance.
2. Each iteration is considered as a short time "frame" in the Agile process model,
which typically lasts from one to four weeks. The division of the entire project into
smaller parts helps to minimize the project risk and to reduce the overall
• project delivery time requirements. Each iteration involves a team working
through a full software development life cycle including planning, requirements
analysis, design, coding, and testing before a working product is demonstrated to
the12/25/2025
client. 20
Agile model

12/25/2025 21
Phases of Agile Model:
Following are the phases in the Agile model are as follows:

1. Requirements gathering

2. Design the requirements

3. Construction/ iteration

4. Testing/ Quality assurance

5. Deployment

6. Feedback
12/25/2025 22
When to use the Agile Model?

• When frequent changes are required.

• When a highly qualified and experienced team is available.

• When a customer is ready to have a meeting with a software team all


the time.
• When project size is small.

12/25/2025 23
Advantage(Pros) of Agile Method:
• Frequent Delivery

• Face-to-Face Communication with clients.

• Efficient design and fulfils the business requirement.

• Anytime changes are acceptable.

• It reduces total development time.

12/25/2025 24
Disadvantages (Cons) of Agile Model:

• Due to the shortage of formal documents, it creates confusion and


crucial decisions taken throughout various phases can be
misinterpreted at any time by different team members.
• Due to the lack of proper documentation, once the project
completes and the developers allotted to another project,
maintenance of the finished project can become a difficulty.

12/25/2025 25
6)RAD (Rapid Application Development) Model

•It is an incremental software development process model that


emphasizes an extremely short development cycle.
→ Is a high-speed adaptation of linear sequential model in which
rapid development is achieved by using component-based construction.
→ If requirements are well understood, RAD process enables
development team to create a fully functional system within short
periods of time.

12/25/2025 26
RAD approach encompasses the following phases:

12/25/2025 27
Rapid Application Development Model
Business modeling –the information flow among business is modeled.
Data modeling–modeling of attributes of each object and relationship among
objects
Process modeling–transformation of data objects to achieve the
information flow necessary to implement a business function
Application generation– use of fourth generation techniques. Use of
existing reusable components
Testing and turnover–shorter testing as it uses already tested components

12/25/2025 28
Weaknesses of RAD approach
• Requires sufficient human resources to create the right number of RAD
teams.
• Requires developers and customers who are committed to the rapid-fire
activities necessary to get a system complete in the stipulated time.
• All types are not appropriate for RAD, if a system cannot be properly
modularized; building components necessary for RAD will be problematic.
• Not suitable when technical risks are high. This occurs when a new
application makes heavy use of new technology or when the new software.

12/25/2025 29
7)Prototype Model

• It is a quickly developed, easily modifiable and extendible working


model of the required application.
• A prototype does not necessarily represent the complete system.
• It is only meant to start proving the validity of converting the user
requirements into working designs.
• In general terms, the Prototype Model follows these steps:

12/25/2025 30
12/25/2025 31
Components in the above figure can be interpreted as:
 Analyze requirements in a broad manner.
 This stage is completed when general lines are agreed upon between analysts and users.
 A quick design will then take place that is not rigorous but that provides proof in general
terms of the above requirements.
 The above prototype is evaluated by the user and changes and revisions are noted.
 The developer will now revise the system and return to the first step for deeper and more
elaborate analysis.
• The above cycle is repeated until the system reaches the final acceptance stage.

12/25/2025 32
Software life cycle and process models

Software Development Life Cycle

• Software Development Life Cycle, SDLC for short, is a well-defined, structured


sequence of stages in software engineering to develop the intended software product.

SDLC Activities

• SDLC provides a series of steps to be followed to design and develop a software


product efficiently. SDLC framework includes the following steps:

12/25/2025 33
12/25/2025 34
• Communication

• This is the first step where the user initiates the request for a desired software product. He contacts the
service provider and tries to negotiate the terms. He submits his request to the service providing
organization in writing.

• Requirement Gathering

• This step onwards the software development team works to carry on the project.

• The team holds discussions with various stakeholders from problem domain and tries to bring out as much
information as possible on their requirements. The requirements are contemplated and segregated into
user requirements, system requirements and functional requirements. The requirements are collected
using a number of practices as given -

studying the existing or obsolete system and software,

conducting interviews of users and developers,

referring to the database or

collecting
12/25/2025 answers from the questionnaires. 35
• Feasibility Study
• After requirement gathering, the team comes up with a rough plan of software process.
• At this step the team analyzes if a software can be made to fulfill all requirements of the
user and if there is any possibility of software being no more useful. It is found out, if
the project is financially, practically and technologically feasible for the organization to
take up. There are many algorithms available, which help the developers to conclude
the feasibility of a software project.
• System Analysis
• At this step the developers decide a roadmap of their plan and try to bring up the best
software model suitable for the project. System analysis includes Understanding of
software product limitations, learning system related problems or changes to be done in
existing systems beforehand, identifying and addressing the impact of project on
organization and personnel etc. The project team analyzes the scope of the project and
plans
12/25/2025the schedule and resources accordingly. 36
• Software Design
• Next step is to bring down whole knowledge of requirements and analysis on the desk and design the
software product. The inputs from users and information gathered in requirement gathering phase are
the inputs of this step. The output of this step comes in the form of two designs; logical design and
physical design. Engineers produce meta-data and data dictionaries, logical diagrams, data-flow
diagrams and in some cases pseudo codes.
• Coding
• This step is also known as programming phase. The implementation of software design starts in terms
of writing program code in the suitable programming language and developing error-free executable
programs efficiently.
• Testing
• An estimate says that 50% of whole software development process should be tested. Errors may ruin the
software from critical level to its own removal.
• Software testing is done while coding by the developers and thorough testing is conducted by testing
experts at various levels of code such as module testing, program testing, product testing, in-house
testing and testing the product at user’s end. Early discovery of errors and their remedy is the key to
12/25/2025 37
reliable software.
• Integration

• Software may need to be integrated with the libraries, databases and other
program(s). This stage of SDLC is involved in the integration of software with
outer world entities.

• Implementation

• This means installing the software on user machines. At times, software needs
post-installation configurations at user end. Software is tested for portability
and adaptability and integration related issues are solved during
implementation.

12/25/2025 38
Operations and Maintenance

• This phase confirms the software operation in terms of more efficiency and less errors.
If required, the users are trained on, or aided with the documentation on how to operate
the software and how to keep the software operational. The software is maintained
timely by updating the code according to the changes taking place in user end
environment or technology. This phase may face challenges from hidden bugs and real-
world unidentified problems.

Disposition

• As time elapses, the software may decline on the performance front. It may go
completely obsolete or may need intense upgradation. Hence a pressing need to
eliminate a major portion of the system arises. This phase includes archiving data and
required software components, closing down the system, planning disposition activity
and terminating system at appropriate end-of-system time.
12/25/2025 39
Process assessment models

•A software process assessment is a disciplined examination of the software processes


used by an organization, based on a process model. The assessment includes the
identification and characterization of current practices, identifying areas of strengths and
weaknesses, and the ability of current practices to control or avoid significant causes of
poor (software) quality, cost, and schedule.

•A software assessment (or audit) can be of three types.

 A self-assessment (first-party assessment) is performed internally by an organization's


own personnel.
 A second-party assessment is performed by an external assessment team or the
organization is assessed by a customer.
 A third-party assessment is performed by an external party or (e.g., a supplier being
assessed
12/25/2025 by a third party to verify its ability to enter contracts with a customer). 40
• Software process assessments are performed in an open and collaborative
environment.
• They are for the use of the organization to improve its software processes,
and the results are confidential to the organization.
• The organization being assessed must have members on the assessment
team.

12/25/2025 41
Software process metrics
Process Metrics - In various phases of SDLC, the methods and tools used, the company
standards and the performance of development are software process metrics.

• Use common sense and organizational sensitivity when interpreting metrics data.

• Provide regular feedback to the individuals and teams who collect measures and metrics.

• Do not use metrics to appraise individuals.

• Set clear goals and metrics that will be used to achieve them.

• Never use metrics to threaten individuals and teams.

• Metrics that indicate a problem area should not be considered a problem, but an indicator
for process improvement.
• Do not obsess on a single metric.
12/25/2025 42
Object oriented system development methodology.

Why an object oriented?


• OO Methods enables to develop set of objects that work together

It adapts to
 Changing requirements
 Easier to maintain
 More robust
 Promote greater design
 Code reuse
12/25/2025 43
Others
• Higher level of abstraction

• Seamless transition among different phases of software


development.
• Encouragement of good programming technique.

• Promotion of reusability.

12/25/2025 44
Overview of the unified approach.

• The unified approach (UA) is a methodology for software development.

 Booch, Rumbaugh, Jacobson methodologies gives the best practices, processes


and guidelines for OO oriented software development.
 Combines with the object management groups in unified modeling language.
 UA utilizes the unified modeling language (UML) which is a set of notations
and conventions used to describe and model an application.

12/25/2025 45
Layered Architecture
• UA uses layered architecture to develop applications.
• Creates object that represent elements to the user through interface
or physically stored in database.
• The layered approach consists of user interface, business, and
access layers.
• This approach reduces the interdependence of the user interface,
database access and business control.
• More robust and flexible system.
12/25/2025 46
An object oriented philosophy
• The programming languages provide the programmers the way of describing the process.

 The ease of description, reusability, extensibility, readability, computational efficiency, and ability
to maintain depends on languages used.
 System Software – Machine Understandable language (Integers, floating point numbers, chars,
Addressing Modes,….)
o Eg., Financial Investment -Development of Financial Investment Machine directly would
reduce translation.
 Object-Oriented Programming Concepts allows closer ideas and terms for the development of
certain applications.
 Financial Investment :

• Bond (data type) -character

• Buy operation on a bond -operation on a number


12/25/2025 47
TRADITIONAL APPROACH

 The traditional approach to software development tends toward writing a lot of


code to do all the things that have to be done.
 Algorithmic Centric Methodology – only the algorithm that can accomplish the
task.
 Data Centric Methodology - think about the data to build a structure based on
the algorithm
 You are the only active entity and the code is just basically a lot of building
materials

12/25/2025 48
OBJECT BASICS
Goals:
• The developer should

1) Define Objects and classes


2) Describe objects, methods, attributes and how objects respond to
messages,
3) Define Polymorphism, Inheritance, data abstraction, encapsulation, and
protocol,
4) Describe objects relationships,
5) Describe object persistence.
12/25/2025 49
EXAMPLES OF OBJECT ORIENTED SYSTEMS
• In OO system , “everything is object”.

• A spreadsheet cell, bar chart, title in bar chart, report, numbers, arrays, records, fields, files,
forms, an invoice, etc.

• A window object is responsible for things like opening, sizing, and closing itself.

• A chart object is responsible for things like maintaining data and labels even for drawing itself.

• The term object was first formally utilized in the Simula language to simulate some aspect of reality.

•Attributes or properties describe object‘s state (data) and methods (properties or functions) define
its behavior.

• An object is an entity.

• It knows things (has attributes)

• It does things (provides services or has methods)


12/25/2025 50
Attributes of an object, its state and properties.
• Attributes are represented by data type.

• They describe objects states.

• In the Car example the car’s attributes are:

•color,

• manufacturer,

• cost,

• owner,

• model, etc.
12/25/2025 51
OBJECT’S METHODS

• Methods define objects behaviour and specify the way in which an Object’s data are manipulated.

• In the Car example the car’s methods are:

•drive it,

•lock it,

•tow it,

•carry passenger in it.

• Object is whatever an application wants to talk about.

• For example, Parts and assemblies might be objects of bill of material application.

• Stocks and bonds might be objects of financial investment applications.

12/25/2025 52
OBJECTS ARE GROUPED IN CLASSES

 The role of a class is to define the attributes and methods (the state and behaviour) of
its instances.
 Used to distinguish one type of object from the other.
 Set of objects, that shares common methods, structure, and behaviour.
 Single object is simply an instance of class.

•The class car, for example, defines the property color. Each individual car (object)
will have a value for this property, such as

•"maroon,"

•"yellow" or

• "white."
12/25/2025 53

You might also like