46
1 CS487 CS487 Software Engineering Software Engineering Omar Aldawud Omar Aldawud [email protected] [email protected] http://www.cs.iit.edu/~oaldawud/CS48 7

1 CS487 Software Engineering Omar Aldawud [email protected] CS487 Software Engineering Omar Aldawud [email protected] [email protected] oaldawud/CS487

  • View
    231

  • Download
    2

Embed Size (px)

Citation preview

Page 1: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

1

CS487CS487Software EngineeringSoftware Engineering

Omar AldawudOmar [email protected]@iit.edu

http://www.cs.iit.edu/~oaldawud/CS487

Page 2: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

2

CS487 ScheduleCS487 Schedule

Page 3: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

3

CS487 071 - RiceCS487 071 - Rice

CS487-071

Page 4: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

4

CS487 251 - InternetCS487 251 - Internet

Page 5: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

5

CS487 390 - MainCS487 390 - Main

Page 6: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

6

CS487 961 - IndiaCS487 961 - India

Page 7: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

7

CS 487 Course LogisticsCS 487 Course Logistics

Course Logistics Course Logistics

http://cs.iit.edu/~oaldawud/CS487http://cs.iit.edu/~oaldawud/CS487

[email protected]@iit.edu

Page 8: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

8

Today’s ClassToday’s Class

Software Engineering ActivitiesSoftware Engineering Activities

SoftwareSoftware the Product and its Qualitythe Product and its Quality The Process!The Process!

What Is SE?What Is SE?

Page 9: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

9

The Wall Street JournalThe Wall Street Journal“Ideas and technological discoveries are the “Ideas and technological discoveries are the deriving engines of economic growth” deriving engines of economic growth”

Software impact Software impact Impact of software maintenanceImpact of software maintenance

New Technologies to make it easier, faster, New Technologies to make it easier, faster, and less expensive to build and less expensive to build high-qualityhigh-quality programsprograms

Page 10: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

10

Software Engineering: A Practitioner’s Software Engineering: A Practitioner’s Approach, 6/eApproach, 6/e

Chapter 1Chapter 1Software and Software Software and Software

EngineeringEngineering

Page 11: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

11

So Far …So Far …

You have been given detailed specifications of a You have been given detailed specifications of a small programming problem, and you did design, small programming problem, and you did design, code, test, and deployed by your selfcode, test, and deployed by your self Students Grade AverageStudents Grade Average Simple database applicationSimple database application

In this course you will be given a large and more In this course you will be given a large and more complex programming assignmentcomplex programming assignment

To complete it you need to put on your Software To complete it you need to put on your Software Engineering hat and work with a teamEngineering hat and work with a team

Page 12: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

12

What is What is Software?Software?

Software is a set of items or objects that form a “configuration” that includes • programs • documents • data ...

Page 13: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

13

Software’s Dual RoleSoftware’s Dual Role

Software is a productSoftware is a product Produces, manages, acquires, modifies, displays, or Produces, manages, acquires, modifies, displays, or

transmits informationtransmits information

Software is a vehicle for delivering a Software is a vehicle for delivering a productproduct Supports or directly provides system functionalitySupports or directly provides system functionality Controls other programs (e.g., an operating system)Controls other programs (e.g., an operating system) Effects communications (e.g., networking software)Effects communications (e.g., networking software) Helps build other software (e.g., software tools)Helps build other software (e.g., software tools)

Page 14: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

14

What Is What Is Software?Software?

Is the Product that SW engineers Design Is the Product that SW engineers Design and Build.and Build.

it encompasses:it encompasses: Instructions “Computer Programs”Instructions “Computer Programs” Documents “Describe Programs”Documents “Describe Programs” Architecture including Data Structures “Enable Architecture including Data Structures “Enable

Programs”Programs”

Logical rather than physicalLogical rather than physical

Page 15: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

15

Software vs. Software vs. HardwareHardware

software is engineered not manufactured

software doesn’t wear out Figure 1.1 vs Fig 1.2

software is complex Software is custom build

Page 16: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

16

Wear vs. Wear vs. DeteriorationDeterioration

idealized curve

change

actual curve

Failurerate

Time

increased failurerate due to side effects

Compare to the bath-tub curve Fig 1.1

Page 17: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

17

Software Software ApplicationsApplications

