0% found this document useful (0 votes)
8 views47 pages

Software Engineering Tools and Practices

The document provides an overview of Software Engineering (SE) practices, defining software and its characteristics, and outlining the systematic approach to software development, operation, and maintenance. It emphasizes the importance of communication, planning, and modeling practices in SE, as well as core principles that guide effective software development. The content is structured around the IEEE definitions and includes methodologies for project management and risk assessment in software projects.

Uploaded by

hawiha275
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)
8 views47 pages

Software Engineering Tools and Practices

The document provides an overview of Software Engineering (SE) practices, defining software and its characteristics, and outlining the systematic approach to software development, operation, and maintenance. It emphasizes the importance of communication, planning, and modeling practices in SE, as well as core principles that guide effective software development. The content is structured around the IEEE definitions and includes methodologies for project management and risk assessment in software projects.

Uploaded by

hawiha275
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

Arba Minch University

Institute of Technology
Faculty of Computing & Software
Engineering

SE TOOLS AND
P RA C T I C E S
(SENG4144)
Addisu M. (Asst. Prof) G4 IT - SUMMER
CHAPTER 1

S O F T WA R E
ENGINEERING (SE)
P RAC T I C E S
INTRODUCTION

June 9, 2025
 IEEE defines software as:
 “it is a collection of computer programs, together with
data, procedures, rules, and associated
documentation, which operate in a specified env’t with

SEng4144 – SE Tools &


certain constraints to provide the desired outcomes”
 includes a number of separate programs,
Configuration files, System documentation, and User
documentation
 Characteristics of software
 has logical properties rather than physical
– is an intangible product and has no physical
properties.
– has no shape, no volume, no color, and no odor.
 Therefore, it is not affected by the physical 3
INTRODUCTION

June 9, 2025
 Characteristics of software
 produced in eng’g manner rather than in
classical manner
– Unlike other products which are manufactured in the

SEng4144 – SE Tools &


classical manner, software is produced in an
engineering manner.
 mobile to change
– It is a too much flexible product that it can easily be
changed.
 becomes obsolete but does not wear out or
die
– due to the increasing requirements of users and
rapidly changing technologies.
– does not die but it can be made to retire after 4
WHAT IS SOFTWARE

June 9, 2025
ENGINEERING?
SE – an engineering, technological, and
managerial discipline that provides a
systematic approach to the development,

SEng4144 – SE Tools &


operation, and maintenance of software
 Engineering provides a step-by-step
procedure for SE that is project planning,
problem analysis, architecture and design,
programming, testing and integration,
deployment and maintenance, and project
management.
 These activities are performed with the help of5
WHAT IS SOFTWARE

June 9, 2025
ENGINEERING?
SE – an eng’g, technological, and managerial
discipline …
 Systematic approach means the

SEng4144 – SE Tools &


methodological and pragmatic way of
development, operation, and maintenance of
software.
 Development - construction of software
through a series of activities (analysis, design,
coding, testing and deployment)
 Maintenance - required due to existence of
errors and faults, modification of existing
6
WHAT IS SOFTWARE

June 9, 2025
ENGINEERING?
SE – defined as a process of analyzing user
requirements and then designing, building, and
testing software appln which will satisfy those

SEng4144 – SE Tools &


requirements.
IEEE, in its standard 610.12-1990, defines SE as
the application of a systematic, disciplined,
which is a computable approach for the dev’t,
operation, and maintenance of software.
SE is an intellectual activities and thus human-
intensive 7
WHAT IS SOFTWARE

June 9, 2025
ENGINEERING?
Fundamental assumptions of SE
Good processes lead to good software
Good processes reduce risk

SEng4144 – SE Tools &


SE concepts:
 Project: set of activities to develop a software
system
 Activity: a phase in which related tasks are
carried out
 Task: effort that uses resources & produces
8
SOFTWARE PROCESS

