1. Trang chủ
  2. » Luận Văn - Báo Cáo

Chapter 1. Overview Of Sotfware Engineering (1).Pdf

34 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Overview of software engineering
Người hướng dẫn Dr. Nguyen Thi My Binh
Trường học Hanoi University of Industry
Chuyên ngành Information Technology
Thể loại Giáo trình
Năm xuất bản 2022
Thành phố Hanoi
Định dạng
Số trang 34
Dung lượng 1,66 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Faculty of Information Technology HANOI UNIVERSITY OF INDUTRY Lecturer Dr Nguyen Thi My Binh Department Software engineering Mobile 0977901599 9/18/2022 Introduction to Software Engineering first Mach[.]

Trang 1

Faculty of Information Technology

Lecturer: Dr Nguyen Thi My Binh Department: Software engineering Mobile: 0977901599

Introduction to Software Engineering

Trang 2

ÿ Software Engineering should focus on imparting to students the knowledge and skills that are needed to successfully execute a commercial project of a few person-months effort while employing proper practices and techniques It is worth pointing out that a vast majority of the projects executed in the industry today fall in this scope—executed by a small team over a few months

ÿ Teach the student the skills needed to execute a smallish commercial

ÿ Provide the students necessary conceptual background for undertaking advanced studies in software engineering, through courses or on their

own

ÿ The goal of this course is to introduce to the students a

limited number of concepts and practices which will achieve the following two objectives:

project

2

Trang 3

ÿ Description of course

content Provides basic knowledge, methods and principles related to the process

of software product deployment according to industrial processes (planning,

design analysis, engineering processes, etc.) technology, implementation

techniques, methods of organization and management, tools and software deployment environment, ).

Knowledge: Students systematically understand the process of software production

with the help of computers.

Attitude: Train students to approach new problems, have a serious and proactive

From there, students know how to build software in a systematic and methodical way

ÿ Objectives of the

module General objective:

Equip students with knowledge about the software production process, some tools and

procedures to support in software production.

Skills: Students use the knowledge they have learned about processes, procedures,

and tools to conduct software development.

GENERAL INTRODUCTION

Trang 4

Introduction to software engineering

ÿ Chapter 1: Overview of software engineering

ÿ Chapter 2 Software process

ÿ Chapter 3 Analysis and specification requirements.

ÿ Chapter 4 Software design

ÿ Chapter 5 Software testing strategies

Trang 5

1.1 The basic concepts 1.2 The unique nature of Webapps 1.3 Software engineering

1.4 The software process 1.5 The software problem 1.5.1 Cost, Schedule, and Quality 1.5.2 Scale and Change

1.6 Summary

Trang 6

ÿ Software is: (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) descriptive information in both hard copy and virtual forms that describes the operation and use of the programs.

ÿ A software includes the computer programs, attachments and

configuration information necessary to make these programs work properly A software system consists of three parts:

Individual computer programs Data structures

ÿ Related documents

6

The basic concepts

Trang 8

Software Application Domains

ÿ Engineering/scientific software- has been used by “number

crunching” algorithms Applications range from astronomy

to volcanology, from automotive stress analysis to space shuttle orbital dynamics, and from molecular biology to automated manufacturing

ÿ System software: a collection of programs written to service

other programs Some system software (eg, compilers, editors, and file management utilities) processes complex, but determinate,4 information structures

ÿ Application software - stand-alone programs that solve a

specific business need.

8

Trang 9

Software Application Domains

ÿ Embedded 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.

ÿ Product-line software - designed to provide a specific

capability for use by many different customers For example: inventory control products, word processing, spreadsheets, computer graphics, multimedia, entertainment, database management, and personal and business financial applications

ÿ Web applications—called “WebApps,” this network-centric

software category spans a wide array of applications In their simplest form, WebApps can be little more than a set of linked hypertext files that present information using text and limited graphics.

Trang 10

Software Application Domains

ÿ Artificial intelligence software—makes use of nonnumerical

algorithms to solve complex problems that are not amenable

to computation or straightforward analysis Applications within this area include robotics, expert systems, pattern recognition (image and voice), artificial neural networks, theorem proving, and game playing

Trang 11

The basic concepts

ÿ Computer software is the product that software

professionals build and then support over the long term.

ÿ It includes of programs that execute within a

computer of any size and architecture, content that

is presented as the computer programs execute, and descriptive information in both hard copy and virtual forms that embrace virtually any electronic media.

Trang 12

The basic concepts

ÿ Software engineering professionals a process, a

collection of methods (practice) and an array of tools that allow to build high quality software ÿ Who does it? Software engineers build and support software, and

everyone in the industrialized world uses it either directly

or indirectly

ÿ Why is it important? Software is important because it

affects nearly every aspect of our lives and has become pervasive in our commerce, our culture, and our everyday activities.Software engineering is important because it enables us to

build complex systems in a timely manner and with high quality

Trang 13

ÿ What are the steps? You build computer software like you

build any successful product, by applying an agile, adaptable process that leads to a high-quality result that meets the

needs of the people who will use the product You apply a software engineering approach

ÿ What is the work product? From the point of view of a

software engineer, the work product is the set of programs, content (data), and other work products that are computer software But from the user's viewpoint, the work product is the resultant information that somehow makes the user's world better

The basic concepts

Trang 14

engineering

