Chapter 1 - Introduction
Chapter 1 - Introduction
by David Kung
Chapter 1. Introduction
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Key Takeaway Points
• Software engineering aims to significantly improve
software productivity and software quality while
reducing software costs and time to market.
• Software engineering consists of three tracks of
interacting 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 the
world and systems as consisting of objects that
interact with each other.
CLO1
2
Copyright © The McGraw-Hill Companies, Inc.
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 software
costs (C) and time to market (T) – software PQCT.
CLO1
5
Copyright © The McGraw-Hill Companies, Inc.
Why Software Engineering?
To work together, the software engineers must
overcome three challenges, among others:
CLO1
7
Copyright © The McGraw-Hill Companies, Inc.
Software Development Process
• Definition: A software development process
transforms the initial system concept into the
operational system running in the target
environment.
• Phases:
– Requirement
– Design
– Implementation
– Testing
– Maintenance CLO1
8
Copyright © The McGraw-Hill Companies, Inc.
Software Development Process
• Core Activities: It identifies the business
needs, conducts a feasibility study, and
formulates the requirements or capabilities that
the system must deliver.
CLO1
9
Copyright © The McGraw-Hill Companies, Inc.
The Waterfall Process
System Engineering
Software Design
Acceptance Testing
CLO2
Maintenance
10
Copyright © The McGraw-Hill Companies, Inc.
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.
CLO1
11
Copyright © The McGraw-Hill Companies, Inc.
SQA Activities
CLO1
12
Copyright © The McGraw-Hill Companies, Inc.
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.
CLO1
13
Copyright © The McGraw-Hill Companies, Inc.
Object-Oriented Software Engineering
• Object-oriented software engineering (OOSE)
is a specialization of software engineering.
• The object-oriented paradigm views the world
and systems as consisting of objects that relate
and interact with each other.
• OOSE encompasses:
– OO processes - guide the development effort
– OO methodologies – how to carry out the activities
– OO modeling languages – communicate their
analysis and design ideas
– OO tools – support the development processes
CLO1
15
Copyright © The McGraw-Hill Companies, Inc.
Class Discussion
• What are the benefits of OOSE?
• Will OOSE replace the conventional
approaches, and why?
16
Copyright © The McGraw-Hill Companies, Inc.
Class Discussion
• What are the focuses of computer science and
software engineering, respectively?
• What are the educational objectives of
computer science and software engineering,
respectively?
• Some authors say that software engineering is
“programming in the large.” What does this
mean?
• What is the relationship between software
engineering and computer science? Can you
have one without the other?
17
Copyright © The McGraw-Hill Companies, Inc.