June 9, 2025
 Process – a collection of activities, actions, and
tasks that are performed when some work product
is to be created.
 In the context of SE, process is an adaptable

SEng4144 – SE Tools &


approach that enables the people doing the work
(software team) to pick and choose the appropriate
set of work actions and tasks.
 Software process is a set of ordered activities
carried out to produce a software product.
 Each activity has well-defined objective, task, and
outcome.
 Each activity involves tools and technologies (E.g.,
CASE tools, compiler, .Net etc), procedures, (E.g.,
algorithms, installation procedure, etc) and artifacts9
SOFTWARE PROCESS

June 9, 2025
 Software project – an entity, with defined start and
end, in which a software process is being used.
 is a cross functional entity which is developed through a
series of projects using the required resource.

SEng4144 – SE Tools &


 A successful project is the one that conforms with the
project constraints (cost, schedule, and quality
criteria).
 Product – outcome of a software project produced
through processes
 process, project & product are interrelated to each
other for the dev’t of software

10
ESSENCE (NATURE) OF

June 9, 2025
PRACTICE
Essence is a language for defining methods
and practices common to all SE
 It was created by SE method and Theory

SEng4144 – SE Tools &


(SEMAT) and approved by the Object
Management Group (OMG) as a standard in 2014
 It describes all common aspects of software
dev’t endeavor and helps teams understand
where they are, what’s missing or what needs to
be addressed – regardless of each team’s
prescribed way of working.
Practice is a broad array of concepts,
11
ESSENCE (NATURE) OF

June 9, 2025
PRACTICE
 George Polya, in a book written in 1945, describes the
essence of SE practice as follows:
 Understand the problem (communication and
analysis)

SEng4144 – SE Tools &


 Who are the stakeholders?
 What are the unknown? What data, functions, and features
are required to properly solve the problem?
 Can the problem be compartmentalized? Is it possible to
represent smaller problems that may be easier to
understand?
 Can the problem be represented graphically? Can analysis
model be created?
 Plan a solution (modeling and software design)
 Have you seen a similar problem before?
 Has a similar problem been solved? If so, is the solution 12
ESSENCE (NATURE) OF

June 9, 2025
PRACTICE
 George Polya, in a book written in 1945, describes the
essence of SE practice as follows:
 Carry out the plan (code generation) - The
design you’ve created serves as a road map for the

SEng4144 – SE Tools &


system you want to build
 Does the solution conform to the plan?
 Is each component part of the solution probably
correct?
 Examine the result for accuracy (testing and
quality assurance) - You can’t be sure that your
solution is perfect, but you can be sure that you’ve
designed a sufficient number of tests to uncover as
many errors as possible 13
CORE PRINCIPLES

June 9, 2025
 David Hooker has proposed seven core principles
that focus on SE practice as a whole. They are as
follows:

SEng4144 – SE Tools &


 The Reason It All Exists: provide value to the
customer and the user. If you can’t provide value,
then don’t do it.
 KISS – Keep It Simple, Stupid! All designs should
be as simple as possible, but no simpler. This
facilitates having a more easily understand and
easily maintained system.
 Maintain the product and project “vision” A
clear vision is essential to the success of a SW
14
CORE PRINCIPLES

June 9, 2025
 David Hooker has proposed seven core principles
that focus on SE practice as a whole. They are as
follows:

SEng4144 – SE Tools &


 Be open to the future – Never design yourself into
a corner. Always ask “what if,” and prepare yourself
for all possible answers by creating systems that
solve the general problem, not just the specific one.
(It should be ready for any change, ex. SQL, SQLi &
PDO)
 Plan Ahead for Reuse. Planning ahead for reuse
reduces the cost and increases the value of both the
reusable components and the systems into which 15
SW PROCESS

June 9, 2025
FRAMEWORK
 Process framework establishes foundation for a
complete SE process by identifying a small # of
framework activities that are applicable to all SW

