DOC PREVIEW
USC CSCI 599 - Week1

This preview shows page 1-2-17-18-19-36-37 out of 37 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 37 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 37 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 37 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 37 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 37 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 37 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 37 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 37 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Overview of Software Engineering PrinciplesEngineeringSoftware Engineering in a NutshellEver-Present DifficultiesWhy These Difficulties?Software Engineering ≠ Software ProgrammingSlide 7Economic and Management Aspects of SERelative Costs of Fixing Software FaultsMythical Man-Month by Fred BrooksSoftware Development Lifecycle Waterfall ModelSoftware Development Lifecycle Spiral ModelRequirementsArchitecture/DesignArchitecture vs. Design [Perry & Wolf 1992]Implementation & IntegrationComponent-Based DevelopmentDifferent Flavors of ComponentsVerification and ValidationDeployment & EvolutionConfiguration Management (CM) [Tichy 1988]CM in ActionSoftware Engineering PrinciplesFrom Principles to ToolsSoftware QualitiesExternal vs. Internal QualitiesProduct vs. Process QualitiesSome Software QualitiesSome Software Qualities (cont.)Slide 30Slide 31Slide 32Slide 33Slide 34Software Process QualitiesAssessing Software QualitiesSoftware Engineering “Axioms”Overview of Software Engineering PrinciplesCSCI 599:Software Engineering for Embedded SystemsAugust 27, 2002EngineeringEngineering is …the application of scientific principles and methodsTo the construction of useful structures & machinesExamplesMechanical engineeringCivil engineeringChemical engineeringElectrical engineeringNuclear engineeringAeronautical engineeringSoftware Engineering in a NutshellDevelopment of software systems whose size/complexity warrants team(s) of engineersmulti-person construction of multi-version software [Parnas 1987]Scopestudy of software process, development principles, techniques, and notationsGoalproduction of quality software, delivered on time, within budget, satisfying customers’ requirements and users’ needsEver-Present DifficultiesFew guiding scientific principlesFew universally applicable methodsAs muchmanagerial / psychological / sociologicalas technologicalWhy These Difficulties?SE is a unique brand of engineeringSoftware is malleableSoftware construction is human-intensiveSoftware is intangibleSoftware problems are highly complexSoftware directly depends upon the hardwareIt is at the top of the system engineering “food chain”Software Engineering ≠ Software ProgrammingSoftware programmingSingle developer“Toy” applicationsShort lifespanSingle or few stakeholdersArchitect = Developer = Manager = Tester = Customer = UserOne-of-a-kind systemsBuilt from scratchMinimal maintenanceSoftware Engineering ≠ Software ProgrammingSoftware engineeringTeams of developers with multiple rolesComplex systemsIndefinite lifespanNumerous stakeholdersArchitect ≠ Developer ≠ Manager ≠ Tester ≠ Customer ≠ UserSystem familiesReuse to amortize costsMaintenance accounts for over 60% of overall development costsEconomic and Management Aspects of SESoftware production =development + maintenance (evolution)Maintenance costs > 60% of all development costs20% corrective30% adaptive50% perfectiveQuicker development is not always preferablehigher up-front costs may defray downstream costspoorly designed/implemented software is a critical cost factorRelative Costs of Fixing Software FaultsRequirementsSpecification Planning Design Implementation Integration Maintenance12341030200Mythical Man-Monthby Fred BrooksPublished in 1975, republished in 1995Experience managing development of OS/360 in 1964-65Central argumentLarge projects suffer management problems different in kind than small ones, due to division in laborCritical need is the preservation of the conceptual integrity of the product itselfCentral conclusionsConceptual integrity achieved through chief architectImplementation achieved through well-managed effortBrooks’s LawAdding personnel to a late project makes it laterSoftware Development LifecycleWaterfall Model Requirements Design Implementation Integration Validation DeploymentEvaluate alternatives,identify, resolve risks,develop prototypesDevelop, verifynext-level productPlan next phasesDetermine objectivesalternatives, constraintsSoftware Development LifecycleSpiral ModelRequirementsProblem Definition → Requirements Specificationdetermine exactly what the customer and user wantdevelop a contract with the customerspecifies what the software product is to doDifficultiesclient asks for wrong productclient is computer/software illiteratespecifications are ambiguous, inconsistent, incompleteVerificationextensive specification reviews with the customeridentify ambiguity, inconsistency, incompletenessascertain feasibility, testabilitydevelop system/acceptance test planArchitecture/DesignRequirements Specification → Architecture/Designarchitecture: decompose software into modules with interfacesdesign: develop module specifications (algorithms, data types)maintain a record of design decisions and traceabilityspecifies how the software product is to do its tasksDifficultiesmiscommunication between module designersdesign may be inconsistent, incomplete, ambiguousVerificationdesign inspections to establish conformance to requirementscheck module interactionsdevelop integration test planArchitecture vs. Design[Perry & Wolf 1992]Architecture is concerned with the selection of architectural elements, their interactions, and the constraints on those elements and their interactions necessary to provide a framework in which to satisfy the requirements and serve as a basis for the design.Design is concerned with the modularization and detailed interfaces of the design elements, their algorithms and procedures, and the data types needed to support the architecture and to satisfy the requirements.Implementation & IntegrationDesign → Implementationimplement modules; verify that they meet their specificationscombine modules according to the designspecifies how the software product does its tasksDifficultiesmodule interaction errorsorder of integration may influence quality and productivityVerificationcode reviews to establish conformance to requirements & designcheck module interactionsdevelop unit test plan: focus on individual modulestest on unit, integration and acceptance test plansComponent-Based DevelopmentDevelop generally applicable components of a reasonable size and reuse them across


