0% found this document useful (0 votes)
16 views

Chapter 01

Uploaded by

ironpro224
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views

Chapter 01

Uploaded by

ironpro224
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 54

1

Software engineering

Software Engineering - Le Vu Hao 8/2/2023


2 Preferences

✓ Software Engineering - A practitioner’s approach, R.S. Pressman, McGraw-Hill (ebook)


✓ Ian Sommerville’s , “Software Engineering 9th Ed.”
✓ NHẬP MÔN CÔNG NGHỆ PHẦN MỀM – Trần Đình Quế
✓ KIỂM THỬ VÀ BẢO ĐẢM CHẤT LƯỢNG PHẦN MỀM – Thạc Bình Cường
✓ Phân tích và Thiết kế Hệ thống thông tin với UML - TS. Dương Kiều Hoa – Tôn Thất Hoà
An
✓ http://www.mhhe.com/pressman

Software Engineering - Le Vu Hao 8/2/2023


3 Chapter 1: Overview

 Software
 Software Engineering
 Development history of Software Engineering
 Challenges of Software Engineering
 Some terminologies in Software Engineering
 Software engineer career
 Software myths

Software Engineering - Le Vu Hao 8/2/2023


Software
4

Software Engineering - Le Vu Hao 8/2/2023


5 What is Software?

1) instructions (computer programs) that when executed provide desired


features, function, and performance.
2) data structures that enable the programs to adequately manipulate
information.
3) documentation that describes the operation and use of the programs.

Software Engineering - Le Vu Hao 8/2/2023


6 Instructions

Software Engineering - Le Vu Hao 8/2/2023


7 Data structures

Software Engineering - Le Vu Hao 8/2/2023


8 Documentation

Software Engineering - Le Vu Hao 8/2/2023


9 Software’s properties

 Software is developed or engineered, it is not manufactured in the classical


sense.
 Software doesn't "wear out.“
 Although the industry is moving toward component based construction,
most software continues to be custom-built.

Software Engineering - Le Vu Hao 8/2/2023


10 Software development vs. classical
manufacturing

Software Engineering - Le Vu Hao 8/2/2023


11 “Wear out”

Software Engineering - Le Vu Hao 8/2/2023


12 Software applications

 System software
 Application software
 Engineering/scientific software
 Embedded software
 Product-line software
 WebApps (Web applications)
 AI software

Software Engineering - Le Vu Hao 8/2/2023


13
System software
Programs are written
to service other programs

Software Engineering - Le Vu Hao 8/2/2023


14
Application software
Stand-alone programs that solve a
specific Business need

Software Engineering - Le Vu Hao 8/2/2023


15 Engineering/scientific
software
The type of software has been
characterized by “number crunching”
algorithms.

Software Engineering - Le Vu Hao 8/2/2023


16
Embedded software
Software resides within a product or
system and is used to implement and
control features and functions for the
end user and for the system itself

Software Engineering - Le Vu Hao 8/2/2023


17
Product-line software
Software is designed to provide a
specific capability for use by many
different customers.

Software Engineering - Le Vu Hao 8/2/2023


18
Web applications
Is is called “WebApps,” this network-
centric software category spans a
wide array of applications.

Software Engineering - Le Vu Hao 8/2/2023


19 Artificial intelligence (AI)
software
Makes use of nonnumerical algorithms
to solve complex problems that are
not amenable to computation or
straightforward analysis.

Software Engineering - Le Vu Hao 8/2/2023


20

Software Engineering - Le Vu Hao 8/2/2023


Software
Engineering
21

Software Engineering - Le Vu Hao 8/2/2023


22 Importance of Software Engineering:
Key Reasons
 https://www.knowledgehut.com/blog/web-development/importance-of-
software-engineering
 What is Software Engineering?
 Importance of Software Engineering
 Benefits of Software Engineer

Software Engineering - Le Vu Hao 8/2/2023