SEng4144 – SE Tools &


projects, regardless of their size or complexity
– encompasses a set of umbrella activities that are
applicable across the entire software process.
 generic process framework encompasses five
activities:
– Communication: heavy communication with
customers and other stakeholders, requirement
gathering is done.
– Planning: technical related tasks, work schedule,
16
SW PROCESS

June 9, 2025
FRAMEWORK
 generic process framework encompasses five
activities:
– Construction: generate the code and test

SEng4144 – SE Tools &


the product in order to make better product.
 In SE, construction is the application of set of
procedures that are needed to assemble the
product.

– Deployment: a complete or non-complete


products or software are represented to the
customers to evaluate and give feedback.
17
CORE PRINCIPLES

June 9, 2025
1. Communication Practices
 Before any technical work can commence, it is
critically important to communicate and
collaborate with stakeholders

SEng4144 – SE Tools &


– Intent – to understand stakeholders’ objectives for
the project and to gather requirements that help
define SW features and functions
 Effective commn (among technical peers, with
customer and other stakeholders, and with
project managers) is among the most challenging
activities that confront SW engineers.
 Commn principles that apply to customer commn:
 Listen carefully: focus on the speaker’s words, 18
CORE PRINCIPLES

June 9, 2025
1. Communication Practices
 Commn principles that apply to customer
commn:
 Someone should facilitate the commn

SEng4144 – SE Tools &


activity: Shave a leader “moderator” to keep
the conversation moving in a productive
direction.
 Face-to-face commn is best
 Take notes and document decisions.
 Collaborate with the customer: Each small
collaboration serves to build trust among team
members and creates a common goal for the
team. 19
CORE PRINCIPLES

June 9, 2025
1. Communication Practices
 Commn principles that apply to customer commn:
 Draw pictures when things are unclear:
Though verbal commn is important a sketch or

SEng4144 – SE Tools &


drawing can be often provide clarity when words
fails to do job.
 Keep the discussion to “move on”
(a) Once you agree to something, move on;
(b)If you can’t agree to something, move one;
(c) If a feature or function is unclear and can’t be
clarified at the moment, move on.
 Negotiation is successful when both parties
agree. There are many instances in which
software engineer and customer must negotiate 20
CORE PRINCIPLES

June 9, 2025
2. Planning Practices
 Planning activity encompasses a set of
management and technical practices that enable
the SW team to define a road map as it travels

SEng4144 – SE Tools &


toward its strategic goal & tactical objectives.
 Regardless of the rigor with which planning is
conducted, the ff principles always apply
 Understand the scope of project: Scope
provides the SW teach with a destination as scope
represent the range within which dev’t take place.
 Involve the customer (and other
stakeholders): customer defines priorities and
establishes project constraints. 21
CORE PRINCIPLES

June 9, 2025
2. Planning Practices
 The ff principles always apply
 Recognize that planning is iterative: A plan

SEng4144 – SE Tools &


must be adjusted to accommodate changes.
 Estimate based on what you know. intent of
estimation is to provide an indication of effort,
cost, and task duration, based on team’s current
understanding of the work to be done
 Consider risk as you define the plan. Risk is
event when cause happens some unwanted
outcomes because risk may have high impact
and high probability on project, which will
destroy it. So, proper management of risk is a 22
CORE PRINCIPLES

June 9, 2025
2. Planning Practices
 The ff principles always apply
 Define how quality will be achieved.
Formal technical review is meeting conducted

SEng4144 – SE Tools &


by technical staff to find out defects in any
stage of dev’t and quality is improved by
removing defects that is why it mention very
clear to achieve quality.
 Plan well to absorb the change. “Can the
customer request a change at any time?”
 Always keep track of the plan and make
changes as required. Track the progress of
project dev’t on daily all team members should23
CORE PRINCIPLES

June 9, 2025
2. Planning Practices
 Boehm has presented W5HH principle for effective
