College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software...

25
College of Engineering and Computer College of Engineering and Computer Science Science Computer Science Department Computer Science Department CSC 131 CSC 131 Computer Software Engineering Computer Software Engineering Fall 2006 Fall 2006 Lecture # 1 Lecture # 1 (Ch. 1, 2, & 3) (Ch. 1, 2, & 3)

Transcript of College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software...

Page 1: College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)

College of Engineering and Computer ScienceCollege of Engineering and Computer ScienceComputer Science DepartmentComputer Science Department

CSC 131CSC 131Computer Software EngineeringComputer Software Engineering

Fall 2006 Fall 2006

Lecture # 1Lecture # 1(Ch. 1, 2, & 3)(Ch. 1, 2, & 3)

Page 2: College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)

What is What is Software?Software?

A set of instructions that are designed to A set of instructions that are designed to accomplish a desired task or function.accomplish a desired task or function.

Software Includes:Software Includes:ProgramsProgramsDocumentsDocumentsData…Data…

Page 3: College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)

Software Software Characteristics…Characteristics…

Software is engineered or developed.Software is engineered or developed.

Software does not wear out, but it Software does not wear out, but it deteriorates.deteriorates.

Software is still mostly custom built.Software is still mostly custom built.

Page 4: College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)

Wear vs. Wear vs. DeteriorationDeterioration

idealized curve

change

actual curve

Failurerate

Time

increased failurerate due to side effects

Page 5: College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)

The Cost of The Cost of ChangeChange

Definition Development After release

Page 6: College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)

Software Software ApplicationsApplications system softwaresystem software

real-time softwarereal-time software business softwarebusiness software engineering/scientific softwareengineering/scientific software embedded softwareembedded software PC softwarePC software AI softwareAI software WebApps (Web applications)WebApps (Web applications)

Page 7: College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)

Software EngineeringSoftware Engineering

Classic Definition (1969)Classic Definition (1969)

“The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.”

“Software Engineering: (1) The application of a systematic, disciplines, 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 8: College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)

Software Engineering & Problem Software Engineering & Problem SolvingSolving

COMPUTER SCIENCE

CUSTOMER

SOFTWAREENGINEERING

Theories ComputerFunctions Problem

Tools and Techniques to

Solve Problems

Page 9: College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)

Characteristics of an Engineering ProcessCharacteristics of an Engineering Process Predictable ResultsPredictable Results

Product will be produced.Product will be produced.Production/release time is known in advanceProduction/release time is known in advanceIf results were predictable we would not see V1.0.1, If results were predictable we would not see V1.0.1,

V 1.0.2, etc. (Are these are bug fix releases..?)V 1.0.2, etc. (Are these are bug fix releases..?)

Measurable ProgressMeasurable Progress

Product goes through well defined phasesProduct goes through well defined phasesEngineers can reliably measure progressEngineers can reliably measure progressMetrics can be defined to provide accurate Metrics can be defined to provide accurate

indication of progress and cost. indication of progress and cost.

Page 10: College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)

Characteristics of an Engineering ProcessCharacteristics of an Engineering Process

Reaction to ChangeReaction to ChangeThe product is well planned and The product is well planned and

documenteddocumentedChanges in requirements is well Changes in requirements is well

anticipatedanticipatedImpact of change more readily Impact of change more readily

assessed.assessed.

Page 11: College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)

The ProcessThe Process

Page 12: College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)

Software Engineering

A Layered A Layered TechnologyTechnologySoftware Engineering

a “quality” focusa “quality” focus

process modelprocess model

methodsmethods

toolstools

Page 13: College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)

Software ProcessSoftware Process

DefinitionDefinition

The activities, techniques, tools, The activities, techniques, tools, and individuals to produce and individuals to produce software.software.

Page 14: College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)

Process PrinciplesProcess Principles Prescribes all major activitiesPrescribes all major activities

Uses resources, within a set of constraints, to produce Uses resources, within a set of constraints, to produce intermediate and final products.intermediate and final products.

May be composed of sub-processes.May be composed of sub-processes.

Each activity has entry and exit criteria.Each activity has entry and exit criteria.

Activities are organized in a sequence.Activities are organized in a sequence.

Has a set of guiding principles to explain goals.Has a set of guiding principles to explain goals.

Constraints may apply to activity, resource or product.Constraints may apply to activity, resource or product.

Page 15: College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)

Process Assessment Model:Process Assessment Model:Capability Maturity Model (CMM)Capability Maturity Model (CMM)

