TDB2163 – Software
Engineering
MODULE 2: Software
Process
Copyright © 2021 Yew Kwang Hooi. All rights reserved
Learning Outcomes
Upon completion of this course, you will
be able to:
1. Describe the common software
processes for all types of software
systems.
2. Coordinate the flow of a software
project more systematically.
Copyright © 2021 Yew Kwang Hooi. All rights reserved
1
Software Engineering
Why engineering software?
• Software becoming more complex.
• Repeating success
• Assurance: Success should be induced by
process/standard, not fully dependent on people.
Copyright © 2021 Yew Kwang Hooi. All rights reserved
2
What is software process?
Software process is a structured set of activities required to
develop a software system.
Specification
Design &
Implementation
Validation
Evolution
Copyright © 2021 Yew Kwang Hooi. All rights reserved
3
Specification
Specification phase comprise of planning and analysis.
Specification
Planning PFS
Analysis SRS
Design & SDD
Implementation
Validation
Evolution
Copyright © 2021 Yew Kwang Hooi. All rights reserved
4
Planning
PFS
Planning
Analysis
1. Planning phase is to understand “why a system should be built”.
2. Initiation: A system request presents the idea of a new system in an
organization.
3. Steering committee conducts analysis on feasibility aspects:
a. Technical feasibility
b. Economic feasibility
c. Organizational feasibility
4. The outcome is the Project Feasibility Report.
Copyright © 2021 Yew Kwang Hooi. All rights reserved
5
Analysis
You do not want to develop a system that will not be used by anyone
1. Develop a system that can be 3. Analyst asks the following questions:
used and will be used. a. who will use the system?
b. what the system can do?
2. Analyst gathers & analyzes c. when the system will be used?
requirements from end users. d. where the system will be used?
PFS
Planning
Analysis
Copyright © 2021 Yew Kwang Hooi. All rights reserved
6
Analysis
Elicit requirement
PFS
Planning (User requirements)
Analysis
SRS
Analyze requirement
(System requirements)
1. Requirements must be well defined to ensure successful development of a
system intended by users.
2. Analyst elicits user requirements.
3. Analyst produces system requirements.
4. Requirements are documented in Software Requirements Specification
(SRS)
Copyright © 2021 Yew Kwang Hooi. All rights reserved
7
Design & Implementation
1. Design has a major impact on software
quality. Design & Implementation
2. Design phase establishes Design
a. system architecture (Top-level SDD
design) Implementation
b. detailed features and functions
(Detailed design)
3. Output is Software Design Document
(SDD):
Architecture Interface Database/file Component
design specification specification specification
• Define infrastructure • Defines user interaction • Defines the data • Defines the program to
needed to implement and navigation to required in the system be written and functions
the system. perform intended tasks. and its storage location of each program.
• UML • Wireframe, Storyboard, • ERD, schema
Prototype, TOE,
Copyright © 2021 Yew Kwang Hooi. All rights reserved
8
SRS vs SDD
1. SRS is produced after _______ activity.
2. SRS is about __________.
3. SDD is produced after _______ activity.
4. SDD is about ____________.
Analysis
SRS
Design
SDD
Copyright © 2021 Yew Kwang Hooi. All rights reserved
9
Design & Implementation
Design & Implementation
Design
SDD
Implementation
1. A.K.A Development. In this phase, a system
is actually built.
2. Implementation is based on SRS and SDD.
3. Implementation transforms the design into
a software system.
a. Software component
acquisition/programming.
b. Integrate components into a system.
c. Testing and documentation.
d. Hardware acquisition, installation and
configuration.
Copyright © 2021 Yew Kwang Hooi. All rights reserved
10
Validation
Specification
Design &
Implementation
Validation
Evolution
1. Validation determines if a system conforms to specification and meets the
requirements.
2. Validation involves checking & review processes and testing.
3. Testing in validation activity:
a. System testing determines if the system as a whole conforms with
specification. It involves executing the system with test cases that are
derived from the specification of the real data.
b. Acceptance testing determines if the system meets requirements of the
system customer. Acceptance testing is done by system customer.
4. Validation is done iteratively.
Copyright © 2021 Yew Kwang Hooi. All rights reserved
11
Project Management
1. Project Sponsor/Project Champion owns a project. He/she initiates/supports/owns a project within
the area of his/her responsibility. He/she determines the broad goals and scope.
2. A level under the Project Sponsor is the Project Manager (PM). PM runs the project:
a. Leads the Steering Committee in planning
b. Manages project team
c. Manages resources
3. Resources:
a. Time (scheduling)
b. Budget
c. Manpower
d. Technology
4. For planning, an important document is the Software Project Management Plan (SPMP):
a. To document the agreed deliverables and dates.
b. Description of the software approach and associated milestones.
Copyright © 2021 Yew Kwang Hooi. All rights reserved
12
Evolution
1. System deployment follows system development. Specification
2. Deployment involves: Design &
Implementation
a. System delivery - The system is installed, replacing
old system with minimal interruption. Validation
b. Security - System and especially the data and
information are assets. Access control, back-up Evolution
and recovery plans are needed.
c. Support - To assist end-user.
3. System evolution follows system deployment.
a. System evolution is also known as system
maintenance.
b. System maintenance establishes plan for the
system to correct errors which are not discovered
during validation, to improve the system and to
enhance system with new requirements.
Copyright © 2021 Yew Kwang Hooi. All rights reserved
13
Discussion
1. Fewer and fewer systems are completely new. And what is the impact?
Discuss.
2. Why does software change?
3. Describe what happen in the following activities:
a. Specification
b. Design and implementation
c. Validation
d. Evolution
Copyright © 2021 Yew Kwang Hooi. All rights reserved
14
Key points
1. Software processes are the activities involved in producing a
software system.
2. Requirements engineering is the process of developing a software
specification.
3. Design and implementation processes are concerned with
transforming a requirements specification into an executable
software system.
4. Software validation is the process of checking that the system
conforms to its specification and that it meets the real needs of the
users of the system.
5. Software evolution takes place when you change existing software
systems to meet new requirements. The software must evolve to
remain useful.
Copyright © 2021 Yew Kwang Hooi. All rights reserved
15
References
• Sommerville, I. (2015). Software Engineering, Global Edition. Pearson Education
Limited.
• Humberto Cervantes & Rick Kazman. Designing Software Architectures: A
Practical Approach. 2016 . Addison-Wesley
• Systems Analysis and Design: An Object-Oriented Approach with UML,Alan
Dennis, Barbara Haley Wixom and David Tegarden , 2015.
• Alan Denis, Barbara Haley Wixom and David Tegarden. (2005). System Analysis
and Design with UML Version 2.0: An Object-Oriented Approach. John Wiley &
Sons, Inc.
• Arctern. (2011). Development Methodologies. Available at
[Link]
• Perdita Stevens and Rob Pooley. (2006). Using UML.(2nd Edition). Addison
Wesley.
• Jason T. Roff. (2003). UML: A Beginner’s Guide. McGraw-Hill
• Yew K. H., Oxford Fajar, Computer Science for Matriculation Semester 2 Edition
2, 2017. ISBN 13: 978983472001 8.
• Soeryanto Soegoto, Eddy & Jayaswara, M. (2018). Web and Android
Programming Course Information System. IOP Conference Series: Materials
Science and Engineering. 407. 012063. 10.1088/1757-899X/407/1/012063.
Copyright © 2021 Yew Kwang Hooi. All rights reserved
16