24
IS444: Modern tools for applications development Dr. Azeddine Chikh

IS444: Modern tools for applications development Dr. Azeddine Chikh

Embed Size (px)

DESCRIPTION

Software Software is intangible Software is complex Software is easy to reproduce The industry is labor-intensive Untrained people can hack something together Software is easy to modify Software does not ‘wear out’ 3

Citation preview

Page 1: IS444: Modern tools for applications development Dr. Azeddine Chikh

IS444: Modern tools for applications development

Dr. Azeddine Chikh

Page 2: IS444: Modern tools for applications development Dr. Azeddine Chikh

Part 1.Object-Oriented Software Engineering

Chapter1: Software engineering

Page 3: IS444: Modern tools for applications development Dr. Azeddine Chikh

Software Software is intangible Software is complex Software is easy to reproduce The industry is labor-intensive Untrained people can hack something together Software is easy to modify Software does not ‘wear out’

3

Page 4: IS444: Modern tools for applications development Dr. Azeddine Chikh

Software Much software has poor design and is getting

worse Demand for software is high and rising We are in a perpetual ‘software crisis’ We have to learn to ‘engineer’ software

4

Page 5: IS444: Modern tools for applications development Dr. Azeddine Chikh

Software taxonomy Custom

For a specific customer Generic

Sold on open market Often called COTS (Commercial Off The Shelf)

Embedded Built into hardware Hard to change

5

Page 6: IS444: Modern tools for applications development Dr. Azeddine Chikh

Software taxonomy

Custom Generic Embedded Number of copies in use

low medium high

Total processing power devoted to running this type of software

low high medium

Worldwide annual development effort

high medium low

6

Page 7: IS444: Modern tools for applications development Dr. Azeddine Chikh

Software taxonomy Real time software

E.g. control and monitoring systems Must react immediately Safety often a concern

Data processing software Used to run businesses Accuracy and security of data are key

Some software has both aspects

7

Page 8: IS444: Modern tools for applications development Dr. Azeddine Chikh

Software engineering

1. The process of solving customers’ problems by the systematic development and evolution of large, high-quality software systems within cost, time and other constraints

8

Page 9: IS444: Modern tools for applications development Dr. Azeddine Chikh

Software engineering

2. IEEE: the application of a systematic, disciplined, quantifiable approach to the development, operation, maintenance of software; that is, the application of engineering to software.

9

Page 10: IS444: Modern tools for applications development Dr. Azeddine Chikh

Software engineering

3. The Canadian Standards Association: The systematic activities involved in the design, implementation and testing of software to optimize its production and support.

10

Page 11: IS444: Modern tools for applications development Dr. Azeddine Chikh

Software stakeholders

1. Users2. Customers3. Developers4. Development Managers

All four roles can be fulfilled by the same person

11

Page 12: IS444: Modern tools for applications development Dr. Azeddine Chikh

Software quality Usability Efficiency Reliability Maintainability Reusability

12

Page 13: IS444: Modern tools for applications development Dr. Azeddine Chikh

Software quality

QUALITY

Developer easy to design; easy to maintain; easy to reuse its parts

User easy to learn; efficient to use; helps get work done

Customersolves problems at an acceptable cost in terms of money paid and resources used

Development manager sells more and pleases customers while costing less to develop and maintain

13

Page 14: IS444: Modern tools for applications development Dr. Azeddine Chikh

Software project activities Requirements and specification

Domain analysisDefining the problemRequirements gatheringRequirements analysisRequirements specification

14

Page 15: IS444: Modern tools for applications development Dr. Azeddine Chikh

Software project activities Design

Systems engineeringSoftware architecture:Detailed design of the internals of a subsystemUser interface designDesign of databases

15

Page 16: IS444: Modern tools for applications development Dr. Azeddine Chikh

Software project activities Modeling Programming Document preparation and production Software configuration management Quality assurance Deployment Managing the process Risk management

16

Page 17: IS444: Modern tools for applications development Dr. Azeddine Chikh

Process as Problem Solving

17

statusquo

problemdefinition

technicaldevelopment

solutionintegration

Page 18: IS444: Modern tools for applications development Dr. Azeddine Chikh

Software life cycle Basic models

Linear model Waterfall model V model X model

Strategic models Incremental model Spiral model Iterative models : Prototyping and RAD

18

Page 19: IS444: Modern tools for applications development Dr. Azeddine Chikh

Linear model

19

analysis design code test

System/informationengineering

Page 20: IS444: Modern tools for applications development Dr. Azeddine Chikh

Waterfall model

20

Page 21: IS444: Modern tools for applications development Dr. Azeddine Chikh

V model

21

Page 22: IS444: Modern tools for applications development Dr. Azeddine Chikh

Incremental model

22

analysis design code test

System/informationengineering

analysis design code test

analysis design code test

analysis design code test

increment 2

increment 3

increment 4

increment 1

delivery of1st increment

delivery of2nd increment

delivery of3rd increment

delivery of4th increment

calendar time

Page 23: IS444: Modern tools for applications development Dr. Azeddine Chikh

Spiral model

23

CustomerCommunication

Planning

Construction & ReleaseCustomerEvaluation

Engineering

Risk Analysis

Page 24: IS444: Modern tools for applications development Dr. Azeddine Chikh

Iterative models

24

listento

customerbuild/revise

mock-up

customertest-drivesmock-up

businessmodeling

datamodeling

processmodeling

applicationgeneration

testing&

turnover

businessmodeling

datamodeling

processmodeling

applicationgeneration

testing&

turnover

businessmodeling

datamodeling

processmodeling

applicationgeneration

testing&

turnover

team #1

team #2team #3

60 - 90 days

Prototyping

RAD