Upload
phimlamphay-merry-dimanh
View
227
Download
0
Embed Size (px)
Citation preview
8/20/2019 Software Engineering CH1 Slides
1/24
Chapter 1. Introduction
Some slides are adopted from Kung D., “Object-Oriented Software Engineering: An Agile Unified Methodology”
8/20/2019 Software Engineering CH1 Slides
2/24
1-2
Key Takeaway Points
• Software engineering aims to significantly improvesoftware productivity and software quality whilereducing software costs and time to market.
• Software engineering consists of three tracks ofinteracting life cycle activities:
– software development process
– software quality assurance, and – software project management
• Object-oriented (OO) software engineering is a
specialization of software engineering. It views theworld and systems as consisting of objects thatinteract with each other.
8/20/2019 Software Engineering CH1 Slides
3/24
1-3
What Is Software Engineering?
Software engineering as a discipline is focused
on
• research, education, and application of engineering processes and methods
• to significantly increase software productivity (P)
and software quality (Q) while reducing softwarecosts (C) and time to market (T) – software PQCT.
• What is the focus of data base systems?
• What is the focus of operating systems?
8/20/2019 Software Engineering CH1 Slides
4/24
1-4
Why Software Engineering?
1. Software is expanding into all sectors of oursociety:
• Companies rely on software to run and expand their
businesses.• Software systems are getting larger and more complex – millions of lines of code.
• Software costs are 90 – 95% of total system costs(software costs were only 5 – 10% of total system coststwo decades ago.)
• Embedded systems contain application specificintegrated circuits (ASIC), which are costly to replace – software quality is critical.
We need an engineering approach to softwaredevelopment.
8/20/2019 Software Engineering CH1 Slides
5/24
1-5
Why Software Engineering?
2. Large software systems development requiresteamwork and software engineering supportsteamwork.
• A typical software engineer produces an average 50–100lines of source code per day.
• A small system of 10,000 lines of code requires onesoftware engineer to work between 100 and 200 days or 5to 10 months.
• A medium-size system of 500,000 lines of code requires asoftware engineer to work 5,000 to 10,000 days or 20 to40 years.
⇒ Real-world software systems require many softwareengineers to work together to jointly develop asoftware system.
8/20/2019 Software Engineering CH1 Slides
6/24
1-6
Why Software Engineering?
To work together, the software engineers must
overcome three challenges, among others:
Communication CoordinationConceptualization
Solution:
• Processes and methodologies for analysis and design• UML for communication and coordination
• Tools that automate or support methodology steps.
8/20/2019 Software Engineering CH1 Slides
7/24
1-7
Software Life Cycle Activities
• Software processes and methodologies consist
of life cycle activities:
Cost
Software
Development
Process
Software
Quality
Assurance
Software
Project
Management
Time toMarketQualityProductivity
8/20/2019 Software Engineering CH1 Slides
8/24
1-8
1. Software Development Process
• A software development process transforms
the initial system concept into the operational
system running in the target environment.• It identifies the business needs, conducts a
feasibility study, and formulates the
requirements or capabilities that the systemmust deliver.
• It also designs, implements, tests, and deploysthe system to the target environment.
8/20/2019 Software Engineering CH1 Slides
9/24
1-9
The Waterfall Process
System Engineering
Software Requirements Analysis
Software Design
Coding & Unit Testing
Integration & Integration Testing
Acceptance Testing
Maintenance
8/20/2019 Software Engineering CH1 Slides
10/24
Example System Development – A Radio
Communication System (RCS)• The system is similar to a cellular network except that it
has only one high-power base station that serves an area
much larger than a cell in a cellular network. The systemrequirements specify the capabilities for the whole
system. 4 of the many system requirements identified:
– R1. The RCS shall allow mobile subscribers to initiate calls toother mobile subscribers and land-line telephones.
– R2. The RCS shall allow mobile subscribers to answer calls
from other subscribers.
– R3. The RCS shall provide call accounting to capture and
record mobile calls and bill to the subscriber accounts.
– R4. The RCS shall allow authorized account administrators to
manage subscriber accounts. 1-10
8/20/2019 Software Engineering CH1 Slides
11/24
System design using a block diagram
1-11
• An architectural design of the RCS using a block
diagram.
• 3 subsystems: mobile unit, base station, and accountmanagement.
8/20/2019 Software Engineering CH1 Slides
12/24
Decomposition
• Requirement R1 involves mobile unit and base
station as well as hardware and software
functions. Sending a call request to the basestation is the function of a mobile unit.
Intercepting the request is a hardware function.
Checking the call request to ensure that it is asubscriber-to-subscriber call is a software
function. Therefore, the requirement R1 is
decomposed into the following:
1-12
8/20/2019 Software Engineering CH1 Slides
13/24
Decomposition
• R1.1. Mobile units shall include automatic number
identification (ANI) numbers when sending a call
request.
• R1.2. The base station shall verify the caller and
callee using the ANI numbers before setting up a call.
– R1.2.1. The software controller shall verify the caller and
callee, and instruct the hardware controller to set up a
connection when the verification is successful.
– R1.2.2. The hardware controller shall instruct the high-
power transceivers to establish an air-link connection underthe software control.
1-13
8/20/2019 Software Engineering CH1 Slides
14/24
Decomposition
• After decomposition, R1.1 is assigned to the mobile
unit.
• R1.2.1 is assigned to the base station softwarecontroller.
• Requirement R1.2.2 is assigned to the base station
hardware controller.• Similarly, R3 may be decomposed and assigned to the
appropriate subsystems.
• R4 is assigned to the account management subsystembecause it is a software-only requirement.
1-14
8/20/2019 Software Engineering CH1 Slides
15/24
Software Requirements Analysis
• Refines the system requirements allocated to the
software system. It also identifies other capabilities
for the software system. These and the refined system
requirements are specified in a software requirements
specification (SRS).
• For example, requirement R4 does not specify what
an authorized account administrator can do to manage
the accounts. Thus, the requirement is refined:
1-15
8/20/2019 Software Engineering CH1 Slides
16/24
Refined Requirement R4
• R4.1. The RCS shall allow an authorized account
administrator to create a sub- scriber account.
• R4.2. The RCS shall allow an authorized account
administrator to activate a subscriber account.
• R4.3. The RCS shall allow an authorized account
administrator to deactivate a subscriber account.
• R4.4. The RCS shall allow an authorized account
administrator to close a sub- scriber account.
• R4.5. The RCS shall allow an authorized accountadministrator to delete a sub- scriber account that is
already closed.
1-16
8/20/2019 Software Engineering CH1 Slides
17/24
Software Design
• Determines the software architecture, or the overall
structure, of the software system. It specifies the
subsystems, their relationships, the subsystems'
functions, interfaces, and how the subsystems interact
with each other.
• Designs the user interface.
• Specifies the information processing algorithms.
1-17
8/20/2019 Software Engineering CH1 Slides
18/24
Architectural design for the RCS
• N-tier architecture for the account management
system.
1-18
8/20/2019 Software Engineering CH1 Slides
19/24
8/20/2019 Software Engineering CH1 Slides
20/24
1-20
2. Software Quality Assurance
Software quality assurance (SQA) ensures that
• the development activities are performed properly,
and• the software artifacts produced by the development
activities meet the software requirements and
desired quality standards.
8/20/2019 Software Engineering CH1 Slides
21/24
1-21
SQA Activities
8/20/2019 Software Engineering CH1 Slides
22/24
1-22
3. Software Project Management
• Software project management oversees the control
and administration of the development and SQA
activities.
• Project management activities include
– effort estimation
– project planning and scheduling
– risk management
– project administration, and
– others.
These activities ensure that the software system is
delivered on time and within budget.
8/20/2019 Software Engineering CH1 Slides
23/24
1-23
Object-Oriented Software Engineering
• Object-oriented software engineering (OOSE)is a specialization of software engineering.
• The object-oriented paradigm views the worldand systems as consisting of objects that relateand interact with each other.
• OOSE encompasses: – OO processes
– OO methodologies
– OO modeling languages – OO tools
8/20/2019 Software Engineering CH1 Slides
24/24
1-24
Software Engineering and Computer Science
Computer Science
• Pursue optimal solutions
• $$$ is not an important
consideration
• Programming in the small
• Technical issues
• Dealing with tame problems
• Foundations of software
engineering
Software Engineering
• Good enough is enough
• $$$ is an important factor
(PQCT – Productivity,Quality, Cost, Time to
market)
• Programming in the large• All issues and aspects
• Dealing with wicked
problems
• Building on top of computer
science and other disciplines