Developed by SEI – (Software Engineering Institute at Developed by SEI – (Software Engineering Institute at Carnegie Mellon)Carnegie Mellon)

Five Process Maturity LevelsFive Process Maturity Levels Level 1: Level 1: Initial- Initial-

ad hoc: few processes are establishedad hoc: few processes are established Level 2: Level 2: Repeatable Repeatable – –

Basic processes are defined to repeat earlier successes Basic processes are defined to repeat earlier successes on projectson projects

Level 3: Level 3: DefinedDefined

processes documented, standardized,and integrated processes documented, standardized,and integrated into the organizationinto the organization

Page 16: College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)

CMM Cont.CMM Cont.

Level 4: Level 4: Managed –Managed –

detailed software processes measures are established.detailed software processes measures are established.

Level 5: Level 5: Optimizing- Optimizing-

Continues process improvement is established by Continues process improvement is established by quantitative feedback. quantitative feedback.

Page 17: College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)

Software Process ModelsSoftware Process Models Strategy need to be developed to solve an actual Strategy need to be developed to solve an actual

problem.problem. This strategy encompasses: Process, Methods, and This strategy encompasses: Process, Methods, and

tools.tools.

This strategy is known as a Process ModelThis strategy is known as a Process Model The process model is chosen based on the The process model is chosen based on the

following:following:

Nature of the projectNature of the projectMethods and tools to be usedMethods and tools to be usedDeliverables that are requiredDeliverables that are required

Page 18: College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)

Process as Problem SolvingProcess as Problem Solving

software Development can be characterized as a problem solving software Development can be characterized as a problem solving processprocess

statusquo

problemdefinition

technicaldevelopment

solutionintegration

Page 19: College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)

Variations in the ProcessVariations in the Process Regardless of exact procedure, all broadly follow the these phases of Regardless of exact procedure, all broadly follow the these phases of

SW Life CycleSW Life Cycle

Requirements phaseRequirements phaseSpecification phaseSpecification phaseDesign phaseDesign phaseImplementation phaseImplementation phaseTesting phaseTesting phaseMaintenance phaseMaintenance phase

Some use different terms – some combine phasesSome use different terms – some combine phases

Page 20: College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)

Software Life-Cycle ModelsSoftware Life-Cycle Models

DefinitionDefinition• The series of steps through which the product The series of steps through which the product

progressesprogresses

The model specifiesThe model specifies

the various phases of the processthe various phases of the process e.g., requirements, specification, design…e.g., requirements, specification, design…

the order in which they are carried outthe order in which they are carried out

Page 21: College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)

Software Lifecycle ModelsSoftware Lifecycle Models

Build-and-fixBuild-and-fixdevelop systemsdevelop systems

without specs or designwithout specs or design modify until customer is satisfiedmodify until customer is satisfied

Why doesn’t build-and-fix scale?Why doesn’t build-and-fix scale? changes during maintenancechanges during maintenance most expensive!most expensive!

Page 22: College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)

Lifecycle ModelsLifecycle Models

Waterfall model - Also Waterfall model - Also known as Linear known as Linear sequential modelsequential model

RequirementsPhase

SpecificationPhase

DesignPhase

Implementation & Integration

Phase

RequirementsDescription

Specification

Design Docs

Product

Page 23: College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)

Drawbacks of Waterfall ModelDrawbacks of Waterfall Model Document-driven modelDocument-driven model

customers cannot understand them …customers cannot understand them … imagine an architect just showing you a textual spec!imagine an architect just showing you a textual spec!

first time client sees a working product is after it has been first time client sees a working product is after it has been coded. Problems here?coded. Problems here?

leads to products that don’t meet customers needsleads to products that don’t meet customers needs Assumes feasibility before implementationAssumes feasibility before implementation

re-design is problematicre-design is problematic works best when you know what you’re doingworks best when you know what you’re doing

when requirements are stable & problem is well-knownwhen requirements are stable & problem is well-known

Page 24: College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)

The Primary Goal:The Primary Goal:High Quality SoftwareHigh Quality Software

Critical Quality Critical Quality AttributesAttributes

ReliabilityReliabilityMaintainabilityMaintainabilityDependabilityDependabilityEfficiencyEfficiencyUsabilityUsability

Other AttributesOther Attributes

CompletenessCompleteness CompatibilityCompatibility PortabilityPortabilityScalabilityScalability RobustnessRobustness TestabilityTestability Reusability……Reusability……

Page 25: College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)

Questions…?Questions…?

What is next..?What is next..?Deliverable # 1Deliverable # 1