Post on 08-Jan-2018
description
transcript
IS444: Modern tools for applications development
Dr. Azeddine Chikh
Part 1.Object-Oriented Software Engineering
Chapter1: Software engineering
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
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
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
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
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
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
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
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
Software stakeholders
1. Users2. Customers3. Developers4. Development Managers
All four roles can be fulfilled by the same person
11
Software quality Usability Efficiency Reliability Maintainability Reusability
12
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
Software project activities Requirements and specification
Domain analysisDefining the problemRequirements gatheringRequirements analysisRequirements specification
14
Software project activities Design
Systems engineeringSoftware architecture:Detailed design of the internals of a subsystemUser interface designDesign of databases
15
Software project activities Modeling Programming Document preparation and production Software configuration management Quality assurance Deployment Managing the process Risk management
16
Process as Problem Solving
17
statusquo
problemdefinition
technicaldevelopment
solutionintegration
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
Linear model
19
analysis design code test
System/informationengineering
Waterfall model
20
V model
21
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
Spiral model
23
CustomerCommunication
Planning
Construction & ReleaseCustomerEvaluation
Engineering
Risk Analysis
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