0% found this document useful (0 votes)
97 views19 pages

CS383 - Software Engineering: Semester: 432

This document provides an overview of the CS383 - Software Engineering course. It will cover software process models including the waterfall model, incremental process model, and component-based model. Students will be assessed through two midterms, a group project, and a final exam. The course will also discuss process activities like software specification, design, implementation, testing, verification and validation (V&V), and evolution. Generic process models will be examined in more detail including their strengths and weaknesses.

Uploaded by

amjad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
97 views19 pages

CS383 - Software Engineering: Semester: 432

This document provides an overview of the CS383 - Software Engineering course. It will cover software process models including the waterfall model, incremental process model, and component-based model. Students will be assessed through two midterms, a group project, and a final exam. The course will also discuss process activities like software specification, design, implementation, testing, verification and validation (V&V), and evolution. Generic process models will be examined in more detail including their strengths and weaknesses.

Uploaded by

amjad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

CS383 - Software Engineering

Software Process Models (I)

Semester: 432

Lecture: 3
Course profile

● Overview: a course to teach you how software is developed systematically using


best development and engineering practices

● Text Book: I. Sommerville “Software Engineering”, Ninth Edition, Pearson.

● Assessment materials:
○ 2 midterm exams (from week 8 to week 10) = %40
○ Group project = 20% (assessment is throughout the course and week 14 is
final presentation)
○ Final Exam = %40

2
Outline

● Software process models

● Generic software process models

○ Waterfall model

○ Incremental process model

○ Component-based (Reuse-oriented) process model

● Process activities

● The rational unified process

3
What is a software process model?

● A simplified description of software process

activities representation from a particular

viewpoint.

● It may contain

○ Sequence of process activities

○ Inputs/outputs to each process activities

○ Roles and responsibility of people involve

(clients, developers, administrators)

● It considered as a roadmap to guide software team

4
Generic Software Process Models

● Most software process models are based on one of the


following paradigms
○ The Waterfall Model
○ Incremental Development
○ Reuse-oriented Development

● Generic process models typically adapted and extended to create


specific software process models that can be applied

5
The Waterfall Model

● Strengths
○ Aligns to system
engineering
process
○ Complete set of
documentation

6
The Waterfall Model

● Strengths
○ Aligns to system
engineering
process
○ Complete set of
documentation

● Weaknesses
○ Inflexible to changing
requirements
○ Late discovery of technical
problems
○ Sequential: next phase waits
for previous phase

7
Incremental Development

● Strengths
○ Effectively manages
evolving requirements
○ Identifies and resolves
technical risk early
○ Receive early customer
feedback

8
Incremental Development

● Strengths
○ Effectively manages
evolving requirements
○ Identifies and resolves
technical risk early
○ Receive early customer
feedback

● Weaknesses
○ Reduced visibility and
control of activities
○ May lead to poor
structured software

9
Reuse-oriented (component-based) Development

● Strengths

● Lowers the cost and time


of development
● Lowers technical risk

10
Reuse-oriented (component-based) Development

● Strengths ● Weaknesses

● Lowers the cost and time ● Compromises made on


of development requirements
● Lowers technical risk ● Less control over
software evolution

11
Process Activities: software specification

12
Process Activities: software development

1. Design: a description of the structure of the software to be implemented

● E.g. data models, interfaces of system components, algorithms (sometimes)

● Design is iterative process.

○ Details are added with constant backtracking

● As software (design) there are inputs, design activities an outputs

13
Process Activities: software development (design)

14
Process Activities: software implementation

2. Implementation: processes the design output and


converting the specification into executable system

● Manual implementation
● In MDD, model transformation is used to
transformed design outputs (graphical models like
UML) into other types of software: documents, code,
models
● In Agile development: design outputs could be
represented in the code of the program

15
Process Activities: software development (testing)

● Defects of development can occur at any level of design or


implementation
● Defects cascade: propagate during development or even
outside of development
● Testing of development should be iterative process
○ A change of a complement can trigger a problem
into another
● The idea is to remove any defects and ensure your the
developed system is ready be validated and verified.

16
Process Activities: software V&V
● Medium-size and bigger systems should not be tested as whole
○ Three-stage testing process should be used
● Component Testing: test each component independently
● System testing: system components are integrated and testing as whole
○ This could be multi-staged testing
● Acceptance Testing: test using real data from customers/clients

17
Process Activities: software V&V (cont.)

● In plan-driven software process, there are usually test plans

18
Process Activity: software evolution

19

You might also like