23 What is Software Engineering?

 The Software Engineering branch of engineering focuses on developing


software products utilizing various scientific principles, techniques, and
procedures. Software engineering leads to a product that is efficient and
reliable.
 Software Engineering is the combination of two words, Software, and
engineering. The Software comprises integrated programs designed
carefully with organized instructions and codes. And engineering refers to
inventing, designing, building, maintaining, and improving devices and
processes using scientific and practical knowledge.

Software Engineering - Le Vu Hao 8/2/2023


24 Importance of Software Engineering

 Reduces Complexity
 Handling Big Projects
 To Minimize Software Costs
 To Decrease Time
 Effectiveness
 Reliable Software

Software Engineering - Le Vu Hao 8/2/2023


25 Why do we Need Software
Engineering?
 The rise of technology
 Adding structure
 Preventing issues
 Huge Programming
 Automation & AI
 Research

Software Engineering - Le Vu Hao 8/2/2023


26 Benefits of Software Engineer

 Best Practices
 Maintainability
 Scalability
 Accessibility and Usability
 Security
 Testing

Software Engineering - Le Vu Hao 8/2/2023


27

Software Engineering - Le Vu Hao 8/2/2023


28 Challenges in Software Engineering

1) Requirement volatility.
2) Limited budget and resources.
3) Lack of communication and collaboration.
4) Poor software quality and maintenance.
5) Integration and compatibility issues.
6) Technical debt management.
7) Managing complex codebases.
8) Inadequate testing and debugging.
9) Security and privacy concerns
10)Adapting to changing technology and industry trends

Software Engineering - Le Vu Hao 8/2/2023


29 Some terminologies in Software
Engineering

Software Engineering - Le Vu Hao 8/2/2023


30 Software Engineering layers

Software Engineering - Le Vu Hao 8/2/2023


31 Quality focus: Six Sigma

Six Sigma is a set of methodologies and tools used to improve business


processes by reducing defects and errors, minimizing variation, and increasing
quality and efficiency.

Software Engineering - Le Vu Hao 8/2/2023


32 Process

The software engineering process is the glue that holds the technology layers
together and enables rational and timely development of computer software.

Software Engineering - Le Vu Hao 8/2/2023


33

Software Engineering - Le Vu Hao 8/2/2023


34

Software Engineering - Le Vu Hao 8/2/2023


35 Methods

Software engineering methods provide the technical how-to’s for building


software.

Software Engineering - Le Vu Hao 8/2/2023


36 Software Engineering tools

Software engineering tools


provide automated or
semiautomated support for the
process and the methods.
The terminology Computer-
aided software engineering
(CASE) describes a broad set of
labor-saving tools used in
software development.

Software Engineering - Le Vu Hao 8/2/2023


37

Software Engineering - Le Vu Hao 8/2/2023


38 Software engineering ethics

As a software engineer, you must accept that your job involves wider responsibilities than simply the
application of technical skills. You must also behave in an ethical and morally responsible way if you are to
be respected as a professional engineer.
Some of these are:
✓ Confidentiality
✓ You should normally respect the confidentiality of your employers or clients irrespective of whether or not a formal
confidentiality agreement has been signed.
✓ Competence
✓ You should not misrepresent your level of competence. You should not knowingly accept work that is outside your
competence.
✓ Intellectual property rights
✓ You should be aware of local laws governing the use of intellectual property such as patents and copyright. You
should be careful to ensure that the intellectual property of employers and clients is protected.
✓ Computer misuse
✓ You should not use your technical skills to misuse other people’s computers. Computer misuse ranges from relatively
trivial (game playing on an employer’s machine, say) to extremely serious (dissemination of viruses or other malware).

Software Engineering - Le Vu Hao 8/2/2023


39 Career path

Software Engineering - Le Vu Hao 8/2/2023


40 Career path

Software Engineering - Le Vu Hao 8/2/2023


41 Software Myths

Software Engineering - Le Vu Hao 8/2/2023