project planning: Boehm’s 7 principles
1. Why is the system being developed? Does the

SEng4144 – SE Tools &


business purpose justify the expenditure of people,
time, and money?
2. What will be done? Identify the functionality to be
built.
3. When will it be accomplished? Establish a workflow
an timeline for key project tasks and identify
milestones required by customer.
4. Who is responsible for a function? Define
members’ roles and responsibilities.
5. Where are they located (organizationally)?
Customers also have responsibilities.
6. How will the job be done technically and 24
CORE PRINCIPLES

June 9, 2025
3. Modeling Practices
 Modeling helps to understand the actual
entity to be built
 In SE work, two models are created:

SEng4144 – SE Tools &


analysis models and design models.
– Analysis models represent the customer
requirements by depicting the SW in three
different domains: information domain,
functional domain, and behavioral domain
– Design models represent characteristics of
SW that help practitioners to construct it
effectively: architecture, UI and 25
CORE PRINCIPLES

June 9, 2025
3. Modeling Practices
 Analysis Modeling Principles
– The information domain of a problem must

SEng4144 – SE Tools &


be represented and understood
 The information domain encompasses
– data that flow into the system (end-users, other
systems, or external devices),
– data that flow out of the system and
– data stores that collect and organize persistent data
objects.
– Functions that the software performs must
be defined
 Functions can be described at different levels of 26
CORE PRINCIPLES

June 9, 2025
3. Modeling Practices
 Analysis Modeling Principles
– Represent software behavior

SEng4144 – SE Tools &


 The behavior of SW must be represented.
 Use state chart diagram
– Models that represent infn, function, and
behavior must be portioned in a manner
that uncovers detail in a layered
(hierarchical) fashion
– The analysis task should move from essential
information toward implementation detail
 Analysis should be clear enough to convert into design 27
CORE PRINCIPLES

June 9, 2025
3. Modeling Practices
 Design Modeling Principles
– SW design model is equivalent of an architect’s
plans for house

SEng4144 – SE Tools &


– Set of principles used are:
 Design must be traceable to the analysis
model.
– Analysis model describes the information domain of
the problem, user visible functions, system
behavior, and a set of analysis classes that package
business objects with methods that service them.
– Design model translates this information into an
architecture: a set of subsystems that implement
major functions, and a set of component-level
designs that are realization of analysis class.
 28
CORE PRINCIPLES

June 9, 2025
3. Modeling Practices
 Design Modeling Principles
– Set of principles used are:
 Design of data is as important as design

SEng4144 – SE Tools &


of functions (ER diagram).
– Data design is an essential element of the
architectural design.
 Interfaces (both internal and external)
must be designed with care.
– A well designed interface makes integration
easier and assists the tester in validating
component functions.
 UI design must satisfy all needs of end
user. “Ease of use”.
29
CORE PRINCIPLES

June 9, 2025
3. Modeling Practices
 Design Modeling Principles
– Set of principles used are:
 Component-level design should be

SEng4144 – SE Tools &


functionally independent
– The functionality that is delivered by a component
should be cohesive- that is, it should focus on one
and only one function.
 Component should be loosely coupled to one
another and to the external environment.
– Coupling is achieved in many ways – via a
component interface, by level of coupling increases,
error propagation also increases and the overall
maintainability of the system decreases.
 Design representation (models) should be
easily understandable. 30
CORE PRINCIPLES

June 9, 2025
4. Construction Practices
 Construction – defined as being
composed of both coding and testing (in

SEng4144 – SE Tools &


computing).
– The purpose of testing is to uncover defects.
 Exhaustive testing (test all functionalities
and all valid and invalid combinations of
input data during actual testing) is not
possible
– So, processing a few test cases successfully 31
CORE PRINCIPLES

June 9, 2025
4. Construction Practices
 Coding Principles
– Preparation Principles: Before writing one