System software (compilers, System software (compilers, file management, etc)file management, etc)

Application softwareApplication software Engineering/scientific Engineering/scientific

software software Embedded software Embedded software Product-line softwareProduct-line software Web-AppsWeb-Apps AIAI

Page 18: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

18

Software ApplicationsSoftware Applications

Ubiquitous computing —wireless networks Netsourcing —the Web as a computing

engine Open source —”free” source code open to

the computing community (a blessing, but also a potential curse!)

Also … (see Chapter 32) Data mining Grid computing Cognitive machines Software for nanotechnologies

Page 19: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

19

Legacy SoftwareLegacy Software

software must be adapted to meet the needs of new computing environments or technology.

software must be enhanced to implement new business requirements.

software must be extended to make it interoperable with other more modern systems or databases.

software must be re-architected to make it viable within a network environment.

Why must it change?

Page 20: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

20

Software Engineering

IEEE definition. 1.Application of a systematic, disciplined, quantifiable

approach to the development, operation, and maintenance of software; That is, the application of engineering to software.

2.The study of approaches as in (1).

Page 21: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

21

SE ActivitiesSE Activities

Communication

Planning

Modeling

Construction

Deployment

analysis

designcode

test

project init iation

requireme

nt gathering estimating scheduling tracking

delivery support feedback

Each phase has three components:

1. Set of activities - This is what you do

2. Set of deliverables - This is what you produce.

3. Quality Control Measures - This is what you use to evaluate the deliverables.

Page 22: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

22

What Are Good Programs?What Are Good Programs?

What makes a text editor a bad application?What makes a text editor a bad application?

What makes a C++ compiler a bad What makes a C++ compiler a bad compiler?compiler?

What makes a hospital patient database What makes a hospital patient database application bad?application bad?

Page 23: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

23

Quality Software, What Makes Quality Software, What Makes It Good?It Good?

1. It works Program must do the task correctly and completely THUS … the first step in the development process is to

understand exactly and completely WHAT the program is required to do?

Document the outcome SW requirements Develop programs that meets customer requirements using SW

specifications Format of Input and output Processing details Performance Error handling procedures Standards And so on …

Page 24: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

24

Quality Software, What Makes Quality Software, What Makes It Good?It Good?

2. Can be read and understood2. Can be read and understood Document the codeDocument the code

3. Can be modified3. Can be modified To accommodate for new requirementsTo accommodate for new requirements

4. Completed in time and within budget 4. Completed in time and within budget

Page 25: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

25

Quality and the ProcessQuality and the Process

How can we make sure (measure) that our How can we make sure (measure) that our software is “good”?software is “good”?

Measure the quality of the software by measuring the Measure the quality of the software by measuring the processprocess

We must have a roadmap or process .. We must have a roadmap or process .. A software A software processprocess

Page 26: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

26

What is SW Process?What is SW Process?

When building a Product it’s important to go through a series of predictable steps, road map, that help you create a timely, and high-quality result.

The ROAD MAP that you follow is the SW process.

Process depends on the SW you are building Web design vs. telephone switch!!

Page 27: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

27

Software Process

Process defines who is doing: – What?, – When and how? – To reach a goal

Process defines tasks and activities within a schedule

Results – Programs – Documents – And data

Software process is a roadmap for high quality software

Page 28: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

28

Software Engineering: A Practitioner’s Software Engineering: A Practitioner’s Approach, 6/eApproach, 6/e

Chapter 2Chapter 2Process: A Generic ViewProcess: A Generic View

copyright © 1996, 2001, 2005

R.S. Pressman & Associates, Inc.

For University Use OnlyMay be reproduced ONLY for student use at the university level

when used in conjunction with Software Engineering: A Practitioner's Approach.Any other reproduction or use is expressly prohibited.

Page 29: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

29

A Layered A Layered TechnologyTechnology

Software Engineering

a “quality” focusa “quality” focus

process modelprocess model

Methods Methods “how to’s”“how to’s”

toolstools

Communication

Requirements

Design

Code

Testing

Deployment

support

Page 30: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

30

Umbrella ActivitiesUmbrella Activities

A Process A Process FrameworkFramework

Process framework

Framework activitiesSW Eng Actions #1

work taskswork productsmilestones & deliverablesQA checkpoints