View Full Document

USC CSCI 599 - Week1

Documents in this Course
Week8_1

Week8_1

22 pages

Week2_b

Week2_b

10 pages

LECT6BW

LECT6BW

20 pages

LECT6BW

LECT6BW

20 pages

5

5

44 pages

12

12

15 pages

16

16

20 pages

Nima

Nima

8 pages

Week1

Week1

38 pages

Week11_c

Week11_c

30 pages

afsin

afsin

5 pages

October5b

October5b

43 pages

Week11_2

Week11_2

20 pages

final

final

2 pages

c-4

c-4

12 pages

0420

0420

3 pages

Week9_b

Week9_b

20 pages

S7Kriegel

S7Kriegel

21 pages

Week4_2

Week4_2

16 pages

sandpres

sandpres

21 pages

Week6_1

Week6_1

20 pages

4

4

33 pages

Week10_c

Week10_c

13 pages

fft

fft

18 pages

LECT7BW

LECT7BW

19 pages

24

24

15 pages

14

14

35 pages

Week9_c

Week9_c

24 pages

Week11_67

Week11_67

22 pages

LECT3BW

LECT3BW

28 pages

Week8_c2

Week8_c2

19 pages

Week5_1

Week5_1

19 pages

LECT5BW

LECT5BW

24 pages

Week10_b

Week10_b

16 pages

Week11_1

Week11_1

43 pages

Week7_2

Week7_2

15 pages

Week5_b

Week5_b

19 pages

Week11_a

Week11_a

29 pages

LECT14BW

LECT14BW

24 pages

T7kriegel

T7kriegel

21 pages

0413

0413

2 pages

3

3

23 pages

C2-TSE

C2-TSE

16 pages

10_19_99

10_19_99

12 pages

s1and2-v2

s1and2-v2

37 pages

Week10_3

Week10_3

23 pages

jalal

jalal

6 pages

1

1

25 pages

T3Querys

T3Querys

47 pages

CS17

CS17

15 pages

porkaew

porkaew

20 pages

LECT4BW

LECT4BW

21 pages

Week10_1

Week10_1

25 pages

wavelet

wavelet

17 pages

October5a

October5a

22 pages

p289-korn

p289-korn

12 pages

2

2

33 pages

rose

rose

36 pages

9_7_99

9_7_99

18 pages

Week10_2

Week10_2

28 pages

Week7_3

Week7_3

37 pages

Load more
Download Week1
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Week1 and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Week1 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?