SEng4144 – SE Tools &


line of code, be sure of:
[Link] the problem you are trying to
solve
[Link] the basic design principles
[Link] a programming language that meets the
needs of the SW to be built and the env’t in
which it will operate
[Link] a programming env’t that provides
tool that will make your work easier. (Ex. 32
CORE PRINCIPLES

June 9, 2025
4. Construction Practices
 Coding Principles
– Coding Principles: As you being writing code,
be sure you

SEng4144 – SE Tools &


1. Make your algorithm by ff structured
programming practice.
2. Select the proper data structure
3. Understand the software architecture
4. Keep conditional logic as simple as possible.
5. Create easily tested nested loops.
6. Write code that is self-documenting (with
comments)
7. Create a visual layout.
– Validation Principles: After coding completed,
be sure you 33
CORE PRINCIPLES

June 9, 2025
4. Construction Practices
 Testing Principles
– Testing is a process of executing a
program with the intent of finding errors.

SEng4144 – SE Tools &


– Test must be conducted to validate
customer requirements
– Tests should be well planned before
starting testing work
– Testing should start from individual unit
& finally go toward testing of complete
system as whole
– Accept testing of every combination of 34
CORE PRINCIPLES

June 9, 2025
5. Deployment Practices
 Customer Expectations for the software must
be managed. “Don’t promise more than you

SEng4144 – SE Tools &


can deliver”.
 A complete delivery package should be
assembled and tested (not only SW but also
delivering installation procedure etc.)
 A support regime must be established before
the software is delivered.
 Appropriate instructional materials must be
provided to end-users.
 Don’t delivered buggy or defective software.35
REQUIREMENT ENGINEERING

June 9, 2025
 The first two activities in the generic process
framework is that of communication and modeling
– These activities are concerned with discovering the
requirements of the software which the customer is

SEng4144 – SE Tools &


asking to have developed.
 Requirements eng’g is concerned with
understanding the software system that the customer
has requested.
– It provides the base on which software design and
programming can proceed.
 Importantly, if the developers do not understand
the requirements, it is very likely that the software
will not the customer’s needs. 36
TYPES OF REQUIREMENTS

June 9, 2025
 Functional requirements
 Statements of services the system should provide,
how the system should react to particular inputs and

SEng4144 – SE Tools &


how the system should behave in particular
situations.
 Descriptions of data to be entered into the system
 Descriptions of operations performed by each screen
 Descriptions of work-flows performed by the system
 Descriptions of system reports or other outputs
 Who can enter the data into the system?
 Example: Library System – F1: Search Book function
- Input: an author’s name, or title of the book
37
TYPES OF REQUIREMENTS

June 9, 2025
 Non-Functional requirements
 Constraints on the services or functions offered by
the system such as timing constraints, constraints

SEng4144 – SE Tools &


on the dev’t process, standards, etc
 Often apply to the system as a whole rather than
individual features or services
 Characteristics of system which can not be
expressed as functions
- Maintainability, portability, usability, security, safety,
reliability, performance, etc
- Example: How fast can the system produce results?
- So that it does not overload another system to which
38
CODE GENERATORS

June 9, 2025
 Code generator or codegen – tools,
frameworks, or techniques that automate the
creation of code, significantly enhancing

SEng4144 – SE Tools &


productivity, reducing manual effort and reducing
the likelihood of human error
– a tool that helps software engineers build programs
more quickly by using prebuilt code.
– They play a crucial role in modern SW dev’t by
streamlining repetitive tasks and ensuring
consistency across codebases.
 This approach aims to increase productivity, reduce 39
BENEFITS OF USING CODE

June 9, 2025
GENERATORS
 Increased Productivity: significantly reduces the
time spent on repetitive coding tasks by generating
large portions of code automatically, allowing
developers to focus on more complex or critical

SEng4144 – SE Tools &


aspects
 Consistency: Code generated automatically follows
predefined patterns, ensures uniformity in code
structure and style, leading to easier maintenance and
collaboration.
 Reduced Errors: As code generation reduces the
need for manual coding, minimizes the chances of
introducing human errors, enhancing overall code
quality. 40
HOW DOES CODE GENERATOR

June 9, 2025
WORK?
 Code generation is pretty simple and you are
likely already doing it.

SEng4144 – SE Tools &


 The easiest case to show is how most people
generate HTML for websites.
 In almost all modern web application
frameworks (Rails, CakePHP, Grails, and so
many more) there is some sort of template
mechanism.
 E.g., favourite HTML site generation tools is 41
METHODS AND TOOLS USED

June 9, 2025
FOR CODE GENERATION
 Code Templates: predefined code snippets that
can be reused and customized for specific
functionalities or patterns.

SEng4144 – SE Tools &


– Integrated Development Environments (IDEs) often
provide code templates to simplify coding tasks.
 Code Generators: tools that take high-level
specifications or models as input and produce
corresponding code as output.
– E.g., use of domain-specific languages (DSLs) or
model-driven development (MDD) tools
 Appln Generators: tools that generate entire 42
METHODS AND TOOLS USED

June 9, 2025
FOR CODE GENERATION
 Metaprogramming: Some languages offer
metaprogramming capabilities that allow developers
to write code that generates or modifies other code
during runtime or compilation.

SEng4144 – SE Tools &


 DSLs (Domain-Specific Languages): languages
designed for specific domains, making it easier to
express high-level concepts, and often have tools to
generate code from their high-level representation.
 Code Synthesis from Formal Specifications: In
some cases, formal specifications (such as UML
diagrams) can be used as input to tools that generate
corresponding code.
 Code Scaffolding: Scaffolding tools can generate 43
METHODS AND TOOLS USED

June 9, 2025
FOR CODE GENERATION
 It’s essential to consider the ff concerns:
 Maintenance: Generated code may be
harder to maintain or understand, especially

SEng4144 – SE Tools &


if it is generated from complex models or
specifications.
 Limited Flexibility: Sometimes,
code generators might not cover all possible
scenarios or edge cases, limiting flexibility for
certain requirements.
 Debugging: Debugging generated code can
44
PRO’S OF CODE

June 9, 2025
GENERATION
Pro Comment Accelerate
Time saving and
Computers are Use code to write code and save
faster turnaround
automating machines. time.
to release.

SEng4144 – SE Tools &


Less hand coding Use patterns and understand
Software is built using
so less human typical tasks to remove manual
patterns.
errors. steps.
Reuse across Avoid reinventing the
Reuse solutions to gain overall
multiple wheel on existing and
organisational momentum.
applications. new projects.
Better coverage Use tests to ensure generated
Model-based testing
for testing and code continues to work and add
can help with quality.
quality. tests for customisations.
Large systems can have
Consistent Varied skilled developers can be
consistent
architecture ready productive quicker after
implementations
for extending. structured training.
reducing technical debt. 45
CON’S OF CODE

June 9, 2025
GENERATION
Con Comment Mitigation
Black-box of
Code that cannot be The code must be develop friendly
machine
understood by a developer. to allow customisations.
mess.

SEng4144 – SE Tools &


Complex Models can become Do not expect 100% app
models. increasingly complex. generation.
Excessive amounts of code Code must pass code reviews the
Code bloat.
due to generation. same as a develop.
A lot of tools are hard to The tools must use familiar
Tooling. use with wasted time and concepts and provide learning
frustration. pathways.
Some architectures and
Rigid The ability to evolve the tooling to
hard to extend for new
structure. support new requirements.
requirements.
Writing code generators is
Acknowledge the problem and
Mental a difficult task due to
bring emotional intelligence to
fatigue. complexity leading to 46
???
47
Any Question

SEng4144 – SE Tools &


June 9, 2025

You might also like