1.1 The nature of software 1.2 The unique nature of Webapps 1.3 Software engineering

1.4 The software process

1.5 The software problem

1.5.1 Cost, Schedule, and Quality 1.5.2 Scale and Change

1.6 Summary

Trang 15

The Software Problem

ÿ Ask any student who has some programming experience the following question: You are given a problem for which you have to build a software system that most students feel will

be approximately 10,000 lines of (say C or Java) code If you are working full time on it, how long will it take you to build this system?

Trang 16

ÿ The answer of students is generally 1 to 3 months And, given the programming expertise of the students, there is a good chance that they will be able to build the software and demo it to the professor within 2 months With 2 months as the completion time, the

productivity of the student will be 5000 lines of code (LOC) per

person-month

ÿ We act as clients and pose the same problem to a company that is

in the business of developing software for clients Although there

is no standard productivity figure and it various a lot, it is fair to say

a productivity figure of 1000 LOC per person-month is quite respectable (though it can be as low as 100 LOC per person-month

for embedded systems) With this productivity, a team of professionals in a software organization will take 10 person-months

to build this software system.

16

Why this difference in productivity in the two scenarios?

The Software Problem

Trang 17

The Software Problem

Consequently, the software system needs to be of high quality with respect to properties like reliability, usability, portability, etc.

Is that two different things are being built in the two scenarios

ÿ In the first, a student system is being built which is preeminent meant for demonstration purposes, and is not expected to be used later.

Because it is not to be used, nothing of significance depends on the software and the presence of bugs and lack of quality is not a major concern Neither are the other quality issues like usability,

maintainability, portability etc

ÿ On the other hand, an industrial-strength software system is built to solve some problem of a client and is used by the client's

organization for operating some part of business, and a malfunction

of such a system can have huge impact in terms of financial or business loss, inconvenience to users, or loss of property and life.

Trang 18

The Software Problem

ÿ This need for high quality and to satisfy the end users has a major impact on the way software is developed and its

cost ÿ The software industry is greatly interested in developing

industrial-strength software, and the area of software

engineering focuses on how to build such systems That is, the problem domain for software engineering is industrial-strength software

Trang 19

Cost, Schedule, and Quality

ÿ The software should be produced at reasonable cost, in a

reasonable time, and should be of good quality These

three parameters often drive and define a software project ÿ To get an idea of the costs involved, let us consider

the current state of practice in the industry Lines of code (LOC) or thousands of lines of code (KLOC) delivered is by far the most commonly used measure of software size in the industry ÿ As the main cost of producing software is the

manpower employed, the cost of developing software is generally measured in terms of person-months of effort spent in development And productivity is frequently measured in the industry in terms of LOC (or KLOC) per person-month

Trang 20

ÿ The productivity in the software industry for writing fresh code generally ranges from few hundred to about 1000+ LOC per person-month ÿ

This productivity is over the entire development cycle, not just the coding task ÿ

Software companies often charge the client for whom they are developing the software between $3000 - $15,000 per

person month

ÿ With a productivity of 1000 LOC per person-month, it means that each line of delivered code costs between $3 and $15!

ÿ And even small projects can easily end up with software of

50,000 LOC With this productivity, such a software project will cost between $150,000 and $750,000!

20

Cost, Schedule, and Quality

Trang 21

Cost, Schedule, and Quality

ÿ Schedule is another important factor in many projects

ÿ Quality is one of the main mantras, and business strategies are designed

around it ÿ Unfortunately, a large number of instances has

occurred regarding the unreliability of software—the software often does not do what it is supposed to do or does

something it is not supposed to do

Business trends are dictating that the time to market of a product should be reduced; that is, the cycle time from concept to delivery should be small

Trang 22

Cost, Schedule, and Quality

ÿ The international standard on software product quality [55] suggests that software quality consists of six main attributes,

as shown in Figure 1.1 These attributes can be defined as follows:

Trang 23

Software quality

ÿ Functionality The capability to provide functions which meet stated and implied needs when the software is

used ÿ Reliability The capability to provide failure-free

service ÿ Usability The capability to be understood, learned, and used ÿ Efficiency The capability to provide appropriate performance relative to the amount of resources used

ÿ Maintainability The capability to be modified for purposes of making corrections, improvements, or adaptation

ÿ Portability The capability to be adapted for different specified environments without applying actions or means other than those provided for this purpose in the product

Trang 24

ÿ With multiple dimensions to quality, different projects may emphasize different attributes, and a global single number for quality is not possible.

ÿ As unreliability of software is due to the presence of defects

in the software, one measure of quality is the number of

defects in the delivered software per unit size (generally

taken to be thousands of lines of code, or KLOC)

24

ÿ The quality objective is to reduce the number of defects per KLOC as much as possible

ÿ Current best practices in software engineering have been able

to reduce the defect density to less than 1 defect per KLOC

Software quality

Trang 25

Software quality

ÿ To determine the quality of a software product, we need to

determine the number of defects in the software that was delivered This number is clearly not known at delivery time and may never be

known ÿ One approach to measure quality is to log the defects found in 6 months (or 1 year) after delivery and define quality with respect to these defects This means that quality of

delivered software can only be determined 6 months after its delivery ÿ It should be pointed out that to use this definition

of quality, what a defect is must be clearly defined

Ngày đăng: 06/04/2023, 23:49

TỪ KHÓA LIÊN QUAN

w