42 Software Myths

Software Engineering - Le Vu Hao 8/2/2023


43 Management myths

Software Engineering - Le Vu Hao 8/2/2023


44 Management myths

Myth: We already have a book that’s full of standards and procedures for
building software. Won’t that provide my people with everything they need to
know?
Reality: The book of standards may very well exist, but is it used? Are software
practitioners aware of its existence? Does it reflect modern software
engineering practice? Is it complete? Is it adaptable? Is it streamlined to
improve time-to-delivery while still maintaining a focus on quality? In many
cases, the answer to all of these questions is “no.

Software Engineering - Le Vu Hao 8/2/2023


45 Management myths

Myth: If we get behind schedule, we can add more programmers and catch
up (sometimes called the “Mongolian horde” concept).
Reality: Software development is not a mechanistic process like
manufacturing. In the words of Brooks [Bro95]: “adding people to a late
software project makes it later.” At first, this statement may seem
counterintuitive. However, as new people are added, people who were
working must spend time educating the newcomers, thereby reducing the
amount of time spent on productive development effort. People can be
added but only in a planned and well coordinated manner

Software Engineering - Le Vu Hao 8/2/2023


46 Management myths

Myth: If I decide to outsource the software project to a third party, I can just
relax and let that firm build it.
Reality: If an organization does not understand how to manage and control
software projects internally, it will invariably struggle when it outsources
software projects.

Software Engineering - Le Vu Hao 8/2/2023


47 Customer myths

Software Engineering - Le Vu Hao 8/2/2023


48 Customer myths

Myth: A general statement of objectives is sufficient to begin writing programs,


we can fill in the details later.
Reality: Although a comprehensive and stable statement of requirements is
not always possible, an ambiguous “statement of objectives” is a recipe for
disaster. Unambiguous requirements (usually derived iteratively) are
developed only through effective and continuous communication between
customer and developer.

Software Engineering - Le Vu Hao 8/2/2023


49 Customer myths

Myth: Software requirements continually change, but change can be easily


accommodated because software is flexible.
Reality: It is true that software requirements change, but the impact of change
varies with the time at which it is introduced. When requirements changes are
requested early (before design or code has been started), the cost impact is
relatively small.16 However, as time passes, the cost impact grows rapidly -
resources have been committed, a design framework has been established,
and change can cause upheaval that requires additional resources and
major design modification.

Software Engineering - Le Vu Hao 8/2/2023


50 Practitioner’s myths

Software Engineering - Le Vu Hao 8/2/2023


51 Practitioner’s myths

Myth: Once we write the program and get it to work, our job is done.
Reality: Someone once said that “the sooner you begin ‘writing code,’ the
longer it’ll take you to get done.” Industry data indicate that between 60 and
80 percent of all effort expended on software will be expended after it is
delivered to the customer for the first time.

Software Engineering - Le Vu Hao 8/2/2023


52 Practitioner’s myths

Myth: Until I get the program “running” I have no way of assessing its quality.
Reality: One of the most effective software quality assurance mechanisms can
be applied from the inception of a project - the technical review.
Software reviews (described in Chapter 15) are a “quality filter” that have
been found to be more effective than testing for finding certain classes of
software defects.

Software Engineering - Le Vu Hao 8/2/2023


53 Practitioner’s myths

Myth: The only deliverable work product for a successful project is the working
program.
Reality: A working program is only one part of a software configuration that
includes many elements. A variety of work products (e.g., models, documents,
plans) provide a foundation for successful engineering and, more important,
guidance for software support.

Software Engineering - Le Vu Hao 8/2/2023


54 Practitioner’s myths

Myth: Software engineering will make us create voluminous and unnecessary


documentation and will invariably slow us down.
Reality: Software engineering is not about creating documents. It is about
creating a quality product. Better quality leads to reduced rework. And
reduced rework results in faster delivery times.

Software Engineering - Le Vu Hao 8/2/2023

You might also like