Design

Page 31: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

31

Framework ActivitiesFramework Activities

Communication Planning Modeling

Analysis of requirements Design

Construction Code generation Testing

Deployment

Page 32: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

32

Umbrella ActivitiesUmbrella Activities Software project management Formal technical reviews Software quality assurance Software configuration management Work product preparation and production Reusability management Measurement Risk management

Page 33: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

33

Generic Framework activitiesGeneric Framework activities

Communication Get to know your Customer and their processes Identify stakeholders Requirement elicitation

Page 34: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

34

Generic Framework activitiesGeneric Framework activities

Planning Plan the work Identify resources Identify tasks Set the schedule

Page 35: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

35

Generic Framework activitiesGeneric Framework activities

Modeling Analysis of requirements Design Blue print for customer and developers communications

Page 36: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

36

Generic Framework activitiesGeneric Framework activities

Construction Code generation Testing

Page 37: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

37

Generic Framework activitiesGeneric Framework activities

Deployment Customer evaluation and feedback

Page 38: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

38

CMM

There must be a commitment to QA.SEI developed a process model to measure Quality “IEEE Capability Maturity Model (CMM)”, CMM is a:

“A way to measure the current process maturity of an organization”

Maturity is a measure of the goodness of the process itself An organization with a more mature process is more likely

to develop high quality SW, in a timely, predictable and cost effective way.

An organization's process will improve slowly and become more mature

Page 39: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

39

The CMMIThe CMMI The CMMI defines each process area in

terms of “specific goals” and the “specific practices” required to achieve these goals.

Specific goals establish the characteristics that must exist if the activities implied by a process area are to be effective.

Specific practices refine a goal into a set of process-related activities.

See Project Planning Example page 29

Page 40: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

40

The CMMIThe CMMI Process “standards” do exist CMMI is an important one CMMI levels provide an indication of an organizations

process capability Level 0 incomplete Level 1 performed Level 2 managed Level 3 defined Level 4 quantitatively managed Level 5 optimized

See Fig 2.4 Page 31

Page 41: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

41

Process PatternsProcess Patterns Process patterns define a set of activities, Process patterns define a set of activities,

actions, work tasks, work products and/or actions, work tasks, work products and/or related behaviorsrelated behaviors

A template is used to define a patternA template is used to define a pattern Typical examples:Typical examples:

Customer communication (a process activity)Customer communication (a process activity) Analysis (an action)Analysis (an action) Requirements gathering (a process task)Requirements gathering (a process task) Reviewing a work product (a process task)Reviewing a work product (a process task) Design model (a work product)Design model (a work product)

Page 42: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

42

Process AssessmentProcess Assessment

The process should be assessed to ensure The process should be assessed to ensure that it meets a set of basic process criteria that it meets a set of basic process criteria that have been shown to be essential for a that have been shown to be essential for a successful software engineeringsuccessful software engineering.

Many different assessment options are Many different assessment options are available: available: SCAMPISCAMPI CBA IPICBA IPI SPICESPICE ISO 9001:2000ISO 9001:2000

Page 43: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

43

Assessment and ImprovementAssessment and Improvement

Software Process

Software Process Assessment

is examined by identifies capabilitiesand risk of

identifiesmodifications to

Software Process Improvement

Capability Determination

leads to leads to

motivates

Page 44: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

44

Generic View of SEGeneric View of SE

SW Engineering is the:SW Engineering is the: AnalysisAnalysis,, DesignDesign,, ConstructionConstruction,, VerificationVerification and. and. ManagementManagement of Software. of Software.

Page 45: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

45

SW Process Models

Guides the SW team thought a set of framework activities (process flow) Linear Incremental evolutionary

It is a set of activities required to Define, design, implement, test and maintain a

software product. A SW process model is chosen based on the

nature of the project. Each process model prescribes a workflow for SE

activities

Page 46: 1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu CS487 Software Engineering Omar Aldawud aldaoma@iit.edu aldaoma@iit.edu oaldawud/CS487

46

SW Process Models

All models have phases and each phase has 3 components: Set of activities, this is what you do. Set of deliverables, this is what you produce. Quality control measures, this is what you use to

evaluate the deliverables.

The activities defines the process Framework, the generic set encompasses: Communication, planning, modeling, construction, and

deployment