Software Production 0721330 1 (0721330) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD) .

19
Software Production 0721330 1 (0721330) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD) http://philadelphia.edu.jo/acade mics/shanna

Transcript of Software Production 0721330 1 (0721330) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD) .

Page 1: Software Production 0721330 1 (0721330) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD) .

Software Production 0721330 1

(0721330)First Semester 2011/2012

Dr. Samer Odeh Hanna (PhD)http://philadelphia.edu.jo/academics/shanna

Page 2: Software Production 0721330 1 (0721330) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD) .

Software Production 0721330 2

Course Objectives

This course provides students with an overall context in which software systems are developed from the viewpoint of processes that support the development.

Software engineering is described as the set of activities developers engage in to create high-quality products within schedule and budget constraints.

Page 3: Software Production 0721330 1 (0721330) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD) .

Software Production 0721330 3

Specific Objectives

Understand the theoretical basis for process improvement efforts.

Compare specific processes

Page 4: Software Production 0721330 1 (0721330) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD) .

Software Production 0721330 4

Objectives

ActualCore

Processes

Process ImprovementFrameworks

ProcessModels

MakingThingsBetter

KnowingWhat we

Are doingIn first place

Page 5: Software Production 0721330 1 (0721330) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD) .

Software Production 0721330 5

Textbooks

B. Bruegge, A. H. Dutoit, “Object-Oriented Software Engineering Using UML, Patterns, and Java”, Third Edition, Prntice Hall, 2009.

R. Pressman, “Software Engineering, A Practitioner’s Approach” Seventh Edition, McGraw-Hill, 2010.

J. Hunt, “Agile Software Construction”, Springer, 2006.

Notes: First and second textbooks are available at the university library Third is available as a pdf file on the lecturer’s website.

Page 6: Software Production 0721330 1 (0721330) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD) .

Software Production 0721330 6

Chapter 1: Introduction

Page 7: Software Production 0721330 1 (0721330) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD) .

Software Production 0721330 7

Requirements

Software

What we intend

Page 8: Software Production 0721330 1 (0721330) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD) .

Software Production 0721330 8

How it should go

RequirementsAnalysis

Implementation

Design

Testing

Delivery and Installation

Page 9: Software Production 0721330 1 (0721330) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD) .

Software Production 0721330 9

Inherent Problems with Software Development

Requirements are complex The client does not know the functional

requirements in advance Requirements may be changing

Technology enablers introduce new possibilities to deal with requirements

Frequent changes are difficult to manage There is more than one software system

New system must be backward compatible with existing system (“legacy system”)

This leads us to software life cycle modeling

Page 10: Software Production 0721330 1 (0721330) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD) .

Software Production 0721330 10

Definitions

Software lifecycle modeling: Attempt to deal with complexity and change

Software lifecycle: Set of activities and their relationships to each

other to support the development of a software system

Page 11: Software Production 0721330 1 (0721330) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD) .

Software Production 0721330 11

Identifying Software Development Activities

For finding activities and dependencies we can use the same modeling techniques when modeling a system such as creating scenarios, use case models, object identification, drawing class diagrams, activity diagrams

Questions to ask: What is the problem? What is the solution? What are the mechanisms that best implement the

solution? How is the solution constructed? Is the problem solved? Can the customer use the solution? How do we deal with changes that occur during the

development? Are enhancements needed?

Page 12: Software Production 0721330 1 (0721330) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD) .

Software Production 0721330 12

Possible Identification of Software Development Activities

Requirements Analysis What is the problem?

System Design What is the solution?

Program DesignWhat are the mechanismsthat best implement thesolution?

Program ImplementationHow is the solutionconstructed?

Testing Is the problem solved?

Delivery Can the customer use the solution?

Maintenance Are enhancements needed?

ProblemDomain

ProblemDomain

ImplementationDomain

ImplementationDomain

Page 13: Software Production 0721330 1 (0721330) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD) .

Software Production 0721330 13

Software Development as Application Domain: A Use Case Model

<<include>>

<<include>><<include>>

Client End userDeveloperProject manager

Software development

System developmentProblem definition System operation

Administrator

Page 14: Software Production 0721330 1 (0721330) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD) .

Software Production 0721330 14

Systemoperationactivity

Systemdevelopmentactivity

Problemdefinitionactivity

Activity diagram for the same life cycle model

Software development goes through a linear progression of statescalled software development activities

Page 15: Software Production 0721330 1 (0721330) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD) .

Software Production 0721330 15

Software Development as Application Domain: Simple Object Model

Object DesignDocument

Requirements AnalysisDocument

Executable system

Problem Statement

Software Development

System DesignDocument

Test Manual

User Manual

Page 16: Software Production 0721330 1 (0721330) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD) .

Software Production 0721330 16

What is a process?

A group of homogeneous tasks that are related together in which an outcome can be identified.

People, equipment, input, methods, and environment that work together to produce output.

The set of activities, methods, and practices that are used in the production and evolution of software.

Set of activities, organized in steps, in order to transform users needs into operational software.

Steps, partially ordered, are in interaction and aim to achieve a goal.

Page 17: Software Production 0721330 1 (0721330) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD) .

Software Production 0721330 17

Processes, Activities and Tasks Process Group: Consists of Set of Processes Process: Consists of Activities Activity: Consists of sub activities and tasks

ProcessGroup

ProcessGroup

ProcessProcess

ActivityActivity

DevelopmentDevelopment

DesignDesign

TaskTask

DesignDatabase

DesignDatabase

Make aPurchase

Recommendation

Make aPurchase

Recommendation

Page 18: Software Production 0721330 1 (0721330) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD) .

Software Production 0721330 18

Object Model of the Software Life Cycle

Process group

Activity

Work Product

Resource

Task

Process

Money

Time

Participant

produces

consumes

Phase

*

*

**

*

Software life cycle

*

Page 19: Software Production 0721330 1 (0721330) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD) .

Questions